Jump to content

XML-схема (W3C)

(Перенаправлено с XSD )
XML-схема (W3C)
Расширение имени файла
.xsd
Тип интернет-СМИ
приложение/xml, текст/xml
Разработано Консорциум Всемирной паутины
Тип формата Язык XML-схемы
Расширено с XML
Стандартный 1.0, Часть 1 Структуры (Рекомендация) ,

1.0, часть 2. Типы данных (рекомендация) ,
1.1, Часть 1 Конструкции (Рекомендация) ,

1.1, часть 2. Типы данных (рекомендация)

XSD ( определение схемы XML ), рекомендация Консорциума Всемирной паутины ( W3C ), определяет, как формально описывать элементы в документе расширяемого языка разметки ( XML ). Программисты могут использовать его для проверки каждой части содержимого элемента в документе, чтобы убедиться, что он соответствует описанию элемента, в котором он находится. [1]

Как и все языки схем XML , XSD можно использовать для выражения набора правил, которым должен соответствовать XML-документ, чтобы считаться «действительным» в соответствии с этой схемой. Однако, в отличие от большинства других языков схем, XSD также был разработан с намерением, чтобы при определении действительности документа производился сбор информации, относящейся к конкретным типам данных . после проверки Такой информационный набор может быть полезен при разработке программного обеспечения для обработки XML-документов.

XML Schema , опубликованная как рекомендация W3C в мае 2001 года. [2] — один из нескольких языков схем XML . Это был первый отдельный язык схемы для XML , получивший статус Рекомендации W3C. Из-за путаницы между XML-схемой как конкретной спецификацией W3C и использованием одного и того же термина для описания языков схем в целом, некоторые части сообщества пользователей называли этот язык WXS , инициализмом для XML-схемы W3C, в то время как другие ссылались на это как XSD , инициализм для определения схемы XML. [3] [4] В версии 1.1 W3C решил использовать XSD в качестве предпочтительного имени, и это имя используется в этой статье.

В приложении со ссылками спецификация XSD признает влияние DTD и других ранних усилий по созданию XML-схем, таких как DDML , SOX , XML-Data и XDR . Он перенял черты каждого из этих предложений, но также является компромиссом между ними. Из этих языков XDR и SOX продолжали использоваться и поддерживаться некоторое время после публикации XML-схемы. Ряд продуктов Microsoft поддерживали XDR до выпуска MSXML 6.0 (в котором XDR был заменен XML-схемой) в декабре 2006 года. [5] Commerce One , Inc. поддерживала свой язык схемы SOX до объявления о банкротстве в конце 2004 года.

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

Спецификация XSD 1.0 была первоначально опубликована в 2001 году, а второе издание последовало в 2004 году с исправлением большого количества ошибок. XSD 1.1 стал рекомендацией W3C в апреле 2012 года .

Схемы и документы схем

[ редактировать ]

Технически схема — это абстрактная коллекция метаданных, состоящая из набора компонентов схемы : в основном объявлений элементов и атрибутов, а также сложных и простых определений типов. Эти компоненты обычно создаются путем обработки набора документов схемы , которые содержат определения этих компонентов на исходном языке. Однако в обычном использовании документ схемы часто называют схемой.

Документы схемы организованы по пространству имен: все именованные компоненты схемы принадлежат целевому пространству имен, а целевое пространство имен является свойством документа схемы в целом. Документ схемы может включать в себя другие документы схемы для того же пространства имен и может импортировать документы схемы для другого пространства имен.

