XML 2.0还在发展中吗?踏着WML尸骨前进

发表于:2007-06-11来源:作者:点击数: 标签:
【51CTO.com独家特稿】任何人都不得不承认,XML已经非常成功了。尽管XML还有那么多值得我们烦恼的地方,我们仍然有足够的理由去专注于它的页面,除了网络方面,几乎到处都有用XML编写的应用程序。 在2006年的XML会议上,Douglas Crockford先生总结了他的讲话

【51CTO.com独家特稿】任何人都不得不承认,XML已经非常成功了。尽管XML还有那么多值得我们烦恼的地方,我们仍然有足够的理由去专注于它的页面,除了网络方面,几乎到处都有用XML编写的应用程序。

在2006年的XML会议上,Douglas Crockford先生总结了他的讲话,他提到了非常多的声音在宣布XML在网络方面的死亡。一些人接受了这个说法,另一些人坚持说XML仍然是一个足够强壮的语言,还有一些人则说,“在服务器方面,XML仍然有着不可忽略的地位。如果我们到处说XML已经死了,那么人们就会开始寻找更好的代替XML的东西。”。这已经不是第一次,XML被声明在网络方面的死亡:可以追溯到2004年的时候,Mark Pilgrim先生就有一个差不多的论述。

然而,这些观点都忽视了一个方面,就是移动网络,各种各样的模块化的XHTML已经悄悄的成长起来了。在执行的效率方面,尽管使用HTML的个人浏览器已经有了长足的进步,但是因为XHTML有着更加严格并且良好的结构,以及清楚的层次的核心概念,所以XHTML在移动网络方面是非常活跃和健康的。在这方面,XHTML继续着稳定的发展,稳步的踏着WML的尸骨前进。

在移动网络方面之外,事情看起来就不同了。如果非要说在普通的网络上,XHTML已经事实上取代了HTML,就未免太过夸张了。为什么呢?一个可能的答案是,对于早期的开发者来说,移动网络方面明显更适合XML;XML内在的主要优点是,它的性价比非常好。除了移动网络,其他方面,大家似乎已经适应了这些缓慢的脚本,但是到最后,绕了一圈还是会返回到那个很明显的更好的方式上,就是使用XML。毕竟,JavaScript有着严格的动态规则,相对较苛刻的因果关系,所以大家很难去迎合它,可所有的这些都没有减缓Ajax和其他相似的客户端的发展。

仔细想想也挺有意思的,相比较网络其他的方面,为什么网络的一个小小的方面--移动网络,使得XHTML可以发展的如此迅速。在这篇文章的最后,我们欢迎读者的意见。第二个问题是,JavaScript的接受度是否意味是这“严格的”处理错误的方式,包括严格的良好的排版,他们的胜利呢?我可不这么认为。有很多写出糟糕页面的方式,但是构造良好的页面会在脚本错误的事件(或者一个相似的但是有着残缺脚本的浏览器案例)中继续运行。一个有着糟糕的JavaScript错误的网络页面仍是一个网络页面,而不是一条错误的信息。事实上,随着时间的流逝,浏览器厂商已经使可见的脚本错误变得越来越少了,厂商把它们都放到了一个隐藏的错误控制台中。

所以脚本就获得了一个引人注意的中间位置,一个是页面要有良好的组织构成--这需要进行严格的处理,否则会出现一个带有程序错误的信息提示。还有更有效的方法是,干脆就简单的标记各种情况,而不是为了相冲突的执行解释,把每件事都完全的公开这一致命的错误。标记和脚本的结合定义了一个处理模型,使它能够持续的面临一些不可避免的错误。这种结合在网络上会工作的更好。

不能说XML在网络上死了,更准确的应该说良好的结构在网络上死了(再说一次,在移动网络方面这绝对是个意外)。

让我们再次回过头来讨论关于SGML简化为2.0。有很多思考XML的方式,但是历史上的倾向是,这是一个派生的--作为最初的SGML的简化。但是在XML被发明之前,一个简单化的,SGML的子集的种子就已经被播种在一个它不可能生长的地方,这就是大家知道的HTML。例如,HTML 2.0主张“HTML文件是有着普通语义的SGML文件,在一个很大的范围内,用HTML表达信息都会很合适。”实际上,没有被普遍使用的浏览器通过SGML 剖析器处理HTML,尽管一些在线的validators组件也这么做,并且也许会这么继续做下去,好像起着稳定乱局的作用。但事实上,在应用中呢!每一个被广泛使用的浏览器都有他们自定义的剖析器,既不是XML,也不是SGML,这些剖析器虽然不那么文雅但却经的起考验。

