官方XSLT验证程序?

问题描述 投票:15回答:4

是否有任何正式的XSLT验证程序,例如HTML和XHTML的http://validator.w3.org/

我知道http://validator.w3.org/也可以用于验证XML和XSL文档。但它们已被验证为XML结构。

例如,在有效的XHTML中,<span><div>...</div></span>无效,因为块元素不应出现在嵌入式元素中。

那么,有没有一种简便的方法可以直接验证XSL文档?

((我想我们可能会结合使用XML和XSL,输出XHTML,然后对其进行验证。但这不是直接的,也不方便。)

谢谢!

xml xslt xhtml validation
4个回答
12
投票

[我假设通过验证XSLT样式表,您的意思是检查已经格式良好的XML文档(似乎是XSLT代码)中的元素,属性等是否符合XSLT W3C规范。

首先,请注意,XML文档的格式正确性和有效性之间存在差异。如果所包含的元素正确嵌套,是否存在单个根元素等等(由XML规范定义),则格式正确。另请参见:Is there a difference between 'valid xml' and 'well formed xml'?

XML文档的有效性只能与XML模式(或DTD或RelaxNG ...)一起验证。模式是一组规则,例如,定义哪些元素和属性以什么顺序允许。

现在,要回答您的问题:W3C没有提供这种服务,但是有可用的架构,请参见例如包含“标准” http://www.w3.org/2007/schema-for-xslt20.xsd的所有结构的架构的XSLT 2.0

您可以根据此架构验证您的XSLT代码。尽管如此,仅使用XSLT处理器运行代码并查找其产生的警告和错误仍然更具洞察力。


此外,请注意XSLT代码的有效性及其输出的XHTML的有效性是不同的。即使您的XSLT相对于XSLT规范而言是完全有效的,也不意味着所得的XHTML是合理的。


2
投票

在一般情况下,您不能采用任意的XSLT样式表并静态地证明它将生成有效的XHTML。但是,只要编写样式表以利用架构意识,您就可以检测到很多情况下不会这样做。为此,您需要进行静态检查的可感知架构的XSLT处理器(例如Saxon-EE),并且需要样式表来(a)使用xslt:import-schema导入架构,以及(b)在结果元素使用[xsl:] validation =“ strict”。这将在样式表输出中静态地(在编译样式表时)检测剩余的有效性错误,而其余部分则在运行时动态地检测出来。


1
投票

这是一个可行的解决方案。1.您可以针对XSD在线验证XSLT。 https://easycodeforall.com/XMLValidation.jsp

  1. 您可以在线测试/调试XSLT。 https://easycodeforall.com/TestXSLT.jsp

0
投票

[有许多XML编辑工具(也可能还有一些HTML编辑工具)对(X)HTML的结构足够了解,可以突出显示错误。例如,Visual Studio可以使用该架构(包括XHTML或XSL)验证任何XML文档-在XHTML架构中定义是否允许在范围内使用div。

© www.soinside.com 2019 - 2024. All rights reserved.