Здравствуйте, Аноним, Вы писали:
А>Проядок элементов в <МоейСемье> не важен!!! Хотя всех братьев и сестер можно собрать в кучу. <xs:sequence/> это не позволяет,а в <xs:all> — нельзя для элементов задавать maxOccurs="unbounded". В <xs:choice> нельзя ограничить повторяемость для <мать> <отец>.
Первый вариант — определить ограничения уникальности (<unique>) для элементов <мать> и <отец>. Тогда невозможно будет создать дубляжи без нарушения этих ограничений.
Второй вариант — определить модель данных так (извините за краткое схематичное описание):
choice 0-unb
<брат> 1-1
<сестра> 1-1
choice 0-1
sequence 1-1
<мать>
choice 0-unb
<брат> 1-1
<сестра> 1-1
sequence 0-1
<отец>
choice 0-unb
<брат> 1-1
<сестра> 1-1
sequence 1-1
<отец>
choice 0-unb
<брат> 1-1
<сестра> 1-1
sequence 0-1
<мать>
choice 0-unb
<брат> 1-1
<сестра> 1-1
Если определить абстрактный элемент <sibling>, а <брат> и <сестра> включить в его группу подстановки, то модель данных запишется лаконичнее:
<sibling> 0-unb
choice 0-1
sequence 1-1
<мать>
<sibling> 0-unb
sequence 0-1
<отец>
<sibling> 0-unb
sequence 1-1
<отец>
<sibling> 0-unb
sequence 0-1
<мать>
<sibling> 0-unb