我目前用于将XML转换为PDF的样式表变得非常庞大并且失去控制。它已成为维护的噩梦。
我计划根据其功能将其拆分为各种样式表来重新设计此样式表。应该有一个主xsl和3-4个辅助xsls。根据主xsl中的一些条件,它应该跳转到适当的辅助xsl。有可能吗?
更新:我正在使用1.0版
编辑:我正在使用apache cocoon从XML生成pdf。想知道是否有办法预处理传入的XML并决定哪个XSL应该处理这个(基于XML中的参数)?
答案 0 :(得分:2)
您可能会发现,不是让“主xsl ...跳转到相应的辅助xsl”,最好有几个面向任务的入口点,每个入口点由一个样式表模块表示,然后有一个包含东西的公共模块这是在不同的入口点之间共享的。这使得利用xsl:import变得更加容易:每个面向任务的样式表都会导入公共样式表,并覆盖公共样式表中不适合特定任务的任何内容。
答案 1 :(得分:1)
XSLT 1.0当然允许您在xsl:import
或xsl:include
(http://www.w3.org/TR/xslt#section-Combining-Stylesheets)的帮助下编写样式表模块并将它们合并到主样式表中。
但是你使用术语"跳转到适当的辅助xsl"听起来很程序化。对我来说,XSLT主要是编写与输入中的节点匹配的模板,并使用xsl:apply-templates
将节点推送到这些匹配的模板。在大多数情况下,这些模板是否在单独的文件中无关紧要,但导入优先级和xsl:apply-imports
除外,请参阅http://www.w3.org/TR/xslt#apply-imports。