Re[4]: Помогите написать схему XSD
От: achp  
Дата: 03.02.06 14:08
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Проядок элементов в <МоейСемье> не важен!!! Хотя всех братьев и сестер можно собрать в кучу. <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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.