XML в 10 тезисах

XML, XLink, Namespace, DTD, Schema, CSS, XHTML ... Если вы впервые столкнулись с XML, трудно даже понять, с чего начать. Этот короткий обзор представляет собой попытку охватить основные идеи XML, чтобы новичок мог увидеть концепцию в целом, не путаясь в деталях. Если же вы кому-то представляете XML, почему бы не начать с этих 10 тезисов?

1. XML — это способ записи структурированных данных

Под "структурированными данными" обычно подразумевают такие вещи, как электронные таблицы, адресные книги, конфигурационные параметры, финансовые транзакции, технические чертежи и так далее. XML представляет собой набор правил (вы можете также считать их инструкциями или соглашениями) для разработки текстовых форматов, которые позволят вам структурировать ваши данные. XML — это не язык программирования, и вам не нужно быть программистом, чтобы использовать или изучать его. XML облегчает компьютеру задачу создания и чтения данных, обеспечивая при этом однозначность их структуры. XML позволяет избежать распространенных ошибок проектирования языков: он расширяем, независим от платформы, включает поддержку интернационализации и локализации. XML полностью совместим с Unicode.

2. XML немного похож на HTML

Также как и в HTML, в XML используются тэги (слова, заключенные в '<' и '>') и атрибуты (вида имя="значение"). Но если в HTML фиксируется смысловое значение каждого тэга и атрибута и часто то, как текст между ними будет выглядеть в браузере, в XML тэги используются только для логической разметки данных, и их интерпретация оставляется на усмотрение обрабатывающей программы. Другими словами, если вы встречаете "<p>" в XML-файле, то не стоит думать, что это параграф. В зависимости от контекста, это может быть цена (price), параметр (parameter), человек (person)... (вообще, кто сказал, что это должно быть слово, начинающееся с "p"?)

3. XML — это текст, но он не предназначен для чтения

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

4. XML умышленно многословен

Так как XML — текстовый формат и использует тэги для разметки данных, XML-файлы почти всегда больше по размеру, чем аналогичные в двоичном формате. Это было сознательным решением разработчиков XML. Преимущества текстового формата очевидны (см. пункт 3), и недостатки обычно могут быть компенсированы на ином уровне. Дисковое пространство уже не столь дорого, как было раньше, а программы типа zip и gzip могут сжимать текстовые файлы очень хорошо и очень быстро. К тому же коммуникационные протоколы, такие как модемные протоколы и HTTP/1.1 (основной протокол Сети) могут сжимать данные "на лету", сохраняя, таким образом, пропускную способность так же эффективно, как и в случае с двоичным форматом.

5. XML — это семейство технологий

Существует спецификация XML 1.0, в которой определяется, что такое "тэги" и "атрибуты". Но за XML 1.0 следует "семейство XML" — все более растущее множество модулей, предоставляющих полезные сервисы для решения важных и часто возникающих задач. Например, в Спецификации XLink (Рекомендация W3C от 27 июня 2001) описывается стандартный способ добавления гиперссылок в XML-документ. XPointer и XFragments (в стадии разработки) — синтаксис для адресации частей XML-документа. XPointer немного похож на URL, но вместо указания на документы в Сети, обращается к фрагментам данных внутри XML-документа. Каскадные таблицы стилей CSS могут применяться к XML-документам так же, как и к HTML. Но для XML существует свой специальный язык стилей XSL (Рекомендация W3C от 15 октября 2001). Он, в свою очередь, базируется на XSLT (Рекомендация W3C от 16 ноября 1999), языке трансформаций, использующемся для переформирования, добавления и удаления тэгов и атрибутов. DOM представляет собой стандартный интерфейс для манипулирования файлами XML (и HTML) из различных языков программирования. Языки XML Schema 1 и 2 призваны помочь разработчикам четко определять их собственные форматы, основанные на XML. Кроме перечисленных готово к использованию или находится в разработке еще множество модулей и средств. Следите за обновлениями на странице технических отчетов W3C.

6. XML нов, но не совсем

