为啥我在 jdoconfig.xml 中出现错误?

Posted

技术标签:

【中文标题】为啥我在 jdoconfig.xml 中出现错误?【英文标题】:Why am I getting errors in jdoconfig.xml?为什么我在 jdoconfig.xml 中出现错误? 【发布时间】:2014-05-23 14:56:06 【问题描述】:

Eclipse 标记选项卡显示了一些xml 问题。这发生在我在Project Facets 中检查dynamic web module 时。

这是我的项目层次结构:

jdconfig.xml(自动生成):

<?xml version="1.0" encoding="utf-8"?>
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">

   <persistence-manager-factory name="transactions-optional">
       <property name="javax.jdo.PersistenceManagerFactoryClass"
       value="org.datanucleus.api.jdo.JDOPersistenceManagerFactory"/>
       <property name="javax.jdo.option.ConnectionURL" value="appengine"/>
       <property name="javax.jdo.option.NontransactionalRead" value="true"/>
       <property name="javax.jdo.option.NontransactionalWrite" value="true"/>
       <property name="javax.jdo.option.RetainValues" value="true"/>
       <property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/>
       <property name="datanucleus.appengine.singletonPMFForName" value="true"/>
   </persistence-manager-factory>
</jdoconfig>

标记窗口中显示的错误:

cvc-elt.1: Cannot find the declaration of element 'jdoconfig'.

我收到此错误的原因是什么?

另外,jdoconfig.xml 是什么?

【问题讨论】:

【参考方案1】:

试试这个

  <jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd">

【讨论】:

它已经解决了问题! 这个答案是否有可能包括为什么这有效? (无论如何都赞成,因为它确实解决了问题)。【参考方案2】:

如果根据“xsi:noNamespaceSchemaLocation”不存在架构,则删除此属性会消除此验证错误。

<?xml version="1.0" encoding="utf-8"?>
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >

【讨论】:

【参考方案3】:
cvc-elt.1: Cannot find the declaration of element 'jdoconfig'.

这是一个验证错误。它说,在验证您的 XML 文件时,解析器在引用的架构文档上找不到元素 &lt;jdconfig&gt; 的声明。

在您的情况下,这可能是由两种不同的原因引起的:

    架构位置http://java.sun.com/xml/ns/jdo/jdoconfig 不正确,该地址中没有架构。 元素 &lt;jdconfig&gt; 具有(默认)命名空间,但架构位置指的是非命名空间架构。

【讨论】:

【参考方案4】:
<?xml version="1.0" encoding="UTF-8" ?>
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig 
    http://java.sun.com/xml/ns/jdo/jdoconfig_3_0.xsd">

【讨论】:

【参考方案5】:

因为它错了? 这个页面有一个简单的例子 http://db.apache.org/jdo/jdoconfig_dtd.html

任何 JDO 实现的文档都会解释该文件的用途,就像简单的互联网搜索一样。

更好的 XML 标头应该是这样的

<jdoconfig xmlns="http://xmlns.jcp.org/xml/ns/jdo/jdoconfig"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/jdo/jdoconfig
        http://xmlns.jcp.org/xml/ns/jdo/jdoconfig_3_0.xsd" version="3.0">

【讨论】:

这对我不起作用。来自 Protoxy 的答案对我有用。

以上是关于为啥我在 jdoconfig.xml 中出现错误?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在验收测试中出现错误?

为啥我在 C++ 阶乘函数中出现编译错误?

为啥我在 Java 中出现无法访问的语句错误?

为啥我在此代码的循环中出现错误?

为啥我在 rails 2 中使用 vpim 出现编码错误?

为啥我在 Django 的 Python shell 中出现编程错误?