2017-02-17 51 views
0

這是我的XML文件的草圖:XPath對元素進行計數並將計數與整數(XSD 1.1)進行比較?

<file recordCount="n"> 
<record/> 
<record/> 
<record/> <!-- ...etc... --> 
</file> 

我所做的XML模式(版本1.1)斷言的file元素上的@recordCount(正整數)必須等於包含record元素數的計算在file

這是我能想出的最好的:

test="count(record) eq @recordCount" 

這是目前失敗無論我把@recordCount測試XML文件(給予nonZeroInteger)和然而,許多(有效)record元素我有...

我假設我錯過了一些真正基本的東西,比如節點路徑或者要比較的2個變量的類型是test

可能相關:XSD 1.1 Assert to Count and Compare Elements

+1

我懷疑你犯了一些非常簡單的錯誤,比如(a)把斷言放在錯誤的元素上,或者(b)忘記在XPath表達式中使用命名空間前綴。我建議也做一個顯式的recordCount轉換爲xs:integer,但我不確定這是必不可少的(它取決於如何聲明recordCount)。如果你將它簡化爲一個簡單但可執行的例子,我們可以告訴你什麼是錯的。 –

+0

謝謝 - 我以某種方式修復它。我正在結束這個問題。 – Michael

回答

0

此XPath是正確的。它現在在IDE中按照預期運行。如果我瞭解它爲什麼沒有正確驗證,我會更新問題。

相關問題