软件频道>程序开发>JavaVBVCDelphiC/C++Web开发微软专栏移动数据库程序人生软件工程|开发客
您现在的位置:天极网 > 开发频道 > XML 2007 年度回顾
全文

XML 2007 年度回顾

2008-01-17 09:50作者:Elliotte Rusty Harold 出处:论坛整理责任编辑:方舟

  对 XML 来说,2007 年又是发展较为平缓的一年。但是在这一年中,一些重要的规范都升级到了 1.0 版,XML 在信息发布(Web 和传统形式)方面得到持续发展。更重要的是,REST 与 Web 服务的碰撞引起了轩然大波,整个 Web 服务领域产生了重大变化。引起这一巨变的最主要技术是 POX(plain old XML),POX 文档可以通过标准 HTTP 传送,而且不会被任何模式或规范羁绊(一些人在多年前就预感到这一结果,但是正如 Roy Fielding 所说,行业最终会亲自检验)。

  REST 并不是惟一隐含其强大功能的技术。XML 的全部潜力也即将充分发挥。在这一年里,Atom 发布协议(Atom Publishing Protocol,APP)和 XQuery 升级到了 1.0 版,而它们带来的影响才刚刚开始。

  在过去十年中,XML 经历了无数次挑战,不管是来自功能强劲的技术,还是来自名不符实的技术(YAML、SML、S-表达式,以及其他遭竞争淘汰的技术),但是 2007 年 JSON 的流行却是对它最大的挑战。尽管 JSON 的适用性有限、存在安全问题,而且应用程序编程接口(API)设计并不完善,但是这并没能阻碍它的进一步推广,明年其使用率似乎还会继续增长。

  1 月

  在过去 5 年中,XQuery 总是被认为是 “下一年” 就会实现的技术,这个承诺终于在 1 月份得以兑现,XQuery 1.0 在 1 月正式发布。一些纯 XML 数据库已经实现了它,包括 Mark Logic、eXist、Sedna 和 Berkeley DB XML。一些混合数据库也提供了对 XQuery 的支持,包括 IBM® DB2® 9 和 Oracle 10g。XQuery 还被一些独立产品采用,包括 Michael Kay 的 Saxon 和 DataDirect XQuery。

  但是故事并没有就此完结。XQuery 只是整个解决方案的一小部分。用 CRUD 的话来说,XQuery 是不包含创建(Create)、更新(Update)或删除(Delete)的读(Read)操作。不得不通过专用的扩展来添加这些必需的功能。这意味着不能轻易地将一个应用程序或数据库从一个实现移动到另一个实现。更严重的是,开发人员不能使用标准语法,很难雇佣到经验丰富的 Mark Logic 程序员来处理 DB2 9 应用程序(程序很少在平台之间转换,但是开发人员经常这么做)。XQuery 需要一个更新(和创建、删除)工具。World Wide Web Consortium (W3C) 在 8 月发布了 XQuery Update Facility 1.0 的 last-call 草案,而且供应商已经开始付诸实现。如果幸运的话,那么 XML 社区有望在 2008 年看到该草案通过 last call 阶段并形成最终版本。

  在这一年中,XQuery 工作组也发布了第一批 XQuery 1.1 需求。一些最重要的新功能可能包括异常处理、扩展函数、函数指针和/或 lambda 表达式。幸运的话,只需五六年时间就能实现这些功能。然而,最好在 XQuery 真正流行起来之前就开始实施,而且任何规范的的更改都需要几十年的努力,就像 SQL、Fortran 和 C 的情形一样。

  尽管 XQuery 是一种完整的编程语言 — 它可以完全取代 PHP、静态 HTML,以及任何其他 Web 框架 — 在不久的将来,您将需要将其与用传统语言编写的程序进行集成。因此在这一年提议将 XQuery API for Java (XQJ) 加入 Java Community Process 最终草案是一个很不错的主意。可将这看作 JDBC for XQuery。Saxon 9 和 Data Direct XQuery 3.0 已经提供了对 XQJ 的支持,而且一旦明年完整的规范发布,更多的供应商将会参与到其中。

  2 月

  在最短也是最冷的 2 月,每个人都呆在家里,也没发生太多事情。Saxon、TagSoup 和 WebCGM 都发行了新版本(您也许会问,什么是 WebCG?)

  在这个月,发布了 XForms 1.1 的 last-call 工作草案,其中添加了一些重要功能,包括对 PUT 和 DELETE 提交的支持。但是要使 XForms 成为最后的推荐标准,这一年剩下的 10 个月也许还看不到这一结果。11 月最多实现 XForms 1.1 推荐标准。因此也许等到明年才能实现。

  在这一年中,大多数主流 XForms 供应商都从不同角度发布了其产品的更新版本,包括 FormsPlayer、Chiba、Orbeon,以及 Mozilla XForms 扩展。不幸的是,何时将 XForms 支持内置到主流浏览器中仍然难下定论。

  3 月

  W3C 已经成立十余年了,它是 Internet Engineering Task Force (IETF) HTML 2.0 计划失败的直接产物。基于这样的历史,2006 年 W3C 果断放弃 HTML 确实有些令人震惊。直到现在,W3C 仍然如此地专注于 XML 和 Semantic Web,以至于都忘记了自己曾经支持过的一项技术。因此,在 2004 年,一些 Web 设计人员和浏览器供应商联合起来成立了 Web Hypertext Application Technology Working Group (WhatWG),专注于 W3C 已经放弃的领域,而且与 W3C 背道而驰。

  这一过程花费了两年时间,但是在 3 月份,W3C 终于意识到他们即将受到威胁。他们重新成立了自己的 HTML 工作组并玩起了追赶游戏。两大组织都同意分享利益,但是 WhatWG 仍然处于主导地位,并控制着整个市场。

  尽管竞争激烈,2007 年并没有产生多少实用的 HTML 5 代码。规范开发主要集中在 Web 视频、SQL API,以及解析 arcana。将会在普通 Web 浏览器中实现哪种技术仍然是一个未知问题。对我个人而言,我怀疑在原生 XML 数据库在场外做热身时花费几个月时间开发一个浏览器内置的 SQL API 是不是明智之举(我答应这是本文中最后一次用足球做比喻,或者您可以拿走裁判员的口哨)。

  4 月

  尽管早就有传闻 XML 将在 Web 中引入语义并使浏览器能够理解其显示的内容,但 XML 始终是关于语法,而不是语义。整个 XML 1.0 规范只包含两个和语义沾边的属性:xml:space 和 xml:lang(而且我不能肯定 xml:space 是不是语义属性)。在很大程度上,XML 规范的意义来自于处理 XML 文档的应用程序,而不是文档本身。XML 系列的后续规范也几乎是这样,包括名称空间、XML Infoset、XSLT,以及 XPath。

  但是在 4 月份,W3C 通过发布 Internationalization Tag Set (ITS) 1.0 进一步扩展了 xml:lang 属性。这个推荐标准定义了标识方向性、可译性、ruby 文本的标准属性和可跨不同词汇表共享的文档本地化和国际化的其他常见内容。例如,在清单 1 显示的 DocBook 文章中,its:translate 属性指示 author 元素不应该被翻译,而 its:dir 属性表明整个文档使用从左到右的文本。

  清单 1. 带有 ITS 标记的 DocBook 文章

