Вы должны немного ограничить себя, некоторые вещи, которые вы пытаетесь сделать, невозможны в XML-схеме.
Предположим, вы вводите сложный тип, называемый Person
, чтобы быть супертипом.Friend
и Coworker
.Вот ваши варианты:
- Заменить
xs:all
на xs:sequence
, удалить name
и phone
из подтипов, добавить в супертип и добавить наследование.Ваши элементы теперь должны быть упорядочены, но вы можете сделать их индивидуально по желанию. Недопустимо использовать xs:all
в иерархиях типов в XML-схеме, поскольку процессор не может определить, где останавливается модель родительского содержимого, и начинается модель дочернего содержимого. - Заменить
xs:all
на<xs:choice maxOccurs="unbounded">
в обоих типах и добавьте свое наследство.Тогда ваши элементы снова станут неупорядоченными, но они могут повториться.
Итак, в заключение: учитывая ваши имена типов, я бы предположил, что ваши требования не будут точно выполнены.Я бы выбрал первый вариант: настаивать на произвольном порядке элементов часто не так полезно, как кажется.