我有像下面的XML文件的東西。需要XSD基本幫助 - 模式中的命名空間?
<credits>
<property name="tag">
<item>v0003</item>
</property>
<property
name="tag">
<item>mhma03h</item>
</property>
</credits>
第一個要求是這個XML無論如何都不能改變。請不要在下面做這個。
我需要寫一個模式來驗證這一點。和驗證的Java代碼。
我完全被卡住了,我不知道到底發生了什麼。
什麼是這樣的模式?我已經得到一個,但它是如此糟糕,我不打擾張貼。 :P我不想將名稱空間追加到XML元素。它們設置在石頭上。^ _^
我該如何製作它,以便所有這些元素都是解析器「發現」的?我可以告訴它忽略所有這個命名空間的廢話。通過這種對模式進行驗證的應用程序,命名空間衝突根本不可能。
我試圖把
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="books" elementFormDefault="unqualified">
我的命名空間信息和
更新:我已經更新我在做什麼,以反映目前給出的答案! :)
XSD
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="property">
<xs:complexType>
<xs:sequence>
<xs:element ref="item"/>
</xs:sequence>
<xs:attribute name="name" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="tag"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="item">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="mhma03h"/>
<xs:enumeration value="v0003"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="credits">
<xs:complexType>
<xs:sequence>
<xs:element ref="property" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML V0003
代碼加載和驗證肯定。在你問之前,文件是能夠被加載。我檢查過20次。 :P
SAXParserFactory factory = SAXParserFactory.newInstance();
SchemaFactory schemaFactory =
SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
factory.setSchema(schemaFactory.newSchema(
new Source[] {new StreamSource("small.xsd")}));
javax.xml.parsers.SAXParser parser = factory.newSAXParser();
org.xml.sax.XMLReader reader = parser.getXMLReader();
reader.setFeature("http://xml.org/sax/features/validation", true);
reader.setFeature("http://apache.org/xml/features/validation/schema", true);
reader.parse(new InputSource("small.xml"));
我通過我的java驗證代碼運行了你的模式,並得到這個異常。 cvc-elt.1:找不到元素'xs:schema'的聲明。是否有特定的設置或我需要設置在我的SAXParser對象上的東西不會失敗? – bobber205 2011-03-04 21:44:54
這個錯誤是因爲我把.xsd放在了我應該放的地方.xsl xD – bobber205 2011-03-04 21:50:09