一般来说,压缩 xml 的需要是与应用程序有关的,并且很大程度上是服务器和客户机之间移动数据量的函数。用于描述数据结构的标记的反复特性,使 xml 能够非常好地压缩数据。值得注意的是 http 1.1 服务器和客户机的压缩都是标准的,xml 可以自动从中受益。
xml 作为数据格式有多安全?有没有增加 xml 安全性的计划?
xml 和 html 一样安全。正因为安全的 http (https) 可以用于对 http 添加密码技术,从而保护了 html,因此它也可以用于保护 xml。xml 是表示结构化数据的基于文本格式。这可以使数据的简单性和互操作性最大化。对 xml 格式增加安全性和验证能力时可以采取许多步骤。首先,xml 可以在传输到客户之前在服务器上加密,然后在客户机上解密。应用于数据本身的数字签名也可以验证 xml。
文档类型定义 (dtd) 定义了一类 xml 文档的正确语法。也就是说,它列出了许多元素名称,什么元素可以和其他元素一起显示,什么属性可以用于每种元素类型等等。dtd 使用 xml 文档使用的不同语法形式。
web 开发人员在使用 xml 描述数据时必须包括 dtd 吗?
不。xml 可以用于描述有或没有 dtd 的数据。术语“有效”xml 指代引用 dtd 的 xml 数据,而“良好形成的”xml 是未使用 dtd 的 xml。此外,“良好形成的”xml 还是 xml 和标准统一标记语言 (sgml) 的基本区别之一。很明显,在这两种情况下,xml 本身都必须遵守语言的标准(例如,所有标记都必须是闭合的,并且标记不能重叠)。
虽然 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(英文)
,或者用于转换的可扩展样式表语言,它是在 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(英文)
是为 xml 定义的查询语言,它提供在文档中选择节点子集的简单语法。通过 xpath,通过指定类似于目录的路径(即名称)以及路径中的条件,可以检索元素集合。xpath 对 xslt 和 xml dom 都很重要,并与 xpointer 规范(允许根据统一资源定位符 [url] 和 xpath 表达式的组合来选择文档片断)有联系。
xslt 是将一种 xml 文档转换为另一种的语言。这意味着它提供了单源 xml 数据的机制,可以在 web 页面中创建由用户动态更改的丰富视图,可以为目标通信过滤数据。xslt 对于业务规则编码已经足够强大。它可以从数据生成图形(不仅仅是 web 页面)。它甚至可以处理与其他服务器的通信 — 特别是和能够集成到 xslt 中的脚本模块协作 — 以及在 xslt 自身内部生成适当的消息。虽然它不可能代替桌面系统中的大多数交互(出于性能和使用方便性两方面分原因),但是在未来的几年中,xslt 很有可能最终成为系统之间进行通信的主要“编程”语言。