Я пытаюсь написать схему XML, которая позволяет XML быть выражены следующим образом:Наиболее эффективное Schema для того или иного, или это и что
домашние могут containt как кошки и собаки элементы:
<root>
<pets>
<cat />
<dog />
</pets>
</root>
домашние могут содержать только кошки или собаки элементы
<root>
<pets>
<cat />
</pets>
</root>
-----------
<root>
<pets>
<dog />
</pets>
</root>
если домашние не имеют вложенных элементов, то она должна отсутствовать:
<root>
</root>
Лучшая схема, которую я придумал, чтобы удовлетворить эти условия, это:
<xs:element name="pets">
<xs:complexType>
<xs:choice>
<xs:sequence>
<xs:element name="cat"/>
<xs:element name="dog" minOccurs="0"/>
</xs:sequence>
<xs:sequence>
<xs:element name="dog"/>
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
Это всегда казалось, мне нравится слишком много схемы для такой простой концепции. Есть ли более простой способ написать эту схему? Благодаря!