XML的校验在XML处理中非常常见,如果没有有效的办法来校验XML的合法性,往往会导致很多问题。
    
    XML的校验是通过XML Schema(XSD) 或DTD文件的语法规范来校验的。DTD现在越来越不受欢迎了,在此选用XSD来校验。
    
    Java校验XML是件和扯淡的事情,因为Sun的XML相关软件包会令你云里雾里。
    
    W3C这块的XML相关的规范相当的多,这也是导致XML处理器起来费劲的主要原因。要想精通这些规范和相关的API,实在是异想天开(新的规范在不停出,越来越多!)。
    
    校验的原理是通过读取解析XML的时候设置校验的XSD和校验错误处理器,顺便校验的。
    
    下面不扯这些废话了,我用DOM4j结合javaxml api使用XSD来校验一个xml有效性,下面这个例子虽然和蹩脚,但是也费了一番功夫,放出来大家研究吧,有更好的实现也希望能和我一同分享。
    
    例子如下:
    
    XML文件
    
    <?xml version=“1.0”?>
    
    <note
    
    xmlns=“http://www.w3school.com.cn”
    
    xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”
    
    xsi:schemaLocation=“http://www.w3school.com.cn file:///D:/_dev_studtest/srcte.xml”>
    
    <to>George</to>
    
    <from>John</from>
    
    <heading>Reminder</heading>
    
    <body>Don't forget the meeting this weekend!</body>
    
    <te>
    
    XSD文件
    
    <?xml version=“1.0”?>
    
    <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema”
    
    targetNamespace=“http://www.w3school.com.cn”
    
    xmlns=“http://www.w3school.com.cn”
    
    elementFormDefault=“qualified”>
    
    <xs:element name=“note”>
    
    <xs:complexType>
    
    <xs:sequence>
    
    <xs:element name=“to” type=“xs:string”/>
    
    <xs:element name=“from” type=“xs:string”/>
    
    <xs:element name=“heading” type=“xs:string”/>
    
    <xs:element name=“body” type=“xs:string”/>
    
    <:sequence>
    
    <:complexType>
    
    <:element>
    
    <:schema>