*1

ОБЗОРЫ

Расширяемый язык XML

_____

*1 Окончание. Начало см. PC Week/RE, N 37/2003, c. 33; N 38/2003, c. 32; N 39/2003, c. 46.    

XML сегодня

Из наиболее значимых этапов современного развития XML и различных технологий на его основе надо отметить следующие.

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

Январь 2000 г. Выход языка XHTML 1.0, представляющего семантику последней версии HTML 4.01 в виде XML-файлов.

Май 2001 г. Опубликована версия XHTML 1.1, реализующая модульный подход к созданию XHTML-файлов, что позволило анализировать эти файлы одинаковыми способами в разных операционных системах (в 2003 г. появилась версия XHTML 2.0, определяющая синтаксис HTML с помощью трех DTD-документов).

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

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

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

Июнь 2001 г. Технология Xlink добавила интеллекта гиперссылкам XML - теперь стало возможным указывать, например, сценарий действий программы при щелчке пользователя на конкретной ссылке.

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

Технология XPointer ввела в XML средства формирования указателей на объекты любых типов и любые их части (не только элементы текста).

Август 2001 г. Вышел язык SMIL 2.0, ориентированный на поддержку XML-документов в мобильных телефонах с доступом в Интернет.

Сентябрь 2001 г. Опубликовано описание языка SVG 1.0 - средства независимого представления векторной графики в Сети на основе XML (в нынешнем году появилась версия SVG 1.2, дополненная средствами качественного рендеринга, динамического формирования графических образов, поддержкой графики в разных форматах и т. д.).

Февраль 2002 г. Технология XML-Signature определила принципы использования электронной подписи XML-документов.

Текущий год богат на новые и обновленные XML-приложения и технологии. В феврале была наконец опубликована предварительная рекомендация стандарта XML 1.1. Потребность в совершенствовании XML возникла прежде всего в связи с развитием кодировки Unicode и новыми возможностями Unicode 2.0. Стало допустимым использовать произвольные кодировки символов в названиях элементов, удалось уйти от проблем с представлением символов перевода строки в разных операционных системах. Отметим, что WWW-консорциум разработал свою кодировку UCS (Universal Character Set), основанную на стандартах Unicode Standard и ISO/IEC 10646, и рекомендовал применять ее при построении всех текстовых материалов в Сети.

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

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

Консорциум OASIS, выросший, как уже говорилось, из группы SGML Open, специализируется на разработке открытых стандартов э-бизнеса, действуя при этом в тесной связке с WWW-коллегами. Среди его последних материалов - язык XLIFF для разметки и форматирования данных с учетом региональных стандартов и графическая нотация моделирования бизнес-процессов BPMN 1.0, ориентированная на технических и бизнес-специалистов.

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

Интересно, что в сентябре Тим Бернерс-Ли, директор WWW-консорциума, выдвинул идею коммерческого лицензирования ряда ISO-кодировок, задающих коды национальных языков, стран и валют. К чему приведет подобная инициатива, пока сказать сложно.

Недостатки XML

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

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

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

XML в будущем

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

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

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

В подобной роли посредника XML прекрасно подходит для любых задач, в которых востребована независимость от конкретных программных продуктов. Независимости от СУБД можно легко добиться представлением запросов к ним на языке XML Query. Это важно, в частности, для проектов, где клиентское приложение должно обращаться к нескольким СУБД разных производителей.

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

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

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

Особую роль XML играет в продуктах Microsoft. Так, импорт и экспорт данных в электронной таблице Excel 2002 и настольной СУБД Access 2002 теперь допустим в формате XML. А в платформе Microsoft .NET эта технология стала ключевой и стратегической - на ней основываются концепция распределенной модели данных и механизмы передачи информации. Одним из таких механизмов стал высокоуровневый протокол SOAP, который позволяет использовать формат XML для описания пакетов и упрощает взаимодействие сетевых приложений, написанных для разных архитектур (например, DCOM и CORBA).

В будущем же, считают такие эксперты, как Симон Фипс, руководивший XML-направлением в IBM, на основе XML будет создана мировая БД из ныне существующего хаотического набора Web-страниц Сети, а систематизацией такой базы займутся интеллектуальные программные агенты. При этом на основе XML будут разворачиваться службы UDDI, предназначенные для быстрого и легкого поиска партнеров по бизнесу. С помощью UDDI можно точно описать свой бизнес и предлагаемые услуги, найти поставщиков нужных услуг и объединить свою деятельность с деятельностью коллег. А процесс обмена сообщениями и организации такого взаимодействия в упорядоченной XML-инфраструктуре доступен уже сегодня в рамках концепции электронного бизнеса ebXML, развиваемой консорциумом OASIS.

Подробную информацию о текущей ситуации в мире XML можно найти на сайте WWW-консорциума: www.w3.org/XML/.