什么是 XML?
可扩展标记语言 (XML) 是 Web 上的数据通用语言。它使开发人员能够将结构化数据,从许多不同的应用程序传递到桌面,进行本地计算和演示。XML 允许为特定应用程序创建唯一的数据格式。它还是在服务器之间传输结构化数据的理想格式。
什么是 MSXML?
MSXML 是提供核心 XML 服务的 Microsoft 软件组件。
Microsoft XML 分析器能够做什么?
最新版本的 Microsoft 核心 XML 服务提供下面四种不同的功能。
基于文档对象模型 (DOM) 的分析器,它能够获取文本流(能够转换到 XML 的文件、程序中的字符串或者任何其他文本)并将它转换为能够编程处理的可导航 XML 树结构。
SAX(Simple API for XML)分析器,它针对处理大型文档和高吞吐量的情况进行了优化的。SAX 是基于事件的分析器,它读取文档并将分析事件(例如元素的开始和结尾)直接报告给应用程序。用户创建的应用程序实现了处理不同事件的处理程序,这非常类似于处理图形用户界面 (GUI) 中的事件。
XSLT 处理器读取 XSLT 文件,并将可扩展样式表转换语言 (XSLT) 文件的指令应用到 XML 文件,以产生某些类型的输出。除了创建 XML结构之外,XSLT 处理器还可以在得到的 XSLT 过滤器上执行一定量的优化,另外,从技术的角度看,它更像是一种编译器。
验证分析器读取文档类型定义 (DTD) 或者 XML 架构,然后检验实际得到的文档的格式是否正确,以及是否不包含与架构冲突的数据。请注意,仅对架构而言,验证架构将返回架构本身作为对象,可以在以后在 HTML 列表框中创建选项时引用这个对象。
所有四种功能都包含在同一 MSXML 库软件包中,它可以从 MSDN XML 开发人员中心(英文)免费得到。
MSXML、MSXML2 和 MSXML3 之间的区别是什么?
在过去三年中 XML 经历了许多反复,所以目前存在不同版本的 Microsoft XML 分析器也不奇怪。Internet Explorer 4.0 包含早期版本的 XML 分析器,它比 XSL、XML 数据或者大多数其他的 XML 技术(并且有完全不同的 DOM 模型)要早。该早期版本的分析器包含在 MSXML.dll 库中。从 MSDN XML 开发人员中心(英文)可将分析器升级到较新的一种。
我们极力建议您升级到新的分析器,因为它要强大得多。Internet Explorer 5.0 包括 MSXML 2.0 分析器,它包含 XSL 和 XML 架构的基本版本。MSXML2 是 SQL Server 2000 附带的分析器版本。MSXML2 包含了许多性能增强的功能,并且在总体上提高了性能和可伸缩性。MSXML3 是当前作为“技术预览”附带的版本。MSXML3 包括 XSLT 和 XPath 支持以及 SAX 接口。
XML 可以代替 HTML 吗?
XML 比 HTML 提供更大的灵活性,但是它不可能很快代替 HTML。实际上,XML 和 HTML 能够很好地在一起工作。Microsoft 希望许多作者和开发人员都能同时使用 XML 和 HTML,比如用 XSLT 来生成 HTML。
在 HTML 中增加 XML 的好处是什么?
在 Web 上使用 XML 的好处有:
它提供用于本地计算的数据。传递到桌面的数据可以进行本地计算。XML 分析器可以读取数据,并将它递交给本地应用程序(例如浏览器)进一步查看或处理。数据也可以由使用 XML 对象模型的脚本或其他编程语言来处理。
向用户提供正确的结构化数据视图。传递到桌面的数据可以以多种方式表示。本地数据集,可以根据用户喜好和配置等因素,以适当的形式,在视图中动态表现给用户。
允许集成不同来源的结构化数据。一般情况下,使用代理,在中间层服务器上集成来自后端数据库和其他应用程序的数据,使该数据能够传递给桌面或者其他服务器,做进一步聚合、处理和分布。
描述来自多种应用程序的数据。由于 XML 是可扩展的,因此它可以用于描述来自多种应用程序的数据,从描述 Web 页面集合到数据记录。由于数据是自描述的,因此不需要数据的内置描述,也能够接收和处理数据。
通过粒度更新来提高性能。XML 允许粒度更新。开发人员不必在每次有改动时都发送整个结构化数据集。有了粒度更新后,只有改变的元素才必须从服务器发送到客户机。改变的数据可以在不必刷新整个页面或表的情况下显示。
XML 只适用于核心开发人员吗?
不。和 HTML 文档一样,XML 文档可以由任何人创建 — 甚至是没有任何编程经验的人。XML 仅仅是一种描述信息的标准方式。此外,它还是一种语言,可以在没有任何软件的情况下用它来编写。您可以在文本编辑器中编写 XML 文档,并且直接放入 Web 站点,不需要编写传统方式下的任何代码。
开始使用 XML 时需要什么?
要使用 XML,您需要能够读取 XMl 文档的 XML 分析器,并且使它的内容能被处理。Microsoft 提供了一种分析器,可以从 MSDN XML 开发人员中心(英文)下载。
要使用 XML 文档,可以使用文本编辑器(例如记事本)或任何其他可以用于创建 HTML 页面的编辑器。要创建完整形式的 XML 应用程序,请使用诸如 Microsoft? Visual Studio? 的编程环境。
有如何使用 XML 的实际例子吗?
XML 正在数量惊人的应用程序中使用,范围从 Web 站点创建和文档化到数据库集成和分布式编程。在下面几个领域中,XML 有其用武之地:
业务对业务的传输。业务数据(发票、购买定单、会计和税务信息等等)是以 XML 格式在厂商之间电子传输的。与旧的电子数据交换 (EDI) 格式相比,XML 提供了许多优点,而不仅仅是可以在传输中从一种发票格式转换到另一种。
分布式编程。XML 是非常理想的复杂多平台应用程序构造方案,这样就使得 Windows 服务器和其他操作系统的集成成为可能。
Web 站点体系结构。由于 XML 的层次结构和分布式特性,Web 站点开发人员在他们 Web 站点的总体体系结构和导航结构中越来越多地使用它。此外,越来越多的目录表和索引表、跟踪用户信息及 Web 站点状态的 XML 结构、基于 HTML 的组件和处理数据流的渠道,都用 XML 和 XSLT 编写。
数据库操作。XML 正成为与数据库交互的流行工具 — 无论从 SQL 查询中检索 XML 数据集,还是用 XML 记录更新数据库。而且我们还有分离实现的优点。通过将数据压缩为 SML,就不需要对实际的数据库结构有任何了解。
文档管理。目前的大多数公司都陷在文书工作的海洋里,而且会越来越糟。XML 正在越来越多地用于将文档编码成 XML,使文档更易于检索或提供链接到文档的注释上下文,以便更有效地进行参考。
我可以忽略 XML 吗?
如果您想在 Internet 世界中竞争的话,那就不可以忽略 XML。XML 是导致以我们考虑编程本身的方式进行模式转移的一种语言。传统的专用客户机/服务器应用程序,正在给“随时随地访问”的 Internet 服务让位,XML 是处理任何事情(从数据访问处理到在该新环境中表现数据)的逻辑媒体。
Microsoft Internet Explorer 4.0 支持 XML 吗?
是的。Internet Explorer 4.0 支持 XML 下列功能:
通用的 XML 分析器,它读取 XML 文件并将它们传递到应用程序(例如查看器)进行处理。应用程序开发人员可以使用 Microsoft 的两个分析器:C++ 中的 Microsoft XML 分析和 Java 中的 Microsoft XML 分析器。
XML 对象模型 (XML OM) 使用 World Wide Web Consortium (W3C) 标准文档对象模型 (DOM) 允许程序通过 XML 分析器访问结构化数据,使开发人员拥有交互和计算数据的能力。有关详细信息,请参见 DOM 规范(英文) 。
XML 数据源对象 (XML DSO) 允许开发人员连接到结构化 XML 数据,并用动态 HTML 的数据绑定机制将它提供给 HTML 页面。
Internet Explorer 5.0 对 XML 提供哪个级别的支持?
Internet Explorer 5 提供下列 XML 支持:
直接查看 XML。Microsoft XML 实现允许用户通过他们的 Web 浏览器使用 XSL 或者层叠样式表 (CSS) 查看 XML,就象查看 HTML 文档一样。
高性能、验证 XML 引擎。Internet Explorer 4.0 开发人员熟悉的 XML 引擎已经得到了很大的增强,并且完全支持 W3C XML 1.0 和 XML 名称空间,这样开发人员就可以在 Web 上统一限定元素名称,从而避免了相同名称的元素之间的冲突。Windows 中的本机 XML 支持意味着,当开发人员在应用程序和组件之间移动数据时,可以使用完整的 XML 处理功能来读取和处理数据。
可扩展样式转换语言 (XSLT) 支持。使用基于最新的 W3C Working Draft 的 Microsoft XSLT 处理器,开发人员可以对 XML 数据应用样式表,并以易于自定义的动态和灵活方式来显示数据。Microsoft XSLT 处理器的查询功能也允许开发人员用程序,在客户机或服务器上,在 XML 数据集内部查找和摘取信息。
XML 架构。架构(英文) 定义 XML 文档规则,包括元素名称和丰富的数据类型,它们的元素可以表现为组合,并且每个元素的属性都可用。为了启用多层应用程序,Microsoft 将根据提交给 W3C XML 工作组的缩减 XML 数据架构 (XDR) 来发布 XML 架构的技术预览。
服务器端 XML。服务器端 XML 处理允许使用 XML 作为在多个分布式应用程序服务器(甚至是跨越操作系统边界)之间传送数据的标准方式。
XML 文档对象模型 (DOM)。XML DOM 是标准对象应用程序编程接口,它使开发人员能够用程序控制 XML 文档内容、结构、格式等等。Microsoft XML 实现包括对 W3C XML DOM 建议的完全支持,并且可以用脚本、Visual Basic 开发系统、C++ 和其他编程语言来访问。
C++ XML 数据源对象。XML DSO 允许将 HTML 元素直接绑定到 XML 数据岛。此外,它还提高了性能,有强大的能力可以绑定到不同 XML 节点上,而且利用了 Internet Explorer 5 beta 中所有的新的数据绑定功能。
HTML、动态 HTML 和 XML 之间的关系是什么?
HTML 可以和 CSS 一起用于格式化和表示超链接页面。动态 HTML,通过 DOM,使 HTML 中的所有元素,都可以通过与语言无关的脚本和其他编程语言来访问,从而在很大程度上提高了客户机端的交互能力,而且不需要对服务器的额外需求。页面的对象模型允许动态更改任何方面的内容(包括增加、删除和移动)。
通过为结构化数据添加 XML,为开发人员提供了构造下一代丰富、灵活 Web 应用程序的技术。使用 XML,他们可以为桌面提供结构化数据,并且用 XML 对象模型计算数据。现在的开发人员可以在浏览器(例如 Microsoft Internet Explorer 4.0 和 Microsoft Internet Explorer 5)或者其他应用程序中,通过脚本显示基于 XML 的数据。此外,他们也可以对数据应用格式化规则,而不需要使用 XSLT 样式表的复杂脚本(实际上是将基于 XML 的数据转换为显示)。这两种显示基于 XML 数据的方法,都使得生成复杂数据的多个视图成为可能。
为什么 XML 这么重要?
XML 将成为计算领域的未来。作为一种技术,它的影响力将渗透到编程的每个方面,从嵌入式系统到图形界面,到分布式系统以及数据库管理。它实际上已经成为软件工业之间数据通信的标准,并且迅速代替 EDI 系统成为全球几乎所有工业进行业务交换的主要媒体。它很有可能会成为创建和存储大多数文档的语言,不管是否在 Internet 上,并且有可能成为 Internet 应用程序服务器的基础,有些人相信它将代替许多目前生产的小包装产品。
Microsoft 提供什么 XML 产品?
Microsoft 正在努力为许多领域开发 XML 资源:
数据访问。最新的 ActiveX? 数据对象 (ADO) 的化身,已经支持 XML 的生成和消费将近一年了,并且 Microsoft SQL Server 2000 为基于 SQL 的信息和 XML 之间的互相转换提供了许多接口。
浏览器支持。Microsoft 是第一个生产能够阅读 XML 文件(无论是用原始结构形式,还是通过 XSL 或 CSS 样式表)的商业浏览器 (Internet Explorer 5) 的公司。
BizTalk Server 2000。Microsoft? BizTalk(TM) Server 2000 提供了在大量不同格式(包括 XML)之间通信的方式,来帮助推动业务对业务的应用程序。BizTalk Server 也包括了许多架构生成和映射工具,从而大大简化了业务或商业需要的 XML 结构的开发。
在 Web 上传输,必须压缩 XML 吗?
一般来说,压缩 XML 的需要是与应用程序有关的,并且很大程度上是服务器和客户机之间移动数据量的函数。用于描述数据结构的标记的反复特性,使 XML 能够非常好地压缩数据。值得注意的是 HTTP 1.1 服务器和客户机的压缩都是标准的,XML 可以自动从中受益。
XML 作为数据格式有多安全?有没有增加 XML 安全性的计划?
XML 和 HTML 一样安全。正因为安全的 HTTP (HTTPS) 可以用于对 HTTP 添加密码技术,从而保护了 HTML,因此它也可以用于保护 XML。XML 是表示结构化数据的基于文本格式。这可以使数据的简单性和互操作性最大化。对 XML 格式增加安全性和验证能力时可以采取许多步骤。首先,XML 可以在传输到客户之前在服务器上加密,然后在客户机上解密。应用于数据本身的数字签名也可以验证 XML。
确认
什么是 DTD 及其用途?
文档类型定义 (DTD) 定义了一类 XML 文档的正确语法。也就是说,它列出了许多元素名称,什么元素可以和其他元素一起显示,什么属性可以用于每种元素类型等等。DTD 使用 XML 文档使用的不同语法形式。
Web 开发人员在使用 XML 描述数据时必须包括 DTD 吗?
不。XML 可以用于描述有或没有 DTD 的数据。术语“有效”XML 指代引用 DTD 的 XML 数据,而“良好形成的”XML 是未使用 DTD 的 XML。此外,“良好形成的”XML 还是 XML 和标准统一标记语言 (SGML) 的基本区别之一。很明显,在这两种情况下,XML 本身都必须遵守语言的标准(例如,所有标记都必须是闭合的,并且标记不能重叠)。
什么是 XML 架构?它们与 DTD 的区别是什么?
虽然 XML 1.0 提供了定义 XML 文档的内容模型的机制 — DTD — 但是很明显还需要定义内容模型的更全面更有效的方法。XML 架构是特殊的 XML 结构的定义(从其组织和数据类型两个方面)。XML 架构使用“XML 架构”语言来指定在架构中如何定义元素的每种类型,以及与元素关联的数据类型。与 DTD 相比,架构的最鲜明的特点,便是架构本身就是 XML 文档。这意味着阅读它所描述的 XML 的工具也可以阅读它。
Microsoft 的 XML 服务目前支持 XML 数据架构,它代表了在 1999 年 3 月 Internet Explorer 5 装运时 “W3C 架构”活动的快照。XML 数据架构允许开发人员在他们的 XML 文档中添加数据类型,以及定义开放的内容模型。这种对 DTD 功能的扩展对 XML 编程很关键。
但是 W3C 正在准备“XML 架构定义 (XSD)”,它将成为“XML 架构标准”。Microsoft 计划在此规范成为建议后,立即使对“XML 架构定义 (XSD)”的支持成为它核心 XML 服务的一部分。
什么是名称空间,它们为何重要?
名称空间是 XML 的另一个高级功能,并作为 XML 1.0 规范的一部分,在 W3C 笔记中作了概述。它们允许开发人员限定元素名称和关系。名称空间使元素名称唯一可识别,从而避免了名称相同,但是在不同词典中定义的元素之间发生名称冲突。它们允许混合来自不同名称空间的标记,这一点对多个来源的数据很重要。
例如,书店可以定义
名称空间有助于清晰地定义这种差别。
XSLT 和 XPATH