探索 XML 的替代语法 —— 阅读和思考

原创 2004年10月18日 16:49:00

http://www-900.ibm.com/developerWorks/cn/xml/x-syntax/index.shtml

非常棒的文章!它涉及我一直以来考虑的问题,如何简化xml的编辑(它明确指出了我未确切意识到的xml编辑困难的一个根源:即最商业化的XML编辑器也在一定程度上需要定位和点击,这成为快捷自由地编写内容的拦路虎)。

与wiki一样,更简洁的超文本语言也是我早期naxt项目尝试的出发点。实际上在中期,我已意识到即使我很严谨的切分出module/level,要保持一个一致的特性集合和语法,就需要对应用范围做更明确的限定。故现在我倾向于将naxt定义为xhtml2(或其子集)的一个等价的紧凑语法。这样避免对语义的过多纠缠。

在naxt项目的尝试中,我逐渐转向到编写通用的txt2xml文法解析器和转换器上。BTW,在把xml降格为特定领域的简单文本格式的同时,我所关注的另一条线路是特定xml编辑器的通用表达(而不是为每个方言专门以重量级语言写一个专门编辑器),例如我对把xforms作为一般化xml编辑界面定义语言具有极大期望。

继续,上文提到许多值得参考的设计(如非常成功的relax ng及其compact语法),特别是xsltxt。事实上,从第一次接触到resin的StyleScript,我也独自考虑xslt的紧凑语法久矣。这样我有以下可以借鉴的:xslt本身、XSLT-lite(StyleScript), XSLTXT, XQuery, JXPath, GPath。当然,我还有设计上的重大问题没有考虑清楚,是否是直接的xslt对应,还是可以更接近一种独立的模板语言(比如允许破坏well-formed,甚至超出声明性允许副作用)?尽管已经出现了groovy这样的通用和便利兼顾的敏捷语言,但我觉得仍有必要考虑xslt的方案,因为它是标准,平台中立,广泛接受,具有最大程度的互操作性(因此需要谨慎处理副作用这样的扩展),而且有独特而强大的“模板自动应用”。一般模板技术不具备这种抽象机制。

文章的结语提出了一些重要的问题,这是我已经意识到或尚未意识到的困扰和原则。

……压缩语法的不足是丧失了互操作性和能否经得住时间的考验。多数成果都来自于单独的第三方。还不完全清楚对千差万别的字符编码以及那些很少使用的 XML 成分(比如处理指令)提供什么样的支持。另外,多数情况下它们都只存在一个创始人,因此其想法很可能逐渐消亡

……不要忽视 XML 1.0 的互操作性及其对网络带来的影响,这些是 XML 的主要价值所在,也是使我们走到今天这一步的主要原因。

……在通用的 XML 替代语法之外,特定于应用的非 XML 语法似乎有更大的价值,特别是在那些需要创建大量内容的地方。……但是在易于编辑方面有一个合理的权衡。RELAX NG Compact 是一个很好的例子,说明了非 XML 语法确实能够揭示语言的底层概念和数据结构的秘密……

易于创建内容仍然是我所见过的有关使用替代 XML 表示最激烈的争论。编辑器开发似乎是计算中最棘手的难题之一,而且很少能找到帮助。

阅读和思考之后,我首先还是应该重写一个一般的txt2xml工具。不过这之前就要先定义一种表示文本文法的语言。之前我已经考虑许多类似工具,特别是以xi等几个以xml语法定义的rules,但是现在我猜测也许可以在某种程度上直接使用rng?

路还很长……

坚持学习,坚持阅读,坚持思考

1、知识更新非常快,大学一毕业就已经有40%的知识过时,一年不读书80%过时,三年不读书99%过时。这就要求我们不间断阅读,每年每月每星期每天都要阅读,只有长期的阅读才能不被淘汰;也只有长期阅读,才能...
  • MiniMicall
  • MiniMicall
  • 2014年09月02日 02:22
  • 765

杂记 思考的玩具

思考的玩具读书笔记 序言:仅仅阅读本书是不够的,要产生创意,你必须要经常应用这些技巧。 要学会控制战胜三种不利心理:恐惧心理,缺乏自信,自我怀疑,把这些消极的人生态度转化为一种崭新的积极的力量。方法如...
  • ysydao
  • ysydao
  • 2013年09月12日 14:59
  • 601

PHP中的替代语法

今天看了一下wordpress的代码,里面有些少见的php替代语法,
  • u011043843
  • u011043843
  • 2014年07月12日 18:04
  • 1382

深度探索C++对象模型 读书总结

Stanley B. Lippman 著 侯捷 译
  • xuzhezhaozhao
  • xuzhezhaozhao
  • 2014年10月26日 22:12
  • 1211

PHP流程控制中不常用的替代语法

准备做个wordpress的主题,结果看到了如下的语法: ...
  • lgh06
  • lgh06
  • 2015年07月11日 15:06
  • 831

一个导师的思考

最近导师制方面出现了很多问题,其实导师制一直都有问题,只是最近爆发的比较多而已。有的导师抱怨,有的导师清闲,学生的反映也不尽相同。         导师制本身没有问题,问题大都出在执行导师制的人身上...
  • lixueru0819
  • lixueru0819
  • 2012年04月28日 14:03
  • 996

数据驱动教育变革思享会 | 教育大数据企业平方创想走访活动回顾

清数大数据产业联盟与清华校友总会AI大数据专委会(筹)共同主办的 “教育大数据企业平方创想走访暨教育大数据行业思享会”于2017年11月10日下午在平方创想教育科技(北京)有限公司(以下简称Apply...
  • eNohtZvQiJxo00aTz3y8
  • eNohtZvQiJxo00aTz3y8
  • 2017年11月17日 00:00
  • 58

XML学习2:XML基本语法(一)

导入        一个XML文件可分为如下几部分内容:文档声明 、元素、属性、注释 、CDATA区 ,特殊字符 、处理指令 (processing instruction)等。        ...
  • erlian1992
  • erlian1992
  • 2016年06月02日 20:20
  • 4829

Xml学习笔记(一):xml语法格式

一.xml语法 一个完整的xml文档包括:文档声明、元素、属性、注释、CDATA区、处理指令;  1.文档声明   用来声明xml的基本属性,用来指挥解析引擎如何解析xml文件;   要求:一...
  • FightFightFight
  • FightFightFight
  • 2016年04月23日 16:00
  • 1215

XML的替换符

当想要动态xml文档中的文字并将其格式化显示时,文本框的htmlText属性总是最好的选择,而这同时需要在xml文本中加入一些html标签,但html标签和xml标签占用的是相同的字符,在xml中加入...
  • jomoonrain2
  • jomoonrain2
  • 2011年01月16日 21:11
  • 2118
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:探索 XML 的替代语法 —— 阅读和思考
举报原因:
原因补充:

(最多只允许输入30个字)