XSD验证XML的步骤
发布时间:2023-12-26 21:09:33 所属栏目:教程 来源:DaWei
导读: 我们将使用基于Java的XSD验证器来针对students.xsd验证文件:students.xml。
文件:students.xml -
<?xml version = 1.0?>
<class>
<student rollno = 1010>
<firstnam
文件:students.xml -
<?xml version = 1.0?>
<class>
<student rollno = 1010>
<firstnam
我们将使用基于Java的XSD验证器来针对students.xsd验证文件:students.xml。 文件:students.xml - <?xml version = 1.0?> <class> <student rollno = 1010> <firstname>Dinkar</firstname> <lastname>King</lastname> <nickname>Dinkar</nickname> <marks>85</marks> </student> <student rollno = 1020> <firstname>Vaneet</firstname> <lastname>Su</lastname> <nickname>Vaneet</nickname> <marks>95</marks> </student> <student rollno = 1030> <firstname>Jasvir</firstname> <lastname>Lee</lastname> <nickname>Jasvir</nickname> <marks>90</marks> </student> </class> 文件:students.xsd - <?xml version = 1.0?> <xs:schema xmlns:xs = http://www.w3.org/2001/XMLSchema> <xs:element name = 'class'> <xs:complexType> <xs:sequence> <xs:element name = 'student' type = 'StudentType' minOccurs = '0' maxOccurs = 'unbounded' /> </xs:sequence> </xs:complexType> </xs:element> <xs:complexType name = StudentType> <xs:sequence> <xs:element name = firstname type = xs:string/> <xs:element name = lastname type = xs:string/> <xs:element name = nickname type = xs:string/> <xs:element name = marks type = xs:positiveInteger/> </xs:sequence> <xs:attribute name = 'rollno' type = 'xs:positiveInteger'/> </xs:complexType> </xs:schema> 文件:XSDValidator.java - import java.io.File; import java.io.IOException; 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; import org.xml.sax.SAXException; public class XSDValidator { public static void main(String[] args) { if(args.length !=2){ System.out.println(Usage : XSDValidator <file-name.xsd> <file-name.xml> ); } else { boolean isValid = validateXMLSchema(args[0],args[1]); if(isValid){ System.out.println(args[1] + is valid against + args[0]); } else { System.out.println(args[1] + is not valid against + args[0]); } } } public static boolean validateXMLSchema(String xsdpath, String xmlPath){ try { SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = factory.newSchema(new File(xsdpath)); Validator validator = schema.newValidator(); validator.validate(new StreamSource(new File(xmlPath))); } catch (IOException e){ System.out.println(Exception: +e.getMessage()); return false; }catch(SAXException e1){ System.out.println(SAX Exception: +e1.getMessage()); return false; } return true; } } 针对XSD验证XML的步骤 将XSDValidator.java文件复制到一个工作目录位置,例如:D:\worksp\xsd,将students.xml 和students.xsd 这两个文件复制到相同的工作目录位置(D:\worksp\xsd)。 打开命令行控制台编译XSDValidator.java,确保在计算机上安装了JDK 1.5以及类路径。 有关如何使用JAVA的详细信息,请参阅JAVA教程。 D:\worksp\xsd>javac XSDValidator.java 执行XSDValidator,并将students.xsd和students.xml这两个文件名称作为参数传递。输出结果如下所示 : D:\worksp\xsd>java XSDValidator students.xsd students.xml students.xml is valid against students.xsd (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