为什么我的jdoconfig.xml文件出现错误?

11

Eclipse标记选项卡显示了一些xml问题。这是当我在项目Facets中勾选了dynamic web module时发生的。

这是我的项目层次结构:

enter image description here

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是什么?

5个回答

32

试试这个替代方案

  <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
问题已经解决! - Jugal Panchal
这个答案是否可能包括为什么有效的原因?(尽管它确实解决了问题,但已投票支持)。 - jamesmortensen

1
如果不存在与“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" >

0
<?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">

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

这是一个验证错误。它表示,在验证您的XML文件时,解析器无法在所引用的模式文档中找到元素<jdconfig>的声明。

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

  1. schemalocation http://java.sun.com/xml/ns/jdo/jdoconfig 不正确,该地址中没有模式。
  2. 元素<jdconfig>具有(默认)命名空间,但模式位置引用非命名空间模式。

-2

因为它是错误的吗? 这个页面有一个简单的例子 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">

1
这对我没有用。Protoxy的答案对我有用。 - Skystrider

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接