1. XmlValidation.java
package xml.validation; import java.io.InputStream; import javax.xml.XMLConstants; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import javax.xml.validation.Validator; public class XmlValidation { public static void main(String[] args)throws Exception { SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); InputStream schemaInputStream = XmlValidation.class.getResourceAsStream("students.xsd"); Schema schema = schemaFactory.newSchema(new StreamSource(schemaInputStream)); Validator validator = schema.newValidator(); InputStream xmlInputStream = XmlValidation.class.getResourceAsStream("students.xml"); StreamSource source = new StreamSource(xmlInputStream); validator.validate(source); } }
2. students.xsd
<?xml version="1.0" encoding="utf-8" ?> <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="student"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="birthday" type="xs:string"/> <xs:element name="skill" type="xs:string" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
3. students.xml
<student> <name>李华</name> <birthday>1978.9.12</birthday> <skill>Java</skill> <skill>Oracle</skill> <skill>C Sharp</skill> <skill>SQL Server</skill> </student>