Заключение

Еще одним из способов отображения XML-документа в Internet Explorer является работа с объектом msxml. Можно написать соответствующий обработчик, например на JavaScript или ASP, разбирающий заданный документ и выводящий его на экран. Применение объекта msxml достаточно стандартно. Сначала создается экземпляр объекта (методом CreateObject), затем инициализируются необходимые поля и производится обращение к методам объекта. Но этот способ обработки достаточно неудобен, т. к. необходимо для каждого разбираемого XML-документа писать собственный обработчик (т. е. фактически достаточно объемную программу).

Обещанные несколько слов о пространствах имен. Спецификация Namespaces in the XML Recommendation описывает их создание и использование. Речь идет о том, что, по сути, вводимые вами теги XML являются глобальными. А поскольку вероятность применения тега <title> многими разными людьми в разных контекстах (и с разным смыслом) весьма велика, то необходимо каким-то образом их различать. Для этого и используется пространство имен. Применяемая система базируется на использовании идентификаторов URI (Uniform Resource Identifier) — получается что-то вроде имен пакетов в Java.

Благодаря возможности «языкотворчества» в XML возникает еще одна аналогичная проблема. Поскольку каждая организация или человек может создавать собственные структуры XML-документов (схемы или DTD), неминуемо должны возникать проблемы с обменом данными. Один из выходов — стандартизация ряда DTD, что уже делается (в частности, для описания математических и химических документов). В этой связи интересны неутихающие споры вокруг инициативы компании Microsoft. Она создала специальный сервер (http://www.biztalk.org/), предназначенный для сбора и публикации различных схем структур документов ( www.biztalk.org/BizTalk/default.asp). Цель — обмен схемами и их доработка до своего рода «отраслевых стандартов». Противники Microsoft, как обычно, видят в этом всего лишь попытку монополизации рынка.

Второй выход — использование средств преобразования XML-документов из одного DTD в другой. Наиболее популярным инструментом такого преобразования является XSLT (XSL Transformations), который включает в себя множество конструкций, типичных для языков программирования (функции, циклы и т. д.). В общем-то, XSLT «вырос» из XSL. Первоначально предполагалось, что XSL будет решать две задачи: предоставление объектов, которые позволят организовать сложное форматирование (многоколонная верстка, двунаправленный текст и т. д.), и преобразование структурированных документов в форматированные. Теперь вторая задача перекладывается на XSLT.

Теперь к вопросу о ссылках, изображениях, скриптах, объектах и прочих украшательствах, к которым мы уже привыкли. Можно ли их использовать в XML? Да, конечно. Изображения могут быть вставлены как сущности. Скрипты описываются в блоках, которые разборщик XML-документа будет пропускать. Для задания ссылок вообще создано аж два языка: XLink и XPointer. Первый описывает правила создания ссылок, точнее — связей между документами (как вам понравится возможность связать одной ссылкой десяток документов?). Второй отвечает за ссылки на фрагменты документов (например, на третью букву второго слова седьмого предложения первого абзаца данной статьи).

Кроме того, уже разработаны или разрабатываются такие языки, как XForms (для добавления форм в XML-документы), XML Query (язык запросов к XML-документам и интеграции с базами данных), XML Schema Definition Language (примерно то же самое, что и DTD, но с более развитыми встроенными типами данных, мощными средствами описания сложных структур и другим синтаксисом), XML Base (язык описания базовых URI для XML-документов, примерный аналог тега base в HTML).

Ну как, дух не захватывает от перспектив великого и могучего «стека языков разметки» (как я его называю, видя здесь некоторую аналогию со стеком протоколов TCP/IP)? А они есть, и достаточно большие, так как в игру вступили крупнейшие корпорации. Их специалисты полагают, что XML будет использоваться как универсальное средство хранения данных, как средство обмена данными (например, в трехзвенных системах), будет описывать любые типы данных и выводить их на любое устройство вывода, а также осуществлять поиск и фильтрацию. Посмотрим.

< Назад

Статья опубликована журналом Hard'n'Soft в номере 2000, 10. Публикуется с любезного разрешения Hard'n'Soft


© журнал принадлежит Web Creation
по всем вопросам обращаться А. Кузьмин