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>