我想知道如何使用XSD验证XML。 XML不是元素类型,而是复杂类型。由于验证器类的验证方法仅比较元素类型。
所以基本上我想用XML来证明XSD的复杂类型。
e.g。
以下基本XSD
xs:element name="Customer">
<xs:complexType>
<xs:sequence>
<xs:element name="Dob" type="xs:date" />
<xs:element name="Address">
<xs:complexType>
<xs:sequence>
<xs:element name="Line1" type="xs:string" />
<xs:element name="Line2" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
我们可以假设Customer元素中有多个复杂类型。
MY XML
<Address>
<Line1>34 thingy street, someplace</Line1>
<Line2>sometown, w1w8uu </Line2>
</Address>
我如何使用XSD验证我的XML。 请在java中发布您的建议
答案 0 :(得分:1)
像
这样的东西import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
// .....
try {
File xmlFile // read XML file
File xsdFile // read XSD file
Schema schema = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(xsdFile);
Validator validator = schema.newValidator();
validator.validate(new StreamSource(xmlFile));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}