Все атрибуты объявлены как простые типы.
Что такое атрибут?
Простые элементы не могут иметь атрибуты. Если элемент имеет атрибуты, он считается сложного типа. Но сам атрибут всегда объявляется как простого типа.
Как определить атрибут?
Синтаксис определения атрибута:
<xs:attribute name="xxx" type="yyy"/>
где ххх это имя атрибута и ууу определяет тип данных атрибута.
XML-схема имеет много встроенных типов данных. Наиболее распространенными типами являются:
- хз: строка
- хз: десятичный
- хз: целое число,
- хз: булево
- хз: дата
- хз: время
пример
Вот XML-элемент с атрибутом:
<lastname lang="EN">Smith</lastname>
А вот corresponding определение атрибута:
<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. Эти ограничения называются фасетки. Вы можете прочитать больше о гранях в следующей главе.