这两天刚学XSL,觉得是个不错的东西,值得深入研究一下,XSL的命名空间,我看到的有两种写法:
<!--
第一种
-->
< xsl:stylesheet xmlns:xsl ="http://www.w3.org/TR/WD-xsl" >
<!-- 第二种 -->
< xsl:stylesheet version ="1.0" xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" >
< xsl:stylesheet xmlns:xsl ="http://www.w3.org/TR/WD-xsl" >
<!-- 第二种 -->
< xsl:stylesheet version ="1.0" xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" >
我因为忽略了这行的区别,导致我郁闷了好半天, 后来search到了两个贴子,特意转过来。
源:http://bbs.51js.com/viewthread.php?tid=42672
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">命名空间 是草案,
FireFox不支持草案版
XSL的名称空间改成标准:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
FireFox不支持草案版
XSL的名称空间改成标准:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
源:http://bbs.xml.org.cn/dispbbs.asp?boardID=8&ID=39590
微软的资料:
升级到新的 XSLT 语法
提升性能的下一步需要更多的工作,但这是值得付出努力的。在这里,我们将旧的 MSXML XSL 样式表转换为新的 XSLT 标准。MSXML 最初是在 1999 年 3 月 W3C XSL 工作组完成正式标准之前发布的。在 3 月和 11 月之间,制定建议之后,又在语言中添加了许多绝佳的新内容。考虑到这些变化,我们将 XSL 样式表进行了如下升级:
•
1. 将旧的 XSL 命名空间 URN 转换为 http://www.w3.org/1999/XSL/Transform。
•
2. 向 < xsl:stylesheet > 根元素中添加必需的 version="1.0"。
•
3. 将 order-by 属性更改为 < xsl:sort > 元素,并相应地更改 DHTML 脚本代码,以便您可以动态地重新排序页面。
•
4. 将 averageChange() 函数的 < xsl:eval > 调用替换为标准的 XPath 表达式:
< xsl:value-of
select ="format-number(sum(/portfolio/stock/percent)
div count(/portfolio/stock),'#.#')" />
•
5. 将 totalVolume() 的 xsl:eval 调用替换为另一个标准表达式:
< xsl:value-of select =
"format-number(sum(/portfolio/stock/volume),'#')" />
•
6. 完全移除旧的 < xsl:script > 块(因为不再需要它)。
•
7. 将所有其他 < xsl:eval > 调用替换为直接的 format-number 调用,例如,价格和更改模板现在包含:
< xsl:value-of
select ="format-number(.,'0.00')" />
•
8. 更改旧的 expr="...">,以使用新的 XPath 表达式来执行相同的操作:
< xsl:if test =". < -5" >
结果是 portfolio3.xsl。要使用这个新的样式表,我们只需更改下行:
xsl.load(Server.MapPath("../portfolio3.xsl"));
使用这个样式表会导致每秒处理的请求数骤增为 99,与旧的 XSL 样式表相比,性能提升了 115%。现在,示例的总吞吐量比 MSXML 2.5 增加了 253%。大多数改进得益于我们从样式表中成功移除了 JScript 的所有调用。
升级到新的 XSLT 语法
提升性能的下一步需要更多的工作,但这是值得付出努力的。在这里,我们将旧的 MSXML XSL 样式表转换为新的 XSLT 标准。MSXML 最初是在 1999 年 3 月 W3C XSL 工作组完成正式标准之前发布的。在 3 月和 11 月之间,制定建议之后,又在语言中添加了许多绝佳的新内容。考虑到这些变化,我们将 XSL 样式表进行了如下升级:
•
1. 将旧的 XSL 命名空间 URN 转换为 http://www.w3.org/1999/XSL/Transform。
•
2. 向 < xsl:stylesheet > 根元素中添加必需的 version="1.0"。
•
3. 将 order-by 属性更改为 < xsl:sort > 元素,并相应地更改 DHTML 脚本代码,以便您可以动态地重新排序页面。
•
4. 将 averageChange() 函数的 < xsl:eval > 调用替换为标准的 XPath 表达式:
< xsl:value-of
select ="format-number(sum(/portfolio/stock/percent)
div count(/portfolio/stock),'#.#')" />
•
5. 将 totalVolume() 的 xsl:eval 调用替换为另一个标准表达式:
< xsl:value-of select =
"format-number(sum(/portfolio/stock/volume),'#')" />
•
6. 完全移除旧的 < xsl:script > 块(因为不再需要它)。
•
7. 将所有其他 < xsl:eval > 调用替换为直接的 format-number 调用,例如,价格和更改模板现在包含:
< xsl:value-of
select ="format-number(.,'0.00')" />
•
8. 更改旧的 expr="...">,以使用新的 XPath 表达式来执行相同的操作:
< xsl:if test =". < -5" >
结果是 portfolio3.xsl。要使用这个新的样式表,我们只需更改下行:
xsl.load(Server.MapPath("../portfolio3.xsl"));
使用这个样式表会导致每秒处理的请求数骤增为 99,与旧的 XSL 样式表相比,性能提升了 115%。现在,示例的总吞吐量比 MSXML 2.5 增加了 253%。大多数改进得益于我们从样式表中成功移除了 JScript 的所有调用。