加入收藏 | 设为首页 | 会员中心 | 我要投稿 新余站长网 (https://www.0790zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

XSLT历史和性能介绍

发布时间:2024-01-04 03:43:39 所属栏目:教程 来源:DaWei
导读: XSLT历史

XSLT受到函数式编程语言和字符串模式匹配语言(如SNOBOL和AWK)的影响。它最直接的前辈是DSSSL,即为SGML的文件样式描述语言。

XSLT 1.0版本:XSLT是二十世纪末万维网联盟(
XSLT历史

XSLT受到函数式编程语言和字符串模式匹配语言(如SNOBOL和AWK)的影响。它最直接的前辈是DSSSL,即为SGML的文件样式描述语言。

XSLT 1.0版本:XSLT是二十世纪末万维网联盟(W3C)可扩展样式表语言(XSL)开发工作的一部分,该项目还产出了XSL-FO和XPath。编订XSLT规范的委员会成员,包括编辑James Clark,具备DSSSL的工作经验。W3C于1999年11月推荐发表了XSLT 1.0规范。

XSLT 2.0:XSL工作组在2001年尝试新创1.1版本中断之后,与XQuery工作组合作,产出了根基于XML纲要之上的XPath 2.0,具有更丰富的数据模型和类型系统;而XSLT 2.0是由Michael Kay主导开发的,在2007年1月成为推荐状态。然而至2010年,XSLT 1.0仍然被广泛使用,因为客户端的网络浏览器尚未内置支持XSLT 2.0,或因为处于LAMP架构环境中。

XSLT 3.0:于2017年6月8日成为W3C推荐书。主要新功能有:

流转换:在以前版本中,整个输入数据档必须在处理之前被读入内存,在处理完成之前无法写到输出(尽管Saxon有流扩展)。这个工作草案允许XML流,这对于处理内存容纳不下的过大数据档,或者在XML管道中连串变换时,是有用处的。

改进大型样式表的模块化。

改进动态错误的处理,例如xsl:try指令。

函数可以作为其它(高阶)函数的参数。

XSLT性能

早期大多数的XSLT处理器都是解释器。近来字节码越来越普遍,使用可移植的中间语言(如Java字节码或.NET中间语言)作为目标。然而,即使是解释器的成品通常也提供单独的分析和运行阶段,允许在内存中创建优化的表达式树,并可重复使用以运行多重转换。在线上发行应用程序时,这方式有显著的性能优势,其中同样的转换每秒可多次应用在不同的来源档之上。这种分离处理反映在XSLT处理器的应用编程接口(如JAXP)的设计中。

早期XSLT处理器很少被优化过。读取的样式表成为文档对象模型,而XSLT处理器会直接对它们产生作用。XPath引擎也没有被优化过。但是渐增地,XSLT处理器利用了函数式编程和数据库查询语言中发现的优化技术,例如表达式树的静态重写(例如,将计算移出循环),以及惰性的流评估来减少过程中所占内存的足迹(允许处理器对子表达式求值时,“提早退出”而不必运行全部,例如following-sibling::*)。许多处理器还使用比一般DOM实现更有效率(在空间和时间上)的树表达式。

 

(编辑:新余站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章