2
我试图设计XML模式,但我一直陷入困境。我的XML文件不会针对我的模式进行验证。我怀疑我正在犯一些初学者的错误。任何人都可以指出我要出错的地方吗?错误信息对我没有意义。XML验证给出验证错误,但我找不到原因
这是我的xsd文件:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.test.com/teststuff/XMLnamespace" >
<xs:element name="dataCollecFile">
<xs:complexType>
<xs:sequence>
<xs:element name="fileHeader" minOccurs="0" maxOccurs="unbounded">
</xs:element>
<xs:element name="data" minOccurs="0" maxOccurs="unbounded">
</xs:element>
<xs:element name="fileFooter">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
而这里的XML文件,将不会验证内容:
<?xml version="1.0" encoding="UTF-8"?>
<dataCollecFile xmlns="http://www.test.com/teststuff/XMLnamespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.test.com/teststuff/XMLnamespace test.xsd">
<fileHeader>heady head header</fileHeader>
<data>data data</data>
<fileFooter>foot feet feeter</fileFooter>
</dataCollecFile>
最后,这里的错误信息,我从Java的的javax得到。 xml.validation.Validator类:
cvc-complex-type.2.4.a: Invalid content was found starting with element 'fileHeader'. One of '{fileHeader, data, fileFooter}' is expected.
谢谢,这个工程! 现在我的文件确认OK。 我发现了一个解释,意思是: http://www.velocityreviews.com/forums/t292290-xsd-what-is-elementformdefault-qualified-for.html 但我仍然不明白为什么当我没有该属性集时,发生了错误。如果我希望它在elementFormDefault =“unqualified”时工作,那么我的XML文件应该是什么样子? – Jolta
感谢您的更新说明。最亲切! – Jolta