[阅读报告]揭示XProc——使用管道技术支持XML应用环境
2009-06-29 09:41
453 查看
资料名称 揭示XProc——使用管道技术支持XML应用环境
作 者 James R. Fuller
作者单位 FlameDigital Limited
出 处 developerWorks中国
阅读时间 2009.6.21~2009.6.26
1、主要讲述内容
该文主要介绍了XML处理模型(XProc)。首先简要介绍了XProc的来源和历史,并对XProc的设计思想提出了自己的观点。接着作者介绍了XProc词汇表,可分为三个类别:核心元素、辅助元素和一个标准的步骤库。作者还介绍了XProc的一些示例管道,包括简单的隐式管道和复杂管道。最后作者就XProc目前的开发状态进行了说明。
2、涉及到的问题
(1) 什么是XProc?
(2) 为什么需要XProc?
(3) XProc包括哪些内容?
(4) 怎样使用XProc?
(5) XProc的发展状况?
3、作者的观点
XProc 是一种描述处理管道的标记语言,由一些在XML文档上进行操作的离散步骤组成。Xproc的说明性格式以及管道思想的简单性,将意味着非技术人员能够参与处理工作流的编写和维护。在许多配置中,XProc都能够进行流线化,而其他控制XML处理的方法却无法实现这一点(例如XSLT)。XProc步骤专注于执行具体操作,随着时间的推移,这种方法将比一次性代码具有更好的优化性能。XProc的标准步骤和扩展机制使XProc成为了一种全能的解决方案。XProc的设计灵感来自UNIX管理,从现有管道创建新的步骤非常容易,可以使用扩展步骤创建第三方库来扩充XProc处理器本身的功能。
为什么需要XProc? 作者的回答是XProc与平台无关,只有能够运行兼容XProc的处理器的地方就可以运行XProc。随着XML渗透到各个计算领域,如果能够找到像XProc这样的独立且容易理解的方法来处理日益膨胀的XML应用领域,那么这种方法必定是一种革命性的技术。XProc标准库,连同可以编写自己的第三方步骤库的扩展功能,为现有和未来的XML处理器带来了强大的动力。
XProc标准对XML文档处理操作进行了归纳,可以分为以下几类:
1> XSLT、XQuery、XInclude处理
2> 模式验证
3> XML更新操作 XProc相关资料
4> XML存储和检索
5> 对XML进行包装、解包、转义(escape)和转回(unescape)
6> HTTP请求
7> 执行本机命令
作者给了如下形式的XProc文档实例:
<p:pipeline xmlns:p="http://www.w3.org/ns/xproc" name="xslt-example">
<p:xslt>
<p:input port="stylesheet">
<p:document href="mystylesheet.xslt"/>
</p:input>
</p:xslt>
</p:pipeline>
XProc标准目前还在草案阶段,随着标准的演化,XProc在语法和语义都有了很大的变化。当前的工作草案也进行了重大改进,它重新编写了规范,诠释了<p:option>元素的一些概念,同时支持了XPath和XSLT的第1版和第2版。
4、自我评价
通过阅读这篇文章,了解了XProc的发展过程与用途,理清XML文档的常用操作,并在软件的设计思路方面有一些启发。
5、提出的待改进和提高之处
作者提出了XProc在发展过程有待解决的几个问题:
1> 命名空间:XProc处理XML文档,这意味着需要执行大量操作的,处理器必须跟踪文档中的命名空间,那么必须让XProc应用一个修复操作,以确保将移除的命名空间声明复制到最终XML 文档的子元素中,注意不要覆盖其他有效的命名空间声明。
2> XSLT和XPath版本:XProc工作的时间选择说明它在XPath和XSLT版本之间的应用周期中找到了自己的定位,XProc需要解决支持多种XPath和XSLT版本的棘手问题。
3> 选项、变量和参数:处理过程涉及的选项,变量和参数太多,作者认为单个实体就足够完成任务。
4> 流:XProc控制的XML技术优势不会完全成为标准流,这可能算是早期优化,尤其是在MapReduce和并行化技术占主导地位的环境中。(这一点我没看懂 ??)
6、阅读者的观点
项目目前已经应用了XML、ML Schema,XSLT、Path/XQuery、Query Update等标准,在这些应用中,也归纳了出XML文档的一系列操作,包括载入文档、删除文档、更新文档、查询文档、转换文档格式、验证文档格式等操作,这些操作以C语言接口的形式的表现出来。而XProc标准更准确的将XML文档的操作归纳出来,并用XML管道描述语言描述这些操作。这样的做法是很有意义的,XML文档操作被标准化后,更加有利于XML文档的开发与应用,也能简化系统之间的交互与集成过程,因为有了XProc之后,不同的系统能使用相同语言来描述XML文档处理过程。如果说XML文档的应用能促进程序的数据与代码的分离,那么XProc的出现,使应用程序框架与业务逻辑的分离有了可能。未来可能出现这样一种开发模式,开发人员用C/C++、Java等程序设计语言实现一个能执行XProc描述文档的框架,再将业务逻辑用XML管道语言描述出来,这样面对新的业务需求,只需添加XProc描述文档,而无需修改框架,甚至无需重新编译链接程序。从这个层面来说,XProc能简化开发过程,将开发人员从硬码中解放出来,使业务的定义和描述成为系统开发的主要内容。
7、XProc相关资料:
XProc: An XML Pipeline Language http://www.w3.org/TR/2009/CR-xproc-20090528/
揭示 XProc http://www.ibm.com/developerworks/cn/xml/x-xproc/
XML 处理模型 http://www.ibm.com/developerworks/cn/xml/standards/x-xprocspec.html
XProc实现及测试用例 http://xproc.org/implementations/
Norman.Walsh的个人网站 http://norman.walsh.name/
作 者 James R. Fuller
作者单位 FlameDigital Limited
出 处 developerWorks中国
阅读时间 2009.6.21~2009.6.26
1、主要讲述内容
该文主要介绍了XML处理模型(XProc)。首先简要介绍了XProc的来源和历史,并对XProc的设计思想提出了自己的观点。接着作者介绍了XProc词汇表,可分为三个类别:核心元素、辅助元素和一个标准的步骤库。作者还介绍了XProc的一些示例管道,包括简单的隐式管道和复杂管道。最后作者就XProc目前的开发状态进行了说明。
2、涉及到的问题
(1) 什么是XProc?
(2) 为什么需要XProc?
(3) XProc包括哪些内容?
(4) 怎样使用XProc?
(5) XProc的发展状况?
3、作者的观点
XProc 是一种描述处理管道的标记语言,由一些在XML文档上进行操作的离散步骤组成。Xproc的说明性格式以及管道思想的简单性,将意味着非技术人员能够参与处理工作流的编写和维护。在许多配置中,XProc都能够进行流线化,而其他控制XML处理的方法却无法实现这一点(例如XSLT)。XProc步骤专注于执行具体操作,随着时间的推移,这种方法将比一次性代码具有更好的优化性能。XProc的标准步骤和扩展机制使XProc成为了一种全能的解决方案。XProc的设计灵感来自UNIX管理,从现有管道创建新的步骤非常容易,可以使用扩展步骤创建第三方库来扩充XProc处理器本身的功能。
为什么需要XProc? 作者的回答是XProc与平台无关,只有能够运行兼容XProc的处理器的地方就可以运行XProc。随着XML渗透到各个计算领域,如果能够找到像XProc这样的独立且容易理解的方法来处理日益膨胀的XML应用领域,那么这种方法必定是一种革命性的技术。XProc标准库,连同可以编写自己的第三方步骤库的扩展功能,为现有和未来的XML处理器带来了强大的动力。
XProc标准对XML文档处理操作进行了归纳,可以分为以下几类:
1> XSLT、XQuery、XInclude处理
2> 模式验证
3> XML更新操作 XProc相关资料
4> XML存储和检索
5> 对XML进行包装、解包、转义(escape)和转回(unescape)
6> HTTP请求
7> 执行本机命令
作者给了如下形式的XProc文档实例:
<p:pipeline xmlns:p="http://www.w3.org/ns/xproc" name="xslt-example">
<p:xslt>
<p:input port="stylesheet">
<p:document href="mystylesheet.xslt"/>
</p:input>
</p:xslt>
</p:pipeline>
XProc标准目前还在草案阶段,随着标准的演化,XProc在语法和语义都有了很大的变化。当前的工作草案也进行了重大改进,它重新编写了规范,诠释了<p:option>元素的一些概念,同时支持了XPath和XSLT的第1版和第2版。
4、自我评价
通过阅读这篇文章,了解了XProc的发展过程与用途,理清XML文档的常用操作,并在软件的设计思路方面有一些启发。
5、提出的待改进和提高之处
作者提出了XProc在发展过程有待解决的几个问题:
1> 命名空间:XProc处理XML文档,这意味着需要执行大量操作的,处理器必须跟踪文档中的命名空间,那么必须让XProc应用一个修复操作,以确保将移除的命名空间声明复制到最终XML 文档的子元素中,注意不要覆盖其他有效的命名空间声明。
2> XSLT和XPath版本:XProc工作的时间选择说明它在XPath和XSLT版本之间的应用周期中找到了自己的定位,XProc需要解决支持多种XPath和XSLT版本的棘手问题。
3> 选项、变量和参数:处理过程涉及的选项,变量和参数太多,作者认为单个实体就足够完成任务。
4> 流:XProc控制的XML技术优势不会完全成为标准流,这可能算是早期优化,尤其是在MapReduce和并行化技术占主导地位的环境中。(这一点我没看懂 ??)
6、阅读者的观点
项目目前已经应用了XML、ML Schema,XSLT、Path/XQuery、Query Update等标准,在这些应用中,也归纳了出XML文档的一系列操作,包括载入文档、删除文档、更新文档、查询文档、转换文档格式、验证文档格式等操作,这些操作以C语言接口的形式的表现出来。而XProc标准更准确的将XML文档的操作归纳出来,并用XML管道描述语言描述这些操作。这样的做法是很有意义的,XML文档操作被标准化后,更加有利于XML文档的开发与应用,也能简化系统之间的交互与集成过程,因为有了XProc之后,不同的系统能使用相同语言来描述XML文档处理过程。如果说XML文档的应用能促进程序的数据与代码的分离,那么XProc的出现,使应用程序框架与业务逻辑的分离有了可能。未来可能出现这样一种开发模式,开发人员用C/C++、Java等程序设计语言实现一个能执行XProc描述文档的框架,再将业务逻辑用XML管道语言描述出来,这样面对新的业务需求,只需添加XProc描述文档,而无需修改框架,甚至无需重新编译链接程序。从这个层面来说,XProc能简化开发过程,将开发人员从硬码中解放出来,使业务的定义和描述成为系统开发的主要内容。
7、XProc相关资料:
XProc: An XML Pipeline Language http://www.w3.org/TR/2009/CR-xproc-20090528/
揭示 XProc http://www.ibm.com/developerworks/cn/xml/x-xproc/
XML 处理模型 http://www.ibm.com/developerworks/cn/xml/standards/x-xprocspec.html
XProc实现及测试用例 http://xproc.org/implementations/
Norman.Walsh的个人网站 http://norman.walsh.name/
相关文章推荐
- 读取、回收和重用:使用 Excel、XML 和 Java 技术轻松搞定报告在 XML 和 Excel 报告格式之间转换(2)
- 【Linux开发技术之工具使用】配置VIM下编程和代码阅读环境
- 使用cordova/phonegap 开发应用前请阅读,环境搭建,UI选择,低端机性能问题解决
- 使用IntelliJ IDEA配置Spark应用开发环境及源码阅读环境
- 读取、回收和重用:使用 Excel、XML 和 Java 技术轻松搞定报告使用 Java 和 XML 技术读取 Excel 文件并写入新文件(1)
- 【Linux开发技术之工具使用】配置VIM下编程和代码阅读环境
- 如何使用Google APIs和Google应用系统集成(7)----在里面JSON兑换XML数据处理,JSON数据包括违规XML数据规范:XML节点名称不支持号码Java解
- 在.NET环境下的XML应用简介(1)——使用XmlTextReader读取XML文档
- 【Linux开发技术之工具使用】配置VIM下编程和代码阅读环境 - gnuhpc - 博客园
- 读取、回收和重用:使用 Excel、XML 和 Java 技术轻松搞定报告,第 2 部分
- (转)【Linux开发技术之工具使用】配置VIM下编程和代码阅读环境
- 【Linux开发技术之工具使用】配置VIM下编程和代码阅读环境
- windows8开发-metro应用中使用xml+json作为数据存储方式
- Docker 学习应用篇三:使用docker搭建的环境,安装thinksns
- 使用maven构建XML风格的Spring4 MVC应用
- JBoss 系列九十一:JBoss 构建的高可用集群环境使用 Apache 的 mod_rewrite 转发根路径到特定应用
- WebService技术总结(三):项目实战——使用XML,dom4j,Xpath实现远程调用
- 多线程执行环境,使用线程安全类---多线程应用实例
- 使用Kotlin&Anko, 扔掉XML开发Android应用
- 综合应用WPF/WCF/WF/LINQ之五:将Workflow使用WCF技术Host到IIS中,并实现调用