为啥我在 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 文件时,解析器在引用的架构文档上找不到元素 <jdconfig>
的声明。
在您的情况下,这可能是由两种不同的原因引起的:
-
架构位置
http://java.sun.com/xml/ns/jdo/jdoconfig
不正确,该地址中没有架构。
元素 <jdconfig>
具有(默认)命名空间,但架构位置指的是非命名空间架构。
【讨论】:
【参考方案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 中出现错误?的主要内容,如果未能解决你的问题,请参考以下文章