目录

XML多子元素多属性及XSD数据格式验证-Java

目录

XML多子元素、多属性及XSD数据格式验证 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="beans">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="bean" minOccurs="0"
					maxOccurs="unbounded">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="name" type="xs:string" />
							<xs:element name="address" type="xs:string" />
						</xs:sequence>
						<xs:attribute name="smallrainIdIn" type="xs:string" use="required"/>
            <xs:attribute name="smallrainAttributeIn" type="xs:string" use="optional"/>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
			<xs:attribute name="smallrainId" type="xs:string" use="required"/>
            <xs:attribute name="smallrainAttribute" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
</xs:schema>

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

<?xml version="1.0" encoding="UTF-8"?>
<beans smallrainId="01">
	<bean smallrainIdIn="11">
		<name>rain </name>
		<address>中国</address>
	</bean>
	<bean smallrainIdIn="12">
		<name>rain one</name>
		<address>中国 one</address>
	</bean>
</beans>

=========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());
        }
    }
}