XML标准

来源:互联网 发布:文字朗读软件 编辑:程序博客网 时间:2024/06/10 02:56

XML 世界中存在多种标准。除了基本 XML 标准以外,其它标准定义了模式、样式表、链接、Web 服务、安全性和其它重要项目。本章介绍最流行的 XML 标准,并为您指出了查找其它标准的参考资料。

XML 规范

该规范(位于 w3.org/TR/REC-xml)定义了 XML 文档的基本规则。本教程前面讨论的所有 XML 文档规则都是在此规范中定义的。

除了基本 XML 标准以外,名称空间规范是 XML 的另一个重要部分。您也可以在 W3C 查找名称空间标准:w3.org/TR/REC-xml-names/。

XML Schema

XML Schema 语言定义成以下三个部分:

入门位于 w3.org/TR/xmlschema-0,它介绍了 XML 模式文档及其设计用途;
文档结构的标准位于w3.org/TR/xmlschema-1,它说明了如何定义 XML 文档的结构;
数据类型的标准位于w3.org/TR/xmlschema-2,它定义了一些常用数据类型以及创建新类型的规则。
本教程在定义文档内容中简要地介绍了模式;如果您对于用 XML 模式可以做的所有事情,需要了解完整的详细信息,那么最好先阅读“入门”。

XSL、XSLT 和 XPath

可扩展样式表语言(Extensible Stylesheet Language(XSL))定义了一组元素(称为格式化对象),它们描述应该如何格式化数据。为清晰起见,通常将该标准称为 XSL-FO 以和 XSLT 进行区分。尽管它主要是设计用于生成高质量的可打印文档,但您也可以使用格式化对象从 XML 生成音频文件。XSL-FO 标准位于 w3.org/TR/xsl/。

用于转换的可扩展样式表语言(Extensible Stylesheet Language for Transformation(XSLT))是一个描述如何将 XML 文档转换成别的东西的 XML 词汇表。该标准位于w3.org/TR/xslt(结尾没有斜杠符号)。

XPath(XML 路径语言,XML Path Language)是描述 XML 文档中位置的语法。您使用 XSLT 样式表中的 XPath 来描述您希望转换 XML 文档的哪个部分。XPath 也用在其它 XML 标准中,这就是为什么它是独立于 XSLT 的标准的原因。XPath 在 w3.org/TR/xpath(结尾没有斜杠符号)中定义。

DOM

文档对象模型定义了如何将 XML 文档转换为驻留内存的树结构。DOM 在 W3C 的许多规范中都有定义:

核心 DOM 定义 DOM 本身、树结构、以及代码遍历树时会发现的各种节点和异常。完整的规范在 w3.org/TR/DOM-Level-2-Core/。
事件定义对于树可以发生的事件,以及如何处理这些事件。该规范试图协调 Netscape 和 Internet Explorer 浏览器的版本 4 之后所支持对象模型之间的差异。该规范位于 w3.org/TR/DOM-Level-2-Events/。
样式定义程序如何访问 XSLT 样式表和 CSS 样式表。该规范位于 w3.org/TR/DOM-Level-2-Style/。
遍历和范围定义一些允许程序遍历树或定义树中节点范围的接口。可以在 w3.org/TR/DOM-Level-2-Traversal-Range/ 找到完整的规范。
视图为文档本身定义 AbstractView 接口。请参阅 w3.org/TR/DOM-Level-2-Views/ 以获得更多信息。

SAX、JDOM 和 JAXP

用于 XML 的简单 API 定义了一些事件和接口,用于与符合 SAX 的 XML 解析器进行交互。可以在 www.saxproject.org 上找到完整的 SAX 规范。

Jason Hunter 和 Brett McLaughlin 创建的 JDOM 项目位于 jdom.org/。在 JDOM 站点,您可以找到代码、样本程序和其它能帮助您入门的工具。(有关在 developerWorks 上介绍 JDOM 的文章,请参阅参考资料)。

有关 SAX 和 JDOM 的重要一点是:二者都来自 XML 开发人员社区,而不是标准组织。它们获得的广泛接受是对全世界 XML 开发人员积极参与的回报。

您可以在 java.sun.com/xml/jaxp/ 找到所有与 JAXP 有关的内容。

链接和引用

在 XML 世界中有两个用于链接和引用的标准:XLink 和 XPointer:

