【问题标题】: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 是什么?

【问题讨论】:

    标签: java xml eclipse xsd jdo


    【解决方案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; 的声明。

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

      1. 架构位置http://java.sun.com/xml/ns/jdo/jdoconfig 不正确,该地址中没有架构。
      2. 元素 &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 的答案对我有用。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-09
          • 2020-11-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多