目录

-XSD-对-XML-数据格式验证-java

目录

XSD 对 XML 数据格式验证 java

========xsd文件,文件名bean.xsd,放在当前java文件目录下

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="bean">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="name" type="xs:string"/>
                <xs:element name="address" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

========被验证xml文件,文件名bean.xml,放在当前java文件目录下

<?xml version="1.0" encoding="UTF-8"?>
<bean>
    <name>rain </name>
    <address>中国</address>
</bean>

=========java文件

package org.rain.xml;
import javax.xml.XMLConstants;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import org.xml.sax.SAXException;
import java.io.File;
import java.io.IOException;

public class SmallRainXML {
    public static void main(String[] args) {
    	SmallRainXML smallrainXML=new SmallRainXML();
    	
    	String smallrainBeanXSD=smallrainXML.getClass().getResource("bean.xsd").getFile();
    	String smallrainBeanXML=smallrainXML.getClass().getResource("bean.xml").getFile();
    	
        try {
            SchemaFactory smallrainSchemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
            Source smallrainSchemaSource = new StreamSource(new File(smallrainBeanXSD));
            Schema smallrainSchema = smallrainSchemaFactory.newSchema(smallrainSchemaSource);

            Validator smallrainValidator = smallrainSchema.newValidator();
            Source smallrainXMLSource = new StreamSource(new File(smallrainBeanXML));

            smallrainValidator.validate(smallrainXMLSource);
            System.out.println("XML格式正确");
        } catch (SAXException e) {
            System.out.println("XML格式错误" + e.getMessage());
        } catch (IOException e) {
            System.out.println("读文件出错" + e.getMessage());
        }
    }
}