Расширение имени файла | .xsd |
---|---|
Тип интернет-носителя | application / xml, text / xml |
Разработано | World Wide Web Consortium |
Тип формата | Язык схемы XML |
Расширен с | XML |
Стандарт | 1.0, структуры части 1 (рекомендация),. 1.0, типы данных части 2 (рекомендация),. 1.1, структуры части 1 (рекомендация),. 1.1, типы данных части 2 (рекомендация) |
XSD (Определение схемы XML ), рекомендация Консорциума World Wide Web (W3C ), определяет, как формально описывать элементы на расширяемом языке разметки (XML ) документ. Программисты могут использовать его для проверки каждой части содержимого элемента в документе. Они могут проверить, соответствует ли он описанию элемента, в который он помещен.
Как и все языки схем XML, XSD можно использовать для выражения набора правил, которым должен соответствовать XML-документ. должен соответствовать, чтобы считаться "действительным" согласно этой схеме. Однако, в отличие от большинства других языков схем, XSD также был разработан с намерением, чтобы определение действительности документа производило сбор информации, относящейся к определенным типам данных. Такой информационный набор после проверки может быть полезен при разработке программного обеспечения для обработки XML-документов.
XML-схема, опубликованная как рекомендация W3C в мае 2001 года, является одним из нескольких языков XML-схем. Это был первый отдельный язык схем для XML, получивший статус Рекомендации W3C. Из-за путаницы между XML-схемой как конкретной спецификацией W3C и использованием этого же термина для описания языков схем в целом, некоторые части сообщества пользователей называли этот язык WXS, инициализмом для W3C XML. Схема, в то время как другие называли ее XSD, инициализм для определения схемы XML. В версии 1.1 W3C выбрал XSD в качестве предпочтительного имени, и это имя используется в этой статье.
В приложении со ссылками к спецификации XSD признается влияние DTD и других ранних попыток создания XML-схем, таких как DDML, SOX, XML-данные и XDR. Он заимствовал особенности каждого из этих предложений, но также является компромиссом между ними. Из этих языков XDR и SOX продолжали использоваться и поддерживаться некоторое время после публикации XML-схемы. Ряд продуктов Microsoft поддерживал XDR до выпуска MSXML 6.0 (который отказался от XDR в пользу схемы XML) в декабре 2006 года. Commerce One, Inc. поддерживал свой язык схемы SOX до объявления банкротства в конце 2004 года.
Наиболее очевидные функции, предлагаемые в XSD, которые недоступны в собственном XML Document Type Definitions (DTD), - это пространство имен осведомленность и типы данных, то есть возможность определять содержимое элемента и атрибута как содержащее такие значения, как целые числа и даты, а не произвольный текст.
Спецификация XSD 1.0 была первоначально опубликована в 2001 году, а второе издание вышло в 2004 году для исправления большого количества ошибок. XSD 1.1 стал Рекомендацией W3C в апреле 2012 г..
Технически схема представляет собой абстрактный набор метаданных, состоящий из набор компонентов схемы : в основном объявления элементов и атрибутов, а также определения сложных и простых типов. Эти компоненты обычно создаются путем обработки коллекции документов схемы, которые содержат определения этих компонентов на исходном языке. Однако в популярном использовании документ схемы часто называют схемой.
Документы схемы организованы по пространству имен: все названные компоненты схемы принадлежат целевому пространству имен, а целевое пространство имен является свойством документа схемы в целом. Документ схемы может включать в себя другие документы схемы для того же пространства имен и может импортировать документы схемы для другого пространства имен.
Когда документ-экземпляр проверяется по схеме (процесс, известный как оценка), схема, которая будет использоваться для проверки, может быть либо предоставлена в качестве параметра механизму проверки, либо на нее можно ссылаться непосредственно из экземплярный документ с использованием двух специальных атрибутов, xsi: schemaLocation
и xsi: noNamespaceSchemaLocation
. (Последний механизм требует, чтобы клиент инициировал проверку, чтобы доверять документу в достаточной степени, чтобы знать, что он проверяется по правильной схеме. «Xsi» - это обычный префикс для пространства имен «http://www.w3.org/ 2001 / XMLSchema-instance ".)
Документы схемы XML обычно имеют расширение имени файла".xsd ". Уникальный Internet Media Type еще не зарегистрирован для XSD, поэтому следует использовать «application / xml» или «text / xml» в соответствии с RFC 3023.
Основными компонентами схемы являются:
Другие более специализированные компоненты включают аннотации, утверждения, нотации и компонент схемы, который содержит информацию о схеме в целом.
Простые типы (также называемые типами данных) ограничивают текстовые значения, которые могут появляться в элементе или атрибуте. Это один из наиболее значительных отличий схемы XML от DTD. Например, атрибут может содержать только действительную дату или десятичное число.
XSD предоставляет набор из 19 примитивных типов данных (anyURI
, base64Binary
, boolean
, date
, dateTime
, decimal
, double
, duration
, float
, hexBinary
, gDay
, gMonth
, gMonthDay
, gYear
, gYearMonth
, NOTATION
, QName
, строка
и время
). Он позволяет создавать новые типы данных из этих примитивов с помощью трех механизмов:
Двадцать пять производных типов определены в самой спецификации, а дополнительные производные типы могут быть определены пользователями в их собственных схемах.
Механизмы, доступные для ограничения типов данных, включают возможность указывать минимальные и максимальные значения, регулярные выражения, ограничения на длину строк и ограничения на количество цифр в десятичных значениях. XSD 1.1 снова добавляет утверждения, возможность указывать произвольное ограничение с помощью выражения XPath 2.0.
Сложные типы описывают разрешенное содержимое элемента, включая его дочерний элемент и текст, а также его атрибуты. Определение сложного типа состоит из набора использования атрибутов и модели содержимого. Разновидности модели содержимого включают:
Сложный тип может быть производным от другого сложного типа ограничением (запрещение некоторых элементов, атрибутов или значений, допускаемых базовым типом) или расширением (разрешение появления дополнительных атрибутов и элементов). В XSD 1.1 сложный тип может быть ограничен утверждениями - выражения XPath 2.0 оцениваются по содержимому, которое должно быть истинным.
После проверки на основе схемы XML можно выразить структуру и содержимое XML-документа в терминах модели данных, которая была неявно во время проверки. Модель данных XML-схемы включает:
Этот набор информации называется Информационный набор после проверки схемы (PSVI). PSVI придает действительному XML-документу его «тип» и помогает рассматривать документ как объект с использованием парадигм объектно-ориентированного программирования (ООП).
Основная причина определения XML-схемы - формальное описание XML-документа; однако полученная схема имеет ряд других применений, выходящих за рамки простой проверки.
Схема может использоваться для генерации кода, называемого Привязка данных XML. Этот код позволяет обрабатывать содержимое XML-документов как объекты в среде программирования.
Схема может использоваться для создания удобочитаемой документации структуры файла XML; это особенно полезно, когда авторы использовали элементы аннотации. Формального стандарта для создания документации не существует, но доступен ряд инструментов, таких как таблица стилей, которые позволяют создавать высококачественные читаемые HTML и печатные материалы.
Несмотря на то, что XML-схема пользуется успехом в том, что она получила широкое распространение и в значительной степени достигает поставленных целей, она стала предметом серьезной критики, возможно, даже больше. чем любая другая Рекомендация W3C. Хорошие резюме критики предоставлены Джеймсом Кларком, Андерсом Мёллером и Майклом Шварцбахом, Риком Джеллиффом и Дэвидом Уэббером.
Общие проблемы:
Практические ограничения выражаемости:
Технические проблемы:
XSD 1.1 стал Рекомендацией W3C в апреле 2012, что означает, что это утвержденная спецификация W3C.
Существенными новыми функциями в XSD 1.1 являются:
До проекта Предлагаемой Рекомендации, XSD 1.1 также предлагал добавить новый числовой тип данных, precisionDecimal. Это вызвало споры, и поэтому было исключено из спецификации на поздней стадии разработки.
В Wikibooks есть книга по теме: XML Schema |
W3C XML Schema 1.0 Specification
W3C X Спецификация схемы ML 1.1
Другое