Иногда хочется использовать наследование типов с помощью элемента extension так, чтобы добавить к sequence базового типа элементы в начале (перед указанными в базовом типе), а не в конце. Скажем, расширить тип:
<xs:complexType name="TypeA">До типа:
<xs:sequence>
<xs:element name="number" type="xs:integer"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
<xs:complexType/>
<xs:complexType name="TypeB">Но так делать нельзя: в спецификации XMLSchema 1.1 указано, что:
<xs:sequence>
<xs:element name="id" type="xs:integer"/>
<xs:element name="number" type="xs:integer"/>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
<xs:complexType/>
For the most part, this specification allows only appending, and not other kinds of extensions. This decision simplifies application processing required to cast instances from the derived type to the base type.Т.е. при использовании extension для расширения sequence базового типа можно дополнять эту последовательность только элементами в конце.
Комментариев нет:
Отправить комментарий