Разработка XML началась в 1996 году, и с февраля 1998 года является стандартом W3C, что может заставить вас думать об этой технологии как о довольно не зрелой. Но, в действительности, она не так уж и нова. До XML был SGML, разработанный в начале 80-х и принятый в качестве стандарта ISO в 1986 году, который широко использовался в проектах, связанных с большим количеством документации. И, конечно, HTML, разработка которого началась в 1990 году. Создатели XML просто взяли лучшее из SGML, и, основываясь на опыте HTML, создали нечто новое, что по своей мощи не уступает SGML, но гораздо аккуратнее и проще для использования. Иногда эволюцию, однако, трудно отличить от революции... И надо заметить, что пока SGML в основном используется для технической документации и в значительно меньшей степени для других видов данных, с XML все с точностью до наоборот.

7. XML ведет HTML к XHTML

Существует важное XML-приложение, являющееся форматом документов: W3C XHTML, преемник HTML. Большинство элементов XHTML такие же, как и в HTML. Синтаксис был немного изменен для соответствия правилам XML. Документ, являющийся "XML-based", наследует синтаксис XML и ограничивает его определенным способом (например, в XHTML разрешается "<p>", но не "<r>"); этот синтаксис также наделяется смысловым значением (XHTML определяет, что "<p>" обозначает "параграф" (paragraph), а не "цена" (price), "персона" (person) или что-либо еще).

8. XML - модульная технология

XML позволяет вам определять новые форматы документов, комбинируя и повторно используя уже созданные. Поскольку два формата, разработанные независимо, могут иметь элементы или атрибуты с одинаковыми именами, при их комбинировании следует соблюдать осторожность (что должно отличать "<p>", обозначающий "paragraph" в одном формате, от "person" в другом?). Для устранения возможной путаницы при одновременном использовании разных форматов XML предоставляет механизм пространств имен. XSL и RDF являются хорошими примерами основанных на XML форматов, использующих пространства имен. XML Schema разработан для отражения подобной поддержки модульности на уровне определения структур XML-документа, облегчая процесс построения новой схемы на основе существующих.

9. XML — основа для RDF и Семантической Сети

W3C Resource Description Framework (RDF) является текстовым форматом, основанным на XML, который поддерживает описание ресурсов и метаданных приложений, такие как списки музыкальных композиций, фотогалереи и библиографий. Например, RDF может позволить вам идентифицировать людей в сетевом фотоальбоме, используя информацию из персонального списка контактов; затем ваша почтовая программа может автоматически начинать письма этим людям с утверждения, что их фотографии находятся в Сети. Подобно тому, как HTML объединил документы, меню и формы, дав начало сегодняшней Сети, RDF объединяет приложения и агенты в Семантическую Сеть. Точно так же, как люди нуждаются в соглашениях о смысле слов, которые они используют между собой в общении, так и компьютеры для эффективного взаимодействия нуждаются в механизме согласования значений терминов. Формальные описания терминов некоторой области (например, похода по магазинам или производства) называются онтологиями и являются необходимой частью Семантической Сети. RDF, онтологии, и представление значений так, чтобы компьютеры могли помогать людям в их работе — это все темы деятельности Semantic Web Activity.

10. Технология XML свободна от лицензирования, платформо-независима и хорошо поддерживаема

Выбирая XML в качестве основы для своего проекта, вы имеете доступ к большому и все более растущему семейству инструментов (один из которых уже, может, делает то, что вам нужно!) и опыту специалистов, работающих с этой технологией. Выбор XML немного похож на выбор SQL для баз данных: вы все еще должны строить свою базу данных и писать свои программы и процедуры для работы с ней, однако есть много инструментальных средств и людей, способных помочь вам. А так как XML свободен от лицензирования, вы можете строить свое программное обеспечение, не заплатив кому-либо ни копейки. Большая и все более растущая поддержка определяет то, что вы не привязаны к какому-либо конкретному производителю программ. XML — не всегда лучшее решение, но всегда стоит принимать его во внимание.


W3C Communications Team [email protected]
Revised 13 Nov. 2001 (last update: $Date: 2001/12/20 10:34:31 $)
Created 27 Mar 1999 by Bert Bos
Перевод: В.Ярошевич, 10 декабря 2001 года
Original version (Previous version)

Copyright © 1999-2000 W3C® (MIT, INRIA, Keio), All Rights Reserved.