2.5.3 Пустое содержание

Давайте теперь предположим, что мы хотим в элементе internationalPrice  вместо содержания элемента и значения атрибута использовать только значения атрибутов, которые бы отображали как единицу валюты, так цену. Например:

<internationalPrice currency="EUR" value="423.46"/>

Такой элемент вообще не имеет никакого содержания. Его модель содержания пустая. Для того чтобы задать тип элемента с пустым содержанием, мы должны сначала определить тип, который позволял бы в его содержании использовать элементы. Однако, фактически, мы не будем объявлять никаких элементов и, поэтому, модель содержания такого типа пустая:

Сложный тип с пустым содержанием

<xsd:element name=”internationalPrice”>
 <xsd:complexType>
  <xsd:complexContent>
   <xsd:restriction base=”xsd:anyType”>
    <xsd:attribute name=”currency” type=”xsd:string”/>
    <xsd:attribute name=”value” type=”xsd:decimal”/>
   </xsd:restriction>
  </xsd:complexContent>
 </xsd:complexType>
</xsd:element>

В представленном примере, мы определяем (анонимный) тип complexContent, предназначенный для описания элементов. Элемент complexContent показывает, что мы намереваемся ограничить или расширить модель содержания сложного типа, а в restriction базирующемся на типе anyType объявляется два атрибута и не вводится никакого описания содержания элемента (дополнительные детали относительно ограничения представлены в Разделе 4.4). Элемент internationalPrice, объявленный таким же способом, может законно появиться в примере, как показано выше.

Представленный синтаксис для элемента с пустым содержанием является достаточно подробным. Элемент internationalPrice можно объявить более компактно:

Компактное объявление для пустого сложного типа

<xsd:element name=”internationalPrice”>
 <xsd:complexType>
  <xsd:attribute name=”currency” type=”xsd:string”/>
  <xsd:attribute name=”value” type=”xsd:decimal”/>
 </xsd:complexType>
</xsd:element>

Компактный синтаксис работает, потому что сложный тип, определенный без  simpleContent или complexContent, интерпретируется как краткая запись сложного содержания с ограничением, базирующемся на типе anyType.

Сайт создан в системе uCoz