用于数据的XML: 用EXSLT扩展XSLT的功能

正如在过去的几篇专栏文章中所看到的那样,XSLT 1.0 提供了很好的文本转换功能,但实际上它还不够完善,不足以提供好的数据操作能力。客观地说,它从未打算要做到这一点;设计 XSLT 1.0 时,它的创建者无法知道它将会有怎样的复杂用法。但是,XSLT 1.0 规范的的确确提供了通过额外的元素和函数来扩展 XSLT 功能的机制。规范中的相关段落如下:

元素扩展机制允许将名称空间指定为扩展名称空间。当将名称空间指定为扩展名称空间,并且模板中出现带有该名称空间中名称的元素时,那么认为该元素是指令而不是文字结果元素。名称空间确定了指令的语义。 如果 FunctionCall 表达式中的 FunctionName 不是 NCName (也就是说,如果它包含了一个冒号),那么就将它当作是对扩展函数的调用。使用求值上下文中的名称空间声明将 FunctionName 扩展成一个名称。

这意味着,如果 XSLT 处理器开发人员想要添加更多的功能,他们可以随意而为 - 只要支持该功能的元素和函数名称出现在他们自己的名称空间里。利用这一特性而获得的首要成就之一就是 Mike Kay 的 Saxon XSLT 处理器:通过包括 saxon: 名称空间中的元素和属性,开发人员可以创建能执行复杂源文档操作的样式表。其弊端是这些样式表不再是可移植的了:它们在非 Saxon 处理器中不能正常运行。同样地,XSLT 的某些 Java 实现通过使用 java: 名称空间允许从样式表直接进行 Java 调用,从而扩展功能,但是在不支持该名称空间中元素和属性的处理器上,该样式表无法正常工作。

EXSLT 是什么?

为使 XSLT 扩展更加可移植,一组开发人员已经创建出了 EXSLT 规范。这是在设法标识对 XSLT 1.0 的有用扩展功能并将它们分成可在“照菜单点”的基础上实现的功能组。EXSLT 工作是开放式的;希望对此做出贡献的任何人都可以如愿以偿。

目前所定义的 EXSLT 模块有:

Dates and Times提供了大量的日期操作功能,包括计算两个日期之间的差,以及检索本地系统的当前日期和时间。

Dynamic为处理动态生成的 XPath 表达式提供了一种机制,来完成各种任务,包括检索值并选择最小和最大值。

Common提供了几个基本扩展函数,比如用于创建多个输出文件的机制和返回一个字符串的函数,该字符串包含了传入该函数的对象的类型。

Functions为用户提供了用来定义他们自己函数的机制。

Math提供了简单的数学函数,比如三角函数和对数函数。

Regular Expressions提供了正则表达式处理功能,包括选择字符串中与给定正则表达式相匹配的子字符串的函数,以及用不同的文字值替换匹配的子字符串的函数。

Sets提供了用于节点集操作的函数,包括返回两个节点集的交集和返回出现在一个节点集中而不在另一节点集中的节点。

Strings提供了一些非常有用的字符串操作函数,比如将字符串作为标志放入标志元素节点集的函数,以及连接节点集中所有节点的字符串值的函数。

时间: 2025-01-20 12:15:43

用于数据的XML: 用EXSLT扩展XSLT的功能的相关文章

[工具库]JOXMLBuilder工具类——一键把多个bean对象数据转换为XML格式数据

本人大四即将毕业的准程序员(JavaSE.JavaEE.android等)一枚,小项目也做过一点,于是乎一时兴起就写了一些工具. 我会在本博客中陆续发布一些平时可能会用到的工具. 代码质量可能不是很好,大家多担待! 代码或者思路有不妥之处,还希望大牛们能不吝赐教哈!   以下代码为本人原创,转载请注明: 本文转载,来自:http://www.cnblogs.com/tiantianbyconan/archive/2013/02/19/2917398.html   JOXMLBuilder工具类:

将Access数据转换为XML格式