XLink(XML 链接语言,XML Linking Language)定义将不同资源链接在一起的各种方法。您可以进行正常的点对点链接(就象用 HTML <a> 元素)或扩展的链接,后者可包括多点链接、通过第三方的链接以及定义转向给定链接的意义的规则。XLink 标准位于 w3.org/TR/xlink/。
XPointer(XML 指针语言,XML Pointer Language)使用 XPath 作为引用其它资源的方法。它还包括对 XPath 的一些扩展。可以在 www.w3.org/TR/xptr/ 找到该规范。

安全性

有两个处理 XML 文档安全性的重要标准。一个是 XML 数字签名(XML Digital Signature)标准(w3.org/TR/xmldsig-core/),它定义了用于数字签名的 XML 文档结构。您可以为任何类型的数据创建 XML 数字签名,不管它是 XML 文档、HTML 文件、纯文本、二进制数据还是其它东西。您可以用数字签名来验证一个特定文件自签名后没有被修改过。如果您要签名的数据是 XML 文档,您可以将 XML 文档嵌入签名文件本身,这会使数据和签名的处理变得非常简单。

另一个标准用于加密 XML 文档。我们可以将 XML 文档编写得易于人们阅读和理解,尽管这样做很好,但如果文档落入坏人之手就会引起麻烦。XML 加密(XML Encryption)标准(w3.org/TR/xmlenc-core/)定义了如何加密 XML 文档的各部分。

将这些标准一起使用,您就能放心地使用 XML 文档了。我可以对一个重要的 XML 文档进行数字签名,生成一个包含 XML 文档本身的签名。然后我可以加密该文档(使用我的私钥和您的公钥)然后把它发送给您。当您收到文档时,您可以用您的私钥和我的公钥解密该文档;这可以让您知道是我发送的文档。(如果需要,您还可以证明我发送了文档)。一旦您解密了文档,您可以使用该数字签名确定文档没有经过任何修改。

Web 服务

Web 服务是一种新的重要的应用程序。Web 服务是一段可以用 XML 发现、描述和访问的代码。在这一领域有许多活动,但有三种主要的用于 Web 服务的 XML 标准:

SOAP:最初是简单对象访问协议(Simple Object Access Protocol),SOAP 定义一个 XML 文档格式,该格式描述如何调用一段远程代码的方法。我的应用程序创建一个描述我希望调用的方法的 XML 文档,并传递给它所有必需的参数,然后应用程序通过网络将该 XML 文档发送给那段代码。代码接收 XML 文档、解释它、调用我请求的方法,然后发回一个描述结果的 XML 文档。SOAP 规范版本 1.1 位于 w3.org/TR/SOAP/。请访问 w3.org/TR/ 以了解 W3C 中 SOAP 相关的所有活动。
WSDL:Web 服务描述语言(Web Services Description Language)是一个描述 Web 服务的 XML 词汇表。编写一段接收 WSDL 文档然后调用其以前从未用过的 Web 服务的代码,这是可能的。WSDL 文件中的信息定义 Web 服务的名称、它的方法的名称、这些方法的参数和其它详细信息。您可以在 w3.org/TR/wsdl(结尾没有斜杠符号)找到最新的 WSDL 规范。
UDDI:统一描述、发现和集成(Universal Description, Discovery, and Integration)协议向 Web 服务注册中心定义 SOAP 接口。如果您有一段代码希望作为 Web 服务部署,UDDI 规范定义如何将您的服务描述添加至注册中心。如果您在寻找一段提供某种功能的代码,UDDI 规范定义如何查询注册中心以找到您想要的信息。有关 UDDI 的所有资料来源都可以在 uddi.org 找到。

其它标准

还有许多其它的 XML 标准,我没有在这里深入介绍。除了象可伸缩向量图(Scalable Vector Graphic)(www.w3.org/TR/SVG/)、SMIL(同步多媒体集成语言,Synchronized Multimedia Integration Language)(www.w3.org/TR/smil20/)那样可广泛应用的标准外,还有许多特定于业界的标准。例如,HR-XML 协会已定义了许多用于人力资源的 XML 标准;您可以在 hr-xml.org 找到那些标准。

最后,要查找有关 XML 标准的优秀信息来源,请访问 xml.org/xml/registry.jsp 上的 XML 资源库。该站点的特点是有数百个用于各行各业的标准。

原创粉丝点击