Как стать автором
Поиск
Написать публикацию
Обновить

История XML — коротко о главном.

Очень краткая история языков разметки, или что было до XML



Для кого я писал этот пост про XML? Для тех, кто много и хорошо пишет — статьи, книги, техническую документацию. Не так важно, что пишет, как то, сколько времени на это тратит. Этот текст для тех, кто старается экономить свое время и ищет для этого новые эффективные методы. А XML при умелом обращении на 75% сокращает время и деньги на создание документов.

За границей ружья кирпичом не чистят © Левша



Занимаясь долгое время разработкой XML приложений, я как-то привык не замечать, что этот язык практически полностью обойден вниманием в рунете. Нет, конечно, многие знают про Atom, XML-RPC и SOAP, но сейчас речь совсем не об этом. Создание документов — вот какой аспект XML до сих пор незаслуженно остается в тени.

Достаточно взглянуть на статистику поисковых запросов:

Запросов в Google/Яндекс «XML editor»/«XML редактор» «XML»
в англоязычном интернете 2'740'000 90'000
в Рунете 93'000 чуть более 2'000


Прямо скажем — факты не в пользу 1/6 части суши. Мне кажется, что одной из причин этого является привычка откладывать на завтра то, что можно сделать сегодня, и нежелание инвестировать свои силы и время в перспективные решения своих проблем.

Тот, кто хочет — ищет способ, кто не хочет — ищет причину.



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

Усложнять — просто, упрощать — сложно (инженерная мудрость)


С давних пор пишущая братия мается проблемами написания текстов и распространения написанного. Если взглянуть внимательнее, то основная маета происходит из-за оформления текстов. Во времена глиняных табличек это было неизбежным злом. Но вот с появлением машинной обработки текстов стало возможным отделить наконец семантику (смысл) документов от их оформления. И, надо сказать, определенные успехи в этом сделаны. Так зачем цепляться за клинопись, когда можно попробовать воспользоваться изобретенными удобствами в личных корыстных целях?

GML — первый шаг к упрощению



GML (англ. Generalized Markup Language — обобщенный язык разметки) был разработан в 1969 году в компании IBM как набор макросов для текстового процессора SCRIPT/VS. Язык GML был разработан Чарльзом Гольдфарбом (Charles Goldfarb), Эдвардом Мошером (Edward Mosher) и Рэймондом Лори (Raymond Lorie), чьи инициалы и были использованы в названии языка.

GML освободил писателей от необходимости напрямую использовать возможности процессора SCRIPT/VS, касающиеся размера шрифта, межстрочных интервалов, размеров страниц и т.д. Синтаксическая разметка (или теги) языка GML описывала текст документа в терминах глав, разделов разной степени важности, параграфов, списков, таблиц и прочего.

Размеченный документ можно было затем автоматически отформатировать для разных устройств вывода информации — лазерных и матричных принтеров или мониторов — просто задав документу профайл нужного устройства. Сам же документ при этом оставался неизменным.

Пример документа с разметкой GML



:h1.Глава 1: Вступление
:p.GML поддерживает иерархические структуры, такие как
:ol
:li.Нумерованные списки, такие, как этот,
:li.Маркированные списки и
:li.Списки определений,
:eol.
а также просто текст.
:p.Упрощенная разметка (обобщенная и формализованная позднее в языке SGML)
позволяет не вставлять закрывающие теги для элементов "h1" (заголовок) и "p" (параграф).


GML предшествовал и послужил одним из источников появления языка SGML — набора правил для создания языков описания структурированных документов.

SGML — колосс на глиняных ногах



В 1986 году появился SGML (англ. Standard Generalized Markup Language — стандартный обобщённый язык разметки) — метаязык, с помощью которого можно было создавать конкретные языки разметки документов. Изначально SGML был разработан для использования машинно-читаемых документов в правительственных и аэрокосмических проектах. Он и сейчас там используется, хотя прошло уже более 30 лет — огромный срок по меркам ИТ.

Пример разметки SGML документа:



<QUOTE TYPE="example">
typically something like <ITALICS>this</ITALICS>
</QUOTE>


Язык SGML предоставляет абстрактный синтаксис, который можно применять в конкретных сценариях. Например, можно использовать любой символ как разделитель тегов, вместо стандартных угловых скобок. Это было сделано, в частности, для совместимости с GML документами — то, что в GML выглядит как :xmp.Hello, world:exmp, в стандартном синтаксисе SGML выглядит как <xmp>Hello, world</xmp&gt.

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

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

HTML — у семи нянек дитя без глазу



Хотя, не все так плохо, если говорить о применениях SGML как метаязыка. Ведь именно он послужил в 1992 году родителем языка HTML, который формально является приложением SGML (формально он сделался таковым только в версии 2.0). HTML даже унаследовал от SGML его синтаксис по умолчанию — угловые скобки, нечувствительность к регистру в именах элементов и расслабленность синтаксиса тегов.

Ключевая особенность HTML — его расслабленность — сыграла злую шутку с языком и его пользователями. Простота HTML позволила ему быстро распространиться по всему интернету, а потом, как ни дико это звучит, стала основным недостатком и тормозящим фактором в его развитии. Отсутствие расширяемости (фиксированный набор элементов) и четкой структуры документов привели к необходимости вновь вернуться к поискам философского камня для писателей.

Ограниченность количества тегов и полное безразличие к структуре документа побудили разработчиков в лице консорциума W3C к созданию такого языка разметки, который был бы не столь сложен, как SGML, и не настолько примитивен, как HTML. В результате, сочетая в себе простоту HTML, логику разметки SGML и удовлетворяя требованиям Интернета, появился на свет язык XML.

XML — назад в будущее!



XML (англ. eXtensible Markup Language — расширяемый язык разметки) был создан в феврале 1998 года как подмножество SGML. Расширяемым он называется потому, что позволяет своим пользователям изобретать элементы по необходимости.

XML был разработан рабочей группой из 11 человек при поддержке около 150 заинтересованных разработчиков. Члены рабочей группы никогда не встречались лицом к лицу — все технические дискуссии происходили в почтовой переписке, а вопросы решались поиском компромисса и, в сложных случаях, голосованием рабочей группы. Основные технические решения были найдены в течение 20 недель интенсивной работы с июля по ноябрь 1996 года, когда был опубликован рабочий черновик спецификации XML. В дальнейшем работа была продолжена, и 10 февраля 1998 года XML обрел статус рекомендованного стандарта.

Простота XML (по сравнению с SGML) позволила создавать гораздо более простые парсеры (программы синтаксического разбора документов). Как следствие, XML гораздо шире распространен, чем SGML, хотя появился на 12 лет позднее.

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

<?xmlversion="1.0" encoding="UTF-8"?>
<俄語>Китайский язык</俄語>


Применение XML не ограничивается документами в обычном смысле этого слова — он используется в ряде приложений общего назначения, таких как Semantic Web, XHTML, SVG, RSS, Atom, XML-RPC и SOAP.



Ну вот и все



С момента создания XML прошло 11 лет его успешного применения в различных сферах человеческой деятельности, и это хороший показатель качества языка. За это время он породил множество сопутствующих форматов, также XML-ных: XML Schema, XSLT, XSL-FO, XPath, XInclude, XML Catalogs, XQuery, Docbook (не путать с SGML Docbook), DITA (не ищите по такому названию, чтобы не удивляться результатам поиска, лучше — «DITA XML»). И это — только те стандарты, которые непосредственно интересны при написании документов.

О них можно написать отдельно, если вы не заснули, читая этот краткий экскурс в историю XML.

_________
Текст подготовлен в ХабраРедакторе
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.