Когда документ экземпляра проверяется на соответствие схеме (процесс, известный как оценка ), схема, которая будет использоваться для проверки, может быть либо предоставлена ​​в качестве параметра механизму проверки, либо на нее можно ссылаться непосредственно из документа экземпляра с использованием двух специальных атрибутов. , xsi:schemaLocation и xsi:noNamespaceSchemaLocation. (Последний механизм требует, чтобы клиент, вызывающий проверку, достаточно доверял документу, чтобы знать, что он проверяется на соответствие правильной схеме. «xsi» — это обычный префикс для пространства имен « http://www.w3.org/2001/XMLSchema ». -пример ".)

Документы схемы XML обычно имеют расширение имени файла «.xsd». Уникальный тип интернет-медиа еще не зарегистрирован для XSD, поэтому следует использовать «application/xml» или «text/xml» в соответствии с RFC 3023.

Компоненты схемы

[ редактировать ]

Основными компонентами схемы являются:

  • Объявления элементов , которые определяют свойства элементов. К ним относятся имя элемента и целевое пространство имен. Важным свойством является тип элемента, который определяет, какие атрибуты и дочерние элементы может иметь элемент. В XSD 1.1 тип элемента может зависеть от значений его атрибутов. Элемент может принадлежать к группе замещения; если элемент E находится в группе замещения элемента H, то везде, где схема допускает появление H, на его месте может появиться E. Элементы могут иметь ограничения целостности: ограничения уникальности, определяющие, что конкретные значения должны быть уникальными в пределах поддерева, корнем которого является элемент, и реляционные ограничения, определяющие, что значения должны соответствовать идентификатору какого-либо другого элемента. Объявления элементов могут быть глобальными или локальными, что позволяет использовать одно и то же имя для несвязанных элементов в разных частях экземплярного документа.
  • Объявления атрибутов , которые определяют свойства атрибутов. Опять же, свойства включают имя атрибута и целевое пространство имен. Тип атрибута ограничивает значения, которые атрибут может принимать. Объявление атрибута также может включать значение по умолчанию или фиксированное значение (которое в этом случае является единственным значением, которое может принимать атрибут).
  • Простые и сложные типы . Они описаны в следующем разделе.
  • Определения группы моделей и группы атрибутов . По сути, это макросы: именованные группы элементов и атрибутов, которые можно повторно использовать во многих определениях различных типов.
  • представляет Использование атрибута связь сложного типа и объявления атрибута и указывает, является ли атрибут обязательным или необязательным, когда он используется в этом типе.
  • Частица элемента аналогичным образом представляет связь сложного типа и объявления элемента и указывает минимальное и максимальное количество раз, когда элемент может появляться в содержимом. Помимо частиц-элементов, модели контента могут включать в себя частицы группы моделей , которые действуют как нетерминалы в грамматике: они определяют единицы выбора и повторения в последовательности разрешенных элементов. Кроме того, разрешены частицы с подстановочными знаками , которые допускают набор различных элементов (возможно, любого элемента, при условии, что он находится в определенном пространстве имен).

Другие более специализированные компоненты включают аннотации, утверждения, обозначения и компонент схемы , который содержит информацию о схеме в целом.

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

XSD предоставляет набор из 19 примитивных типов данных ( anyURI, base64Binary, boolean, date, dateTime, decimal, double, duration, float, hexBinary, gDay, gMonth, gMonthDay, gYear, gYearMonth, NOTATION, QName, string, и time). Он позволяет создавать новые типы данных из этих примитивов с помощью трех механизмов:

  • ограничение (уменьшение набора разрешенных значений),
  • список (разрешающий последовательность значений) и
  • объединение (позволяющее выбирать значения из нескольких типов).

Двадцать пять производных типов определены в самой спецификации, а дополнительные производные типы могут определяться пользователями в их собственных схемах.

Механизмы, доступные для ограничения типов данных, включают возможность указывать минимальные и максимальные значения, регулярные выражения, ограничения на длину строк и ограничения на количество цифр в десятичных значениях. В XSD 1.1 снова добавлены утверждения — возможность указывать произвольное ограничение с помощью выражения XPath 2.0 .

Сложные типы описывают разрешенное содержимое элемента, включая его дочерние элементы и текст, а также его атрибуты. Определение сложного типа состоит из набора использований атрибутов и модели контента. Разновидности модели контента включают в себя:

  • содержимое только для элемента, в котором не может быть текста (кроме пробелов или текста, заключенного в дочерний элемент)
  • простой контент, в котором разрешен текст, но не дочерние элементы
  • пустой контент, в котором не разрешены ни текст, ни дочерние элементы
  • смешанный контент, который позволяет отображать как элементы, так и текст

Сложный тип может быть получен из другого сложного типа путем ограничения (запрета использования некоторых элементов, атрибутов или значений, которые разрешены базовым типом) или расширения (разрешения появления дополнительных атрибутов и элементов). В XSD 1.1 сложный тип может быть ограничен утверждениями — выражениями XPath 2.0, которые оцениваются по содержимому, которое должно иметь значение true.

Информационный набор после проверки схемы

[ редактировать ]

После проверки на основе XML-схемы можно выразить структуру и содержимое XML-документа в терминах модели данных , которая была неявной во время проверки. Модель данных XML-схемы включает в себя:

  • Словарь (имена элементов и атрибутов)
  • Модель контента (отношения и структура)
  • Типы данных

Этот набор информации называется информационным набором после проверки схемы (PSVI). PSVI присваивает допустимому XML-документу его «тип» и облегчает обработку документа как объекта, используя объектно-ориентированного программирования парадигмы (ООП).

Вторичное использование XML-схем

[ редактировать ]

Основная причина определения схемы XML — формальное описание XML-документа; однако полученная схема имеет ряд других применений, выходящих за рамки простой проверки.

Генерация кода

[ редактировать ]

Схема может использоваться для генерации кода, называемого привязкой данных XML . Этот код позволяет рассматривать содержимое XML-документов как объекты в среде программирования.

Создание документации по структуре файла XML

[ редактировать ]

Схема может использоваться для создания удобочитаемой документации файловой структуры XML; это особенно полезно, когда авторы использовали элементы аннотации. Никакого формального стандарта для создания документации не существует, но доступен ряд инструментов, таких как таблица стилей Xs3p , которые позволяют создавать высококачественные читаемые HTML и печатные материалы.

Хотя XML-схема успешна в том смысле, что она получила широкое распространение и в значительной степени достигает поставленных целей, она стала предметом серьезной критики, возможно, большей, чем любая другая рекомендация W3C.Хорошее изложение критических замечаний предоставлено Джеймсом Кларком: [6] Андерс Мёллер и Михаэль Шварцбах, [7] Рик Джеллифф [8] и Дэвид Уэббер. [9]

Общие проблемы:

  • Он слишком сложен (спецификация состоит из нескольких сотен страниц на очень техническом языке), поэтому его трудно использовать неспециалистам, но многим неспециалистам нужны схемы для описания форматов данных. Саму Рекомендацию W3C чрезвычайно сложно читать. Большинству пользователей гораздо проще понять W3Cs XML Schema Primer .
  • В XSD отсутствует какая-либо формальная математическая спецификация. (Это затрудняет рассуждения о схемах, например, доказательство того, что модификация схемы обратно совместима.)
  • В языке много сюрпризов, например, ограничение элементов работает иначе, чем ограничение атрибутов.

Практические ограничения выразимости:

  • XSD предлагает очень слабую поддержку неупорядоченного содержимого.
  • XSD не может требовать определенного корневого элемента (поэтому для проверки даже самых простых документов требуется дополнительная информация).
  • При описании смешанного содержимого данные символов не могут быть каким-либо образом ограничены (нельзя указать даже набор допустимых символов).
  • Объявления контента и атрибутов не могут зависеть от атрибутов или контекста элемента (это также было указано как центральная проблема DTD).
  • Это не на 100% самоописание (тривиальный пример см. в предыдущем пункте), даже несмотря на то, что это было первоначальным требованием к проектированию.
  • Значения по умолчанию не могут быть указаны отдельно от объявлений (это затрудняет создание семейств схем, которые отличаются только значениями по умолчанию); значениями элемента по умолчанию могут быть только символьные данные (не содержащие разметки).

Технические проблемы:

  • Хотя технически он соответствует пространству имен, он, похоже, не соответствует духу пространства имен (например, «неквалифицированные локальные пользователи»).
  • В XSD 1.0 не было возможности указать, что значение или присутствие одного атрибута зависит от значений или присутствия других атрибутов (так называемые ограничения совместного появления ). Это было исправлено в XSD 1.1.
  • Набор предлагаемых типов данных XSD весьма произволен. [10]
  • Две задачи проверки и расширения (добавление информации о типе и значений по умолчанию) следует разделить.

Версия 1.1

[ редактировать ]

XSD 1.1 стал рекомендацией W3C в апреле 2012 года , что означает, что это утвержденная спецификация W3C.

Важными новыми функциями XSD 1.1 являются:

  • Возможность определять утверждения относительно содержимого документа с помощью выражений XPath 2.0 (идея, заимствованная у Schematron ).
  • Возможность выбора типа, по которому будет проверяться элемент, на основе значений атрибутов элемента («условное присвоение типа»).
  • Ослабление правил, согласно которым явные элементы в модели контента не должны соответствовать подстановочным знакам, также разрешенным моделью.
  • Возможность указывать подстановочные знаки (как для элементов, так и для атрибутов), которые применяются ко всем типам в схеме, чтобы все они реализовывали одну и ту же политику расширяемости.

До проекта предлагаемой рекомендации в XSD 1.1 также предлагалось добавление нового числового типа данных — PrecisionDecimal. Это оказалось спорным, и поэтому было исключено из спецификации на поздней стадии разработки.

См. также

[ редактировать ]
  1. ^ « Определение XSD (Определение схемы XML) » TechTarget, получено 10 июня 2014 г.
  2. ^ «Хронология стандартов XML и семантической сети W3C» (PDF) . 04 февраля 2012 г.
  3. ^ См. схему — W3C.
  4. ^ См. Язык определения схемы XML W3C (XSD) 1.1, часть 1: Структуры.
  5. ^ «Удаление поддержки схемы XDR в MSXML 6.0» . Проверено 19 сентября 2010 г.
  6. ^ Джеймс Кларк, краткое изложение критики XML-схемы и продвижение RELAX NG как альтернативы, https://web.archive.org/web/20150316212413/http://www.imc.org/ietf-xml-use/mail-archive/msg00217.html
  7. ^ Андерс Мёллер и Майкл И. Шварцбах представляют «Проблемы со схемой XML», http://cs.au.dk/~amoeller/XML/schemas/xmlschema-problems.html
  8. ^ Критика Рика Джеллиффа в мае 2009 г., https://web.archive.org/web/20090516232816/http://broadcast.oreilly.com/2009/05/w3c-please-put-xsd-11-on-hold. HTML
  9. ^ Дэвид Уэббер, официальный документ сравнения и аналитических данных OASIS от августа 2008 г., http://www.oasis-open.org/committees/download.php/29164/White%20Paper%20on%20CAM%20and%20XSD.pdf
  10. ^ Эту точку зрения усиливает Уче Огбуджи. Подробнее о войне классов XML - блог O'Reilly ONLamp

Дальнейшее чтение

[ редактировать ]
  • Окончательная XML-схема , Присцилла Уолмсли, Прентис-Холл, 2001 г., ISBN   0-13-065567-8
  • XML-схема , Эрик ван дер Влист, О'Рейли, 2001 г., ISBN   0-596-00252-1
  • The XML Schema Companion , Нил Брэдли, Аддисон-Уэсли, 2003 г., ISBN   0-321-13617-9
  • Профессиональные XML-схемы , Джон Дакет и др., Wrox Press, 2001, ISBN   1-86100-547-4
  • XML-схемы , Люсинда Дайкс и др., Sybex, ISBN   0-7821-4045-9
[ редактировать ]

Спецификация W3C XML Schema 1.0

Спецификация W3C XML Schema 1.1

Другой

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 35e377a3eb5bfcd3bf4bee39e81020f5__1710258120
URL1:https://arc.ask3.ru/arc/aa/35/f5/35e377a3eb5bfcd3bf4bee39e81020f5.html
Заголовок, (Title) документа по адресу, URL1:
XML Schema (W3C) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)