Schema简单的例子

本文介绍如何使用Schema定义XML文档结构,并通过两个实例演示了如何基于Schema创建有效的XML文档。首先,通过学生信息的案例展示了简单Schema文档的创建过程;其次,通过联系人列表的案例详细解释了如何根据复杂的Schema文档来编写相应的XML数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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街</街道>
   <城市>上海市</城市>
   <省份>上海</省份>
  </地址>
 </联系人>
</联系人列表>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值