对XML定义语言做一概述,然后重点介绍XML Schema的相关语法,翻译XML Schema Tutorial
(http://www.w3schools.com/schema/default.asp),参考(http://www.w3pop.com.sixxs.org/tech/)。本文为XML定义语言概述部分。
author: zhangjunhd@gmail.com
Blog: http://blog.csdn.net/zhangjunhd/
1.前言
WORLD WIDE WEB CONSORTIUM(W
规范语言旨在定义与数据的属性和类型等相关的规范(SCHEMER)。所起作用是规定不同企业间进行数据交换时,各种数据所代表的意义。在XML中规范标记中当初使用的是DTD(DATA TAG DEFINITION)。但DTD存在下列缺点:1)DTD本身并不遵循XML标准;2)可定义的数据类型太少;3)无法详细规定数据的反复次数和出现顺序;4)不支持名称空间,易与标记名发生冲突,等等。
为了弥补上述缺点,各种规范标记语言纷纷出台,情况相当混乱。这些提案中包括微软制定的XDR(XML DATA REDUCED)以及村田真等人开发的RELAX等。XML SCHEMA也是其中之一,因为是由W
2.XML定义语言:DTD,XDR和XSD
我们知道XML文档有结构良好和有效性两种约束。格式良好适合于所有的XML文档,即满足XML标准中对于格式的规定。而当XML文档满足一定的语义约束则称该XML文档为有效的XML文档。目前常用的XML定义语言有DTD,XDR和XSD。
2.1文档类型定义(DTD)
文档类型定义用不同于XML的独立语法来规定了XML文档中各种元素集合的内容模式。该语言直接沿袭了定义SGML语言的方法,这样做的好处是如下:
①DTD使得XML文档保持一致
②DTD可以共享
③DTD提供了对XML语汇的形式化和完整的定义
④每个XML文档有单个的DTD来限制
2.2Schema
类似DTD,Schema可以规定一套特定文档的结构或模型。使用Schema语言来描述文档结构有下面以下好处:
①Schema使用的是XML语法
②Schema可以用XML解析器来解析
③Schema允许全局性元素(在整个XML文档中元素用相同方式来使用)和局部性元素(元素在特定的上下文中有不同的含义)
④Schema提供丰富的数据类型(如整型、布尔型、日期类型等);而且一个元素中的数据类型可以进行规定,甚至可以根据需要自定义数据类型
2.3XDR
XDR的全称是XML-Data Reduced Language,是早先由XML-Data草案派生出来的一个定义XML语言的分支。由于微软最先提 出了XML-Data,并且经过修订后在其软件中应用,所以XDR也被广泛使用。目前支持XDR Schema的产品有:
Microsoft Biztalk Server
Microsoft SQL Server 2000
Microsoft Office 2000
Microsoft IE5.0和后续版本
XDR也得到了Extensibility的 XML Authority编辑工具的支持。
2.4XSD Schema
最为正式的XML Schema语言是由W
XML SCHEMA标准由3部分构成:相当于导言的“PRIMER”、规定数据类型的“DATA TYPES”和标记结构的“STRUCTURES”。