stringtranslate.com

XML-схема (W3C)

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

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

История

XML-схема , опубликованная в качестве рекомендации 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.

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

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

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

Типы

Простые типы (также называемые типами данных) ограничивают текстовые значения, которые могут присутствовать в элементе или атрибуте. Это одно из наиболее существенных отличий 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]

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

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

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

Версия 1.1

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

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

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

Смотрите также

Рекомендации

  1. ^ «Определение XSD (Определение схемы XML)» TechTarget, получено 10 июня 2014 г.
  2. ^ «Хронология стандартов XML и семантической сети W3C» (PDF) . 04.02.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- архив/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

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

Внешние ссылки

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

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

Другой