Обзор

Ведущие производители пытаются расширить сферу применения этого языка в корпорациях

Ларри Зельцер

Любое новое технологическое направление, как правило, не испытывает недостатка в хулителях; однако XML (Extensible Markup Language - расширяемый язык разметки), похоже, исключение. У этой технологии есть все, что служит обычно поводом для похвал: она открыта, расширяема, связана с Web, а заявления о ее поддержке так и сыплются со всех сторон. Действительно, трудно придумать, за что бы ее покритиковать, вот разве только за порожденную ею лавину неудобоваримых аббревиатур.

Хотя язык XML используется в корпорациях пока еще крайне ограниченно, такие крупные производители, как IBM, Netscape Communications, Oracle и, в особенности, Microsoft, не жалеют сил на его развитие. При всем при том, как и многие технологии до него, этот язык сталкивается на своем пути с серьезными препятствиями.

XML представляет собой синтаксически последовательный способ описания языков описания данных. Подобно HTML, он является упрощенным вариантом SGML (Standard Generalized Markup Language - стандартный универсальный язык разметки). Отличие состоит в том, что HTML ограничен одним конкретным словарем SGML - это означает, что в нем используется единственный набор тегов, описанный заголовком SGML DTD (Document Type Definition - определение типа документа; DTD - основной механизм, посредством которого организации, занимающиеся стандартизацией, и независимые разработчики ПО формируют основанные на XML словари тегов). XML же позволяет разработчикам использовать множество различных DTD и определять свои собственные теги. Таким образом, появляется возможность описания произвольных структур данных.

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

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

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

Не только для Web

Широкой известностью XML обязан в основном своим связям с миром Web; однако корпорации DataChannel и Microsoft, а также ряд других производителей предлагают средства программирования, позволяющие использовать этот язык в разработке произвольных приложений. Например, протокол ICE (Information and Content Exchange - обмен информацией и информационным наполнением) предназначается для обмена данными между серверами. Существует множество способов представления XML-данных, ориентированных на конкретные условия среды воспроизведения. Однако это как раз та самая область, где проявляется несовершенство XML: реализация способов представления данных не может похвастать последовательностью.

Некоторые среды, такие, как браузер Internet Explorer 4.0 корпорации Microsoft, предлагают отображение неформатированных XML-данных в простом, используемом по умолчанию представлении. IE 5.0 поддерживает помимо этого XML Islands - “островки” XML-кода, внедренные в тело HTML-документа. IE и Communicator 5.0 корпорации Netscape допускают совместное использование XML с форматом Cascading Style Sheets (каскадные таблицы стилей), первоначально предназначенным для описания компоновки HTML-документов.

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

Чтобы обеспечить всего-навсего работоспособность XML-приложения в среде браузера, приходится выбирать между IE 4.0 и IE 5.0 либо писать специальный серверный компонент, который будет преобразовывать XML в HTML перед передачей информации клиенту. В последнем случае преимущества основанной на XML логики оказываются потеряны для клиентской стороны, хотя на серверной сохраняется возможность разгрузить от лишней работы сервер СУБД, перенеся часть логики на Web-сервер или сервер приложений (для последних открываются возможности доступа к данным).

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

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

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

Требуется определение

Само понятие “поддерживающий XML браузер” пока еще остается не стандартизованным. IE 4.0 поддерживает XML с использованием двух реализованных в виде ActiveX-компонентов синтаксических анализаторов. Один из них написан на языке Си++ и является неоценивающим, а второй, оценивающий, написан на Java. Оценивающий браузер поддерживает также и XSL (Extensible Style sheet Language - расширяемый язык описания таблиц стилей).

Крупнейшим достижением IE 5.0 в рассматриваемой области стало введение модели XML DOM (Document Object Model - объектная модель документа) для манипулирования документами из исполняющихся в среде браузера сценариев или других приложений, написанных на поддерживающих ActiveX языках. Это позволит создавать очень мощные клиентские приложения, мало беспокоящие сервер по пустякам. Например, многие обращения к серверу с дополнительными запросами могут быть заменены обработкой уже переданных данных на клиентской стороне.

Уровень поддержки XML в продукте Netscape ясно виден из опубликованного кода Mozilla (см. документ www.mozilla.org/rdf/doc/xml.html). К настоящему времени дело ограничивается преобразованием XML в HTML, но компания намерена обеспечить полную поддержку DOM.

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

Независимый автор Ларри Зельцер специализируется на технологиях Internet и средствах разработки. С ним можно связаться по адресу: lseltzer@ bigfoot.com.