我已将指南https://docs.sonarqube.org/display/DEV/Adding+Coding+Rules+using+XPath置于创建xpath规则,并在saas xml rules
中激活。
xpath规则7文件如下:
//ATTRIBUTE[@tokenValue='lang']
中的模式xmlToolKit
成功,这意味着模式是正确的。
名为myXmlRule
的新规则已在Qualiy Profile saas xml rules
我的目标是找到具有title
属性的lang
节点,然后将其提升。
怎么写规则?
test.xml文件内容:
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
在我的项目testxml
中仅test.xml
和sonar-project.properties
在项目文件夹中运行sonar-scanner
,它会收到错误消息
WARN: SCM provider autodetection failed. No SCM provider claims to support this project. Please use sonar.scm.provider to define SCM of your project.
16:41:11.456 WARN: Could not find schema //ATTRIBUTE[@tokenValue='lang']
16:41:11.456 WARN: Cannot validate file /Users/zt/Desktop/testXml/test.xml
16:41:11.457 WARN: Cause: org.sonar.plugins.xml.checks.XmlSchemaCheck$SchemaNotFoundException: Could not load schema "//ATTRIBUTE[@tokenValue='lang']"
请帮助。谢谢。
答案 0 :(得分:0)
创建XPath检查的规则是&#39; 跟踪违反XPath规则的行为&#39; ( xml:XPathCheck ),而不是&#39; XML文件应该有效&#39; (截图中显示的那个)。