【IT168 信息化】
XML的相关标准和术语很多,目前炙手可热的WAP技术中的WML语言就是与XML极其类似的语言。下面就对XML及其相关标准做一个介绍。
W3C的XML相关标准可分为以下几类:
1. W3C 建议(Recommendations)
W3C产生的规范的最终形式。之所以称为"建议"是因为它并不强加于任何人,但已不再进一步讨论和复查了。
SAX(Simple API for XML,XML简单应用程序接口)
这实际上是在XML-DEV邮件列表上协作产生的,并不是W3C的标准,但事实上已和W3C建议有着同等地位。这一API是事件驱动的,又称"顺序访问"协议。每当它看到一个新的XML标记(或遇到一个错误,或想告诉你什么事时)就用一个SAX解析器注册你的句柄,激活你的回调方法。
DOM(Document Object Model,文档对象模型)
DOM将一个XML文档转换成你程序中的一个对象集合。然后你可以任意处理对象模型。这一机制也称为"随机访问"协议,因为你可以在任何时间访问数据的任何一部分,然后修改、删除或插入新数据。
DTD(Document Type Definition,文档类型定义)
DTD规范实际是XML规范的一部分,同时又是可选的:可以写一个没有DTD的XML文档。另外还有一个更加灵活的Schema提案可以替代它。DTD规定在你的XML文档中可以包含的标记种类和有效布置,因此可保证你不会创建一个无效的XML结构或者你看到的XML结构是有效的。结构满足DTD要求的XML文档称为有效的(valid)。然而,对于一个复杂的文档来说创建一个排除所有无效组合并允许所有有效组合的DTD是很困难的。DTD可以作为Prolog的一部分放在文档前面,也可以作为一个独立实体存在,或者分散在文档prolog和一个或几个实体中。
RDF (Resource Description Framework,资源描述框架)
RDF是定义关于数据的数据的标准。例如,和XHTML规范或HTML标记一起使用,RDF可用于描述页面的内容。举例来说,如果你的浏览器将你的个人信息存为名字、Email地址,一个RDF描述就可以将数据传输给需要名字和Email地质的应用。
要进一步了解RDF,可查http://www.w3.org/TR/PR-rdf-syntax/Namespaces(名域)
Namespaces使你可用模块化方式以两套或更多XML标记写一个XML文档。例如,你可以创建一个基于XML的配件列表,使用其它制造商提供的配件描述(在线!)。由子配件提供的"价格"数据是你想加起来的,整个结构的"价格"数据是你想显示的。Namespace规范定义了限定名字的机制以消除模糊性。
要进一步了解Namespaces,可查http://www.w3.org/TR/REC-xml-names。
XSLT(XSL Transformations,XSL转换)
XSLT是作为XSL的一部分使用的,用于将XML文档转换为其它XML文档。在XSLT之外,XSL还包括一个用于定义格式化的XML vocabulary(词汇表),它用XSLT描述文档如何用格式化词汇表转换为另一个文档。目前XSLT版本为1.0,可查看http:/ /www.w3.org/TR/1999/REC-xslt-19991116。
Xpath(XML Path Language,XML路径语言)
Xpath是寻址一个XML文档内的组成部分的一种语言,被设计成可为XSLT和Xpointer共同使用。Xpath使用一个简练的、非XML的句法以方便在URL和XML属性之中的使用。Xpath在一个XML文档的抽象逻辑结构上操作,其名字来源于它用路径记法表达XML文档中的层次结构。Xpath的设计使它具有一个子集可用于匹配(测试一个节点是否满足一个模式),这一使用在XSLT中有介绍。目前XPath版本为1.0,可查http://www.w3.org/TR/1999/REC-xpath-19991116。
2. W3C Proposed Recommendations(W3C提出的建议)
W3C "proposed recommendation"是一个非常接近于结束的W3C recommendation提案。
它仍可复查,但已有许多人作了大量工作,因此这类标准一般不会再有多大改动。
RDF Schema(大纲)
RDF Schema 规定了描述如何翻译一个RDF中的声明所需的一致性规范和附加信息。
要进一步了解RDF Schema,可查http://www.w3.org/TR/PR-rdf-schema. ;
XHTML(Extensible Hyper Text Markup Language,扩展超文本标记语言)
XHTML 规范是使XML文档看起来和操作来类似于HTML文档的一种方式。既然XML可以包含任何你愿意定义的标记,为什么不定义一套看起来象HTML的标记呢?这一规范的结果就是一个文档,可以在浏览器中显示,也可以作为XML数据处理。数据可能不是"纯粹的"XML,但也比标准的HTML容易处理的多。例如,一个格式良好的XML文档中每一个标记必须有一个对应的结束标记,否则必须用(/ >)结束。所以你可以看到(< p >...< /p >)或(< p/ >),但决不会只看到< p >。而HTML中的一个(< dt >)标记可以由(< /dt >)、另一个(< dt >)、(< dl >)(< /dl >)结束。XHTML规范是将HTML4.0再形成为XML。
XHTML目前版本为1.0,可查http://www.w3.org/TR/1999/PR-xhtml1-19991210. ;
3. W3C Working Drafts(工作草案)
W3C working draft 是概念性的,可供人们开始实现。在将标准化为实践的过程中产生的反馈很可能影响内部细节,但不会影响规范的整体轮廓。
XSL(Extensible Style sheet Language,扩展样式表语言)
XML 标准规定了如何标识数据,而不是如何显示。XSL标准本质上是一个让你指定如何显示一个XML标记的翻译机制(如在HTML中)。可使用不同的XSL格式,为不同用途用不同方式显示同一数据。XSL的翻译部分已非常完善,并有许多实现。然而,XSL的第二部分即格式化对象,也称为对象流,可在一个页面上定义不同区域并将它们联结起来。当一个文本流被定向到集合时,它填充第一个区域,然后当第一个区域填满时"流"到第二个区域。
要进一步了解XSL,可查http://www.w3.org/TR/WD-xsl.。
XLL(XML Link Language,XML链接语言)
XLL协议包括两个规范,XLink和XPointer,用于处理XML文档间的链接。这些规范仍处于初级阶段,但肯定将对XML文档的使用产生巨大影响。
XLink:XLink 处理XML文档间的链接。它允许一些非常复杂的链接,包括双向链接、链接到多个文档、"扩展"链接(将链接的信息插入到你的页面中,而不是用一个新页面来取代它)、在一个独立文档中创建的两个文档间的链接,以及间接链接(可指向一个"地址簿"而不是直接指向目标文档,这样当更新地址簿时,任何使用它的文档都将自动更新。)
要进一步了解XLink,可查http://www.w3.org/TR/WD-xml-link。
XPointer:XPointer使用一个文档或文档段的ID(标识符)指向它。
XPointer定义了"在XML文档内部寻址"的机制,而不需要文档作者预先为那一段定义一个标识符。它提供了"元素、符号串和XML文档其它部分的引用,无论它们是否有一个明确的标识符属性。"
要进一步了解XPointer,可查http://www.w3.org/TR/WD-xptr。
XML Schema (大纲)
XML Schema定义一个文档可以包含的元素类型,它们的关系和它们可包含的数据,远远超出了现有DTD规范的方式。尽管DTD使你能够校验XML文档,但它有许多缺点。一个原因在于DTD规范不是分层的。例如对一个包含几个"已析符号数据"( PCDATA)元素的通信地址,它的DTD可能是这样:
< !ELEMENT 通信地址 (名字,地址,邮政编码) >
< !ELEMENT 名字(#PCDATA) >
< !ELEMENT 地址 (#PCDATA) >
< !ELEMENT 邮政编码(#PCDATA) >
可以看到,它是线性的,没有包含,可能会影响名域,使你不得不在不同设置中为相似的元素使用新的名字。另一个问题是不清楚注释解释的范围。另外,它不能使你严格指定域的有效条件,如邮政编码必须是6位数字。因此目前已经提出了许多提案,构造一个更象数据库、指定校验标准的层次化"schema"(大纲)。可查看http://www.w3. ;org/TR/xmlschema-1http://www.w3.org/TR/xmlschema-2。
4. W3C"Notes"(注释)
"Notes"根本不是W3C 的标准。实际上,它是由不同个人和组织提出的提案。W3C发布它们以供为标准工作的人参考。
DDML / Xschema(Document Definition Markup Language / XSchema,文档定义
标记语言/XSchema)
象DTD一样的文档定义是很好的,但DTD的语法有些奇怪。DDML 是旧XSchema 提案的新名称,指定了一个XML文档的有效性约束。它是DTD的可能后继者,但最终合法标准是那个还不清楚。
要进一步了解DDML,可查http://www.w3.org/TR/NOTE-ddml。
DCD(Document Content Description,文档内容描述)
DCD 提案是一个定义标准XML数据库前段的机制。
要进一步了解DCD,可查http://www.w3.org/TR/NOTE-dcd.。
SOX(Schema for Object-oriented XML,面向对象XML大纲)
SOX是一个schema提案,包括可扩展数据类型、名域和嵌入文档。
要进一步了解SOX,可查http://www.w3.org/TR/NOTE-SOX.。
5. 其它W3C Notes
其它基于XML的标准提案包括:
ICE(Information and Content Exchange,信息和内容交换)
ICE是一个由内容ICP和它们的订户使用的协议。它致力于"自动化传统出版和企业间关系中的信息(content)交换和重用"。
要进一步了解ICE,可查http://www.w3.org/TR/NOTE-ice。
6. 在XML基础上建立的标准
下面的标准和提案是建立于XML之上的。既然XML基本上是一个语言定义工具,这些规范用它定义特定用途的标准化语言。
扩展文档标准
SMIL(Synchronized Multimedia Integration Language,同步多媒体集成语言,发音为smile)。
SMIL是一个关于音频、食品和动画的W3C recommendation。它也处理同步化这些元素回放的困难问题。
要进一步了解SMIL,可查http://www.w3.org/TR/REC-smil.。
MathML(Mathematical Markup Language,数学标记语言)
MathML是一个处理数学公式表示的 W3C recommendation。1998年4月7号提出,1999年7月7号修订,目前版本为1.01。
要进一步了解MathML,可查http://www.w3.org/ ;TR/REC-MathML。
SVG(Scalable Vector Graphics,可缩放矢量图)
SVG 是一个关于矢量图形表示的W3C工作草案。(矢量图形是用"画一条从点(x, y)到点(m, n)的线"这样的命令建立的,而不是用一系列比特位去编码图形。这样的图形更容易缩放,但也更花处理时间。)
要进一步了解SVG,可查http://www.w3.org/TR/WD-SVG.。
DrawML(Drawing Meta Language,绘图元语言)
DrawML是一个关于二维技术图的W3C note。它也处理更新和细化这些图形的问题。
要进一步了解DrawML,可查http://www.w3.org/TR/1998/NOTE-drawml-1998120。
电子商务标准
cXML(Commerce XML,商务XML)
cXML是一个为不同购买者建立交互在线目录的RosettaNet(www.rosettanet.org)标准,也包含了处理购买订单、改变订单、状态更新和运输通知的机制。
要进一步了解cXML,可查http://corp.ariba.com/News/AribaArchive/cxml.htm。
CBL(Common Business Library,通用商务库)
CBL是一个由CommerceNet (www.commerce.net)维护的元素和属性定义库。
要进一步了解CBL和许多其它有关电子商务应用的信息,可查看 http://www.commerce.net/projects/currentprojects/eco/wg/eCo_Framework_Specifications.html。
软件管理和维护标准
DMTF (Desktop Management Task Force,桌面管理特别工作组)
DMTF是一个提出远程管理桌面设备标准的组织。他们计划使用XML维护设备目录和它们的描述,以及其它远程管理任务。这一组织不是W3C的一部分,但它们的工作看来已到了草案阶段,因此列在这里。
要进一步了解这已组织的相关信息,可查http://www.dmtf.org/。
WebDAV (Web Distributed Authoring and Versioning,Web分布创作和版本)
WebDAV是IETF(Internet工程特别工作组)的一个工作,使用XML维护Web服务器。
它允许一个服务器的内容通过一个HTTP连接创建、修改和更新。IETF不附属于W3C,但它们的"草案标准"差不多相当于W3C的"建议",所以列在这里。
要了解进一步信息,可http://www.ietf.org.查看"webdav"工作组。