Элемент element определяет элемент.
- Родительские элементы: schema, choice, all, sequence, group
Синтаксис элемента
<element
id=идентификатор
name=NCName
ref=QName
type=QName
substitutionGroup=QName
default=string
fixed=string
form=qualified | unqualified
maxOccurs=целоеЧисло | unbounded
minOccurs=целоеЧисло
nillable=true|false
abstract=true|false
block=(#all | список (extension|restriction))
final=(#all | список (extension|restriction))
любые атрибуты
>
annotation?, (simpleType | complexType)?, (unique | key | keyref)*
</element>
(Знак ? указывает на то, что элемент может появляться ноль или один раз, знак * указывает на то, что элемент может появляться ноль, один или больше раз внутри элемента element.)
Атрибуты элемента
Атрибут | Описание |
---|---|
id | Не обязательный. Определяет уникальный идентификатор для элемента |
name | Не обязательный. Определяет имя элемента. Этот атрибут требуется, если родительским элементом является элемент schema |
ref | Не обязательный. Ссылается на имя другого элемента. Атрибут ref может включать префикс пространства имен. Этот атрибут нельзя использовать, если родительским элементом является элемент schema |
type | Не обязательный. Определяет либо имя встроенного типа данных, либо имя элемента simpleType или complexType |
substitutionGroup | Не обязательный. Определяет имя элемента, который может быть замещен этим элементом. Этот атрибут нельзя использовать, если родительским элементом является не элемент schema |
default | Не обязательный. Определяет значение элемента по умолчанию (может использоваться только если содержимое элемента простого типа или текст) |
fixed | Не обязательный. Определяет фиксированное значение элемента (может использоваться только если содержимое элемента простого типа или текст) |
form | Не обязательный. Определяет форму элемента. Значение "qualified" указывает на то, что этот элемент должен уточняться префиксом пространства имен. Значение "unqualified" указывает на то, что этот элемент не требует уточнения префиксом пространства имен. Значением по умолчанию является значение атрибута elementFormDefault атрибута элемента schema. Этот атрибут нельзя использовать, если родительским элементом является элемент schema |
maxOccurs | Не обязательный. Определяет, сколько раз максимально может появляться элемент в родительском элементе. Значением может быть любое целое число >= 0, если же нужно снять лимит на использование, то следует указать ключевое слово "unbounded". Значение по умолчанию 1. Этот атрибут нельзя использовать, если родительским элементом является элемент schema |
minOccurs | Не обязательный. Определяет, сколько раз минимально может появляться элемент в родительском элементе. Значением может быть любое целое число >= 0. Значение по умолчанию 1. Этот атрибут нельзя использовать, если родительским элементом является элемент schema |
nillable | Не обязательный. Определяет, можно ли элементу присваивать явное нулевое значение nil. Значение true позволяет элементу устанавливать атрибут nil в значение true. Атрибут nil определен как часть пространства имен XML схемы. Значение по умолчанию false |
abstract | Не обязательный. Определяет, можно ли использовать этот элемент в документе. Значение true определяет, что элемент не может использоваться в документе. Вместо этого, на месте данного элемента должен появляться другой элемент, атрибут substitutionGroup которого содержит имя с префиксом (QName) этого элемента. Значение по умолчанию false |
block | Не обязательный. Препятствует использованию элемента, который имеет заданный тип наследования, вместо данного элемента. Может принимать значение #all или список из расширений/ограничений/замещений:
|
final | Не обязательный. Запрещает указанный метод наследования элемента. Может принимать значение #all или список из расширений/ограничений:
|
любые атрибуты | Не обязательный. Любые другие атрибуты вне пространства имен схемы |
Пример использования
Пример №1
В следующем примере декларируется XML схема с четырьмя простыми элементами "fname", "lname", "age" и "dateborn":
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="fname" type="xs:string"/>
<xs:element name="lname" type="xs:string"/>
<xs:element name="age" type="xs:nonNegativeInteger"/>
<xs:element name="dateborn" type="xs:date"/>
</xs:schema>
Пример №2
В следующем примере декларируется XML схема с элементом "note" сложного типа. Элемент "note" содержит четыре простых элемента - "to", "from", "heading" и "body":
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Пример №3
Следующий пример аналогичен примеру №2. Разница лишь в том, что для ссылки на имена элементов используется атрибут ref:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element ref="to"/>
<xs:element ref="from"/>
<xs:element ref="heading"/>
<xs:element ref="body"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:schema>