XML (англ. eXtensible Markup Language — расширяемый язык разметки) — рекомендованный W3C универсальный язык разметки, предназначенный для описания структурированных данных, обмена информацией между программами и создания специализированных языков разметки (XML-словарей). Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет. XML (eXtensible Markup Language) — это упрощенный диалект языка SGML, предназначенный для описания иерархических структур данных в World Wide Web. Он разрабатывается рабочей группой W3C с 1996 г.; в настоящее время принятой рекомендацией является вторая редакция языка XML 1.0 (октябрь 2000 г.), на которую и ориентируется дальнейшее изложение. Документ, описывающий спецификацию языка можно найти на сайте W3C по адресу http://www.w3.org/TR/1998/REC-xml-19980210.
Годом рождения XML можно считать 1996 год, в конце которого появился черновой вариант спецификации языка, или 1998 года, когда эта спецификация была утверждена. А началось всё с появления в 1986 году языка SGML (англ. Standard Generalized Markup Language — стандартный обобщённый язык разметки) – гибкого и всеохватывающего мета-языка для создания языков разметки. Этот язык настолько универсален, что включает такие возможности, которые крайне редко используются. Ценой универсальности является сложность и, как следствие, дороговизна применения языка в практических разработках. В итоге большинство возможностей SGML попросту невостребованны.
Однако SGML нашел свое применение в качестве основы для создания других языков разметки, в частности HTML – не в пример более простого и легкого в освоении языка. Но, по мере роста количества и изменения качества документов в Сети, росли и предъявляемые к ним требования, и простота HTML превратилась в его главный недостаток. Ограниченность количества тегов и полное безразличие к структуре документа побудили разработчиков в лице консорциума W3C к созданию такого языка разметки, который был бы не столь сложен, как SGML, и не настолько примитивен, как HTML. В результате на свет появился язык XML, сочетающий в себе простоту HTML, логику SGML и удовлетворяющий требованиям Интернета.
Словари, основанные на XML (например, RDF, RSS, MathML, XHTML, SVG), сами по себе формально описаны на том же XML, что позволяет программно изменять и проверять документы на основе этих словарей, не зная их семантики, то есть не зная смыслового значения элементов. Важной особенностью XML также является применение так называемых пространств имён (англ. Namespace).
Таким образом, для универсального языка разметки появились свои требования и формальные рамки:
· Правильно построенный документ (Well-formed) – соответствует всем общим правилам синтаксиса XML, применимым к любому XML-документу. И если, например, начальный тег не имеет соответствующего ему конечного тега, то это неправильно построенный документ XML. Документ, который неправильно построен, не может считаться документом XML; XML-процессор (парсер) не должен обрабатывать его обычным образом и обязан классифицировать ситуацию как фатальная ошибка.
· Действительный документ (Valid) – дополнительно соответствует некоторым семантическим правилам. Это более строгая дополнительная проверка корректности документа на соответствие заранее определённым, но уже внешним правилам, в целях минимизации количества ошибок, например, структуры и состава данного, конкретного документа или семейства документов. Эти правила могут быть разработаны как самим пользователем, так и сторонними разработчиками, например, разработчиками словарей или стандартов обмена данными. Обычно такие правила хранятся в специальных файлах — схемах, где самым подробным образом описана структура документа, все допустимые названия элементов, атрибутов и многое другое. И если документ, например, содержит не определённое заранее в схемах название элемента, то XML-документ считается недействительным; проверяющий XML-процессор (валидатор) при проверке на соответствие правилам и схемам обязан (по выбору пользователя) сообщить об ошибке.
XML, несомненно, входит в обойму наиболее перспективных технологий WWW, чем объясняется интерес, который уделяется ему и корпорациями-разработчиками, и широкой публикой. Прежде чем перейти к его описанию, представляется уместным обсудить причины его появления и последующего бурного развития. Попытаемся для этого взглянуть на те проблемы WWW, которые должны быть решены средствами нового поколения Веб-технологий.