объединение сложных типов в XMLSchema - PullRequest
2 голосов
/ 05 июня 2011

Я пишу схему и обнаружил, что не могу указать схему XML, которая допускает оба варианта

<root>
  <content>icecream</content>
</root>

и

<root>
  <content><list>icecream</list></content>
</root>

и не разрешает (смешанный контент)

<root>
  <content>blabla<list>icecream</list>hehe</content>
</root>

Сначала я подумал, что смогу добиться этого с помощью выбора между элементами с одинаковым именем и другим типом, но это не удалось. Я также пробовал объединение, но так как это определено только для простых типов, меня удивляет: это вообще возможно?

Ответы [ 2 ]

2 голосов
/ 06 июня 2011

В XSD 1.1 вы можете иметь сложный тип, который допускает смешанное содержимое, а затем ограничить его утверждением, например:

<xs:assert test="exists(list) != exists(text())"
2 голосов
/ 05 июня 2011

(1) и (2) возможны для смешанного контента, который не совместим с (3).Поэтому это невозможно.

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