资源描述
江苏大学本科学位论文
摘 要
随着WEB的迅速发展,现有的技术越来越不能满足人们对INTERNET上的信息进行深层次的处理要求。于是一种新的标记语言----XML应运而生,为WEB的进一步发展提供了更完善的机制。由于XML能够大大地增强了WEB上处理信息的能力,所以它的初始标准刚被制定就得到大家的认可,并被广泛地应用于众多领域。
尽管网络的出现已有二十多年的历史,WEB应用也有十年左右的时间,但目前的大多数信息都还是以关系模式的形式存储的。而我们要在网络中发布这些数据信息,就先必须将这些数据先转化为XML文档形式,然后才能发布到INTERNET上。这就需要我们能够实现由关系模式到XML模式的转化,因此研究从关系模式到XML模式的映射是有较大的理论意义和实用价值的。
本文首先阐述了关系模式到XML模式的转换的必要性,分析研究了关系模式到XML模式映射等的研究现状,接着介绍了XML的相关知识,并在讨论了关系模式和XML模式相关概念的基础上,提出关系模式向XML模式映射的方法。
关键字:XML DTD XML模式 关系模式 映射
Abstract
With the development of Web,technology can’t satisfy people’s profound level requirement of Processing Web information more and more.So a new markup language---XML brings up.It provides more consummate mechanism for Web’s further development.Because XML strengthens our ability of processing imformation on the Web,since its initial version is made,many people have accepted it and applied it to many fields.
Athough there are only 20 years or so in appearance of the Internet,there are only ten years in the application of Web.But now most of our datases are stored as relational form. But we want to announce these datases information in WEB, must first convert these datases as the XML text file form first, then then can announce the INTERNET last. This need that we can realize from the relation mode conversion to the mode of XML,so the research of mapping from relational model to XML model has great theories meanings and applicable meanings.
This text expatiated to the necessity of conversion relational form to the mode of XML first, the analyzed and studied the research present condition mapping from relational mode to the XML mode, introduced the related knowledge of XML immediately after, and in discussing to mapping from relational mode to the XML mode foundation, we bring forward a way of mapping from relational mode to the XML mode.
Keyword: XML、DTD、 XML Model、Relational Model、Mapping
目 录
第一章 绪论 5
1.1研究背景 5
1.2 研究现状 6
1.2.1 XML的存储研究现状 6
1.2.2 XML数据库的研究现状 6
1.2.3 关系模式到XML模式的映射的研究现状 7
1.3 论文的组织 8
第二章 XML的产生 9
2.1 SGML 简介 9
2.2 HTML 简介 10
2.3 XML 的发展 10
第三章XML 相关标准 12
3.1 XML元语言标准 12
3.2 XML外围标准 13
3.3 XML核心标准 14
3.3.1 XML DTD 14
3.3.2 XML Schema 15
3.3.3 XML Namespace 16
3.3.4 XSL 17
3.4 XML 应用标准 17
第四章 关系模式和XML模式 19
4.1关系模式简介 19
4.1.1 关系的基本概念 19
4.1.2 关系模式 20
4.2 XML模式的特点 20
4.3关系模式和XML模式的区别 21
第五章 关系模式向XML模式映射 22
5.1 关系模式到XML模式的转换规则的定义 22
5.2 数据的逻辑模式映射为DTD 22
5.2.1 非空表元素方法 22
5.2.2 空表元素方法 23
5.3 关系模式到XML模式映射的两个方法 23
5.3.1 非空表元素方法 23
5.3.2 空表元素方法 24
5.3.3非空表元素算法的算法描述 24
5.3.4空表元素算法的算法描述 27
5.4 SQL SERVER 2000下关系表到XML文档的实例 29
第六章 总结与展望 33
参考文献 34
致谢 35
第一章 绪论
1.1研究背景
90年代初WEB的诞生推动了INTERNET及其应用的发展。尤其是在1995年Java出现以后,Web技术及其应用以令人惊异的速度发展。同时,Web应用开发者开始体验到现有HTML的局限性。因为HTML并不具备大规模应用所需Web的可扩展性结构化和数据验证等特性.为此,从1996年开始, W3C(World Wide Web Consortium)的一个工作组致力于设计一个超越HTML能力范围的新语言,这个语言后来被命名为XML(Extensible Markup Language可扩展标记语言). 1998年2月W3C发布了XML 1.0[1]作为其推荐标准后,由于其国际性、结构化、标准化等优点,XML得到充分的发展。除了标准本身不断的得到完善,而且不断有新的标准制订,大大地提高了XML的应用范围。
从XML 的特点及机制来看, 它有着巨大的潜力, 它的可扩展性、描述信息与显示信息相分离, 使得开发者有着巨大的发挥空间来解决各种问题。应该说,XML 将在Web 信息描述、传送、处理方面有很好的前景。推动Web 技术发展的一个重要动力是各种工具的制造商, 包括浏览器的开发商。目前两大浏览器厂商(Microsoft和Netscape)都已经表示, 他们的下一版浏览器将增加对XML的支持。在2000年5月9日举办的NetWorld&Interop 展览会上,微软公司主席比尔·盖茨先生预言, XML 将成为因特网领域的一个重要开发平台, 未来5 年内因特网将会有爆炸性的改变。
数据库开发商也是推动Web 技术发展的另一支重要力量, 他们将XML 技术作为许多高端解决方案的基础, 使这项技术最终成为经常性的解决方案的一部分。Oracle 公司日前也宣布将大力支持XML , 着手开发从Java 到XML 的过渡产品, 并发布了支持XML的Oracle 开发工具最新版本JDeveloper 3.1 和Oracle 开发工具包(Oracle XML Developer Kit) 。另外, BORLAND 公司也在它的DELPHI 5.0 中包含了对XML 开发技术的支持。
在实际的应用中,人们也有实现关系数据和XML数据之间转换的需求。对于一些大型的跨国的集团公司,他们的日常管理和一些产品的资料都是关系数据格式存储的,所以他们就需要一个由关系数据到XML数据的映射转换,从而进行更好地管理和共享资源。
综上所述,实现关系数据到XML数据的映射具有极其重大的实际意义和应用价值。我们认为主要具有如下几个方面的意义:
实现关系模式到XML模式的转换,就可以很容易实现数据的Web化。我们就可以将存储在关系数据库中的数据以XML的形式发布到Web上,提供更为全面的数据服务。实现了关系模式到XML模式的转换,我们可以更加容易的实现数据的交换。当数据以XML形式存在时,就不会有关系数据库中不同数据的数据之间需要第三方工具进行转换的问题。
1.2 研究现状
我们在这部分介绍一下XML存储研究现状、XML数据库的研究现状以及关系模式与XML模式映射的研究现状。
1.2.1 XML的存储研究现状
由于XML的应用越来越广泛,对于如何来存储XML格式的数据也就成为人们关注的重点。现在的XML数据绝大部分是以ASCII形式保存。这样有许多优点,例如:它不需要其他管理系统的支持,实现起来较为简单;便于传输和数据交换;即使一部分数据被损坏其它的数据还是可以被使用等等。但是用ASCII保存的XML数据也有种种的缺点,如修改数据困难,以文件存放的数据很杂乱不易于管理等等。所以很多专家也提出了很多存储XML数据的方法。大致主要分为以下三种:
1)建立专门数据库进行管理
这是被认为最好的一种管理XML数据的模式,但是由于XML的标准还在不断的补充和完善,所以还无法针对XML标准建立个较为完善的数据库管理系统。而且建立的这种系统,又存在标准统一的问题,如果不能很好的解决这个问题,将会严重影响XML的通用性。
2)转换到关系数据库中管理
关系数据库经过几十年的发展,已经成为一种较为成熟的技术,不但在存储性能上有许多优化措施,而且对数据的查询和管理也有许多成熟的技术来处理。这种方法由于关系数据语义不够丰富的特点,比较适应于XML数据模式未知或者不可用的情况。
3)到面向对象的数据库中管理
这种方法比较简单,而且技术也较为成熟。该方法需要并能够充分利用XML数据的模式信息实现高效的XML存储。但是面向对象的数据库的应用范围较窄,所以这种使用的也十分有限。
1.2.2 XML数据库的研究现状
XML 数据库是一个能够在应用中管理XML 数据和文档的数据库系统,根据文献[7]中定义:一个XML 数据库是XML文档及其部件的集合,并通过一个具有能力管理和控制这个文档集合本身及其所表示信息的系统来维护。XML 数据库不仅是结构化数据和半结构化数据的存储库,像管理其它数据一样,持久的XML数据管理包括数据的独立性、集成性、访问权限、视图、完备性、冗余性、一致性以及数据恢复等。
从存储数据的格式考虑,用数据库存储XML数据有两种不同的方式:内部不是以XML格式存储的XML数据库,叫做“XML-enabled数据库”;内部以XML格式存储的数据,就称为“native-XML数据库”。现代研究的主流是XML-enabled数据库。
native-XML数据库和XML-enabled数据库都有相应的产品出现。目前,最有名的商用native-XML数据库是Software AG公司开发的是Tamino。除了可以存储和访问XML外,Tamino还具备多项功能,包括Open Database Connectivity、符合Unicode要求、HTTP通信及处理非XML数据的能力。Tamino拥有直接XML检索和特殊检索的能力,其查询语言强大而减短,可进入任意深度。
其他native-XML数据库包括dbXML、eXcelon和Xhive/DB,分别由美国的dbXML Group LLC公司、eXcelon公司和荷兰的The Connection Factory公司研制。Native-XML数据库的最大问题是性能问题。当所搜寻的信息位于大文档的末尾时,由于缺乏其他机制,native-XML数据库只能艰苦跋涉到最后,而关系数据库和面向对象数据库则可以将文档分成小块同时进行搜索,速度当然快得多。
XML-enabled数据库主要是关系数据库和面向对象数据库。这些数据库在收到XML后,将其分解为字段并按通常的方式存储它们,当检索XML时,这些再被拼接成原状。如XyVision公司研制的Content@XML是一套内容管理系统,它可以在任何一种流行的关系数据库中存储XML文件。Lotus公司的Domino 数据库也可以处理XML。目前,许多主流的数据库中使用XML的工具。IBM提供了XML Extender for DB2,以允许用户在DB2中存储XML文档,并提供一些新功能协助用户处理XML文档;Microsoft的SQL Server6.5和7.0也进行了XML扩充,据悉SQL将来要加入XML输入选项,用以向其他系统传送信息。Oracle也拥有功能强大的XML索引引擎。
1.2.3 关系模式到XML模式的映射的研究现状
到目前为止研究人员对此做了大量的研究工作。在国外,如R.Bourret等在[4]中对表及字段的映射做了简单的描述,数据类型均映射为PCDATA,没有对其他方面的问题做深入的研究;Kevin Williams制定了从E-R图到DTD转换的十一条规则[5],概括了关系模式到XML模式的映射的过程;Volker Turau在XMLDBMS中实现了两者之间的转换[6],但是主要的工作都是基于[5]中的内容之上的。但是以前的这些模式转换都是建立DTD来描述XML 文档,而DTD 对XML 文档并没有做太多的约束,所以转换过程虽然相对简单,但也丢失了一些关系模式中的信息,并没有做到完全转换。
在国内,也有许多研究人员对此进行深入的研究:柴晓路在文献[10]中提出XML模式到关系模式转换规则(X2Ronversion)的定义;方翔在文献[9]中总结用DTD文档描述关系模式向XML模式的转换信息方法的基础上,利用XML Schema相对于DTD更为强大的描述能力的特性,用较为简洁的结构保存了XML文件的现状信息,实现了关系模式向XML模式的完全转换;吴文辉等在文献[13]中提出
针对XML的树型结构特点,研究了基于语义约束的从关系模式到XML模式的转换,最后给出了从关系模式到XML模式转换的算法RTS。等等。
1.3 论文的组织
本论文主要分以下几个部分:
1. 第一章绪论,重要介绍课题的研究背景、研究意义、研究现状。
2. 第二章XML语言的产生,主要介绍XML语言的基础SGML语言、与XML语言互为补充的HTML语言,以及XML语言的发展和优点。
3. 第三章XML相关标准,主要介绍XML标准的四个层次:元语言标准,外围标准,核心标准,应用标准。着重介绍了XML的核心标准中的DTD和XML Schema。
4. 第四章 XML模式与关系模式,主要介绍了关系模式以及关系模式与XML模式的不同。
5. 第五章 关系模式向XML模式的映射,主要介绍了关系模式向XML模式转换的规则,根据关系模式到DTD文档的转换,进一步提出非空元素转换和空元素转换算法,最后以SQL SERVER 2000 为具体环境,说明了在SQL SERVER 2000环境下,把一个关系表的内容,经过转换后以XML文档的方式加以显示。
第二章 XML的产生
随着Internet 的普及, 人们可以从网上获取信息, 信息发布者可把各种形式的信息发布在网上。Internet 环球信息网(World Wide Web) 简称WWW , 是一种分布式超媒体查询系统, 它的结构不同于文件系统的线形结构, 其中结点的连接关系是相互交叉的,一个结点可以以各种方式与另外的结点相连接。超媒体和超文本一样, 用户可以通过传递一个超链接得到与当前结点相关的其它结点的信息。在超媒体中, 超链接的两端可以是文本结点, 也可以是图象、语音等各种媒体的数据。HTML(Hypertext Markup Languange,超文本标记语言) 是一种基于HTTP (超文本传输协议) 的被广泛应用于Web 的超文本标记语言。但随着Web 文件越来越大,HTML 暴露出许多缺点, 这时, XML 产生了。
XML是在SGML(Standard General Markup Languange,标准广义标记语言)的基础上发展而来的,继承了许多SGML的特点。同时,HTML也的从SGML发展而来,XML主要是针对HTML的不足进行补充。接下来先介绍SGML和HTML,最后介绍XML的标准发展。
2.1 SGML 简介
1969年IBM公司的Charles Goldfarb等设计出了通用标记语言(GML)。随后,1978年美国国家标准局(ANSI)的一个工作组对GML进行了规范,推出了称为SGML(Standard General Markup Languange,标准广义标记语言)的通用标记语言,1986年国际标准化(ISO)正式确定SGML为描述各种电子文件结构及内容的国际通用。SGML是一种元语言,因此它是用来构造用于描述结构化信息语言的语言。SGML和“SGML应用”必须区分开来。它们是标准与具体应用之间的关系。SGML可以描述文本结构,也可以描述非文本结构甚至多媒体信息,描述什么类型结构、具体描述都是有SGML应用设计者根据SGML提供的框架和工具来决定并实现的。SGML是根据功能和目的识别被描述的对象而不考虑它们的外在表现(是文本、图象还是声音)。SGML提供一套通用置标工具,它是抽象的、框架性的。一个符合SGML的文件通常以一个标准化的SGML说明开头,并包括一条文件类型定义DTD(Document Type Definition)和置标信息,DTD定义了文件中出现的元素,并描述了每个元素的内容模式,SGML处理系统必须包含一个SGML有效性语法分析器。下面我们给出一个SGML文档的例子:
<!DOCTYPE email[
<!ELEMENT email((to & from &date &subject?),text)>
<!ELEMENT text (para+)>
<!ELEMENT para (#PCDATA)>
<!ELEMENT(to & from &date &subject?)(#PCDATA)>
]>
<data>06/13/81
<to>lzf81@
<from>yuqing@
<text>I have received your letter..
2.2 HTML 简介
HTML 是由WEB的发明者 Tim Beners-Lee和同事Daniel W.Connolly于1990年创立的一种标记式语言。它是标准通用化标记SGML的应用。用它的语法规则建立的文档可以运行在不同操作系统的平台上。因此,HTML文档属于纯文本文件。从1994年到1996年,经过从HTML2到HTML3.2的发展,WEB在商业和个人用户群中迅速普及。1997年12月底,W3C发表了最新的HTML推荐标准---HTML4。在HTML4中表示标记与结构标记分开,W3C不仅回到了传统标记语言的根源,而且使自己便于将XML引入Web世界。HTML已经走了很长的路,它走得很快,但其本身作为一门被设计为用于格式化的标记语言的局限性已日益明显。每次Web站点在规模上翻一翻时,搜索引擎的局限性都显得越来越明显。随着Web的逐渐普及,HTML在显示不容易符合标准文本和图形模型的信息时,表现出来的局限性越来越突出。由于HTML文档在结构上与XML文档有些类似,所以我们在下面简要介绍一下HTML文档的结构。
HTML文件有元素(element)组成,组成HTML文件的元素有许多种,用于组织文件的内容和指导文件的输出格式。绝大多数元素都有起始标记和结尾标记。元素的起始标记叫起始链接签(start tag),元素的标记叫结尾链接签(end tag),在起始链接签和结尾链接签中间的部分叫元素体。每个元素都有名称和可选择的属性,元素的名称和属性都在起始链接签内标明。一个HTML文件应具有如下的结构:
<HTML> HTML文件开始
<head> 文件头开始
</head> 文件头结束
<body> 文件体开始
</body> 文件体结束
</HTML> HTML文件结束
2.3 XML 的发展
XML自1998年正式发布成为规范以来,得到了信息技术领域的广泛欢迎。各种XML通用处理器被推出,各个知名系统发展商和集成商也纷纷发布各自的XML的应用系统和试验系统。
更为重要的是,W3C和各界专家还开发了XML应用的大量相关的规范。例如,涉及文档结构描述,可用以DTD的XML模式(XML-Schema)、解决名字冲突的XML名域(XML-Name);关于文档联接和指示的Xlink和Xpointer;用于XML文档表达的层叠样式语言(CSS)、可扩展样式语言(包括XSL、XSLT、Xpath)、可扩展的超文本标记语言(XHTML);而资源描述结构(RDF)、多媒体同步一体化语言(SMIL)等等都是已经正开发的XML在各个领域的具体应用规范。W3C的XML工作组仍在不断的修改和完善XML的标准的内容,最新标准可查阅http://www.w3.org/XML。
现在许多公司正在加大对XML支持的力度,XML之所以能够在短短的几年中迅速地得到广泛的应用,是因为它具有如下的优点:
简单。XML经过精心的设计,整个规范简单明了,它由若干规则组成,这些规则可用于创建标记语言,并能用一种常常称作分析程序的简明程序处理所有新创建的标记语言。XML能创建一种任何人都能读出和写入的世界语,这种创建世界语的功能叫统一性功能。如XML创建的标记总是成对出现,以及依靠称作统一代码的新的编码标准。
开放。XML是SGML的简化集,市场上有许多成熟的软件可用来帮助编写、管理XML,开放式标准XML的基础是经过验证的标准技术。众多业界顶尖公司,与W3C的工作组并肩合作,协助确保交互的作业性,支持各式系统和浏览器上的开发人员、作者和使用者使用XML。XML解释器可以使用编程的方法来载入一个XML文档,当这个文档被载入后,用户就可以通过XML文件对象模型来获取和操纵整个文档的信息,加快网络的运行速度。
高效且可扩充。支持复用文档片段,使用者可以发明和使用自己的标签,也可以与他人共享,可延伸性大,在XML中,可以定义无限量的一组标注。XML提供了一个标示结构化资料的架构。随着世界范围内的许多机构逐渐采用XML标准,将会有更多的相关功能出现:一旦锁定资料,便可以以任何方式透过电缆线传递,并在浏览器中呈现,或者转交到其他应用程序中做进一步的处理。XML提供了一个独立的运用程序方法来共享数据,使用DTD,不同组中的人就能够使用共同的DTD来交换数据。你的应用程序可以使用这个标准的DTD来验证你接收到的数据是否有效,你也可以使用一个DTD来验证自己的数据。
国际化。标准国际化,且支持世界上大多数文字,这源于依靠它的统一代码的新的编码标准,这中编码标准支持世界上所有以主要语言编写的混合文本。在HTML中,就大多数字处理而言,一个文档一般是用一种特殊语言写成的,不管是英语,还是日语还是德语,如果用户的软件不能阅读特殊语言的字符,那么他就不能使用该文档。但是能阅读XML语言的软件就能够顺利处理这些不同字符的任意组合。因此,XML不仅能够在不同的计算机系统进行交换信息,而且能够跨国界和超越不同文化疆界的交换信息。
第三章XML 相关标准
XML作为一种元语言,提供的是描述具体应用语言的基本方法。针对具体的应用领域需要制定相应的应用标准。例如,具体的置标表示的语义,附加的语法约束等。另外,针对XML应用中的功用特征、方法或规则,W3C制定了一些XML的相关标准。为XML的进一步实用化制定的标准,规定了采用XML制定标准时的一些公用特征、方法或规则。(如图1所示)XML的标准可分为元语言标准、外围标准、核心标准、和应用标准四个层次。下面简要介绍这四个标准。
图1 XML的标准
Xinclude
Xbase
Schema
HTTP
DOM
Canonicall
Namespace
XQuery
URI/URL
RDF
XForms
XPath
Unicode
PICS
XSLT
P3P
Xpointer
XSL
XLink
XML Singatures
CSS
3.1 XML元语言标准
元语言标准(meta-Language):定义的是用来描述标准的元语言,在XML标准体系中就是XML标准。XML标准在XML标准体系中与SGML标准在SGML标准体系中的地位相似,是整个体系的核心,其他XML相关标准都是用它制定的或为其服务的。
XML是一种基于文本的标识语言,一组用来创建描述数据的语法标签的规则集,专为存储和传输数据而设计的。XML源是由XML元素组成的,一个XML元素是由开始标签、结束标签以及标签之间的数据构成的。开始和结束标签用来描述标签之间的数据,标签之间的数据被认为是元素的值。由于每个元素都有不同的标签名,所以你能很容易把上面两个元素的值区别开来。如果从语义没有办法把数据标出来,两个有同样值的元素会混淆起来。
就象HTML一样,XML文当保存利用标记注释的文本。然而,与HTML不同的是,XML允许无限的标记集,各标记集并不表示如何显示,而是表示其含义。例如,可以将XML元素标记为价格、定单编号或名称。由文档的作者确定使用何种数据以及哪中标记名称最合适。
一个元素可以包含一个或多个属性,属性是一个由“=”隔开的名称值,属性用来给一个元素添加附加的、次要的信息,通常是元信息,属性还可以使用缺省值,而元素却不能这样做。元素的每一个属性可以以任意顺序进行说明,但仅能说明一次。
XML1.0中定义了XML文档是满足规范中定义的格式良好(well-formed)的要求。根据SGML的规范和XML的设计目标,XML1.0规定的一个文本对象成为满足格式良好的XML文档必须满足以下三点要求:
l 作为一个整体,它满足XML文档的产生式
l 它满足规范中定义的所有格式良好的约束
l 此文档中直接或者间接引用的所有已析实体都是格式良好
此外,XML标签对大小写敏感。
3.2 XML外围标准
图1中虚线左侧的三个标准是XML 相关标准外围的一些标准,也就是那些对WEB应用具有确定体系框架意义的几个标准,这些标准并不是针对XML标准应用或采用XML标准制定的,但它们是WEB应用的基础,几乎在WEB应用的任何地方都会使用到它们。
超文本传输协议HTTP:是在WEB中应用最为广泛的一种应用层的协议,采用请求/应答方式,客户断发送请求信息到服务器端,这些信息包括请求方式、URI、协议版本以及客户端信息等,服务器端返回状态信息、实体信息以及可能有的实体内容。当前浏览器进行网站页面的浏览都是采用这一协议。
统一资源标识符/统一资源定位器URI/URL;用来定位Internet上资源,以便在庞大的WEB信息系统中能唯一地标识任何一个资源。这种标识是在WEB上进行信息访问的前提和基础。
Unicode:是在WEB 应用中广泛采用的一个字符编码标准,它将几乎世界上所有的文字都包括进去了。它的制定者Unicode策进会与相关国际组织密切合作,Unicode2.0版和ISO10646-1使用完全相同的字库与编码。XML标准要求XML分析器必须至少支持UTF-816编码的Unicode字符。
3.3 XML核心标准
核心标准包括一系列支持XML标准的附加标准。它们使XML文档更加完备和规范。我们在做映射时就必须根据XML DTD或者XML Schema来确定XML文档的结构或描述XML文档的结构。所以我们主要介绍几个重要的标准:文档类型定义DTD(document type definition)、XML Schema、XML名称空间(XML Namespace)、扩展样式语言XSL(eXtensible Stylesheet Language)规范、XML链接语言规范(XML Linking Languge,包括Xpath,Xlink和Xpointer)。
3.3.1 XML DTD
DTD(document type definition,文档类型定义)规范实际是XML规范的一部分,同时又是可选的:可以写一个没有DTD的XML文档。DTD规定在你的XML文档中可以包含的标记种类和有效布置,因此可保证你不会创建一个无效的XML结构或者你看到的XML结构是有效的。然而,对于一个复杂的文档来说创建一个排除所有无效组合并允许所有有效组合的DTD是很困难的。DTD可以作为prolog的一部分放在文档前面,也可以作为独立实体存在,或者分散在文档prolog和一个或几个实体中。
DTD是用来为之相关联的文档建立规则的文档。他定义了许多描述文档内容的标记。大多数XML文档都是通过专门的DTD。设计的。XML允许开发者创建自己定义的DTD,来精确的描述特定种类的信息。实际上,尽管有时候DTD保存在额外的文件中,但他就是文档的一部分,他与文档并不是两个分开的实体,而是将一个单元分成两个部分。
在DTD中,所有结构都是为了描述那些在文档中所使用的标记细节而设计的。标记的各方面都必须在DTD中指定。元素所拥有的属性,属性本身接受什么类型的值,要求怎样的属性,每个属性的默认值等等,这些都和元素本身一样重要。文档用的标记和规范以以下形式出现:元素声明,属性列表声明,内容模式,实体声明。
3.3.1.1元素声明
元素声明指的是单一的标记元素,在文档中所使用的每个标志,都通过DTD 中的元素声明而定义。元素的命名必须符合以下规则:
(1) 元素的名字必须由一个或者多个非空格字符组成。如果名字只有一个字符,该字符是一个字母。
(2) 名字只能够由字母或底线作为开始。
(3) 从第二个字符起,任何字符都可以使用,包括定义在Unicode标准的字符。
(4) 元素的名字是大小写不同的。
按照正确的DTD语法,元素的声明应该如下所示:< ! ELEMENT 元素名元素内容描述>
3.3.1.2属性列表声明
元素属性声明是用来声明整套属性的,每个属性列表声明都用来为指定的元素定义一套属性,列表中的属性只能在该元素中使用。使用下面的格式来给一个元素定义一组合适的属性,同时指定这些属性的类型和缺省值:
< ! ATTLIST 元素名(属性名属性类型缺省值) > 。
3.3.1.3内容模式
内容模式是元素声明的一部分,描述什么样的可以嵌套在元素当中,在XML文档里有两种不同类型的内容:
1) 数据内容:包含规则的基于文本的字符。数据内容是任何元素中最基本的内容形式,无格式的数据内容通过#PCDATA模式在内容中描述。
2) 元素内容:包含其他的标记元素。元素内容模式不仅可以定义任何给定的元素可以嵌套,而且还指明了什么样的元素必须出现以及什么顺序出现。如果一个元素的内容模式包含了元素内容,则在元素的内容不能包含常规文本。
3.3.1.4实体声明
实体声明创建一个实体,它本质上是一组数据唯一的别名。和别名相关的数据可以有下面集中形式:
1) 内部实体:包含在实体声明的内部,以一个文本短语命名的唯一名字。
2) 外部文本实体:存储在文档外的一个唯一的文本块名字。
3) 外部二进制实体:标记非XML数据对象的唯一名字,比如图形文字图形文件、字处理文件或存储在文档之外的声音文件等。
4) 字符或者数字实体:在XML文件,特别用来包括非ASCII字符的实体。字符或数字实体标记一个字符或数字串,指明诸如带重音的小写字母e之类的非ASCII字符。
3.3.2 XML Schema
XML1.O提供了一种机制,文档类型定义(DTD)给标记的使用加了限制。DTD使用了一种特殊的规范来定义在各种文件中使用XML标记的规范。但是,有许多常用的限制不能用DTD来表述。
DTD存在下列缺点:
1) DTD本身并不遵循XML标准。
2) 可定义的数据类型太少。
3) 无法详细规定数据的反复次数和出现顺序。
4) 不支持名称空间,易与标记名发生冲突。
5) XML语言必须有其严格的规范,以适应广泛的应用。
6) XML文档必须符合XML的语法限制(术语为well_formness),在特定的应用中,数据本身有含义上,数据类型上,数据关联上的限制,也就是语义限制(术语为validity)。
XML文档的自动处理需要更严格更全面的工具。需要主要体现在对应用软件各部分的结合、文档结构、属性和数据类型等的约束。于是为了弥补上述缺点,各种规范标记语言纷纷出台。在1999年2月15日,W3C发布了一个需求定义,说明了新定义的Schema必须符合的要求。1999年5月6日,“XML schema工作草案”被接受为工作草案,W3C完成发布了Schema的定义。同年11月5日,该草案被再次修改。WORLD WIDE WEB CONSORTIUM(W3C)于2001年5月2日正式推荐使用XML的规范语言“XML Schema”.Schema有着自己的一套完整的语法[14][15][16],主要包括以下几方面的内容:
1) schema元素是XML Schema中第一个出现的元素,用于声明该XML文档是一个Schema文档。Schema具有两个属性:name指定该Schema的名称,而xmlns则指定该Schema包含的命名空间。
2) 元素类型是XML Schema中的重要内容,主要有两种类型ComplexType和SimpleType。其中ComplexType类型的元素可以包括子元素和属性,SimpleType类型的元素既不能包含子元素也不能包含属性。但同时也对这两种类型做了扩充,我们还可以声明SimpleContent、EmptyContent、MixContent、AnyType等属性对元素的内容和结构做进一步的描述。
3) Attribute元素用于定义在Schema文档中出现的属性类型。其属性dt:type指定所声明属性类型的数据类型,可支持的数据类型包括:Entity,Entities,Enumeration,Id,Idref,Idrefs,Nmtoken,Nmtokens,Notation和String等。Default属性可用于指定该属性类型的缺省取值。Required属性指定该属性对于引用它的元素是否是必须的。
4) Group元素用于将XML文档中的元素分组。通过属性Order可指定该分组中的元素或子分组的顺序,通过MinOccurs和Max
展开阅读全文