XML: возможности и перспективы

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

Ключевые моменты

 

  • Язык и платформа XML
  • <Физика> и <логика> XML-документов
  • Метаданные XML
  • XML и базы данных
  • Семантика ресурсов XML
  • Перспективы XML


Во второй половине 2000 года на страницах <Директора> состоялось обсуждение этих вопросов. Однако при этом не были затронуты важные моменты, на которые стоит обратить внимание.

Часть 1. Платформа XML и составляющие ее стандарты


В последние годы мы являемся свидетелями развивающейся во Всемирной паутине <бархатной> революции, которая связана с появлением нового стандарта языка гипертекстовой разметки XML.

Михаил Рувимович Когаловский - заведующий лабораторией систем баз данных Института проблем рынка РАН, ученый секретарь Московской секции ACM SIGMOD. Ему можно написать по адресу: kogalov@cemi.rssi.ru

По нашему мнению, происходит действительно революция, поскольку интенсивным образом формируются радикально новые Web-технологии. Революцию эту вполне можно считать <бархатной>, поскольку она осуществляется осмотрительно, с явно выраженными и практически осуществляемыми намерениями сохранить все те огромные информационные ресурсы и те полезные Web-ориентированные приложения, которые интенсивно создавались в среде Web за ее недолгую историю.

Одновременно с этими внутренними переменами Web подвержен также сильному влиянию внешних процессов, в значительной мере ими же стимулированных и связанных с активно развивающейся в последние годы новой тенденцией в разработках информационных систем - с интеграцией технологий баз данных, текстовых (документальных) систем, технологий Java, Web-технологий, технологии неоднородных распределенных объектных сред CORBA на основе различных подходов. Причины этой тенденции заключаются в стремлении не только к обогащению функциональных возможностей создаваемых крупных систем, но и к обеспечению интеграции, в том числе и на смысловом (семантическом) уровне, неоднородных информационных ресурсов, созданных и поддерживаемых средствами различных технологий.

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

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

Язык XML и XML-платформа


Язык XML и XML-платформа

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

За редким исключением другие стандарты платформы XML рассматриваются разработчиками как приложения XML, главным образом в связи с тем, что для их спецификаций используется синтаксис языка XML. Однако немаловажную роль играет и то обстоятельство, что определяемые этими стандартами новые возможности вводятся путем конкретизации смысла и функциональности некоторых синтаксических компонентов языка XML. Другими словами, в спецификациях языка XML и некоторых других стандартов платформы имеется ряд «открытых точек», благодаря которым обеспечивается естественный путь расширения функциональных возможностей XML в различных аспектах. Спецификации некоторых таких расширений и определяются рядом стандартов платформы XML (рис. 1).



Рис. 1. Стандарты платформы XML. Стрелки указывают на использование одних стандартов в определении других. Рамки разного цвета указывают различное состояние стандартов: желтый – для стандарта имеется принятая версия; зеленый – стандарт принят частично; красный – стандарт находится в стадии разработки; синий – еще нет проекта стандарта


Эти стандарты позволяют, в частности, определять множество допустимых в XML-документе тегов разметки и их атрибутов, ассоциируя с ними по умолчанию некоторую семантику (стандарт пространства имен XML — Namespaces in XML [5]), обогащают имеющиеся в языке возможности описания с помощью DTD структуры XML-документов (стандарт спецификаций схемы — XML Schema [6-8]), позволяют определять гиперсвязи между документами и/или их фрагментами (стандарты языка указателей и языка гиперссылок — XPointer [9] и XLink [10]), дают возможность описывать семантику XML-документов с различной степенью формализованности (стандарт среды определения ресурсов — RDF [11-12]), управлять представлением XML-документов на стороне клиента (стандарты каскадных таблиц стилей CSS [13] и расширяемого языка таблиц стилей XSL [14]), описывать трансформации XML-документов (стандарт языка описания трансформаций XML-документов — XSLT [15] — специальная часть стандарта XSL).

Кроме того, создан стандарт объектной модели DOM [16] для XML- и HTML-документов, определяющий функции интерфейса прикладного программирования для их обработки.

Разрабатываются также стандарт языка запросов ресурсов XML (XML-QL), для чего сформулированы требования к базовой модели и языку [17-18] и изучается ряд имеющихся претендентов [19], и стандарт электронной подписи для XML-документов (XML-Signature [20]).

Особое место в рассматриваемом комплексе стандартов занимает недавно принятый W3C стандарт XHTML 1.0 [21]. Он предоставляет один из возможных путей обеспечения преемственности развития среды Web, позволяя использовать на платформе XML информационные ресурсы, накопленные в рамках технологий HTML. Этот стандарт поддерживает средствами XML функциональность текущей версии языка HTML (HTML 4.01) с тремя различными уровнями полноты.

