XML Schema — язык описания структуры XML-документа. Спецификация XML Schema является рекомендацией W3C.

XML Schema, как и большинство языков описания данных XML, был задуман для определения правил, которым должен подчиняться документ. Но в отличие от других языков описания данных он был разработан так, чтобы его можно было использовать в создании программного обеспечения для обработки XML-документов.

После проверки документа на соответствие XML Schema читающая программа может создать модель документа (конкретный тип документа как в DTD), которая включает: словарь (названия элементов и атрибутов); модель отношений между элементами и атрибутами и их структуру; типы данных элементов и атрибутов.

Каждый элемент в этой модели ассоциируется с определённым типом данных, позволяя строить в памяти как каркас (по схеме) будущего объекта, так и сам объект (при наполнении каркаса данными), соответствующие заданной структуре (схеме) XML-документа. Языкам объектно-ориентированного программирования гораздо легче иметь дело с таким объектом, чем с текстовым файлом.

Другим удобством XML Schema является то, что один словарь может ссылаться на другой, и, таким образом, разработчик может использовать уже существующие словари и легче устанавливать и распространять стандарты XML-структуры для определённых задач (например, словарь протокола SOAP).

Файл, содержащий XML Schema, обычно имеет расширение «.xsd» (XML Schema definition).

История Версия 1.0 была одобрена в качестве рекомендации консорциума W3C 2 мая 2001 года. Таким образом XML Schema стала первой спецификацией описания схемы XML-документа, получившей статус рекомендации W3С, среди множества предложенных на рассмотрение. 28 октября 2004 года была опубликована вторая редакция версии 1.0, исправляющая ряд ошибок.

5 апреля 2012 года была одобрена в качестве рекомендации консорциума Версия 1.1.

Пример

Простой пример схемы на XML Schema, расположенной в файле «country.xsd» и описывающей данные о населении страны: <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="country"> <xs:complexType> <xs:sequence> <xs:element name="country_name" type="xs:string"/> <xs:element name="population" type="xs:decimal"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> Пример документа, соответствующего этой схеме:

<?xml version="1.0" encoding="utf-8"?> <country> <country_name>France</country_name> <population>59.7</population> </country>

См. также DTD RELAX NG Schematron

Ссылки XML Schema. Рекомендация W3C. XML Schema. Часть 0: Основные сведения XML Schema. Часть 1: Структуры XML Schema. Часть 2: Типы данных

Другое XML-схема. Часть 0: Предисловие. Перевод рекомендации W3C на русский язык.

Категория:XML Категория:Стандарты W3C