Невозможно правильно объединить два условия в схеме XSD, которые описали бы:
1) Значение элемента complexType с ограничением
2) Последовательность атрибутов элемента
Нет одного of complexType \ simpleType или любые другие конструкции, которые я пытался объединить, не хотят быть "хорошо выполненными".
Что я желал
Внутри одного элемента CHILD:
1) Возможность указать значение элемента (например, ограничение максимальной длины)
2) Возможность описать \ указать атрибуты этого элемента
Что у меня есть?
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="ROOT">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="PARENT">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="CHILD"> <!-- extended (complex) description for CHILD's value is needed-->
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="attribute-1" type="xs:boolean" use="required" />
<xs:attribute name="attribute-2">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value = "64"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="parent-attribute" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="root-attribute" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
вид комплексного ограничения, которое я хотел бы расширить значение CHILD (в качестве примера) (примечание: и сохранить описание его атрибутов также)
<xs:element name="CHILD" maxOccurs="unbounded">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="4000"/>
</xs:restriction>
</xs:simpleType>
</xs:element>