XSD示例
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="shiporder">
<xs:complexType>
<xs:sequence>
<xs:element name="orderperson" type="xs:string" />
<xs:element name="name" type="xs:string" />
<xs:element name="address" type="xs:string" />
</xs:sequence>
<xs:attribute name="orderid" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:schema>
XML响应示例
<?xml version="1.0" encoding="utf-8"?>
<shiporder orderid="str1234">
<orderperson>str1234</orderperson>
<name>str1234</name>
<address>str1234</address>
</shiporder>
架构验证Dom源
http://hostcode.sourceforge.net/view/3307
架构验证StreamSource
http://hostcode.sourceforge.net/view/3306
验证为Stream源工作正常。使用DomSource验证时,我遇到了错误。 cvc-elt.1:找不到元素'shiporder'的声明。
这种行为的原因是什么。?
My main question why validator.validate(new DOMSource(node)); does not work in shema validation. What is the reason ?
答案 0 :(得分:1)
在创建DOM结构期间,您需要明确指定您的DOM元素不属于任何名称空间。您可以通过调用org.w3c.dom.Document#createElementNS
而不是org.w3c.dom.Document#createElement
来执行此操作,其中namespaceURI
的值为null
。
示例:document.createElementNS(null, qualifiedName)
。