XML入门的常见问题解决集合(二)
时间:2010-09-02 来源:狂想曲123
为什么 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 建议.www.qichepeijian.com。从标记和编程两重意义上说,这种语言提供了将 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 文档的顺序、添加或删除元素、执行条件测试或者用元素的集合进行迭代。