У меня есть XML-фрагмент, как например:Как написать этот тест проверки Schematron для фрагмента XML?
<AAA>
<Field name="a"/>
<Field name="b"/>
<Field name="x"/>
<User id="x" id2="f"/>
<User id="y"/>
</AAA>
<AAA>
<Field name="r"/>
<Field name="z"/>
</AAA>
Мне нужно исключить, что если тег пользователя существует, то он должен проверить, существует ли значение атрибутов id
и id2
под name Атрибут поля.
Таким образом, в первом AAA
тег, он будет проверять и дать 2 ошибки, потому что "f"
не существует как имя поля и ни делает "y"
.
теги ААА не всегда имеют метки пользователя, а теги пользователя не всегда есть как id
и id2
.
Я уже возился с некоторыми выражениями XPath, но безрезультатно.
Вы используете Schematron с XPath 2.0 или 1.0? В XPath 2.0 вы можете легко написать 'some $ user в User не удовлетворяет ($ user/(@ id, @ id2) = Field/@ name'. –
Это не совсем так. – user3418847
Просьба показать полный входной XML-документ Спасибо, тоже, «это не совсем так» - это не очень точное сообщение об ошибке. Что именно не сработало? –