Здравствуйте, Gad, Вы писали:
Gad>Здравствуйте, andy73, Вы писали:
A>>Пример на XML:
A>>A>><МояСемья>
A>> <Отец>...</Отец>
A>> <Мать>...</Мать>
A>> <Брат>...</Брат>
A>> <Брат>...</Брат>
A>> <Сестра>...</Сестра>
A>> <Брат>...</Брат>
A>> <Брат>...</Брат>
A>> <Сестра>...</Сестра>
A>> ...
A>></МояСемья>
A>>
A>>Смысл в том,что отец и мать могут быть только по одному или отсутствовать, а сестер и братьев сколько угодно. Порядок не важен.
Gad>Gad> <xs:element name="МояСемья">
Gad> <xs:complexType>
Gad> <xs:sequence>
Gad> <xs:element name="Отец" minOccurs="0"/>
Gad> <xs:element name="Мать" minOccurs="0"/>
Gad> <xs:element name="Брат" minOccurs="0" maxOccurs="unbounded"/>
Gad> <xs:element name="Сестра" minOccurs="0" maxOccurs="unbounded"/>
Gad> </xs:sequence>
Gad> </xs:complexType>
Gad> </xs:element>
Gad>
Gad>P.S.
Gad>если minOccurs/maxOccurs не указаны, то по умолчанию они 1/1 насколько я помню.
Хотя это неверно, если порядок элементов "Брат"и "Сестра" определяется только тем, что эти элементы идут после элементов родителей.
тогда как вариант можно воспользоваться substitutionGroup:
<xs:element name="МояСемья">
<xs:complexType>
<xs:sequence>
<xs:element name="Отец" minOccurs="0"/>
<xs:element name="Мать" minOccurs="0"/>
<xs:element ref="Брат" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Брат"/>
<xs:element name="Сестра" substitutionGroup="Брат"/>
Вроде как раз то что надо.