我们如何检查XSLT样式表是否遵循所有编码标准?是否有工具可以指定我们自己的规则并找出样式表是否符合要求?
答案 0 :(得分:1)
首先,没有之类的
“所有编码标准”
...
这就是看看由Mukul Ghandi开发的XSLT Lint,并于2008年12月发布:
http://lists.xml.org/archives/xml-dev/200812/msg00178.html
最近Andriy Gerasika发表了一篇:
http://www.biglist.com/lists/lists.mulberrytech.com/xsl-list/archives/201102/msg00103.html
如果您对使用XSLT 的 函数式编程感兴趣,请查看FXSL 。
最后,如果按“所有编码标准”表示“风格”,您可以在SO 的xslt标签中查看我的答案,以便更多地了解“推送风格”和没有明确的逻辑指令的编程。
答案 1 :(得分:0)
好吧,如果样式表有效,它应该是有效的,对吗?
除此之外,我认为像Altova's XMLSpy这样的所有大型XML IDE都提供了某种模式验证,如果这就是你要找的东西。
答案 2 :(得分:0)
XSL样式表是一种XML语言。因此,可用于XML的验证工具仍适用于此处。因此,可以使用DTD或XML命名空间来定义要检查的规则。链接到DTD / ns驻留在XSL表中的位置。然后像Xerces这样的工具可用于验证文档。
如果您使用ANT,xmlvalidate
任务将通过调用Xerces SAXParser自动执行此操作。
<target name="validate" if="perform-validation-dtd">
<xmlvalidate file="${input-xml}"
classname="org.apache.xerces.parsers.SAXParser"/>
</target>
答案 3 :(得分:0)
xmllint程序根据其DTD(文档类型定义)验证XML文件,并报告任何差异。阅读更多here
答案 4 :(得分:0)
嗯,XSLT样式表当然是XML本身;你可以轻松编写一个寻找模式的XSLT。
例如:
<xsl:template match="xsl:for-each">
<xsl:text>Inappropriate use of xsl:for-each; should be using templates instead</xsl:text>
</xsl:template>
如果您的政策未包含xsl:for-each
。
或者,您可以编写一个扩展xslt的模式。