2014-02-13 54 views
0

命令:
xmllint myfile.xml --xpath'MapField2Data [@ country =「FR」]/* [@ active!=「false 「與否(@active)]」
按預期工作我的XML結構xmllint xsd:選擇器xpath行爲不同於--xpath或--shell

試圖在XSD使用它,它無法編譯:

xmllint - loaddtd --noout --noent --xin CLUDE --schema XSD/pnsConf.xsd pnsConf.xml
XSD/pnsConf.xsd:75:元件選擇器:架構分析器錯誤:元素 '{} http://www.w3.org/2001/XMLSchema選擇',屬性 '的xpath':該XPath表達式「MapField2Data [@ country =「FR」]/* [@ active!=「false」or not(@active)]'無法編譯

我的XSD有一個適當的

<xsd:selector xpath='MapField2Data[@country="FR"]/*[@active!="false" or not(@active) ]'/> 

哪裏像 'MapField2Data/*' 一個簡單的XPath的工作原理在這兩種情況下的罰款。
這看起來像是xmllint或libxml2中的缺陷或缺失功能。
我應該在gmome bugzilla中爲xmllint提交一個bug嗎?

也許有另一種解決方案我的問題在同一時間嗎?
我要「主動」標籤是唯一的,忽略結構的非有源標籤像這樣的:

<MapField2Data country='FR' > 
    <raw id='NoUnReadMails' active='true'> 
      <depend ref='_EndMailNotif'/> 
      <depend ref='_EndMailSub' /> 
    </raw> 
    <raw id='NoUnReadMails' active='false'> 
      <depend ref='_EndMailNotif'/> 
      <depend ref='_EndMailSub' /> 
    </raw> 
    <raw id='NoEMails' > 
      <depend ref='_EndMailNotif'/> 
      <depend ref='_EndMailSub' /> 
    </raw> 
... 

問候, 靈光。

回答