动态XSLT转换:服务器端与客户端的实现与应用
在传统的XML转换中,我们常常使用命令行进行批量处理。这种方式在样式表开发初期具有一定优势,例如便于调试、可使用多种处理器排查问题以及获取样式表性能信息等。然而,在实际系统中,批量处理往往并非最佳选择。因为转换结果可能因样式表修改、源文档变化等多种因素而改变,每次文档变更都需重新运行转换,容易导致转换后的文档与原始文档不同步。而动态处理则能自动反映源文档的变化,为我们带来更灵活的应用体验。
1. 动态转换的类型
动态XSLT转换主要分为服务器端和客户端两种类型。
1.1 服务器端转换
服务器端转换是指客户端向服务器发起页面请求,服务器接收请求后,确定要使用的XML数据和XSLT样式表,进行转换并将结果返回给客户端。其优点在于服务器可根据请求头信息为不同客户端提供不同内容,开发者能控制样式表的使用和结果展示。但缺点是会给服务器带来较大负载,尤其是在短时间内有大量请求时。不过,对于相对稳定的XML页面,服务器端转换可利用缓存提高性能。
常见的支持服务器端转换的框架有AxKit、Cocoon和XSQL等。其中,Cocoon是一个较为先进的Java Servlet,默认使用Xalan进行XML转换,后续我们将详细介绍其使用方法。
1.2 客户端转换
客户端转换则是客户端从服务器请求的页面中包含转换XML的指令,客户端接收到页面后自行进行转换并显示结果。客户端转换有两种主要模式:
-使用xml - stylesheet处理指令:客户端请求XML文档时,通过该指令告知客户端使用的XSLT样式表。