通过XSD验证XML

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>

 

你可能感兴趣的:(xml,schema,xsd,validation,SchemaFactory)