access|xml|数据|转换 问:我怎样才能将Microsoft Access数据表中的数据转换为XML格式? 答:以下应用程序可以帮助您将Access数据转换为XML格式:Access 2002. ADO 2.5和SQLXML.您可以通过Access 2002(Microsoft Office XP的一部分)查询数据或者使用XML格式保存数据.您可能想自动完成这个转换过程.ADO 2.5及其后续版本使您可以将数据打开到一个记录集中,然后以XML格式持有记录集,如以下代码所示: rs.Sav

IT新技术名词:AJAX和SOAP——异步数据和XML获取

ajax|xml|数据|异步 IT新技术名词:AJAX和SOAP--异步数据和XML获取 AJAX:原文Asynchronous Javascript and XML applications,其实就是那些通过javascript来异步取得xml数 据的应用! 我觉得这个缩写最狭隘了,因为我完全可以把JS换成VBS嘛,那不就可以缩写成AVAX了?! 从这点上说,远不如SOAP,它的原文应该是Simple Object Access Protocol,简单对象访问协议(汗哪,我也 不敢确认呢.其实

ADO数据与XML数据间的转换的类

当对现有数据库的数据进行分析时,经常需要对某一部分的数据进行分析.此时,使用1.SQL查询分析器? 但其往往不直观,查找某个关键字又需要重新执行新的SQL.2.SQLXML模板? 但又不一定有权限建立新的虚拟目录,且某些SQL语句SQLXML模板不支持 数据拆离时也有相似问题.尤其当不同网络,不同环境,需要重新导入数据,进行分析或拆离,困难尤为明显.能不能有一种方法,可以将数据脱离于数据库进行分析,需要时再导入到数据库中?XML是个很好的选择!ADO本身支持数据到XML的转换,只需要对其格式进行

同时使用xml、schema和xslt的例子

以前从来没有用过 schema, 这次希望能给我的 xml 文件加上 namespace, schema, 然后用 xslt 转换成 html, 没想到花了不少功夫.现在我把工作正常的结果记录下来,希望对大家有些帮助. 先来看看我的 xml 文件.打算用来定义网页的菜单. <?xml version="1.0" encoding="GB2312"?><menu_items><menu_item href="index.html

Oracle中用于数据备份的触发器及表结构

运行本文的示例前,请对当前的数据表的插入.删除.更新等进行记录,并把操作日期.操作者.原来数据.现在数据都作为备份,以便在当前备出现问题的时候能够给以恢复. 注释:最好把备份表放在不同的磁盘上或不同的数据库中: 1.建立用于数据备份及操作记录的表: CREATE TABLE AUD_PRGAMD1( W_ROWID VARCHAR2(50), --行ID W_ACTION VARCHAR2(1), --操作 DTTM DATE, --操作日期 OPUSER VARCHAR2(30), --操作者

asp.net将datatable数据转换为xml下载

问题描述 asp.net将datatable数据直接转换为xml并下载吗?现在的程序是将datatable数据转换为xml文件并保持在服务器,然后再下载.不知道能跳过"将datatable生成xml文件保存在服务器"这一步,直接将datatable转换成xml文件下载吗? 解决方案 解决方案二:直接将xml字符串response出来就可以了啊,指定返回的是xml,你查下文件下载,思路一样的解决方案三:有点不能理解将datatable数据转换为xml文件并保持在服务器和将datatabl

xml-ASP数据插入XML,插进某个节点内。求大神

问题描述 ASP数据插入XML,插进某个节点内.求大神 10C 图片说明](http://img.ask.csdn.net/upload/201512/21/1450678470_554406.png) 图片说明](http://img.ask.csdn.net/upload/201512/21/1450678593_204250.png)想添加的数据放进: 里面,而不是外面. private string filePath = string.Empty; public void Addxml(

用于数据连接的最新的msado15.dll在那可以找到?

问题描述 用于数据连接的最新的msado15.dll在那可以找到? VB与ACCESS,用于数据连接的最新的msado15.dll在那可以找到? 解决方案 windows 2000以上系统自带,或者在mdac安装包里