У меня есть фрагмент 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
под именем атрибута поля.
Таким образом, в первом теге AAA
он будет проверен и выдаст 2 ошибки, потому что "f"
не существует в качестве имени поля, равно как и "y"
.
Теги AAA не всегда содержат пользовательские теги, а пользовательские теги не всегда содержат как id
, так и id2
.
Я возился с некоторыми выражениями XPath, но безрезультатно.
some $user in User satisfies not($user/(@id, @id2) = Field/@name
. - person Martin Honnen   schedule 28.01.2017