Ограничения Зависимости Элемента XSD - PullRequest
2 голосов
/ 18 января 2012

Я не уверен, что XSD обладает этой способностью, но если она есть, я не могу понять, как это сделать.Когда тип отправки «submit_one», отчеты могут иметь только значения A, B или C. Когда тип отправки «submit_two», отчеты могут иметь только значения X, Y или Z. Как я могу представить это вФайл определения схемы XML?

Оба будут действительными файлами XML, использующими эту схему.

<submission type="submit_one">
   <reports>
      <report>A</report>
      <report>B</report>
   </reports>
</submission>

<submission type="submit_two">
   <reports>
      <report>X</report>
      <report>Y</report>
   </reports>
</reports>

Это не будет действительный xml

<submission type="submit_one">
   <reports>
      <report>X</report>
      <report>Z</report>
   </reports>
</submission>

Ответы [ 2 ]

3 голосов
/ 18 января 2012

Если вы делаете только XSD 1.0, то это невозможно. Если вы хотите объединить процессор XSD 1.0 с механизмом Schematron, тогда вы можете это сделать.

В качестве альтернативы, если у вас есть доступ к процессору XSD 1.1, вы можете разрешить его с помощью или использовать альтернативы типов. Посмотрите здесь для получения дополнительной информации.

0 голосов
/ 18 января 2012

Для того вида проверки, который вы хотите выполнить, вам нужно определить два отдельных типа «отправки», один для одного «набор ограничений» и один для другого.

К сожалению, сделав это, вы не сможете совместно использовать одно и то же имя узла для двух разных типов в одной и той же позиции в схеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...