XML入门的常见问题(二)

作者:AngelGavin  出处:CSDN

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

什么是 XSLT?

XSLT(英文) ,或者用于转换的可扩展样式表语言,它是在 1999 年 11 月 6 日获得批准的 W3C 建议。从标记和编程两重意义上说,这种语言提供了将 XML 结构转换到其他 XML 结构、HTML 或者任何数量的其他文本格式(例如 SQL)的机制。虽然它可以用于创建 Web 页面的显示输出,但是 XSLT 的实际功能在于能够改变底层结构,而不是简单地改变这些结构的媒体表示,就像在层叠样式表 (CSS) 中一样。

XSL、XQL、XSL 模式 和 XSLT 之间的区别是什么?

XSLT 源自 CSS 在对 XML 文档结构改动上的局限性,当时创建 XML 的原因更倾向于代替 HTML 而不是提供通用数据描述语言。因此可扩展样式表语言 (XSL) 成为构造格式化 XML 新方法的成果。

但是,“W3C 样式工作”组的成员和早期 XML 采用者很快就发现,能够将 XML 从一种格式转换到另一个格式的语言,可以极大地简化生成的大量代码。Microsoft 向 W3C 提交了一个建议,最初名称为 XML 查询语言(或 XQL),它随之被 W3C 采纳为 XSL 模式语言。该语言的大多数功能最终都被纳入了 XSLT 规范中。

最终标准结合了为不同初始条件而修改的 XSLT 参数,创建代码功能块的命名模板,以及大量用于数值和字符串处理的增强功能。XSLT 还为在语言中添加内置功能提供方便,提供了 Microsoft 可在自己的实现中用来添加许多极其有用功能(包括访问 COM 对象和脚本)的产品。

什么是 XPath?

XPath(英文) 是为 XML 定义的查询语言,它提供在文档中选择节点子集的简单语法。通过 XPath,通过指定类似于目录的路径(即名称)以及路径中的条件,可以检索元素集合。XPath 对 XSLT 和 XML DOM 都很重要,并与 XPointer 规范(允许根据统一资源定位符 [URL] 和 XPath 表达式的组合来选择文档片断)有联系。

为什么 XSLT 对 XML 很重要?

XSLT 是将一种 XML 文档转换为另一种的语言。这意味着它提供了单源 XML 数据的机制,可以在 Web 页面中创建由用户动态更改的丰富视图,可以为目标通信过滤数据。XSLT 对于业务规则编码已经足够强大。它可以从数据生成图形(不仅仅是 Web 页面)。它甚至可以处理与其他服务器的通信 — 特别是和能够集成到 XSLT 中的脚本模块协作 — 以及在 XSLT 自身内部生成适当的消息。虽然它不可能代替桌面系统中的大多数交互(出于性能和使用方便性两方面分原因),但是在未来的几年中,XSLT 很有可能最终成为系统之间进行通信的主要“编程”语言。

XSLT 和 CSS 之间的区别是什么?它们不是样式表吗?

层叠样式表 (CSS) 的任务是对 HTML 元素指定一组显示属性。CSS 决定了页面的视觉外观,但是不会改变源文档的结构。

另一方面,XSLT 也称为基于模板的语言,它允许将某种模式映射到源文档中,该源文档的输出是用 XML、HTML 或纯文本书写的。使用 XSLT,可以将 XML 文档的结构转换为不同的 XML 文档。例如,您可以更改 XML 文档的顺序、添加或删除元素、执行条件测试或者用元素的集合进行迭代。

XSLT 和 CSS 不是兼容标准。一种在 XML 中创建 Web 页面的有用技术,是用 XSLT 将 XML 转换为诸如列表或表的结构,然后将 CSS 应用于结果,控制这些结构在适当媒体中的显示。您甚至可以从 XSLT 创建 CSS。

标准

Microsoft 如何与 XML 标准兼容?

从 XML 语言开始产生起,Microsoft 就站在了 XML 的最前沿,而且很值得注意的是,W3C 在过去几年中所生成的大多数 XML 建议和工作草案,都包括来自至少一个(在某些情况下可能是数个)Microsoft 职员的输入和参与。Microsoft 已经多次被委以重任,与 W3C 标准组织一起,确保 XML 的开发能使所有用户受益,并且在许多不同领域的开发中都作出了重要贡献,包括 XML 规范、DOM、XSLT 和架构定义语言。Microsoft 承诺将与最新规范和标准保持一致。

