xmlhack.ru logo
>> статьи на xmlhack.ru

С днём рождения, XML

Автор: Dave Hollander
Автор: C. M. Sperberg-McQueen
Перевод: Александр Савенков
Опубликовано на W3C (10.02.2003, англ.): http://www.w3.org/2003/02/xml-at-5.html
Опубликовано на xmlhack.ru (07.04.2003, рус.): http://xmlhack.ru/texts/03/five.year.xml/xml5.html
В закладки:   Del.icio.us   reddit

С днём рождения, XML!

Праздничный торт XML

(в понедельник, 10 февраля 2003 года XML исполняется пять)

Дейв Холлэндэр и Ч. M. Сперберг-Мак-Квин

Всё-таки трудно поверить, что прошло столько лет: Консорциум Всемирной сети (W3C) опубликовал XML 1.0 в качестве Рекомендации десятого февраля 1998 года — выходит, что сегодня ему уже пять. С первого появления Расширяемый язык разметки стал проникать практически во все области, где управляют информацией. Вместе с дополнительными и более поздними спецификациями Пространств имён XML (XML Namespaces), Информационного множества XML (XML Information Set), Трансформаций XSL (XSL Transformations — XSLT), XML-схемы (XML Schema), Связей XML (XML Linking) и другими XML изменил не только способ публикации документов в Сети, но и метод управления внутрифирменной информацией.

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

В начале…

Однажды, ещё до того, как XML получил имя, двенадцать человек, разделявших скромную надежду, объединились в команду из-за одного простого дела. Каждый был профессионалом и обладал впечатляющими знаниями в двух областях: Всемирная сеть и применение компьютеров для обработки и управления информацией с использованием SGML, прародителя XML.

Сеть пускала свои корни повсюду, а им хотелось использовать её для публикации своей информации, записанной в SGML. Десятилетнее существование SGML позволило применять многократно используемые данные; мощь его состояла в способности описывать информацию, делая её независимой от системы, на которой её предполагалось применять. У SGML однако были собственные проблемы: его было трудно понять, признавался он только специалистами в области документирования, и кроме того его было очень сложно использовать в новой среде, ныне известной как Сеть. Рабочая группа объединилась вокруг общего убеждения, суть которого в том, что обе технологии можно заставить работать сообща, облегчив совместное и многократное использование информации.

Работая под покровительством Консорциума Всемирной сети (W3C), группа начала определение десяти целей, которые и сегодня записаны в первой главе спецификации XML. Безымянное подмножество SGML, которое они разрабатывали, должно было легко использовать в интернете, поддерживать разнообразные приложения, быть совместимым с SGML и так далее. Группу подстёгивала перспектива соединения двух мощнейших систем: Сети и описательной разметки — работа шла по вечерам, и встречи на телеконференциях проходили не только по вторничным, но и по субботним утрам. Если что-то шло наперекосяк, кто-нибудь задавал вопрос: «Требуется ли эта функция для достижения нашей цели?» Перед группой стояла задача сделать из намеченных целей и собственного опыта формальный язык, язык, предназначенный для того, чтобы совместное использование многоразовой информации сделать повсеместным.

Задача — обеспечить работу SGML в Сети

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

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

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

Как и SGML, XML был предназначен для того, чтобы владельцы информации могли пренебречь ограничениями одного производителя. Описательная разметка помимо прочего позволяет сделать информацию независимой от какой-либо конкретной программы. Системно-зависимые и патентованные форматы затрудняют её вторичное использование и ограничивают владельца данных рамками производителей, программы которых создают и манипулируют такими форматами.

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

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

Не успели они опомниться, как самые разные люди начали использовать XML, повсеместно, без разрешения или руководства Рабочей группы. Люди, занимающиеся базами данных, создатели транзакционных систем, системотехники, разработчики межпроизводственных систем — все они явились без приглашения. Представьте, что даже неспециалист сумел опубликовать статью о XML в журнале «Тайм»!

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

XML становится стандартной платформой для конвергенции информации

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

Сила перемен. Естественно, вместе с успехом пришла и необходимость исправить те моменты, которые были неверно поняты Рабочей группой. Опыт работы с XML показал, что одни части модели функционируют не так хорошо, как другие. Механизмы объявления и использования сущностей, правила обработки правильно построенных документов и ограниченные возможности вложения целых XML-документов в другие XML-документы — всё это порой становится источником трудностей. Из-за того, что XML был практически «голым», его легко было усвоить и расширить; по этой же причине, разработчикам практически необходимо было его расширять.

Что мы и сделали. Что сделали и другие люди. Исходная Рабочая группа с общими смежными интересами положила начало множеству групп с различными целями и истоками. XML в новом понимании становился всё мощнее. Сейчас существуют XML + XLink + XSL + пространства имён + информационное множество + XML Linking + Модель XPointer + пространства имён XPointer + xptr() XPointer + XSLT + XPath + XSL FO + DOM + SAX + PI для связи с листом стилей + XML-схема + XQuery + Шифрование XML + Канонизация XML + XML-подпись + DOM уровня 2 + DOM уровня 3.

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

XML исполнилось пять, что дальше?

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

А может, стоит объединить основные спецификации XML в одну гигантскую спецификацию, определяющую XML, его информационное множество, модель данных, а также обеспечивающую XML-словари для связи, проверки на действительность с помощью схемы, запросы, трансформацию и т. д. и т. п? Такая спецификация возможно будет более понятной, а возможно — и отпугивающей. Без сомнения её нельзя будет также легко разбивать на модули или развивать.

Нужно ли продолжать размещать различные функции в разных спецификациях? Это позволит проще управлять отдельными частями мозаики. А если так, не стоит ли пересмотреть порядок слоёв XML-спецификаций? Не пора ли наладить или изменить такие механизмы как декларация сущностей или устранить надобность в устаревшем синтаксисе DTD? Необходимо ли поменять правила насчёт размещения декларации структуры, с тем чтобы облегчить вложение информации? Или устранить или перепроектировать атрибуты? А может разделить всё на два формата: один специально для машинной обработки, а другой для людей? Всё перечисленное могло бы улучшить XML, но помогло бы это справиться с фундаментальными сложностями, которые были заложены?

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

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

Оглядываясь назад на результаты нашей упорной работы, мы понимаем, что остаётся открытым вопрос о том, сможем ли мы, сообщество, определяющее XML и создающее инструменты для его применения, использовать в качестве руководства то, чему мы научились за последние пять лет, и с новой энергией и увлечением задать вопрос, который так часто задавался в прошлом: «нужно ли это для успеха?»

Об авторах

Дейв Холлэндэр Ч. М. Сперберг-Мак-Квин

Дейв Холлэндэр (слева), руководитель технического отдела Contivo, и Майкл Сперберг-Мак-Квин (справа), руководитель Домена архитектуры W3C, были членами Рабочей группы W3C, разработавшей спецификацию XML 1.0. Они занимают посты сопредседателей Рабочей группы W3C по координации XML и Рабочей группы W3C по XML-схеме.



W3C Copyright © 1994-2007 W3C
Перевод: xmlhack.ru Copyright © 2000-2007 xmlhack.ru