<xforms:model><dbk:article
      xmlns:its="http://www.w3.org/2005/11/its"
      xmlns:dbk="http://docbook.org/ns/docbook"
      its:version="1.0" version="5.0" xml:lang="en"
      its:dir="ltr">
  <dbk:info>
    <dbk:title>Fun with XML</dbk:title>
    <dbk:author its:translate="no">
       <dbk:personname>
         <dbk:firstname>Elliotte</dbk:firstname>
         <dbk:surname>Harold</dbk:surname>
       </dbk:personname>
     </dbk:author>
   </dbk:info>
   <dbk:para>XML rocks!</dbk:para>
</dbk:article> 
  
  此规范并未引起广泛关注,但它对在多种环境中进行发布的人(就目前而言,几乎包括所有人)来说非常有用。

  在 4 月,W3C Internationalization Activity 还发布了国际化最佳实践的完结版:指定 XHTML 和 HTML 内容中的语言。我将该建议总结为 16 条 “最佳实践”:

  最佳实践 1:总是使用 html 标记属性声明页面文本的默认语言,除非文档包含针对使用多种语言的演讲者的内容。

  最佳实践 2:如果文档包含针对使用多种语言的演讲者的内容,决定是否需要在 html 标志中声明一种语言,或者不定义语言。

  最佳实践 3:如果文档包含针对使用多种语言的演讲者的内容,尝试根据最可能使用的语言对文档进行划分,并为每部分声明合适的语言。

  最佳实践 4:在文本中使用 lang 和/或 xml:lang 属性来指出语言上的任何更改。

  最佳实践 5:对于 HTML,只使用 lang 属性;对于用作文本或 html 的 XHTML 1.0,使用 lang 和 xml:lang 属性;对于用作 XML 的 XHTML,只使用 xml:lang 属性。

  最佳实践 6:使用语言属性声明用于文本处理的默认语言,而不是使用 HTTP 或元元素。

  最佳实践 7:不要在 body 元素中声明文档的默认语言,使用 html 元素。

  最佳实践 8:如果属性值中的文本和元素内容使用的语言不同,考虑使用嵌入式方法。

  最佳实践 9:考虑在 HTTP 报头使用 Content-Language 声明或者使用元标记声明文档目标受众的语言元数据。

  最佳实践 10:如果文档包含针对使用多种语言的演讲者的内容,结合使用 Content-Language 和以逗号分隔的语言标记列表。

  最佳实践 11:遵循 IETF 的 BCP 47 中关于语言属性值的指导。

  最佳实践 12:使用尽可能短的语言标记值。

  最佳实践 13:如果可能,使用代码 zh-Hans 和 zh-Hant 分别指代简体中文和繁体中文。

  最佳实践 14:当指向另一种语言中的资源时,考虑指明目标文档语言的优缺点。

  最佳实践 15:如果希望指出一个元素的目标文档使用的是另一种语言,考虑结合使用 CSS 和 hreflang 的优缺点。

  最佳实践 16:不要使用标志图标指明语言。

  5 月

  MathML 是最初的几个 XML 应用程序之一,但遗憾的是它的实际应用有限。尽管如此,W3C Math Working Group 并没有放弃,并在 4 月末发行了 MathML 3 的第一个草案(是的,我知道本节应该总结 5 月份的事件,但 5 月份并没有发生太多的 XML 事件)。

  MathML 3 最重要的功能是支持小学数学符号。毕竟,小学生比数学博士多得多,比例大概是 100 000 比 1。MathML 3 还添加了对双向布局的支持,并针对改良的排版对断行和定位方法进行了改进。最后,经过重写之后的规范条理更加清晰。我们希望第 3 次修改会更好。毕竟,Web 是为数学而诞生的。

  6 月

  在 6 月,OpenOffice Project 发布了 OpenOffice 2.2,这是一个跨平台的 office 套件,它将所有文件保存为国际标准 OpenDoc 格式的压缩 XML 文件。这几乎是一个 bug 修复版,不值得在一篇年度回顾文章中提及。但真正值得一提的是 OpenOffice Project 在发布针对 Linux® 和 Microsoft® Windows® 的版本的同时,还发布了第一个原生 Mac OS X 版本。

  与 Mac 上以前的不完全版本(semi-releases)不同,2.2 版基于 Mac 的原生 Aqua 用户接口工具箱,而不是 X-Windows。虽然 Mac 版本只具有内部测试版品质(alpha quality),但仍然极大推动了 OpenOffice,使其离成为 Microsoft Office 有力竞争者这一目标更进一步。如果 OpenOffice 能够吸引大量使用 MacBook 的编程人员,那么它最终可能消除自 1.0 版就存在的用户界面问题。

  6 月里也发生了与浏览器端相关的重大事件,Apple 在这一月发布了 Safari 3.0 for Windows 的第一个测试版。Apple 不再满足于 6%(仍在增长)的市场份额,它似乎要在大后方向 Microsoft 发起全面挑战。首先是 iTunes,现在是 Safari?iLife 和 iWork 还会很远吗?只有在 2008 年才能看到结果。同时,Safari 支持 XML、XSLT、Cascading Style Sheets (CSS)、XHTML、Atom 和 RSS。Safari 的 CSS 支持比任何其他 Windows 平台的浏览器都要好。由于被 Google 搞得心烦意乱,Microsoft 可能未注意到 Apple 已经从后面偷偷赶上了。

IT培训

软件资讯·软件下载尽在天极软件

共2页。 1 2 下一页 末页
相关搜索:
关注此文读者还看过
文章排行
本周
本月
最近更新
关于我们|About us|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868 023-63659988
版权声明 在线提交意见反馈 渝ICP证B2-20030003号
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|52PK游戏网|IT分众