Schema简单教程

本文档是学习XML Schema的教程,详细介绍了XSD的用途、优势以及如何描述XML文档结构,包括元素、属性、数据类型和约束的定义。XSD作为DTD的替代品,提供了更强大的功能,如数据类型支持、XML格式描述和类型扩展,增强了数据交换的安全性和有效性。
摘要由CSDN通过智能技术生成

XML SCHEMA简单教程

1 介绍

本教程是笔者学习W3C的《XML Schema Tutorial》的笔记。如果你对原教程感兴趣,可以浏览http://www.w3schools.com/schema/default.asp
XML Schema是W3C制定的基于XML格式的XML文档结构描述标准。作为一种文档描述语言,通常我们将其简写为XSD(XML Schema Define)。XSD作为DTD(文档类型定义)的替代者,已经广泛地应用到各种商业应用。使用XSD,我们不仅可以描述XML文档的结构以便颁布业务标准,而且可以使用支持XSD的通用化XML解析器对XML文档进行解析并自动地检查其是否满足给定的业务标准。应用XSD校验XML文档的结构后,我们不仅验证了XML文档的有效性(Well-Formed Document),还验证了XML文档的合法性,甚至验证了XML文档各域的值合法性(数据类型与编码值),而且这些验证工作不必我们编写任何代码,只需使用支持XSD的通用化XML文档解析器即可完成。这就给应用软件带来了巨大的灵活性,以前需要借助数据库或配置文件才能完成的参数化管理,现在只需按照新的业务需求发布新的XML Schema即可。

作为一个入门,下面列出一个XML文档及其XSD文档,使我们对XSD有个简单的认识:
XML:
<?xml version="1.0"?>
<note xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com note.xsd">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

XSD:

<?xml version="1.0"?> (1)
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" (2)
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
<xs:element name="note"> (3)
  <xs:complexType> (4)
    <xs:sequence> (5)
      <xs:element name="to" type="xs:string"/> (6)
      <xs:element name="from" type="xs:string"/> (7)
      <xs:element name="heading" type="xs:string"/> (8)
      <xs:element name="body" type="xs:string"/> (9)
    </xs:sequence>
  </xs:complexType>
</xs:element>
</xs:schema>

说明如下:
(1)<?xml version="1.0" ncoding="UTF-8"?>
    XML文档定义,描述本文档使用的XML标准版本及文档编码标准。
(2)<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
                   targetNamespace="http://www.w3schools.com"
                   xmlns="http://www.w3schools.com"
                   elementFormDefault="qualified">
xs:schema 是所有XSD文档的根元素,其属性描述文档的名空间及文档引用;
xmlns:xs="http://www.w3.org/2001/XMLSchema" 指示使用xs:作前缀的元素、属性、类型等名称是属于http://www.w3.org/2001/XMLSchema名空间的。
targetNamespace="http://www.w3schools.com" 指示本文档定义的元素、属性、类型等名称属于http://www.w3schools.com名空间;
xmlns="http://www.w3schools.com" 指示缺省的名空间是http://www. w3schools.com,即没有前缀的元素、属性、类型等名称是属于该名空间的。
elementFormDefault="qualified" 指示使用本XSD定义的XML文档所使用的元素必须在本文档中定义且使用名空间前缀。
(3)<xs:element name="note">
    定义一个元素,该元素的名称是note,即XML中的<note>;
(4)<xs:complexType>
     <note>元素的类型是复杂类型,具体格式由子元素定义;
(5)<xs:sequence>
    <note>元素的子元素必须按顺序出现。具体的顺序由子元素的定义顺序决定;
(6)<xs:element name="to" type="xs:string"/>
    定义一个元素<to>,其类型是string,且其是<note>的第1个子元素;
(7)<xs:element name="from" type="xs:string"/>
    定义一个元素<from>,其类型是string,且其是<note>的第2个子元素;
(8)<xs:element name="heading" type="xs:string"/>
    定义一个元素<heading>,其类型是string,且其是<note>的第3个子元素;
(9)<xs:element name="body" type="xs:string"/>
    定义一个元素<body>,其类型是string,且其是<note>的第4个子元素;

上面的说明可以看出我们描述的XML文档应满足这些要求:根元素是<note>;<note>可以包含四个子元素,分别是<to>、<from>、<heading>、<body>,且必须按<to>、<from>、<heading>、<body>的顺序出现;四个子元素都是string类型的。

2 格式良好文档

满足下列要求的XML文档,称为格式良好的文档(Well-Formed Document):
(1) 使用XML定义打头,如:<?xml version="1.0" encoding="UTF-8"?>;
(2) 文档仅包含一个唯一的根元素;
(3) 起始标记(<xxx>)必须与结束标记(</xxx>)匹配;
(4) 大小写敏感;
(5) 所有元素是闭合的(<必须与>配套);
(6) 所有元素嵌套是正确的;
(7) 所有属性使用""或’’;
(8) 特殊字符必须使用实体;

应注意到,满足上述要求的文档只能算是有效的文档,但不能算是合法的文档。例如,业务标准要求文档中必须包含5个<SEG>元素,如果文档中仅包含了4个,它仍是格式良好的文档,但不满足业务标准要求,是一个非法的文档。

3 XSD应用的场合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值