XSD- атрибуты
Все атрибуты объявлены как простые типы.
Что такое атрибут?
Простые элементы не могут иметь атрибутов. Если элемент имеет атрибуты, он считается сложным типом. Но сам атрибут всегда объявляется как простой тип.
Как определить атрибут?
Синтаксис определения атрибута:
<xs:attribute name="xxx" type="yyy"/>
где xxx — имя атрибута, а yyy — тип данных атрибута.
XML-схема имеет множество встроенных типов данных. Наиболее распространенные типы:
- хз: строка
- хз: десятичный
- хз:целое
- xs: логическое значение
- хз:дата
- хз:время
Пример
Вот элемент XML с атрибутом:
<lastname lang="EN">Smith</lastname>
А вот соответствующее определение атрибута:
<xs:attribute name="lang" type="xs:string"/>
Стандартные и фиксированные значения для атрибутов
Атрибуты могут иметь значение по умолчанию ИЛИ указанное фиксированное значение.
Значение по умолчанию автоматически присваивается атрибуту, если не указано другое значение.
В следующем примере значением по умолчанию является "EN":
<xs:attribute name="lang" type="xs:string" default="EN"/>
Атрибуту также автоматически присваивается фиксированное значение, и вы не можете указать другое значение.
В следующем примере фиксированным значением является «EN»:
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
Необязательные и обязательные атрибуты
Атрибуты являются необязательными по умолчанию. Чтобы указать, что атрибут является обязательным, используйте атрибут «use»:
<xs:attribute name="lang" type="xs:string" use="required"/>
Ограничения на контент
Когда элемент или атрибут XML имеет определенный тип данных, он накладывает ограничения на содержимое элемента или атрибута.
Если элемент XML имеет тип "xs:date" и содержит строку, например "Hello World", элемент не будет проверен.
С помощью XML-схем вы также можете добавлять собственные ограничения к элементам и атрибутам XML. Эти ограничения называются фасетами. Подробнее о фасетах вы можете прочитать в следующей главе.