Latest web development tutorials

XML-схемы сложных элементов

Комплексный элемент содержит другие элементы и / или атрибутов.


h2> Что представляет собой композиционный элемент?

Композитный элемент относится к элементу XML, который содержит другие элементы и / или атрибутов.

Существуют четыре типа составных элементов:

  • Пустые элементы
  • Она содержит и другие элементы
  • Элемент содержит только текст
  • Элемент содержит элементы и текст

Примечание: Вышеуказанные элементы могут содержать атрибуты!


Примеры составных элементов

Составной элемент, "продукт", пусто:

<product pid="1345"/>

Составной элемент, "работник", содержит только другие элементы:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

Комплексный XML-элемент, "пища", содержащая только текст:

<food type="dessert">Ice cream</food>

Комплекс XML-элемент, "описание" содержит элементы и текст:

<description>
It happened on <date lang="norwegian">03.03.99</date> ....
</description>


Как определить сложный элемент?

Посмотрите на этот сложный элемент XML, "работник", содержит только другие элементы:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

В XML-схеме, у нас есть два способа определения сложных элементов:

1. Назовите элемент непосредственно к "сотрудника" элемента декларации, как это:

<xs:element name="employee">
<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:element name="employee" 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:element name="employee" type="personinfo"/>
<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:element name="employee" type="fullpersoninfo"/>

<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>