有没有办法在Sonarqube上使用xpath 2.0?

时间:2016-10-26 11:40:33

标签: sonarqube xpath-2.0

我需要验证xml上的规则,我需要正则表达式功能,只能在XPath 2.0上找到。我下载了最后一个Sonarqube 6.1,但XPath仍然是版本1.0。有没有办法使用2.0版本?

1 个答案:

答案 0 :(得分:0)

通过快速查看源代码(org / sonar / api / utils / XpathParser.java),我看起来好像应用程序正在使用JAXP服务API来实例化XPath解析器。看看如果你

会发生什么

(a)将Saxon放在classpath上,然后 (b)设置系统属性的值" javax.xml.xpath.XPathFactory"价值" net.sf.saxon.xpath.XPathFactoryImpl"

请注意,步骤(a)本身并不足够,因为Saxon不再使用META-INF机制将自己命名为XPath解析器 - 这导致了编写为假设使用的应用程序的太多问题Xalan。

这可能会或者可能不会成功拿起撒克逊人,如果它确实拿起撒克逊人,那么它可能会或者可能不会成功运行它。可能还有其他问题 - 例如,我注意到sonarqube中的XpathParser类创建了一个DOM,其namespaceAware设置为false,这不是一个好的开始。