2017-07-20 134 views
1
  • SonaQube:6.4
  • 聲納掃描儀:3.0.3
  • 項目名稱:testxml

我fllow引導https://docs.sonarqube.org/display/DEV/Adding+Coding+Rules+using+XPath創建的XPath規則,並在saas xml rules中激活它。SonarQube如何創造自定義規則的XML使用XPath

的XPath的第7周的Fileds這樣的:

  • 名稱 - > myXmlRule
  • 關鍵字 - > myXmlRule
  • 說明 - >測試
  • 嚴重性 - >主要
  • 雕像 - >準備
  • filePattern - >
  • schemas - > // ATTRIBUTE [@ tokenValue ='lang']

xmlToolKit的模式//ATTRIBUTE[@tokenValue='lang']成功,這意味着模式是正確的。 enter image description here

命名myXmlRule新的規則,已在actived檔案Qualiy saas xml rules

enter image description here enter image description here

我的目標是找到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> 

在我的項目testxmltest.xmlsonar-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']" 

請幫助。謝謝。

+1

您確定您使用的是正確的規則嗎? _schema_參數表示您正在使用規則規則'_XML文件應該是valid_',而XPath檢查規則是'_Track違反XPath規則_'(_xml:XPathCheck_)。 –

+0

@ NicolasB.-SonarSourceTeam謝謝,它的工作原理。創建新規則必須檢查「跟蹤XPath規則的違規」 – justin

回答

0

規則創建的XPath檢查是「軌道違規的XPath規則的」(XML:XPathCheck),而不是「XML文件應該是有效的」(在你的屏幕截圖所示)。

相關問題