Последние учебники веб-разработки
×

XML Руководство

XML ГЛАВНАЯ XML Введение XML Как использовать XML дерево XML Синтаксис XML элементы XML Атрибуты XML Пространства имен XML дисплей XML XSLT XML XPath XML XLink XML Оценщик XML DTD XML схема XML сервер XML Приложения XML Примеры XML викторина XML сертификат

XML DOM

DOM вступление DOM Вершины DOM XMLHttpRequest DOM Доступ к DOM Узел информация DOM Список узлов DOM Пересекая DOM навигационный DOM Получить значения DOM Change Вершины DOM Remove Вершины DOM Replace Вершины DOM Create Вершины DOM Add Вершины DOM Clone Вершины DOM Примеры

DOM Справка

DOM Типы узлов DOM Узел DOM NodeList DOM NamedNodeMap DOM Документ DOM Элемент DOM Атрибут DOM Текст DOM CDATA DOM Комментарий DOM XMLHttpRequest DOM синтаксический анализатор

XML DTD

DTD вступление DTD Строительные блоки DTD элементы DTD Атрибуты DTD Элементы против Attr DTD юридические лица DTD Примеры

XSD Schema

XSD вступление XSD Как XSD <schema> XSD элементы XSD Атрибуты XSD ограничения

XSD Сложный

XSD элементы XSD пустой XSD Элементы только XSD Только текст XSD смешанный XSD индикаторы XSD <any> XSD <anyAttribute> XSD подмена XSD пример

XSD Data

XSD строка XSD Дата XSD числовой XSD Разное XSD Справка

Web Сервисы

XML Сервисы XML WSDL XML SOAP XML RDF XML RSS

 

XSD Сложные элементы


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


Что такое сложный элемент?

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

Есть четыре вида сложных элементов:

  • пустые элементы
  • элементы, которые содержат только другие элементы
  • элементы, содержащие только текст
  • элементы, которые содержат как другие элементы и текст

Note: Каждый из этих элементов может содержать атрибуты , как хорошо!


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

Сложный XML - элемент, "product" , который является пустым:

<product pid="1345"/>

Сложный XML - элемент, "employee" , который содержит только другие элементы:

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

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

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

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

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

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

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

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

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

1. "employee" элемент может быть объявлен непосредственно именования элемента, как это:

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

Если вы используете метод , описанный выше, только "employee" элемент может использовать указанный сложный тип. Обратите внимание , что дочерние элементы, "firstname" и "lastname" , окружены <sequence> индикатор. Это означает, что дочерние элементы должны появляться в том же порядке, как они были объявлены. Вы узнаете больше о показателях в главе XSD индикаторов.

2. "employee" элемент может иметь атрибут типа , который ссылается на имя сложного типа использования:

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