日期:2014-04-20 浏览次数:21010 次
将改变我们生活的XML有关的这些使用,你知道多少?
XHTML 1.0 [W3C 推荐标准]基本上是对 HTML 4 的改写,使其成为结构良好的 XML。HTML 是一种 SGML 使用,当 XML 作为对 SGML 在 Web 使用上的简化和规范化开发出来的时候,HTML(本身是 Web 上的通用言语)就成为采用 XML 的首选目标。于是出现了 HTML 的一种变体,称为 XHTML。XHTML 研讨的目标是一种更容易解析(由于 XML 的语法愈加严厉)的 HTML 言语。XHTML 很容易用现成的 XML 工具处理,力求更好地分离内容与表示。XHTML 是最陈旧的 XML 使用之一,有许多利益集团在不同的部分和版本中起过作用。我将尽力对其中的大部分加以概括。
与三种HTML 4 DTD——Strict、Transitional 和 Frameset 对应,XHTML 1.0 定义了不同的 DTD 和名称空间。Modularization of XHTML [W3C 推荐标准]提供了一个框架,把 XHTML 分解成单独的模块,作为不同的 DTD 定义。比如,用于定义列表的所有元素和属性组成一个模块,而和表示有关的元素类型则放在另一个模块中。这样,就可以通过添加、减少和修正通用的独立模块开发和重新定义 XHTML。沿着这条路线,第一步就是 XHTML Basic [W3C 推荐标准],它定义了任何作为 XHTML 的言语都必须具有的最小 XHTML 模块集。XHTML Basic 本身可以作为 Web 客户的内容言语,如挪动电话、PDA、寻呼机和置顶盒。XHTML 1.1 [W3C 推荐标准]基本上就是使用模块框架分解的 XHTML 1.0 Strict DTD。
XHTML 2.0 [开发中]是对 XHTML 的重写,没有考虑与 HTML 的向后兼容。这种想法差不多就是为 Web 编写一种全新的内容言语,学习过去的经验而又不束缚于过去。其中大的变化有:
取消了 <br/>、 <img/> 以及其他认为过于面向表示的元素
取消 HTML 风格的表单,改为支持 XForm(本系列文章前已述及)
取消 HTML 风格的链接改为 HLink(本系列文章中前已述及)
用 XML Event 代替许多 JavaScript 驱动的动态任务
用 XFrame 代替 HTML 风格的框架
更重要的是,XHTML 2.0 做了许多扩展,加强了作者表达内容结构和含义的能力。打破向后兼容性惹起了争议。一些评论者认为保持 (X)HTML 的名称只修正版本号会形成混乱。其他人则说这些修正非常必要,而 XHTML 实际上仍然是一种可扩展超本文标记言语,因此保留原来的名称非常合适。
XHTML 常常和其他嵌入格式一同使用,如 MathML、RDF、SVG、SMIL 和 VoiceXML(后面都将予以引见)。这种混合文档称为多模的或者非单体的。W3C、ISO 以及其他组织正投入巨大的努力鼓励对这种文档的强力支持。
Docbook 原来是一种流行的 SGML 格式,用于编纂书籍和文档,尤其是带有较多技术特性的文档。后来添加了一个 XML 版本,DocBook XML V4.2 [OASIS 委员会规范]是最新的成果。Docbook 非常流行,得到了许多工具的支持,其中很多工具非常成熟。它作为避免混合表示问题与内容格式的一个范例而受人尊崇。最近,一些开发人员开始抱怨它从过去的版本承继了太多的负担,纷纷讨论(甚至包括它的次要开发者 Norm Walsh)为这种格式重新开发一种新的、不向后兼容的版本。
Text Encoding Initiative (TEI) 甚至比 Docbook 更陈旧,这种文档格式在某种程度上与 Docbook 的使用范围类似,区别在于它通常处理的是人文学科的文本而非技术文本。TEI 本身不是一种 SGML 或 XML 使用,而是一组用于结构言语(DTD)的指点准绳。最常用的 TEI 变体是 TEI Lite [社区标准]。TEI 以其复杂性驰名,这在一定程度上限制了它被大量采用,但是它得到了很好的维护,并在一些社区中有狂热的用户。
Extensible Stylesheet Language Formatting Objects (XSL-FO) [W3C 推荐标准]是一种使用 XML 定义的表示言语。(留意,链接规范的标题是 "Extensible Stylesheet Language (XSL)",但内容理想上只包括 XSL 的格式化对象方面。)XSL-FO 是一种 XML 格式,可被任何用户代理用于按照开发人员给定的精确规范呈现内容。它的角色类似于 Web 用户界面中的 XHTML, 但是愈加复杂,以便表达适用于打印方式的格式化细节。这些细节和级联款式表(CSS——本系列文章前已述及)中所规定的没有什么不同,但是在 XSL-FO 中,这些细节构成了这种标记言语本身的一个实例,而不是呈现单个标记的指令。
XSL-FO 常用作 XSLT(本系列文章前已述及)的输出格式。理想上,最后 XSLT 和 XSL-FO 是一个系统,称为 XSL,但是任务组明智地将这两个部分分成了两个不同的规范。有多种开放源代码的或者商业化的工具可以将 XSL-FO 转化成 TeX、Adobe 的 PDF 以及其他适于打印和排版的(非 XML)输出格式。这种使用模式使 XSL-FO 非常流行,但是 XSL-FO 不断希望成为 WYSIWYG 工具或者类似工具的原生呈现格式,它的这种使用也开始遭到推动。XSL-FO 1.1 [开发中]是这种言语的升级,添加了注释、索引、书签之类的特性,并加强了图像的处理能力。
Scalable Vector Graphics (SVG) 1.1 [W3C 推荐标准]是一种描述二维图像的言语。它次要是一种向量图形言语,虽然也支持一些光栅图形特性。SVG 的非凡雄心是提供一种实用的、灵活的、使用(以冗长闻名的)XML 表示的图像格式,而且在这点上做的很成功。SVG 的特性包括:嵌套转换、剪辑路径、alpha 蒙板、光栅过滤效果、模板对象,当然还有可扩展性。SVG 也支持动画、缩放和挪动视图、各种图形原语、分组、脚本、超链接、结构化元数据、CSS、一种公用的 DOM 超集(DOM 和 CSS 前已述及),并且很容易嵌入其他 XML 文档。SVG 的一些设计决策经历了不很激烈的争论,其中包括向量路径在单个属性中使用空格分隔的数字列表表示,但是总体上 SVG 曾经成为使用最广泛的并遭到热烈欢迎的一种 XML 使用。该规范曾经被翻译成了多种言语。
SVG 1.1 是对 SVG 1.0 [W3C 推荐标准]的更新,添加了一些新特性,也包括一些更正。最大的区别是 SVG 1.1 以类似 XHTML 1.1+ 的方式进行了模块化。这种模块化使得 SVG 能够扩展甚至精简,就像 Mobile SVG Profiles: SVG Tiny and SVG Basic [W3C 推荐标准]那样。后者定义了 SVG 模块的精简集,适用于挪动电话和 PDA。SVG 1.2 [开发中]努力于添加许多新工具,使 SVG 不只作为一种图像格式,而且成为具有广泛使用前景的平台。
Voice Extensible Markup Language (VoiceXML) Version 2.0 [开发中]是一种创建音频、语音和电话使用程序的言语。它包含的音频对话框具有以下特点:语音合成、数字音频、声音识别和电话音质拨号输入和话音输入录制。它寻求把基于 Web 的开发和内容传递的优势带入交互式语音呼应使用程序中。VoiceXML 是 W3C Speech Interface Framework [开发中]的一部分,后者还包括其他的标准,由于这些标准与电话行业的界限非常模糊,这里就不讨论了。VoiceXML 2.0 标志着 VoiceXML 规范从 VoiceXML Forum 转向 W3C,前者仍然在努力改进这种技术。关于 VoiceXML 曾经有了一些专利