为什么我在jdoconfig.xml中遇到错误?

时间:2014-04-10 04:54:08

标签: java xml eclipse xsd jdo

Eclipse标记选项卡显示一些xml问题。当我在dynamic web module中选中Project Facets时,就会发生这种情况。

这是我的项目层次结构:

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 个答案:

答案 0 :(得分:30)

试试这个

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

答案 1 :(得分:1)

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 :(得分: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">

答案 3 :(得分:0)

如果根据“ 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" >

答案 4 :(得分:-1)

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