XSD - как я могу гарантировать существование определенного элемента с заданным атрибутом?

StackOverflow https://stackoverflow.com/questions/283616

  •  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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top