Документация / XSD
Структура схемы
Элемент xs:schema
Корень любой схемы — xs:schema. Его главные атрибуты:
| Атрибут | Назначение |
|---|---|
targetNamespace | Пространство имён, к которому относятся объявленные в схеме глобальные элементы и типы |
elementFormDefault | qualified — локальные элементы тоже в целевом пространстве имён; unqualified (по умолчанию) — без пространства имён |
attributeFormDefault | То же для локальных атрибутов; обычно оставляют unqualified |
version | Версия схемы (произвольная строка, для людей) |
blockDefault, finalDefault | Ограничения наследования и подстановки по умолчанию |
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:shop="http://example.com/shop"
targetNamespace="http://example.com/shop"
elementFormDefault="qualified"
version="1.2">
<xs:element name="customer" type="shop:Customer"/>
<xs:complexType name="Customer">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="email" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Ссылки на собственные типы и элементы (type="shop:Customer") записываются с префиксом целевого пространства
имён — поэтому его объявляют в корне схемы (xmlns:shop). Встроенные типы берутся из пространства XML Schema
(xs:string).
Глобальные и локальные компоненты
- Глобальные — прямые потомки
xs:schema: их можно использовать из любого места схемы (и из других схем) по имени. Корнем документа может быть только глобальный элемент. - Локальные — объявленные внутри типа: видны только там.
Именованные глобальные типы (xs:complexType name="…") делают схему читаемой и позволяют переиспользовать
структуры. Анонимные типы внутри элемента удобны для одноразовых структур.
Документ по схеме
Документ указывает схему атрибутами из пространства имён http://www.w3.org/2001/XMLSchema-instance (префикс
xsi):
xsi:schemaLocation— пары «пространство имён — расположение схемы» через пробел;xsi:noNamespaceSchemaLocation— схема для документа без пространства имён.
<?xml version="1.0" encoding="UTF-8"?>
<customer xmlns="http://example.com/shop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://example.com/shop customer.xsd">
<name>Иван Петров</name>
</customer>
Это подсказка, а не требование: валидатор может взять схему из другого места. В редакторе XML схему для проверки выбирают явно.
Что можно объявить в схеме
| Компонент | Элемент | Назначение |
|---|---|---|
| Элемент | xs:element | Тег документа и его тип |
| Атрибут | xs:attribute | Атрибут элемента |
| Простой тип | xs:simpleType | Значение без вложенных элементов и атрибутов |
| Составной тип | xs:complexType | Вложенные элементы и/или атрибуты |
| Группа элементов | xs:group | Именованный фрагмент модели содержимого |
| Группа атрибутов | xs:attributeGroup | Именованный набор атрибутов |
| Нотация | xs:notation | Формат внешних данных (редко) |
| Аннотация | xs:annotation | Документация и служебная информация |
Похожие инструменты
Обновлено: 30 сентября 2026 г.
