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.

 


африканские прически dreads | криптография
болезнь бехтерева | combats
Используются технологии uCoz