2015-02-09 135 views
-1

我正在为一个相当复杂的xml编写xslt。 XML有几个子节点,其中许多子节点。处理模板的XSLT最佳实践

每个子元素都有自己的模板。我想过把逻辑上彼此相关的模板放在一个单独的文件中,然后导入它们。

这是xslt的一个好习惯吗,我是否应该有一个非常长的xslt,或者是否有更好的解决方案来制作一个易于维护的xslt文件?

谢谢。

+0

“相当复杂”是相当主观的,如果你原谅双关。底线是:只要样式表对于您来说太长了,开发人员就应该_modularize_代码。让我改述你的问题:_Show一个XSLT样式表具有合理的大小并导入剩余的 - 否? – 2015-02-09 16:30:29

回答

1

如果您希望导入的模板比主样式表中的模板具有更低的优先级(即可覆盖),则应该只使用xsl:import。

如果您只是想在单独的样式表中将逻辑相关的模板集群,请使用xsl:include将它们合并到您的样式表中。

我不认为样式表的长度很重要,只要它完全由可以直接跟踪到输入文档的模板组成。如果我可以查看输入中的给定节点并直接处理将处理它的模板,那么它本身就是足够的模块化,我个人不会担心将样式表进一步分段。如果你确实需要对它进行分解,你必须弄清楚你想要的模板。

可能存在版本控制方面的问题,比如你可能希望版本控制只跟踪被改变的片段而不是整个样式表。除此之外,我提到这是一个选择问题。但是,如果代码可以在其他样式表中重复使用,那么这将改变一切,你应该将其分割。

如果您打算分割样式表,您可能希望有一个命名方案,将样式表与独立样式表区分开来,这些样式表应该是独立的。您可能还想要为导入的样式表命名。

请确保您了解xsl:import和xsl:include之间的区别,并且不要将导入用于可包含的内容。