Schema操作
1. 书写简单的Schema文档
9 创建XML文档studentschema.xml如下:
<?xml version="1.0" encoding="GB2312"?>
<学生名册>
<学生 学号="1">
<姓名>张三</姓名>
<性别>男</性别>
<年龄>20</年龄>
</学生>
<学生 学号="2">
<姓名>李四</姓名>
<性别>女</性别>
<年龄>19</年龄>
</学生>
<学生 学号="3">
<姓名>王二</姓名>
<性别>男</性别>
<年龄>21</年龄>
</学生>
<学生 学号="4">
<姓名>王二</姓名>
<性别>男</性别>
<年龄>21</年龄>
</学生>
</学生名册>
9 新建文本文件,首先是XML声明代码
<?xml version="1.0" encoding="GB2312"?>
9 添加Schema声明
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
… …
</xs:schema>
9 添加“学生名册”元素定义
<xs:element name="学生名册">
<xs:complexType>
<xs:sequence>
<xs:element ref="学生" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
9 “学生名册”元素之后添加“学生”元素定义
<xs:element name="学生">
<xs:complexType>
<xs:sequence>
<xs:element ref="姓名"/>
<xs:element ref="性别"/>
<xs:element ref="年龄"/>
</xs:sequence>
<xs:attribute name="学号" use="required" type="xs:int"/>
</xs:complexType>
</xs:element>
9 参考上述方法依次添加“姓名”、“性别”、“年龄”元素定义
<xs:element name="姓名" type="xs:string"/>
<xs:element name="性别">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="女"/>
<xs:enumeration value="男"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="年龄" type="xs:int"/>
9 文件保存为studentschema.xsd
9 在studentSchema.xml文件中加入对schema文件的引用
<学生名册xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="studentschema.xsd">
9 添加一条不符合约束的数据
9 用XMLSPY观察出错信息
2. 根据Schema书写XML文档
9 创建schema文件company.xsd如下
<?xml version="1.0" encoding="GB2312"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="联系人列表">
<xs:complexType>
<xs:sequence>
<xs:element ref="联系人" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="公司" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="联系人">
<xs:complexType>
<xs:sequence>
<xs:element ref="姓名"/>
<xs:element ref="公司"/>
<xs:element ref="电话"/>
<xs:element ref="地址"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="公司" type="xs:string"/>
<xs:element name="邮编" type="xs:int"/>
<xs:element name="地址">
<xs:complexType>
<xs:sequence>
<xs:element ref="街道"/>
<xs:element ref="城市"/>
<xs:element ref="省份"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="城市">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="上海"/>
<xs:enumeration value="北京市"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="姓名" type="xs:string"/>
<xs:element name="电话" type="xs:string"/>
<xs:element name="省份">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="上海"/>
<xs:enumeration value="北京"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="街道" type="xs:string"/>
</xs:schema>
9 分析上述Schema文档
根节点元素:联系人列表(包含子元素联系人、属性公司)
联系人元素含姓名、公司、电话、地址四个子节点元素
地址节点元素含有三个子元素:街道、城市和省份
9 创建针对上述Schema的XML文档,示例:
<?xml version="1.0" encoding="GB2312"?>
<联系人列表 公司="A集团">
<联系人>
<姓名>张三</姓名>
<公司>A公司</公司>
<电话>(021)5555666</电话>
<地址>
<街道>5街</街道>
<城市>上海市</城市>
<省份>上海</省份>
</地址>
</联系人>
<联系人>
<姓名>王三</姓名>
<公司>B公司</公司>
<电话>(021)5555777</电话>
<地址>
<街道>87街</街道>
<城市>上海市</城市>
<省份>上海</省份>
</地址>
</联系人>
</联系人列表>
Schema简单的例子
最新推荐文章于 2023-01-06 12:01:23 发布