XML-схемы сложных элементов
Комплексный элемент содержит другие элементы и / или атрибутов.
h2> Что представляет собой композиционный элемент?
Композитный элемент относится к элементу XML, который содержит другие элементы и / или атрибутов.
Существуют четыре типа составных элементов:
- Пустые элементы
- Она содержит и другие элементы
- Элемент содержит только текст
- Элемент содержит элементы и текст
Примечание: Вышеуказанные элементы могут содержать атрибуты!
Примеры составных элементов
Составной элемент, "продукт", пусто:
Составной элемент, "работник", содержит только другие элементы:
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>
Комплексный XML-элемент, "пища", содержащая только текст:
Комплекс XML-элемент, "описание" содержит элементы и текст:
It happened on <date lang="norwegian">03.03.99</date> ....
</description>
Как определить сложный элемент?
Посмотрите на этот сложный элемент XML, "работник", содержит только другие элементы:
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>
В XML-схеме, у нас есть два способа определения сложных элементов:
1. Назовите элемент непосредственно к "сотрудника" элемента декларации, как это:
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Если вы используете метод, описанный выше, только «работник» может использовать сложный тип указанного. Обратите внимание, что его дочерние элементы, "Firstname" и "Lastname", окружены индикатором <последовательность> в. Это означает, что дочерние элементы должны появляться в том порядке, они были объявлены. Вы XSD индикаторы узнать больше о показателях в данном разделе.
2. Элемент "Сотрудник" может использовать атрибут типа, роль этого атрибута является ссылка на имя сложного типа, которые будут использоваться:
<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:element name="student" type="personinfo"/>
<xs:element name="member" type="personinfo"/>
<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="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>