XML 和 World Wide Web Consortium (W3C) 之间的关系是什么?

W3C 有一活跃的 XML 工作组。Microsoft 从 1996 年 6 月起就是该组织的共同发起者之一,从那时起许多业界企业都开始加入,包括 Netscape Communications Corp.、IBM 和 Oracle。有关 XML 标准过程的详细信息,请访问 W3C Web 站点(英文)。

XML 和 W3C 的地位关系如何?

XML 1.0 是在 1998 年 12 月被正式批准的,现在仍是个稳定的标准。有关当前 XML 规范的详细信息以及 W3C 内部的提交和审阅过程,请参见 W3C Web 站点(英文)。

DOM 在 W3C 中的地位如何?

DOM Level 1 的 W3C 文档状态为“推荐”。这说明 W3C 目前正在提议将它作为 World Wide Web 上的标准。有关 DOM 和在 W3C 内部提交和审阅过程的详细信息,请参见 DOM 规范(英文)。

工具支持

SQL Server 和 ADO 支持 XML 吗?

Microsoft ActiveX 数据对象 (ADO) 技术,提供许多将数据库记录集(数据记录集合)转换为 XML 格式的方法,以及从给定结构中获取 XML 并将其转换回 ADO 所支持数据库(包括 SQL Server 和 Oracle 数据库)的工具。此外,通过 MSXML2 和 MSXML3 中的 XML 数据源对象,还可以将任意 XML 直接加载到 ADO 中以生成记录集。

SQL Server 2000 还允许通过 URL 直接设置和检索 XML,方式和调用 Web 页面非常相似。这是处理数据的强大机制,因为它基本上意味着可以将 SQL Server 数据直接集成到 XML 过滤器和 Web 页面,基本上凡是有 XML 文档的地方都可以集成 SQL Server 数据。此外,还可以设置自定义模板,来控制如何从 SQL Server 数据中产生 XML,使数据库成为生成 XHTML 页面的强大工具。

最后,诸如 BizTalk Server 这样的应用程序还允许在任意数量的不同数据源(从 XML 文档到数据库到 Excel 和 Word 文档)之间进行映射、为 Web 体系结构创建复杂数据管道以及根据 XML 数据库需求构造有效的架构。

目前有 Microsoft 工具可以帮助我快速沿用 XML 吗?

Microsoft BizTalk Server 2000 是用于数据交换的、基于 XML 的服务器,它提供启用电子商务业务社会的基本结构和工具。BizTalk Server 的基础是基于规则的业务文档路由、转换和跟踪基本结构。该基本结构允许公司通过在组织边界之内或之间的应用程序中间交换业务文档,例如购买定单和发票,来集成、管理和自动化业务过程。有关详细信息,请参见Microsoft BizTalk Server 2000(英文) 。

什么是 SOAP?

SOAP 是简单对象访问协议,是创建大范围分布式、复杂计算环境的工具,该计算环境可使用现有的 Internet 基本结构运行在 Internet 上。SOAP 可以使应用程序用许许多多方法在 Internet 上互相直接通信。有关 SOAP 的详细信息,请参见 SOAP 规范(英文)。

XML 如何适用于 Microsoft Windows? Distributed InterNet Applications (Windows DNA) 策略来构造三层并具有 Web 功能的应用程序?

XML 正在快速成为将结构化数据从中间层传送到桌面的工具。基于 XML 的数据可以通过中间层代理与多种后端(数据库)源集成。架构(参见“XML 数据”一节)可以改进该过程,并且开发人员可以更精确地描述和交换数据。

问题和解决方案

为什么在调用了 Load() 方法后,我的文档对象仍然为空?

默认情况下操作是异步加载的。这意味着如果提供 http URL 地址,那么 load() 方法将直接返回,并且文档对象仍然为空,因为数据还没有从服务器返回。为了纠正这个问题,请在代码中添加下面的行:

xmldoc.async = false;

同时,如果是从独立的 C++ 应用程序加载 http XML 文档,那么必须查询消息队列才能继续加载。

相关推荐