2013-09-02 3 views
0

Я хочу создать XML-схему, которая заставляет заголовок следовать за любым из нескольких элементов. Другими словами, это действительно. <header> всегда должен быть первым элементом, но тогда A и B могут быть в любом порядке.XML-схема с заголовком, затем выбор элементов

<root> 
    <header/> 
    <A/> 
    <B/> 
    <A/> 
    <B/> 
</root> 

Мое понимание заключается в том, что я могу позволить A и B находиться в любом порядке со следующим.

<xs:element name="root"> 
    <xs:complexType> 
    <xs:choice maxOccurs="unbounded"> 
     <xs:element ref="A"/> 
     <xs:element ref="B"/> 
    </xs:choice> 
    </xs:complexType> 
</xs:element> 

Но как я заставляю первый элемент будет <header>?

ответ

0

Группы могут входить в контентные модели, так же, как выраженные в скобках выражения могут вставляться в регулярные выражения. На внешнем уровне вам нужен элемент header, за которым следует сочетание A и B элементов. Поэтому для указания этой последовательности используйте xs:sequence.

<xs:complexType> 
    <xs:sequence> 
    <xs:element ref="root"/> 
    <xs:choice maxOccurs="unbounded"> 
     <xs:element ref="A"/> 
     <xs:element ref="B"/> 
    </xs:choice> 
    </xs:sequence> 
</xs:complexType> 
+0

отлично работает, спасибо. –

Смежные вопросы