您的位置:首页 > 职场人生

黑马程序员_Schema解析XML文档详解

2012-06-23 10:06 218 查看
---------------------- <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! --------------------

1.    书写简单的 Schema 文档

     创建 XML 文档 studentschema.xml如下:
<?xml version="1.0"encoding="GB2312"?>
<学生 学号="1">
<姓名>张三</姓名>
<性别>男</性别>
<年龄>20</年龄>
</学生>
<学生 学号="2">
<姓名>李四</姓名>
<性别>女</性别>
<年龄>19</年龄>
</学生>
<学生 学号="3">
<姓名>王二</姓名>
<性别>男</性别>
<年龄>21</年龄>
</学生>
<学生 学号="4">
<姓名>王二</姓名>
<性别>男</性别>
<年龄>21</年龄>
</学生>
</学生名册>
 
     新建文本文件,首先是 XML 声明代码
<?xml version="1.0"encoding="GB2312"?>
 
     添加 Schema 声明
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"elementFormDefault="qualified">
… …
</xs:schema>
 
     添加“学生名册”元素定义
<xs:element name="学生名册">
<xs:complexType>
<xs:sequence>
<xs:element ref="学生" maxOccurs="unbounded"/>
</xs:sequence>

</xs:complexType>
</xs:element>
 
     “学生名册”元素之后添加“学生”元素定义
<xs:element name="学生">

<xs:complexType>
<xs:sequence>
<xs:element ref="姓名"/>
<xs:element ref="性别"/>
<xs:element ref="年龄"/>
</xs:sequence>
<xs:attributename="学号"use="required" type="xs:int"/>
</xs:complexType>
</xs:element>
 
     参考上述方法依次添加“姓名”、“性别”、“年龄”元素定义
<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"/>
 
     文件保存为 studentschema.xsd
 
     在 studentSchema.xml文件中加入对 schema 文件的引用
<学生名册 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="studentschema.xsd">
 
     添加一条不符合约束的数据
     用 XMLSPY 观察出错信息
 
2.    根据 Schema 书写 XML 文档
     创建 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:attributename="公司"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>
 
     分析上述 Schema 文档 根节点元素:联系人列表(包含子元素联系人、属性公司) 联系人元素含姓名、公司、电话、地址四个子节点元素地址节点元素含有三个子元素:街道、城市和省份
 
     创建针对上述 Schema 的 XML 文档,示例:
<?xml version="1.0"encoding="GB2312"?>
<联系人列表公司="A集团">
<联系人>
<姓名>张三</姓名>
<公司>A 公司</公司>
<电话>(021)5555666</电话>
<地址>
<街道>5 街</街道><城市>上海市</城市><省份>上海</省份>
</地址>
</联系人>
<联系人>
<姓名>王三</姓名>
<公司>B 公司</公司>
<电话>(021)5555777</电话>
<地址>
<街道>87 街</街道><城市>上海市</城市><省份>上海</省份>
</地址>
</联系人>
</联系人列表>

------------------------ <a href="http://edu.csdn.net/heima" target="blank">android培训</a>、<a href="http://edu.csdn.net/heima" target="blank">java培训</a>、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息