У меня есть случай, когда мне нужен элемент, способный либо гнездиться, либо иметь другие элементы.XSD для определения рекурсивного элемента
Что-то подобное должно быть действительным:
<root>
<rule condition="...">
<rule condition="...">
<setting>...</setting>
</rule>
</rule>
<rule condition="...">
<setting>...</setting>
</rule>
</root>
Но это должно не быть действительным:
<root>
<rule condition="...">
<rule condition="...">
<setting>...</setting>
</rule>
<setting>...</setting>
<setting>...</setting>
</rule>
</root>
Если я понимаю правильно XSD это должен делать эту работу, но это не делает , Что я делаю не так?
<xs:complexType name="RuleType">
<xs:choice>
<xs:element name="rule" minOccurs="1"
maxOccurs="unbounded" type="RuleType" />
<xs:element name="setting" minOccurs="1"
maxOccurs="unbounded" type="xs:string" />
</xs:choice>
<xs:attribute name="condition" type="xs:string" use="required"/>
</xs:complexType>