Документация / XSD
Элементы и атрибуты
Объявление элемента
xs:element задаёт имя и тип элемента. Тип указывают атрибутом type (ссылкой на встроенный или именованный тип)
или вложенным анонимным xs:simpleType/xs:complexType.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="contact">
<xs:complexType>
<xs:sequence>
<xs:element name="fullName" type="xs:string"/>
<xs:element name="phone" type="xs:string" minOccurs="0" maxOccurs="3"/>
<xs:element name="birthDate" type="xs:date" nillable="true"/>
<xs:element name="country" type="xs:string" default="RU"/>
<xs:element name="version" type="xs:int" fixed="1"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
| Атрибут | Значение |
|---|---|
name | Имя элемента |
type | Тип значения |
minOccurs, maxOccurs | Сколько раз элемент встречается; по умолчанию ровно 1; unbounded — без ограничения |
default | Значение, если элемент пустой |
fixed | Единственно допустимое значение |
nillable | true — разрешает xsi:nil="true" вместо значения |
ref | Ссылка на глобальный элемент вместо локального объявления |
<?xml version="1.0" encoding="UTF-8"?>
<contact xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<fullName>Анна Смирнова</fullName>
<phone>+79161234567</phone>
<phone>+74951234567</phone>
<birthDate xsi:nil="true"/>
<country>RU</country>
<version>1</version>
</contact>
xsi:nil="true" означает «значение отсутствует», и это не то же самое, что пустая строка: для типа xs:date
пустой элемент невалиден, а nil — допустим, если разрешён nillable.
Ссылка на глобальный элемент
Если элемент встречается в нескольких типах, его объявляют один раз глобально и подключают через ref:
<xs:element name="address" type="xs:string"/>
<xs:complexType name="Customer">
<xs:sequence>
<xs:element ref="address" maxOccurs="2"/>
</xs:sequence>
</xs:complexType>
Атрибуты
Атрибуты объявляются внутри составного типа после модели содержимого (xs:sequence, xs:choice). Тип атрибута
всегда простой.
Атрибут xs:attribute | Значение |
|---|---|
use | optional (по умолчанию), required или prohibited |
default | Значение, если атрибут не указан (только для необязательных) |
fixed | Единственно допустимое значение |
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="price">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="currency" type="xs:string" default="RUB"/>
<xs:attribute name="vat" type="xs:boolean" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
<price vat="true">3490.00</price>
Элемент или атрибут?
- Атрибут — для коротких «метаданных» значения: единица измерения, валюта, код, признак.
- Элемент — для данных, которые могут повторяться, иметь структуру или расширяться в будущем.
- Порядок атрибутов не важен и не проверяется; порядок элементов задаёт модель содержимого.
Похожие инструменты
Обновлено: 30 сентября 2026 г.
