2013-09-12 6 views
0

Как вы можете определить xsd либо для одного элемента, либо для группы из нескольких элементов.Один или несколько элементов в схеме xsd

<xs:complexType name="oneOrMany"> 
    <xs:sequence> 
     <xs:element name="one" minOccurs="1" maxOccurs="1"/> 
     <xs:element name="two" minOccurs="1" maxOccurs="1"/> 
     <xs:element name="three" minOccurs="1" maxOccurs="1"/> 
     <xs:element name="four" minOccurs="1" maxOccurs="1"/> 
    <xs:sequence> 
</xs:complexType> 

Рассмотрите фрагмент выше. Я либо хочу новый элемент (назовите его пять), либо ВСЕ элементы один, два, три и четыре. Никакая другая комбинация не должна быть действительной. Он также должен быть обратно совместим с существующей структурой.

Нужно ли мне группировать 1 2 3 и 4? Или создать из них новый сложный объект?

ответ

1

Немного модификации вашего ComplexType должны это сделать:

<xs:complexType name="oneOrMany"> 
    <xs:choice> 
     <xs:sequence> 
      <xs:element name="one" minOccurs="1" maxOccurs="1"/> 
      <xs:element name="two" minOccurs="1" maxOccurs="1"/> 
      <xs:element name="three" minOccurs="1" maxOccurs="1"/> 
      <xs:element name="four" minOccurs="1" maxOccurs="1"/> 
     <xs:sequence> 
     <xs:element name="five" minOccurs="1" maxOccurs="1"/> 
    </xs:choice> 
</xs:complexType> 
Смежные вопросы