是否有工具来检查XSLT样式表是否遵循编码标准?

时间:2011-09-25 15:07:20

标签: xslt xslt-2.0

我们如何检查XSLT样式表是否遵循所有编码标准?是否有工具可以指定我们自己的规则并找出样式表是否符合要求?

5 个答案:

答案 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的模式。