У меня есть документ XML (минимальный воспроизводимый пример), который выглядит следующим образом:Выражая «должен существовать» отношения в схеме XML
<root start="baz">
<child name="foo">...</child>
<child name="bar">...</child>
<child name="baz">...</child>
</root>
Я хотел бы мою схему для обеспечения того, что атрибут на start
корневой элемент должен ссылаться на существующий узел child
с таким именем. Если нет дочернего узла с атрибутом name
с этим значением, проверка не должна выполняться. Другими словами, выше, следует проверить, но это должно не:
<root start="baz">
<child name="foo">...</child>
<child name="bar">...</child>
</root>
Что такое хороший способ сделать это? Действительно ли мне нужно использовать assert
с подходящим выражением XPath или есть более естественный способ выразить это в XSD? Благодарю.
PS: предположим, что start
является обязательным атрибутом, а дочерние атрибуты name
отмечены уникальными в соответствующей области.
я должен был поставить 'XPath =' в KeyRef для этого, чтобы работать на меня, как бы я "" это иначе? Если 'root' на самом деле является корневым элементом, я не могу поставить keyref выше в дереве документов, поэтому xpath не может работать, и, судя по всему, в селекторе не поддерживается слэш. – Thomas