根据XML文档编写Schema实例

XML
在进行框架、服务器开发或者企业之间交换数据时,经常需要使用XML来配置或交换数据。在使用XML文档时,由于XML文档标签可以任意定义,因此造成配置或交换数据的XML文件格式不统一,因此就需要一种来定义XML文档格式的语言,这就是Schema,只有符合Schema格式的XML文档才是有效的,否则无效。如:spring的配置文件就需要引入一大堆的dtd或者Schema,这就是来验证开发中编写的配置文件是否有效。

在进行框架、服务器开发或者企业之间交换数据时,经常需要使用XML来配置或交换数据。在使用XML文档时,由于XML文档标签可以任意定义,因此造成配置或交换数据的XML文件格式不统一,因此就需要一种来定义XML文档格式的语言,这就是Schema,只有符合Schema格式的XML文档才是有效的,否则无效。如:spring的配置文件就需要引入一大堆的dtd或者Schema,这就是来验证开发中编写的配置文件是否有效。

下面将会向读者展示怎样为已有的XML文档编写Schema文档,然后将Schema文档应用到XML文档中。

假如我们要创建XML文档结果如下(用来保存学生信息的XML文档),如下:

<?xml version="1.0" encoding="UTF-8"?>
<students>
    <student no="100">
        <name>张三</name>
        <sex>男</sex>
        <age>20</age>
    </student>
    <student no="200">
        <name>李烟</name>
        <sex>女</sex>
        <age>28</age>
    </student>
    ...
</students>

第一步:创建一个名为studentschema.xsd的Schema文本文件;

第二步:编写Schema文件的声明部分,如下:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="https://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <!-- 这里是要编写Schema的地方 -->
</xs:schema>

第三步:正式编写XML文档元素的Schema,如下:

(1)添加“students”元素的Schema定义定义,“students”是一个复杂类型,内部引用了“student”类型,如下:

<xs:element name="students">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="student" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>
</xs:element>

(2)添加“student”元素的Schema定义,“students”类型引用了它,同时该类型又引用了“name”、“sex”和“age”三个类型。如下:

<xs:element name="student">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="name" />
            <xs:element ref="sex" />
            <xs:element ref="age" />
        </xs:sequence>
        <xs:attribute name="no" use="required" type="xs:int"/>
    </xs:complexType>
</xs:element>

(3)添加“name”、“sex”、“age”元素的Schema定义,如下:

<xs:element name="name" type="xs:string"/>
<xs:element name="sex">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:enumeration value="女"/>
            <xs:enumeration value="男"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>
<xs:element name="age" type="xs:int"/>

截止这里,Schema文件就编写完成了;

(4)将Schema文件引入到XML文档中,如下:

<students xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="studentschema.xsd">

(5)使用Altova XML Spy软件对XML文档的有效性进行校验,你也可以使用其他的XML校验软件;

睡眠和休息丧失了时间,却取得了明天工作的精力。 —— 毛泽东
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号