Элемент complexContent
Элемент complexContent определяет расширения или ограничения для комплексного типа, содержащего только элементы или имеющего смешанное содержимое (текст и элементы). Определение элемента имеет следующий формат:
<префикс:complexContent
id = ID
mixed = boolean : false
>
(annotation?, (restriction | extension))
</префикс:complexContent>
В этом определении необязательный атрибут id задает уникальный идентификатор элемента, а необязательный атрибут mixed разрешает или запрещает включение символьных данных между дочерними элементами элемента complexContent.
Как и для элементов simpleType и simpleContent, элемент restriction для complexContent определяет ограничения, но имеет свой формат определения:
<префикс:restriction
base = QName
id = ID
>
(annotation?, (sequence | choice| group | all)?,
((attribute | attributeGroup)*, anyAttribute?))
</префикс:restriction>
Атрибуты id и base имеют тот же смысл, что и для элемента restriction в simpleContent.
Дочерний элемент extension, так же, как и для элемента simpleContent, определяет расширения элемента, но имеет другой формат объявления:
<префикс:extension
base = QName
id = ID
>
(annotation?, (sequence | choice| group | all)?,
((attribute | attributeGroup)*, anyAttribute?))
</префикс:extension>
Атрибуты id и base имеют тот же смысл, что и для элемента restriction в complexContent.
Пример использования элемента complexContent:
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
…
<xs:complexType name="fullPersonInfo">
<xs:complexContent>
<xs:extension base="personInfo">
<xs:sequence>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
В этом примере комплексный тип с именем fullPersonInfo (полная информация о сотруднике) является производным от другого комплексного типа personInfo (информация о сотруднике) с помощью расширения наследуемого типа тремя элементами (address, city и country).
Дата добавления: 2015-03-20; просмотров: 736;