Используя схему и XML-файл, я пытаюсь создать элемент типа A, который может содержать вложенные элементы типов A, B и C. Все типы элементов A, B и C являются расширением типа XПоэтому я хотел создать внутри типа элемент, и подумал, что могу добавить любой из элементов A, B или C в любом порядке, который я хотел.Только A может иметь вложенные элементы.Мне нравится эта реализация, потому что порядок вложенных элементов важен для нашей модели данных, и эти элементы будут иметь различный порядок в системе.
<A>
<B></B>
<B></B>
<A>
<B></B>
<B></B>
<C></C>
<C></C>
</A>
<C></C>
</A>
Я попытался сделать несколько вещей в файле XSD, чтобысделать это законным.
<xs:complexType name="A">
<xs:complexContent>
<xs:extension base="X" >
<xs:sequence>
<xs:element name="a" type="A" minOccurs="0" />
<xs:element name="b" type="B" minOccurs="0" />
<xs:element name="c" type="C" minOccurs="0" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
И я попытался сделать последовательность, содержащую только элементы абстрактного типа X, думая, что могу использовать конкретные типы AB и C в файле XML, но это было помечено как ошибка.