Есть некоторые запутывающие утверждения; когда вы говорите «description
имеет смешанные элементы и [...]» вы хотите сказать другие элементы, такие как < c /> и < d />, или mixed
, как в нем, позволяет также текст (думаю, html разметка здесь)? Когда вы ссылаетесь на содержимое i и b, есть ли у каждого из них только the same i and b Element
или вышеперечисленные смешанные элементы?
Для достижения рекурсивной модели контента для вашего случая я рекомендую использовать его с использованием типов, в отличие от групп; первый работает с большинством инструментов, которые я знаю. Вот простой пример XSD, который поддерживает текст (смешанный = «истина»), откуда можно начать изучение:
<?xml version="1.0" encoding="utf-8"?>
<!--W3C Schema generated by QTAssistant/W3C Schema Refactoring Module (http://www.paschidev.com)-->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="description" type="descriptionType"/>
<xsd:complexType name="descriptionType" mixed="true">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="b" type="descriptionType"/>
<xsd:element name="i" type="descriptionType"/>
</xsd:choice>
</xsd:complexType>
</xsd:schema>
Я бы параллельно Визуализируйте согласующихся XMLs и начать настройку:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) -->
<description xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">text<b>text<b>text<b>text</b>
<i>text</i>
</b>
<i>text<b>text</b>
<i>text</i>
</i>
</b>
<i>text<b>text<b>text</b>
<i>text</i>
</b>
<i>text<b>text</b>
<i>text</i>
</i>
</i>
</description>