2017-02-17 27 views
0

Вот эскиз моего файла XML:XPath для подсчета элементов и сравнения числа с целым числом (XSD 1.1)?

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

Я сделал схему XML (версия 1.1) Assert на file элемент, что @recordCount (положительное целое число), должно быть равно расчетное количество record элементов, содержащихся в file.

Вот лучшее, что я мог придумать:

test="count(record) eq @recordCount" 

Это в настоящее время неудачу в XML-файл тест, что я положил в @recordCount (дал nonZeroInteger) и тем не менее многие (действительные) record элементы У меня есть ...

Я предполагаю, что у меня отсутствует что-то действительно базовое здесь, например, путь узла или тип 2 переменных для сравнения в test?

Возможно, связанные с: XSD 1.1 Assert to Count and Compare Elements

+1

Я подозреваю, что вы совершили какую-то очень простую ошибку, например: (а) поместить утверждение на неправильный элемент или (б) забыть использовать префиксы пространства имен в выражении XPath. Я бы предложил также сделать явное преобразование recordCount в xs: integer, хотя я не уверен, что это важно (это зависит от того, как объявлен recordCount). Если вы уменьшили его до простого, но исполняемого примера, мы могли бы рассказать вам, что случилось. –

+0

Спасибо, я как-то исправил его. Я закрываю вопрос. – Michael

ответ

0

Это XPath является правильным. В настоящее время он ведет себя так, как ожидалось, в среде IDE. Если я узнаю, почему он не был правильно проверен, я обновлю вопрос.