Краткая история XML

We use cookies. Read the Privacy and Cookie Policy

Краткая история XML

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

Несмотря на то, что идеи обобщенной разметки начали появляться еще в 60-х годах, SGML (standard generalized markup language, стандартный язык обобщенной разметки) был ратифицирован Международной Организацией Стандартизации (ISO) только в 1986 году. Возможно, будет показательным тот факт, что SGML не требовал изменений в течение, практически, 10 лет — настолько мощным инструментом он был.

Вместе с тем, на определенном этапе мощь SGML стала становиться препятствием — этот язык был настолько сложен, что поддержка в приложениях даже основного его подмножества оказалась непростой задачей. Это сказывалось на скорости разработки, стабильности и стоимости приложений, и потому, все больше и больше экспертов высказывались за упрощение этого языка.

Примерно в то же время произошел квантовый скачок в другой области информационных технологий. Развитие сетевых технологий вывело инфраструктуру обмена информации на качественно новый уровень, произведя на свет глобальную сеть Интернет. Интернет, в свою очередь, стал платформой для обмена гипертекстовыми документами, которые также нуждались в простом стандартном языке разметки для базового форматирования текста, создания таблиц и гиперссылок. Для этих целей был разработан HTML — язык разметки гипертекста (hypertext markup language).

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

Потребность в улучшении HTML совпала с потребностью в упрощении SGML. В 1996 году Консорциум W3 (World Wide Web Consortium, W3C) поддержал группу Web SGML Activity, задачей которой было создание нового языка разметки, более мощного, чем HTML, но более простого, чем SGML.

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

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

2. XML должен поддерживать разнообразные приложения. Как уже было описано выше, XML можно использовать в самых разных областях — тут сказывается мощь абстракции, которую предоставляет древовидные представления данных.

3. XML должен быть совместим с SGML. XML был разработан, как подмножество языка SGML, и для его обработки можно использовать любые SGML-продукты.

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

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

6. XML-документы должны быть понятны человеку, и при этом достаточно ясны. Как мы уже могли убедиться, XML-документы имеют простую и понятную форму.

7. XML должен быть разработан быстро. Разработчикам понадобилось два года — с 1996 по 1998, чтобы создать XML — значительный срок для довольно простого языка.

8. Спецификация XML должна быть формальной и лаконичной. Синтаксис языка XML однозначно определяется EBNF-правилами, а сама спецификация не имеет двояких толкований.

9. XML-документы должны легко создаваться. Поскольку UTF-8, основная форма кодирования XML-документов, совместима с ASCII, для редактирования XML-документов можно использовать все множество инструментов для работы с обычными текстовыми файлами.

10. Лаконичность разметки XML-документов не является важной. Язык SGML позволял авторам документов опускать части разметки в случаях, когда из контекста ясно, что там должно быть. Подобный принцип был использован в HTML, где в некоторых случаях можно опускать закрывающие теги, например, </p>. Для того, чтобы облегчить обработку, XML не позволяет такой вольности.

Главную роль в создании XML приписывают техническому гуру из фирмы Sun, Йону Босаку (Jon Bosak). Босак и его команда сделали с SGML примерно то же, что когда-то сделала команда, создававшая язык Java с языком С++. Язык был упрощен, сложные и редко использующиеся его особенности были упразднены. Первая спецификация языка, редакторами который были Тим Брэй (Tim Bray) и С.М. Шперберг-МакКвин (С.М. Sperberg-McQueen), в общей сложности насчитывала 26 страниц, что примерно в 20 раз меньше по объему стандарта SGML.

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

Будущее XML практически гарантировано. Несмотря на всю поднятую маркетинговую шумиху, в которой XML — не более чем "buzzword", расхожее словечко, нельзя игнорировать два следующих обстоятельства. Во-первых, без сомнения, существует огромная потребность в простом языке обобщенной разметки, и, во-вторых, у XML просто нет конкурентов. Большие компании уже приняли XML, как стандартное средство, в составе многих своих решений, и вряд ли какая другая технология сможет в скором времени вытеснить этот язык.

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