Перевод рекомендации W3C - XML Schema Part 0. Выполнил Г.Е. Берман


Перевод рекомендации W3C - XML Schema Part 0. Выполнил Г.Е. Берман
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.

#bn {display:block;}
#bt {display:block;}
содержание | 2 | ГНБ
Используются технологии uCoz