一、背景
在大型的项目开发中,我们往往要是用xml进行一些规范化的处理。这时候就需要有高手先做好上层的一些规则。这时候往往就会用到schema对xml进行一个规范化的校验
二、代码实践
我们以公司和员工为例来实践一下。
1、创建公司校验schema:CompanySchema.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/company"
xmlns:tns="http://www.example.org/company">
<xsd:element name="emp" type="tns:empType"/>
<xsd:complexType name="empType">
<xsd:sequence>
<xsd:element name="empName" type="xsd:string"/>
<xsd:element name="empId" type="tns:empIdType"/>
<xsd:element name="sex" type="tns:sexType"/>
<xsd:element name="age" type="tns:ageType" />
<xsd:element name="email" type="tns:emailType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="empIdType">
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="1" />
<xsd:maxExclusive value="100000" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="sexType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="男" />
<xsd:enumeration value="女" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ageType">
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="1" />
<xsd:maxExclusive value="120" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="emailType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="(\w+\.*)*\w+@\w+\.[A-Za-z]{2,6}" />
<xsd:minLength value="6" />
<xsd:maxLength value="255" />
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
2、创建员工校验schema:EmpSchema.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/company"
xmlns:tns="http://www.example.org/company">
<xsd:element name="emp" type="tns:empType"/>
<xsd:complexType name="empType">
<xsd:sequence>
<xsd:element name="empName" type="xsd:string"/>
<xsd:element name="empId" type="tns:empIdType"/>
<xsd:element name="sex" type="tns:sexType"/>
<xsd:element name="age" type="tns:ageType" />
<xsd:element name="email" type="tns:emailType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="empIdType">
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="1" />
<xsd:maxExclusive value="100000" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="sexType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="男" />
<xsd:enumeration value="女" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ageType">
<xsd:restriction base="xsd:int">
<xsd:minInclusive value="1" />
<xsd:maxExclusive value="120" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="emailType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="(\w+\.*)*\w+@\w+\.[A-Za-z]{2,6}" />
<xsd:minLength value="6" />
<xsd:maxLength value="255" />
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
3、创建公司xml:Company.xml
<?xml version="1.0" encoding="UTF-8"?>
<Company xmlns="http://www.example.org/company" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/company">
<companyName>中国实业集团</companyName>
<comppanyAddress>北京市朝阳区呼家楼</comppanyAddress>
<companyEmail>gxsenjoy@163.com</companyEmail>
<emp>
<empName>王刚</empName>
<empId>12345</empId>
<sex>男</sex>
<age>100</age>
<email>wanggang@sino.com</email>
</emp>
<emp>
<empName>瓜瓜</empName>
<empId>100</empId>
<sex>男</sex>
<age>100</age>
<email>guagua@sino.com</email>
</emp>
</Company>
4、注意点
要将EmpSchema.xsd,CompanySchema.xsd的命名空间定义成一样的
分享到:
相关推荐
ava校验XML是件很扯淡的事情,... 下面不扯这些废话了,我用DOM4j结合javaxml api使用XSD来校验一个xml有效性,下面这个例子虽然和蹩脚,但是也费了一番功夫,放出来大家研究吧,有更好的实现也希望能和我一同分享。
C#源码, 通过Schema验证XML文件格式是否正确
NULL 博文链接:https://fhqiwcw.iteye.com/blog/1696624
[实验目的]: 1、掌握使用XMLSpy软件创建DTD和Schema文档 2、掌握在XML文档如何引入DTD和Schema,并验证有效 3、掌握DTD中声明元素、属性的方法 4、掌握Schema中声明元素,属性,类型的方法
1、学习如何使用XMLSPY集成开发环境完成XML Schema相关的开发工作。 2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单...
java中实现xmlschema验证文件借鉴.pdf
1、学习如何使用XMLSPY集成开发环境完成XML Schema相关的开发工作。 2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单...
介绍XML中schema的语法,使用指南等等,使用schema进行内容校验
xerces-c++ 2.8应用,主要报错xml文件的解析,创建,修改保存。schema验证的。希望对初学者有所帮助.
xml Schema 例子(C#写的验证程序)QQ:292258449
1、学习如何使用XMLSPY集成开发环境完成XML Schema相关的开发工作。2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单...
默认情况下xxx=auto,如果DOCTYPE声明或schema声明出现在XML文档中,将进行验证:xxx=always,强制进行验证:xxx=never,不使用验证。 -n,允许处理名字空间。默认情况下不允许。 -s,允许处理大纲。默认情况下不...
介绍了xml的schema校验的基本知识
分享一下在网上找到的关于vc中xml文档校验的文章,自己试验过了,比较好用!
1、学习如何使用XMLSPY集成开发环境完成XML Schema相关的开发工作。 2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单...
使用DTD或Schema校验XML。从XML生成DTD或Schema。与其它编辑器相比最大不同之处在 于,Rinzo能够与Java elements结合在一起。你可以打开一个类的定义,自动完成类名,从XML声明创建类。这将非常有用假如你要编辑web....
可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XML Schema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XML Schema本身是一个XML...
java中实现xmlschema验证文件参照.pdf
xmlschema:适用于Python的XML模式验证器和数据转换库
《深入理解C#中的XML》主要讲述C#软件开发中的XML的功能,全书共10章,分别介绍了XML基础语法、应用文档对象模型、用XSLT转换XML文档、利用DTD和XSDSchema验证XML文档、XML文档的读取、ADO.NET的相关知识、....