浏览器厂商正在分别设计和实现这些离奇的剖析技术,并且分别设计和实现XML(我再把重要的时间点重复一下,HTML第一个草稿诞生于1993年,第一个Netscape Navigator浏览器的测试版诞生于1994年,HTML2.0诞生于1995年,第一个XML草图诞生于1996年,XML1.0诞生于1998年,正好是浏览器战争打的正火热的时候。)。结果,从未相遇的一对冤家相遇了。浏览器卖家特别注意所有无组织作者那些愚蠢的、乱七八糟的,达不到预期目标的方法,然后通过魔术般的消息来源,迅速的拷贝对方那些可疑的习惯。如果说XML和他们有什么不同的话,XML反对这些混乱的方式,XML本身有着严格的规定,好像自己和这个现有的网络现实相差很远。

很有趣的是,在Tim Bray先生的眼睛里,XML2.0的种子被播种,浇水,发芽,甚至还在XML1.0出现之前。就像他在以前的专栏里提到的,Tim Berners-Lee先生在他的BLOG里提议关于重新开始书写HTML,这对WHAT WG(一个被浏览器卖家单独邀请的小组和感兴趣的团队)影响深远。还将包括凌乱的动态讨论。有益的是,这是在努力尝试简单化SGML的规则;官方管他叫XML2,非官方把它命名为“HTML5”。

我要再把这个重要的观点重复一遍:XML2,无论怎么样,最终如何命名,它都已经在开发中了,并且开发了一段时间了,而且在以它的方式成为官方的W3C推荐文档。

这种影响程度,在网络范围内就暗示着,已经吸引了一些注意。一部分原因是,动态规范不是单独的文件,而是作为XML的事例,但是可以合并作为广泛说明的一部分。这就引起了下面一些有趣的问题。

HTML在网络上真的就是个特例吗?能有可能有一个单独的、多种用途的语法被用到HTML和其他的地方上吗?或者把HTML用在另一个方面上,给一个语言表达HTML语义的能力,并且在现在的网络上稍微协调下,使它可以在其他的地方,像出版业、内容管理或者信息交换上有用吗?如果答案是能,作为单独的、个别的规范的具体表达,这个网络就能更好的服务于XML2。设想一下如果XML是第一个指定作为XHTML一部分的语言。它能达到更高的高度吗?良好设计技术的特点是,它能够使用的地方连创作者本人都没有想到。如果工作组把XML2限制在一个相对过窄的背景下,那它就不大可能出现上述特点了。幸运的是,人们开始注意到这个问题了。举个例子说,Sam Ruby先生已经在blog上说了他的经验,并递交了语法注释,然后,结果是,W3C工作组排除了一些在XML和XML2之间不相容的元素。

根据TimBL先生的博客,新的W3C工作组将会追求HTML和XHTML的平行的发展。这会造成进一步的紧张状态。有一件事需要强调一下,被新的SGML简单化拒绝的是命名空间的处理,我们之前讨论过的。仅通过这一点很难看出来HTML和XHTML的平行发展会继续走多远。举个例子说,在努力使SVG嵌入到HTML时,将会产生什么争论?为了HTML的使用,整个XML工具包需要被分解吗?以命名空间为中心的技术,像XML Schema或者XQuery会怎么样?看来工作组有不少艰难的决定要做了。

很可能,在我写这篇文章的时候,W3C会员领域正在进行新的HTML的工作。如果你和W3C的成员组织有联系并且关心XML,这将会是最好的时机去让你的观点被大家知道。现在就说或者永远带着你的烦恼或者至少在XML3诞生之前说出你的想法。

备注:

1、Douglas Crockford 先生是State Software公司的创始人及CTO。他曾是Electric Communities的创立CEO,Paramount公司的新媒体主管以及Lucasfilm Ltd公司的技术主管,尤其擅长JAVASCIPT。

2、W3C是万维网联盟(World Wide Web Consortium)英文的缩写,它成立于1994年10月,以开放论坛的方式来促进开发互通技术(包括规格、指南、软件和工具),来开发网络的全部潜能。万维网联盟(W3C)在成立短短不到十年间,已开发了超过数十个网络基础建设的技术规格,领导着网络技术的向前发展。

原文链接:MILY: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">http://www.xml.com/pub/a/2007/01/10/is-xml-20-under-development.html

(责任编辑 火凤凰 sunsj@51cto.com  QQ:34067741  TEL:(010)68476636-8007)



原文转自:http://www.ltesting.net

...