有些转换使用普通的XSLT功能是没法做到的。这种情况下,你可以使用Apache Xalan XSLT引擎和自定义的Java扩展在你的样式表里加入新函数。
让我们从测试一个简单的例子开始吧。假设你正在转换一个XML文档,你需要在转换过程中执行很多高级的操作。你也许需要参考历遍一个数据库中的表或者访问一个Web服务。这些函数很简单,但是XSLT没有直接提供。
我们假设:有了一个简单的定购XML文档,如清单1所示。那么问题是:我们的转换过程需要翻转Description元素中的字符。也许,它不符合现实世界中的情况,但是它可以演示了。
清单1:order.xml
<Order>
<Items>
<Item>
<SKU>19723</SKU>
<Description>Mechawidget Flange</Description>
</Item>
<Item>
<SKU>87123</SKU>
<Description>Hydrafluant Magnet</Description>
</Item>
<Item>
<SKU>662354</SKU>
<Description>Generic Rubber Seal</Description>
</Item>
<Item>
<SKU>967623</SKU>
<Description>Fluxating Plasmatron</Description>
</Item>
</Items>
</Order>