Xml 如果存在DTD DOCTYPE,Xerces将强制执行元素声明
我有以下XML文档:Xml 如果存在DTD DOCTYPE,Xerces将强制执行元素声明,xml,ant,xsd-validation,dtd,xerces,Xml,Ant,Xsd Validation,Dtd,Xerces,我有以下XML文档: &傅; 我想根据以下XSD模式对其进行验证: 为此,我使用了一个小ANT脚本: 尽管XML结构对XSD有效,但我得到了以下错误: [schemavalidate] ...\src.xml:2:7: Elementtyp "root" muss deklariert werden. [schemavalidate] ...\src.xml:3:12: Elementtyp "child" muss deklariert we
&傅;
我想根据以下XSD模式对其进行验证:
为此,我使用了一个小ANT脚本:
尽管XML结构对XSD有效,但我得到了以下错误:
[schemavalidate] ...\src.xml:2:7: Elementtyp "root" muss deklariert werden.
[schemavalidate] ...\src.xml:3:12: Elementtyp "child" muss deklariert werden.
(原始消息,翻译后的意思是:“元素类型”root“必须声明”
)
我想我知道会发生什么:Xerces找到DTD声明并尝试根据它验证XML。我需要关闭DTD验证(而不关闭完全验证),或者指定没有声明的元素或属性不会产生错误。我经常使用Xerces功能(),但没有找到令人满意的设置
谢谢你的帮助和提示
版本信息:
- Java:1.8.0_211
- 蚂蚁:1.9.13
- Xerces:不确定,怎么知道
)
注意:我在这里使用的是Ant,但是如果您有Java解决方案,它可能也会有所帮助。我认为您需要设置“schemaLanguage”属性。大概是这样的:
<project basedir="." name="schema-validation-test" default="test">
<target name="test">
<schemavalidate file="src.xml" noNamespaceFile="schema.xsd" failonerror="true">
<property name="http://java.sun.com/xml/jaxp/properties/schemaLanguage" value="http://www.w3.org/2001/XMLSchema"/>
</schemavalidate>
</target>
</project>
致以最良好的祝愿,
屋大维就是这样!谢谢,屋大维!现在,当我知道我必须搜索哪个财产时,我在Xerces常见问题解答中也找到了关于这个问题: