Схемы XML. Программные интерфейсы XML

Схемы

Со схемами XML вы имеете больше возможностей для определения того, как выглядят правильные XML-документы. Они имеют несколько преимуществ по сравнению с DTD:

· Схемы XML используют синтаксис XML. Другими словами, схема XML является XML-документом. Это означает, что вы можете обрабатывать схему так же, как и любой другой документ. Например, вы можете написать таблицу стилей XSLT, которая преобразует схему XML Web-форму вместе с автоматической генерацией кода JavaScript, который будет проверять данные по мере их ввода.

· Схемы XML поддерживают типы данных. Хотя DTD выполняет поддержку типов данных, оно рассматривает эти типы данных только с точки зрения публикации. Схемы XML поддерживают все исходные типы данных DTD (такие, как ID и ссылки ID). Они также поддерживают целые и вещественные числа, даты и времена, строки, URL и другие типы данных, полезные для обработки и проверки данных.

· Схемы XML являются расширяемыми. Кроме типов данных, определенных в спецификации XML schema, вы можете также создавать собственные типы и можете создавать типы-наследники на базе других типов данных.

· Схемы XML имеют более мощные выражения. Например, при помощи схем XML вы можете определить, что любое значение атрибута не может быть длиннее двух символов или что любое значение элемента должно соответствовать регулярному выражению.

Ничего из этого вы не можете сделать при помощи DTD.

Программные интерфейсы XML

Эти интерфейсы дают разработчикам целостный интерфейс для работы с XML-документами. Существует много доступных API; в этом разделе рассматриваются четыре из них, наиболее популярные и наиболее часто используемые: Объектная Модель Документа (DocumentObjectModel - DOM), Простой API для XML (Simple API for XML - SAX), JDOM и Java API для Разбора XML (Java API for XML Parsing - JAXP).

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

Чтобы оценить преимущество XML схем (XML Schema) перед DTD, давайте более подробно рассмотрим основные недостатки DTD, которые с успехом были исправлены в XML схемах. О них я уже упоминал в статье «XML DTD», но для лучшего понимания давайте повторим.

Недостатки XML DTD перед XML Schema

  1. Отличный от XML синтаксис языка. То есть, DTD не является XML. В связи с этим могут возникать разнообразные проблемы с кодировкой и верификацией XML-документов.
  2. Нет проверки типов данных. В XML DTD существует лишь один тип данных – строка. В связи с этим, например, если в числовом поле будет текст, документ все равно пройдет верификацию, так как XML DTD не может проверить тип данных.
  3. Нельзя поставить в соответствие одному XML-документу больше одного DTD описания. То есть, верифицировать документ можно лишь одним DTD описанием. Если их несколько, то придется переделывать описания и совмещать все в одном файле, что очень неудобно.

Это были основные недостатки XML DTD, которые с успехом исправлены в промышленном стандарте описания XML-документов XML Schema.

XML Schema – промышленный стандарт описания XML-документов

Если быть кратким, то XML Schema делает следующее:

  1. Описывает названия элементов и атрибутов (словарь).
  2. Описывает взаимосвязь между элементами и атрибутами, а также их структуру (модель содержания).
  3. Описывает типы данных.

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

Для создания XML схем используется уже известный нам XML. Единственное отличие здесь в том, что в XML Schema уже определены элементы, в отличие от обычного XML. В связи с этим используются пространства имен.

XML Schema это описание словаря и типов данных. Отталкиваясь от этого, произведем расшифровку каждого элемента.

  • <xs:elementname=»книга» type=»Книга» /> — объявляем элемент «книга» с типом «Книга».
  • <xs:complexTypename=»Книга»> — объявляем комплексный тип с именем «Книга» (xs:complexType – может содержать в себе вложенные элементы).
  • <xs:sequence> — объявление вложенности. То есть, тип будет содержать вложенные элементы.
  • <xs:elementname=»название» type=»xs:string» /> — объявляем элемент с именем «название» (стандартного типа «строка» — xs:string).
  • <xs:elementname=»цена» type=»xs:decimal» /> — объявляем элемент с именем «цена» (стандартного типа «число» — xs:decimal).

Описание элементов в XML Schema

Прикладной интерфейс программирования к языку описания стилей XML (XSLT API)

XSLT (XSL Transformation), описанная W3C XSL WorkingGroup, описывает язык преобразования XML документов в другие XML документы или другие форматы. Чтобы выполнить преобразование, как правило, нужно подключить таблицу стилей, написанную на XSL (XML StylesheetLanguage – язык таблиц стилей). Таблицы стилей XSL определяют способ отображения XML данных. Чтобы выполнить преобразование, XSLT использует команды форматирования в таблице стилей. Преобразованный документ может представлять собой как XML документ, так и документ в ином формате, например, в формате HTML.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: