Мир XML огромен и постоянно растет,
он населен множеством стандартов и технологий, которые
связаны друг с другом самым причудливым образом. Поэтому тем,
кто только начинает свое знакомство с XML, может оказаться
непросто ориентироваться в наиболее важных аспектах XML,
тем же, кто уже использует XML — следить за новинками
и изменениями. Эта серия статей, подготовленных Ючем
Огбуджи — учебное пособие по XML-стандартам, которое
содержит множество справочных материалов.
С момента своего появления язык XML зарекомендовал себя
с самой лучшей стороны, поэтому довольно быстро получил широкое
распространение. Он оказался чрезвычайно полезной технологией,
которая, однако, может оказаться весьма непростой для
понимания — если попытаться рассмотреть все, что попадает под
определение «XML». В этой серии статей автор кратко рассмотрит
наиболее важные, по его мнению, XML-технологии
и расскажет, какое место в мире XML занимает каждая
из них. Кроме того, в конце каждого раздела, посвященного
той или иной из обсуждаемых технологий, читатель сможет найти
список рекомендуемых учебных пособий и других справочных
материалов, которые могут оказаться полезными при ее изучении
и апробировании.
Все технологии, представленные в этих статьях, являются
стандартами, хотя само это слово довольно
двусмысленно. Дело в том, что имеется множество всевозможных
стандартов, и многие из них часто оказываются
предназначенными для одной и той же предметной области,
что приводит к их «конкуренции». При определении стандарта
автор статьи будет стоять на позиции прагматизма, считая
стандартом любую спецификацию, которая признана представительной
выборкой поставщиков или рекомендована авторитетной независимой
от них организацией.
Эта статья посвящена базовым XML-технологиям. Именно
с помощью этих технологий выражаются XML-документы.
В следующих статьях будут рассмотрены стандарты, относящиеся
к обработке XML, а также ряд наиболее важных
XML-приложений (или словарей).
Многообразие стандартовВ процессе разработки
стандартов участвует несколько организаций
и неофициальных групп. Большинство из них приведены
в разделе Ресурсы,
а пока автор попытается объяснить некоторые
из терминов, используемых в этой статье
применительно к стандартам.
Консорциум W3C издает официальные
Рекомендации, которые технически являются
просто предложениями для дальнейшей стандартизации, однако
имеют свойство превращаться в стандарты де-факто.
Спецификации получают этот статус после того, как Рабочая
версия спецификации (Working Draft) становится
Кандидатом к рекомендации (Candidate
Recommendation - окончательная редакция документа,
переданная на рассмотрение разработчикам с целью
тестирования и внедрения), а затем
Предложенной рекомендацией (Proposed
Recommendation - документом, по которому ожидается
голосование членов W3C).
Международная организация
по стандартизации (International
Organization for Standardization (ISO)), вероятно,
наиболее авторитетный орган стандартизации в мире. Многие
из отраслевых стандартов ISO равносильны
законам.
Организация по стандартизации
структурированной информации (Organization
for the Advancement of Structured Information Standards
(OASIS)) несколько изменилась со времен образования
консорциума SGML, но результаты ее деятельности
остались прежними. То, что ранее называлось
Технические резолюции (Technical
Resolutions), теперь известны как Спецификации
комитетов (Committee Specifications),
а их предназначение схоже с Рекомендациями W3C.
Целевая группа инженерной поддержки Internet (Internet Engineering Task Force
(IETF)) представляет собой модель организации, которая
пытается привлечь к работе над стандартами широкие массы,
формально оставаясь при этом организацией. Практически любой
человек, имеющий доступ в Интернет, может подать
на рассмотрение Рабочий вариант
Интернет-документа (Internet Draft)
и предложить его в качестве возможного стандарта.
Группа, регулирующая процесс стандартизации (steering group),
изучает этот документ и может рекомендовать его
публикацию в качестве Запроса
на комментарий (Request for Comment, RFC).
Запросы могут быть помечены как Запрос
на комментарий, рекомендованный как опытный
стандарт (Standards Track RFC), и даже как
Запрос на комментарий, рекомендованный как
стандарт (Standard RFC), хотя большинство публикаций,
появившихся как Запрос на комментарий, пользуются большим
авторитетом и часто широко применяется.
Наконец,
само сообщество XML-разработчиков
и пользователей славится своими успехами
в разработке хоть и неофициальных, но важных
стандартов, которые охватывают ниши, незамеченные крупными
организациями. В качестве примера можно привести SAX,
RDDL и EXSLT. OASIS старается взять под свое крыло
подобную деятельность, однако, по-прежнему остается множество
людей, которые ради утверждения разработанного ими документа
в качестве стандарта, не испытывают желания вступать
в официальную переписку. |
XML
Спецификация «XML 1.0 (Второе издание)» (XML 1.0 (Second
Edition)) [Рекомендация консорциума W3C (W3C
Recommendation)] — это, разумеется, «основной ствол ветвящегося
дерева» XML. В ней используется спецификация Unicode [Технический отчет
консорциума Unicode и стандарт ISO] для определения жестких
правил формирования текстового формата и для задания языка
проверки допустимости документа — Document Type
Definition (DTD). Нынешнее (втрое издание) этого документа
содержит ряд исправлений, накопившихся за время его
существования. Эта спецификация переведена
на множество языков, хотя только английская версия является
нормативной, что означает, что лишь один документ
может считаться стандартом.
Спецификация XML
1.1 [находится в процессе разработки] — это
первая редакция, в которой изменено определение корректно
оформленного (well-formed) XML-документа. Наиболее существенное
изменение заключается в пересмотре обработки символов
с целью более естественной адаптации спецификации XML
к изменениям в стандарте Unicode и обеспечения
нормализации символов для различных версий Unicode посредством
указания на спецификацию «Модель символов для World Wide Web
1.0» (Character Model for
the World Wide Web 1.0) [находится в процессе разработки].
Кроме того, в спецификации XML 1.1 в списке символов
конца строки появился символ NEL, используемый для конца строки
(EOL) в мейнфреймовых системах IBM. Это дополнение нельзя
расценить однозначно — некоторые наблюдатели полагают, что
та небольшая польза, которую извлекут пользователи мейнфреймов,
не стоит внесения столь существенного изменения. С другой
стороны, существует мнение, что все эти нововведения слишком
незначительны, чтобы вызвать проблемы с совместимостью
различных версий XML.
В основе XML лежит стандартный обобщенный язык
разметки (Standard Generalized Markup Language,
SGML), определенный в ISO 8879:1986 [стандарт
ISO]. XML представляет собой значительно упрощенный вариант SGML,
подвергнутый корректировке для лучшего соответствия среде Web.
Рекомендуемые обучающие руководства и учебные пособия
- «Введение в XML» (Introduction
to XML, developerWorks, август 2002г.) Дага Тидуэлла
(Doug Tidwell).
- «Учебное пособие по XML» (XML
tutorial) и «Учебное пособие по DTD» (DTD
tutorial), опубликованные на ресурсе ZVON, переведены
на многие языки.
- Отрывки
из книги Кена Солла (Ken Sall) «Семейство XML-спецификаций:
практическое руководство» (XML Family of Specifications:
A Practical Guide).
- Исчерпывающее «Учебное пособие по XML» (XML tutorial)
на ресурсе W3Schools, который не входит в состав
консорциума W3C.
- Учебное пособие Майка Брауна (Mike Brown) skew.org XML Tutorial,
в котором особое ударение сделано на вопросах кодировки.
В ней подробно освещены важные моменты, которые столь часто
опускаются из рассмотрения в других
материалах.
Список литературы и другие ресурсы
- «Спецификация XML с аннотациями» (The Annotated XML
Specification) Тима Брея (Tim Bray) содержит очень полезные
построчные комментарии и уточнения ко всему тексту XML
1.0.
- «Часто задаваемые вопросы о XML» (The XML FAQ) под
редакцией Питера Флинна (Peter Flynn).
- «Часто задаваемые вопросы о UTF-8 и Unicode для
Unix/Linux» (UTF-8 and
Unicode FAQ for Unix/Linux) Маркуса Куна (Markus Kuhn) —
великолепное справочное пособие для пользователей всех платформ.
Ценность этого материала становится понятной, если вспомнить, что
UTF-8 — самая распространенная кодировка Unicode.
- «Unicode в XML и других языках разметки» (Unicode in XML
and other Markup Languages) — формальный технический
отчет, полезный для читателей (вероятно, разработчиков), которым
необходимо очень точное рассмотрение точек пересечения Unicode
и XML.
- На сайте IBM в разделе «Введение в Unicode» (Introduction
to Unicode) очень подробно освещены основы Unicode.
- Ресурс «Открытый каталог ресурсов локализации» (Open
Internationalization Resources Directory) — отличный
справочный материал, охватывающий все аспекты управления
локализованными данными, что является основной целью использования
Unicode для XML.
Каталоги
В спецификации «Каталоги XML» (XML
Catalogs) [спецификация комитета организации OASIS] описывается
формат инструкций, которые определяют, как XML-процессор преобразует
идентификаторы сущностей (entity)
XML в фактические документы. Например, каталог
сущностей (entity catalog) можно
использовать для указания местоположения, с которого
XML-процессор загружает DTD при наличии системных и открытых
идентификаторов для этого DTD. Системные
идентификаторы обычно задаются унифицированными
идентификаторами ресурса (Uniform Resource
Identifier, URI), которые регулируются документом «Запрос
на комментарий 2396: Унифицированные идентификаторы ресурса»
(RFC 2396: Uniform
Resource Identifiers) [Запрос на комментарии Целевой группы
инженерной поддержки Internet (IETF RFC)]. Унифицированный
идентификатор ресурса — это всего лишь расширение
унифицированного указателя информационного ресурса (Uniform Resource
Locator, URL), который используется в Web-браузерах. Все
унифицированные указатели ресурса — это унифицированные
идентификаторы ресурса, но указатели также включают
унифицированные имена ресурса (Uniform Resource Name, URN), которые
регулируются документом «Запрос на комментарий 2141:
Унифицированные имена ресурса» (RFC 2141: Uniform
Resource Names) [Запрос на комментарии Целевой группы
инженерной поддержки Internet], которые являются способом указания
Web-ресурсов по имени, а не по местоположению
(см. «Устав рабочей группы URN» («The URN
Charter»)). Открытые идентификаторы обычно
определяются как формальные открытые идентификаторы (Formal Public
Identifiers, FPIs), которые определены на языке SGML. Каталоги
также можно применять в ситуациях, когда используемая машина
не располагает сетевым доступом к ресурсам, указанным
унифицированным локатором, или когда организации требуется заменить
внешний ресурс локальной версией.
Каталог XML является XML-документом, однако, имеется более ранний
формат для SGML и XML, который определяет формат каталога
в более простом виде — «Управление сущностями: Техническая
резолюция OASIS 9401:1997» (Entity
Management, OASIS Technical Resolution 9401:1997) [Стандарт
организации OASIS]. Этот формат часто называют Открытым
каталогом OASIS (OASIS Open Catalog).
Рекомендуемые обучающие руководства и учебные пособия
Обработка каталогов часто предоставляется как неотъемлемая часть
XML-парсера, но в некоторых материалах вводного характера
рассмотрен вопрос преобразования сущностей с использованием
каталогов:
Пространства имен
В спецификации «Пространства имен XML 1.0» (Namespaces in XML
1.0) [Рекомендация консорциума W3C] описывается механизм
универсального обозначения имен элементов и атрибутов
в XML-документах. Рассмотрим небольшой пример, который
объясняет причины появления этой технологии: представим XML-словарь,
в котором элементы с именами «head» и «body
используются для описания частей человеческого тела. Предположим,
что необходимо добавить в этот документ фрагмент
XHTML (будет рассмотрено позднее). XHTML тоже
определяет элементы «head» и «body». Возникает вопрос:
как же тогда отличить эти XHTML-элементы от одноименных,
представленных в главном словаре? Для решения этой задачи
предлагается, используя пространства имен XML, назначать каждому
словарю свой маркер. В пространствах имен XML каждый словарь
называется пространством имен и для выражения маркеров словарей
используется специальный синтаксис. Каждый элемент или атрибут может
быть связан с одним пространством имен, и, таким образом, можно
отличить элемент «head», используемый для описания части тела,
от «head» в XHTML. Среди экспертов в области XML
отсутствует однозначное мнение в отношении пространств имен,
это связано с тем, что эти пространства довольно усложнили
модель обработки XML, что сводит на нет все
их преимущества. Тем не менее пространства имен
превратились в фактически повсеместно признанный стандарт среди
пользователей XML и, они задействованы практически во всех
технологиях обработки XML.
Документ «Пространства имен XML 1.1» (Namespaces in XML
1.1) [находится в процессе разработки] — это
уточненная версия спецификации, в которой учтены дополнения
и исправления, а также, помимо прочего, добавлена
поддержка локализованных унифицированных локаторов ресурса.
Важный вопрос, который возникает в связи
с рассмотрением пространств имен XML, это какие виды ресурсов
должны идентифицировать унифицированные идентификаторы ресурсов
пространства имен. Эксперты в области XML, ведомые Джонатаном
Борденом (Jonathan Borden) и Тимом Брейем (Tim Bray),
разработали «Язык описания каталога ресурсов» (Resource Directory Description Language
(RDDL)), стандарт для компоновки информации в пространствах
имен. Этот стандарт использует XHTML для предоставления текстового
описания словаря, в котором для облегчения понимания
и обработки пространства имен используются вложенный XLink
(см. ниже), который предоставляет указатели на основные
ресурсы. Документ RDDL
2.0 [находится в процессе разработки] — это
уточненная версия спецификации, в которой предпринята попытка
заменить XLink следующими технологиями: "Инфраструктурой
описания ресурсов" (Resource Description Framework
(RDF)) (будет рассмотрено позднее) и альтернативными
предложениями в области задания ссылок XML, которые были
выдвинуты в ходе обмена электронными сообщениями, отправляемыми
в адрес Группы технического проектирования W3C
(W3C Technical Architecture Group, TAG).
Рекомендуемые обучающие руководства и учебные пособия
Пространства имен XML рассмотрены в некоторых учебных
пособиях о XML 1.0, приведенных выше. Кроме них стоит отметить
следующие материалы:
- «Учебное пособие по пространствам имен XML» (XML
namespace tutorial) на ресурсе ZVON.
- Статья Тима Брея (Tim Bray) «Пространства имен XML
на примерах» (XML
Namespaces by Example) — простая иллюстрация
пространств имен.
- На ресурсе Андерса Мёллера (Anders Møller) и Михаэля
И. Шварцбаха (Michael I. Schwartzbach) «Пространства
имен XML, XInclude и XML Base» (XML Namespaces,
XInclude, and XML Base) находится несложное введение
в пространства имен XML.
Список литературы и другие ресурсы
- «Часто задаваемые вопросы о пространствах имен XML» (XML
Namespaces FAQ) от Рональда Бурре (Ronald Bourret).
- В эссе Джеймса Кларка (James Clark) «Пространства имен
XML» (XML
Namespaces) подробно рассматриваются пространства имен, кроме
того в ней содержится популярная нотация для
их описания.
- В статье Эллиотта Расти Хэрольда (Elliotte Rusty Harold)
«Отыщите мне это: что находит унифицированный локатор пространства
имен» (RDDL
Me This: What Does a Namespace URL Locate?) является
введением в RDDL.
XML Base
В спецификации XML
Base определяется способ ассоциирования XML-элементов
с унифицированными идентификаторами ресурса с целью более
точного задания того, как преобразовывать относительные
унифицированные идентификаторы при проведении операций обработки
XML. Предположим в качестве примера, что XML-элемент содержит
сылку, которая использует относительный унифицированный локатор
ресурса. В этом случае абсолютный унифицированный локатор, для
которого необходимо задать ссылку, будет определятся путем указания
на базовый унифицированный идентификатор этого элемента.
Большинство XML-процессоров допускают базовый унифицированный
идентификатор ресурса для каждой сущности XML, которая образует этот
документ. Это поведение процессоров (по умолчанию) можно
отменить, воспользовавшись технологией XML Base.
Рекомендуемые обучающие руководства и учебные пособия
- Учебное пособие по XML Base» (XML Base
tutorial) на ресурсе ZVON.
- В учебном пособии автора данной статьи «Разработка
на Python/XML с помощью 4Suite, часть 4: композиция
и обновления» (Develop
Python/XML with 4Suite, Part 4: Composition and updates),
опубликованном в рубрике developerWorks на сайте IBM,
рассказывается о XML Base, а также
о XPointer, XInclude
(см. ниже) и XUpdate (будет рассмотрено
позднее) (октябрь 2002г.).
XInclude
В спецификации «Включения XML (XInclude) 1.0» (XML Inclusions (XInclude)
1.0) [находится в процессе разработки] определяется система
для объединения XML-документов. Обычно XInclude используется, если
необходимо разбить XML-документы на управляемые части.
Документы могут быть разбиты произвольным образом, а затем
объединены обратно с помощью XInclude. Внешние
разобранные сущности (External parsed
entities), конструкции XML 1.0, которые позволяют загружать
разделы документа из отдельного файла, могут быть использованы
аналогичным образом. Некоторые обозреватели отмечают, что
XInclude — это ненужная спецификация. Однако, XInclude
предлагает некоторые специальные функциональные возможности,
в том числе и выбор разделов документа для включения.
Рекомендуемые обучающие руководства и учебные пособия
- Статья Эллиотта Расти Хэрольда «Использование XInclude» (Using
XInclude) — отличное введение в эту технологию.
- «Учебное пособие по XInclude» (XInclude
tutorial) на ресурсе ZVON.
XML Infoset
В спецификации «Информационный набор XML» (XML Information Set)
[Рекомендация консорциума W3C], также известной как XML Infoset,
определяется абстрактный способ описания XML-документа в виде
набора объектов, называемых информационными
единицами (information items), обладающих
специальными свойствами. Этот абстрактный набор данных объединяет
свойства XML-документов, которые определяются в спецификациях
XML 1.0, «Пространства имен XML 1.0» и XML Base. Спецификация
XML Infoset используется как основание для нескольких других
спецификаций, которые пытаются разбить XML-документы на некую
совокупность составных объектов.
Рекомендуемые обучающие руководства и учебные пособия
- Статья Кена Солла «Исследование XML Infoset» (Exploring
the XML Infoset) — отрывок из его книги «Семейство
XML-спецификаций: практическое руководство».
Канонический XML («c14n»)
В спецификации «Канонический XML, версия 1.0» (Canonical XML Version 1.0)
[Рекомендация консорциума W3C] определяется стандартный метод
генерации физического представления XML-документа, называемого
канонической формой. В этой спецификации объясняется, как
выполнять эти модификации, допустимые с точки зрения синтаксиса
XML, не меняя при этом содержания. Например, порядок атрибутов
в XML не имеет значения, поэтому, если в одном
документе все атрибуты отсортированы в алфавитном порядке,
а другой документ отличается от первого только тем, что
атрибуты располагаются в каком-то ином порядке, эти два
документа являются идентичными с точки зрения XML 1.0, несмотря
на различия в физическом представлении. В результате,
возникают серьезные практические проблемы. Например, в случае
если необходимо поставить цифровую подпись на документ, чтобы
гарантировать его целостность, изменение порядка атрибутов приводит
к нарушению подписи, несмотря на то, что сам документ при
этом не изменяется. Решение этой проблемы заключается
в преобразовании документов в каноническую форму (процесс
называемый «канонизацией c14n») до того, как будут выполняться
различные операции над документом: его подписание, сравнение текста
и т.п. Благодаря этому, изменения, не существенные
с точки зрения XML 1.0, вносятся корректным образом.
Иногда, XML-документ, который необходимо сравнить или подписать,
на самом деле является просто разделом более крупного
документа. Спецификация c14n учитывает и этот случай —
указывая порядок обработки конструкций XML, например, объявлений
пространств имен. В том случае, если требуется, чтобы эта
спецификация ограничивалась подмножеством документа, необходимо
использовать соответствующий алгоритм «Исключающая канонизация XML,
версия 1.0» (Exclusive
XML Canonicalization Version 1.0) [Рекомендация консорциума
W3C].
XPath
В спецификации XML Path
Language (XPath) 1.0 [Рекомендация консорциума W3C]
определяются синтаксис и модель данных для адресации частей
XML-документа. В ней описываются некоторые функциональные
возможности универсального языка выражений. Данная спецификация
задумана как простой язык, который можно использовать для
не зависящей от приложения обработки в XML-системах.
Например, с помощью XPath можно определять в документе
место элементов, являющихся заголовками разделов.
XPath, пожалуй, самая успешная XML-технология,
за исключением XML 1.0. Она является основой
XSLT (будет рассмотрено позднее), очень удачного
языка трансформаций XML, поддерживается практически во всех
платформах, предназначенных для обработки XML. В спецификации
XPath
2.0 [находится в процессе разработки]
предусматривается значительное расширение функциональных
возможностей, включая поддержку XML-схемы W3C
(см. ниже) и множество новых базовых функций. Эта
спецификация вызывает весьма неоднозначные оценки —
по причине своей крайней сложности; многие пользователи
и разработчики, включая автора этой статьи, утверждают, что
не будут ее использовать, если только эта версия языка
не будет существенно упрощена.
Рекомендуемые обучающие руководства и учебные пособия
Практически в любом материале о XSLT содержится
и описание XPath. Ниже приведены учебные пособия, которые
посвящены только XPath:
- Учебное пособие по XPath» (XPath
tutorial) на ресурсе ZVON (на примерах).
- В «учебном пособии по XPath» (XPath tutorial)
на ресурсе W3Schools приводятся объяснения различных разделов
этой спецификации.
- «Глава 9 XPath» (Chapter
9: XPath) из книги Эллиотта Расти Хэрольда и Скотта
У. Минса (W. Scott Means) «XML в двух словах» (XML
in a Nutshell) — краткое введение в Xpath.
XPointer
Спецификация «Структура расширяемого языка указателей» (XPointer Framework)
[Рекомендация консорциума W3C] определяет язык, который можно
использовать для указания фрагментов XML-документа. Вероятно,
читатель уже знаком с тем, как использовать унифицированные
локаторы ресурса со знаком решетки («#»), чтобы связываться
с отдельным разделом HTML-документа. Язык XPointer
характеризуется аналогичными, но гораздо более широкими
возможностями по заданию ссылок или сносок
на XML-документы. Эту структуру можно использовать с xpointer() scheme
[находится в процессе разработки], element() scheme
[Рекомендация консорциума W3C] и xmlns() scheme
[Рекомендация консорциума W3C], в которых определены
специальные инструкции для выражения интересуемых фрагментов
документа в рамках структуры XPointer.
История разработки и принятия этой спецификации довольно
непростая. Так, сами члены Рабочей группы разработали спецификацию
FIXptr
[Общественный стандарт (Community Standard)], являющуюся полной
противоположенностью XPointer. Некоторые альтернативные схемы
XPointer включают xpath1()
scheme [Рабочий вариант Интернет-документа Целевой группы
инженерной поддержки Internet (IETF Internet Draft)].
Рекомендуемые обучающие руководства и учебные
пособия
Спецификация XPointer претерпела довольно значительные
изменения, прежде чем она достигла статуса Рекомендации, поэтому
читателю следует иметь в виду, что во многих материалах
рассматриваются более ранние версии XPointer.
XLink
В спецификации «Расширяемый язык задания ссылок XLink 1.0»
(XML Linking Language (XLink)
1.0) [Рекомендация консорциума W3C] определяется общая структура
для выражения ссылок в XML-документах. Поскольку основу Web-а
составляет гипертекс, связанный при помощи ссылок, реализация
возможностей задания сложных ссылок всегда рассматривалась как
краеугольный камень XML. На самом деле первоначально XLink
называлась «XML, часть 2». К сожалению, определить систему
задания ссылок для XML оказалось намного сложнее, чем для
статических словарей, как, например, HTML. Спецификация XLink прошла
нелегкий и долгий путь разработки и утверждения. Например,
разработчики XHTML (будет рассмотрено позднее) решили
не использовать XLink и разработали свою собственную
систему HLink [находится
в процессе разработки]. Даже сегодня, спустя несколько лет
после завершения работ над XLink, эта технология пока
не пользуется широким признанием.
Тем не менее XLink играет значительную роль, находясь
в центре многих важных XML-проектов, и обеспечивает
задание гораздо более мощных ссылок по сравнению
с простыми однонаправленными ссылками HTML. XLink поддерживает
как ссылки HTML (простые ссылки, simple
links), так и более сложные, которые могут иметь
многочисленные конечные точки (расширенные ссылки,
extended links), а также ссылки, которые
выражаются не в связанных документах,
а в специальных «кольцевых» документах (hub documents),
называемых базами связей
(linkbases).
Рекомендуемые обучающие руководства и учебные пособия
Ряд учебных пособий по XLink посвящен более ранним, ныне
устаревшим рабочим версиям этого языка. Ниже приведены материалы,
отвечающие текущей редакции XLink:
- В статье Ивы Мейлер (Eve Maler) «Задание ссылок XML:
современное состояние» (XML
Linking: State of the Art) содержится общее описание
понятий, формализованных в этой спецификации.
- На ресурсе ZVON находятся учебные пособия
и по простым связям XLink (simple
links), и по расширенным (extended
links).
Список литературы и другие ресурсы
- «Справочное пособие по XLink» (XLink
Reference) на ресурсе ZVON.
- В статье Боба дю Шарма (Bob DuCharme) «XLink: кому
они нужны» (XLink: Who
Cares?) рассматривается история XLink и содержится обзор
реализаций этой технологии.
RELAX NG
В спецификации RELAX
NG [Спецификация комитета организации OASIS и стандарт
ISO] описывается язык XML-схемы, то есть язык,
который можно использовать для определения и ограничения
XML-словарей. Исходным языком XML-схемы является Document Type
Definition (DTD), определенный в XML 1.0. Тем не менее
некоторым разработчикам не нравится язык DTD из-за его
неудобного синтаксиса, ограниченности в возможности выразить
конструкции для текста и разметки, а также из-за
сложностей при обработке пространств имен XML. В результате,
появилось несколько новых языков XML-схемы, предназначенных для
замены или улучшения DTD, включая RELAX NG, который пользуется
признанием за свое простоту и выразительность. Основная
спецификация RELAX NG определяет синтаксис схем;
в спецификации «Компактный синтаксис RELAX NG» (RELAX
NG Compact Syntax) [Спецификация комитета организации
OASIS] описывается простой текстовый синтаксис для схем RELAX NG.
Ожидается, что этот текстовый синтаксис будет включен
в стандарт ISO в качестве приложения. RELAX NG — это
часть проекта ISO «Языки описания схемы документа» (Document Schema Definition Languages
(DSDL)), целью которого является стандартизация систем обработки
XML-схем.
Рекомендуемые обучающие руководства и учебные пособия
- В вводной статье Николаса Чейза (Nicholas Chase)
«Объяснение RELAX NG» (Understanding
RELAX NG) затронуты как простота и мощь RELAX NG, так
и его компактный синтаксис, основанный на XML
(developerWorks, декабрь 2003г.)
- В колонке Дэвида Мертца (David Mertz) «Вопросы XML» (XML
Matters) рубрики developerWorks опубликован цикл статей «RELAX NG:
ответный удар» (Kicking back with RELAX NG), посвященных RELAX NG.
- В «Части
1» рассматривается семантика RELAX NG и типы
данных (февраль 2003г.).
- «Часть
2» — продолжение темы, начатой в первой статье,
в ней также приводится обзор инструментальных средств,
предназначенных для работы с RELAX NG (март 2003г.).
- В «Части
3» подробно рассказывается о компактном синтаксисе
RELAX NG, а также объясняются точные соответствия между
компактным синтаксисом и синтаксисом XML (май 2003г.).
- Официальные учебные пособия посвящены основам RELAX
NG (core)
и его компактному синтаксису (compact
syntax).
- На ресурсе ZVON находится комбинированное учебное пособие
по «RELAX NG и XML-схеме W3C» (RELAX
NG and W3C XML Schema language) (будет рассмотрено
позднее).
Список литературы и другие ресурсы
XML-схема W3C
В спецификациях «XML-схема, часть 1: структуры» (XML Schema Part 1:
Structures) и «XML-схема, часть 2: типы данных» (XML Schema Part 2:
Datatypes) [Рекомендации консорциума W3C] определяется еще один
язык схемы для XML. Первая спецификация позволяет накладывать
ограничения на структуру документа, вторая —
на содержание простых элементов и атрибутов. Спецификация
XML-схема W3C (W3C XML Schema, WXS) была подвергнута серьезной
критике за свою сложность и отсутствие выразительности;
результатом чего явилось существование других конкурирующих языков,
как, например, RELAX NG. Однако, сейчас пользователи всё чаще просто
используют тот язык схемы, который их устраивает больше всего,
а затем с помощью одного из широко представленных
на рынке инструментальных средств выполняют преобразование
из одного языка схем в другой. Несмотря
на многочисленные просьбы разработать альтернативные системы
типов, в многих других спецификациях используются типы
«XML-схема, часть 2: типы данных». Рабочая группа начала работы над
WXS 1.1.
Рекомендуемые обучающие руководства и учебные пособия
- В учебном пособии Николаса Чайза «Проверка допустимости
XML» (Validating
XML), опубликованном в рубрике developerWorks,
рассматриваются DTD и WXS (август 2003г.)
- «Учебное пособие по WXS» (WXS
tutorial) на ресурсе W3Schools.
- «XML-схема, часть 0: основные понятия» (XML Schema Part 0:
Primer) — очень подробное введение в эту технологию,
подготовленное Рабочей группой WXS.
Список литературы и другие ресурсы
Schematron
В спецификации «Язык утверждений Schematron 1.5» (The
Schematron Assertion Language 1.5) [Общественный стандарт
и рабочая версия стандарта ISO] определяется язык схемы,
который использует подход, отличный от примененного в DTD,
RELAX NG или WXS. Schematron предполагает задание совокупности
правил, по которым проверяется XML-документ,
а не отображение всей структуры дерева XML-формата,
который выражается от корневого узла до листьев. Благодаря
этому Schematron оказывается очень удобным не только как язык
схемы, но и как дополнение к другим языкам схем.
Поскольку на Schematron можно выражать ограничения, которые
невозможно записать на других языках схем, перечисленных выше,
его часто используют совместно с ними.
Рекомендуемые обучающие руководства и учебные пособия
Список литературы и другие ресурсы
Продолжение следует
В этой статье были рассмотрены наиболее важные
XML-стандарты. В следующей статье речь пойдет
о стандартах, играющих особую роль для обработки
приложений.
Ресурсы
- Книга Эллиотта Расти Хэрольда «Библия XML, второе издание» (The XML Bible, 2nd
Edition) (издательство Джон Уилей энд Санз (John Wiley &
Sons), 2001г.) — наиболее полный и исчерпывающий
источник информации об XML.
- Web-сайты наиболее значимых организаций, занимающихся
разработкой XML-стандартов:
- Статья Саймона Ст. Лорента (Simon St. Laurent) «Знакомство
с W3C, мнение не члена организации» (Outsider’s Guide
to the W3C) написана в форме часто задаваемых
вопросов, в которых освещаются многие аспекты деятельности
этой организации.
- Ресурс Робина Ковера (Robin Cover) The Cover Pages содержит
информацию практически обо всех существующих XML-технологиях.
- Новости сайта xmlhack,
в редактировании которых часто участвует автор этой статьи.
- Ряд ресурсов, посвященных XML, в разделе XML (рубрика
developerWorks) (developerWorks XML
content area), включая колонку автора этой статьи «Размышление
о XML» (Thinking
XML column).
- На странице IBM
Certified Developer in XML and related technologies
приведена информация о том, как стать сертифицированным
разработчиком XML.
Об авторе
Юч Огбуджи (Uche Ogbuji) - консультант и один из
основателей Fourthought,
компании, занимающейся поставками программного обеспечения и
предоставлением консалтинговых услуг в области XML-решений для
корпоративного управления знаниями. Fourthought разрабатывает
4Suite, платформу с открытым
исходным кодом, для XML, RDF и приложений по управлению
знаниями. Юч Огбуджи - инженер в области вычислительной
техники, он родился в Нигерии, сейчас живет и работает в
Боулдер-Сити (Boulder), штат Колорадо, США. С ним можно
связаться по адресу uche.ogbuji@fourthought.com.