- 热门文章:
- · SQL Server 2000 XML 概述
- · XML简明教程(六)
- · XML简明教程(五)
- · XML简明教程(四)
- · XML简明教程(三)
- · XML简明教程(二)
- · XML简明教程(一)
- · XML资源
- · XML介绍
- · 在XSL里应用javascript/C# Script等
- · XML Name Space----XML 命名空间
- · .NET中的xpath
上一篇:XML文件到RTF和PDF的转换 >>
探索 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?
路还很长……
下一篇:SQL Server 2000 XML 概述 >>
相关文章:
- · XML 与 HTML 的主要区别
- · XML和数据库
- · Chinese XML FAQ
- · XML的学习笔记
- · XML操作类
- · 访问XML数据的三中基于树模型||基于游标||流式API比较
- · XMLHttpRequest的同步和异步请求
- · 理解XForm——学习IBM DW的资料 (4)
- · 理解XForm——学习IBM DW的资料 (3)
- · 用JDOM实现数据库到XML的转换
- · 在 XML Schema和WSDL中使用名称空间
- · 利用客户端XSLT样式表转换xml文档
- · 尽量避免使用中文XML标签
- · 用XML结合数据库,给服务器减负
- · 在.NET中利用XMLHTTP下载文件
- · XML文件显示、修改、查找
- · 使用xml绑定实现分页功能
- · XML 属性顺序
- · XSLT轻松入门
- · XSL语法介绍
- · Flash And XML
- · XML 中的常见问题
- · 修改大型 XML 文件的有效方法
- · XML Schema学习笔记(二)
- · 用Asp.net实现基于XML的留言簿之四
- · 用Asp.net实现基于XML的留言簿之三
- · 用Asp.net实现基于XML的留言簿之二
- · 用Asp.net实现基于XML的留言簿之一
- · XML基础入门(一)
- · Ms XmlDom 异步装载Xml文件
- · 自定义 XML 文件在 TreeView 控件中的使用
- · 在C#中操作XML
- · 使用 Visual C# .NET 向 Microsoft Excel 2002 传输 XML 数据
- · 使用 Visual C# .NET 向 Microsoft Excel 2002 传输 XML 数据
- · .NET中书写XML的一种简单方法
- · 在C#使用XML注释
- · 使用.NET读取XML文件
- · 使用多线程加载多个Xml文件到TreeView控件