Рассматриваемый комплекс стандартов платформы XML включает также целый ряд вспомогательных стандартов. Приведем несколько примеров. Стандарт XML Information Set (Infoset) [22] представляет абстрактное описание тех данных, которые составляют XML-документ. На него опирается спецификация XML [1]. Стандарт XPath [23] определяет понятие фрагмента XML-документа, используемое в языках XPointer и XSLT. В стандарте XML Inclusions (XInclude) [24] представлены модель и синтаксис для описания слияния XML-документов. Стандарт XML Fragment Interchange [25] позволяет описывать контекст фрагментов XML-документа и благодаря этому просматривать и редактировать их вне полного текста документа. Упомянем также стандарт Canonical XML [26], в котором предлагается метод, позволяющий устанавливать эквивалентность двух XML-документов с различным синтаксическим представлением. Эта возможность существенна, в частности, для использования цифровой подписи [20].

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

Как XML взаимосвязан с другими стандартами платформы


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

В общих чертах используется следующий подход.

Главная «открытая точка» языка заключается в том, что XML — это метаязык, как и породивший его язык SGML. В отличие от языка HTML в его спецификации не фиксируется функциональная специализация элементов XML-документов, их атрибутов и семантика значений атрибутов. Именно путем конкретизации функциональности и синтаксиса элементов XML-документов можно расширять функциональность языка XML.

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

Предполагается при этом, что каждому имени, принадлежащему данному пространству имен, а также значениям атрибутов соответствует некоторая семантика, определяемая по умолчанию или явным образом. Способ определения семантики при этом в стандарте Namespaces in XML никак не фиксируется. Эти определения могут базироваться на различных других стандартах или методах, требуемых для какого-либо конкретного приложения.

Cтандарты платформы XML, расширяющие функциональность языка, строятся именно по этому принципу. Вводится пространство имен с зарезервированным именем, определяющее имена специальных типов элементов XML-документов и их атрибутов. Семантика этих элементов и их атрибутов и синтаксические соглашения определяются в спецификациях этих дополнительных стандартов. Принадлежащие этому пространству имена считаются общепринятыми.

Примером использования рассмотренного механизма расширения XML может служить стандарт XLink [10], который позволяет использовать в XML-документах специального вида ссылочные элементы, обеспечивающие различного рода гиперссылки между XML-документами. В самом языке XML концепция гиперссылки не поддерживается.

Какие данные может представлять XML


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

XML позволяет осуществлять разметку текстовых файлов, превращая линейный текст в гипертекст. Различные файлы иной природы, называемые часто двоичными файлами, не являются объектами гипертекстовой разметки средствами XML. Однако спецификации языка XML позволяют интегрировать такие информационные ресурсы в гипертекст с помощью ссылок на содержащие их файлы, порождая тем самым гипермедийные информационные ресурсы, составляющие содержимое страниц Web. Наряду со ссылками на ресурсы, содержащиеся в двоичных файлах, XML-документ может содержать непосредственно их текстовое описание или ссылаться на другие XML-документы, которые его содержат. Эти последние, в свою очередь, могут содержать интегрированные в них двоичные файлы и т. д. Никаких иных возможностей описания и представления данных типа изображений, аудио, видео и т. д. язык XML не обеспечивает.

XML и HTML: какой язык сложнее


В обсуждении [4] ставился вопрос о сопоставлении сложности стандартов HTML и XML. Утверждалось, что язык XML примитивнее HTML. Хотелось бы уточнить этот момент.

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

Однако XML отнюдь не примитивнее HTML. Если сопоставлять функциональные возможности этих языков, то нужно прежде всего принять во внимание, что хотя они и имеют общие корни — известный международный стандарт обобщенного языка разметки документов SGML [27], но тем не менее относятся к разным уровням абстракции.

Язык XML — это метаязык, являющийся, как известно, подмножеством стандарта SGML. Как и SGML, он предназначен для порождения разнообразных конкретных языков разметки путем определения конкретных наборов тегов (в XML — типов элементов документа). Эти определяемые с помощью XML языки являются, таким образом, его конкретизациями.

Что касается языка HTML, то это — конкретный (не расширяемый) язык. Функциональность тегов разметки в нем фиксированна, в отличие от XML. HTML создавался как простейшая конкретизация SGML, представляющего собой мощный метаязык. HTML может также быть определен средствами XML (вспомним стандарт XHTML), и поэтому он представляет собой также одну из конкретизаций XML.

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

Многоуровневое представление XML-документов




Рекомендуем почитать

 

Добавить комментарий


Ваше имя:


Комментарий:


Введите: Картинка