0
下面是XML模式:爲什麼在使用Schema驗證無效的XML時不會發生異常?
<?xml version="1.0" ?>
<products>
<product>
<invalid_tag>32342</invalid_tag>
<name>Some name</name>
<price>3.89</price>
</product>
</products>
Java代碼與XML的工作和應測試的一致性:
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setValidating(false);
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
factory.setSchema(schemaFactory.newSchema(new File(xmlSchema)));
parser = factory.newSAXParser();
ProductsSaxHandler handler = new ProductsSaxHandler();
parser.parse(new File(xmlFile), handler);
但我不認爲是有效的一致性
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="products">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="product" type="ProductType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="ProductType">
<xs:sequence>
<xs:element name="id" type="xs:long" />
<xs:element name="name" type="xs:string" />
<xs:element name="price" type="xs:decimal" />
</xs:sequence>
</xs:complexType>
</xs:schema>
XML文件沒有任何異常。哪裏不對?
我還沒有在處理程序中實現這些方法。 –