XSD - как я могу гарантировать существование определенного элемента с заданным атрибутом?
-
08-07-2019 - |
Вопрос
Я пытаюсь добавить дополнительную проверку к jdpl файлы определения процесса с использованием XSD.
У нас есть пара правил, которые мы хотим добавить;но единственное, что вызывает у меня проблемы, это то, что должен существовать один элемент "node" с его атрибутом "name" = "Problem".
так что это действительно:
<process-definition name='sample'>
<node name="Problem">
</node>
<node name="Do Work">
</node>
</process-definition>
и это не
<process-definition name='sample'>
<node name="Do Work">
</node>
</process-definition>
Итак, подводя итог, правила, которые мне нужно соблюдать, следующие
- атрибут узла, имеющий значение "Проблема"
- существование 1 узла с именем="Проблема"
- разрешение любого количества узлов с другими именами
Есть какие-нибудь идеи?
Решение
Извините, что это невозможно с XSD.
Из соображений производительности XML-схема разработана так, чтобы никогда не заглядывать вперед и никогда не оглядываться назад за пределы текущего узла.Это означает, что всегда должно быть определено, где находится средство проверки в дереве схемы.И это делает подобные требования невозможными для определения с помощью XSD.