Формат XML
Формат данных XML - это расширяемый язык разметки, схожий с классическим HTML и рекомендованный Консорциумом Всемирной паутины (W3C) к использованию и применению в WEB и не только. Данные в XML формате логически структурированы в сущности, которые могут быть связаны между собой на уровне групп, атрибутов и ссылок. Какой-то специальной схемы построения данных в XML не существует - каждый может компоновать и группировать данные удобным ему образом, однако коллективного использования существуют различные стандарты упаковки данных в XML - например у XML-пакета для передачи финансовой информации - своя структура, для передачи метаданных об авторском праве - своя и т.д.
XML формат состоит из тэгов и атрибутов разметки, и может быть записан в любой кодировке. Теги - это элементы разметки, заключенные в квадратные кавычки. Атрибуты - параметры тегов, со значениями, указанными в двойных кавычках. В самом простом случае XML-файл состоит из заголовка и одного корневого тега:
<?xml version="1.0"?>
<greeting><word>Hello</word><word>world</word></greeting>
Каждый "открывающий" тег обязан иметь парный "закрывающий" тег, или быть "самозакрывающимся", т.е. не содержать внутри себя другие теги и данные (а только, возможно, атрибуты). Кроме такой простой схемы компоновки после заголовка в XML можно указать особые ссылки на схемы проверки правильности XML. Такие схемы зачастую, сами являются подмножествами формата XML, т.е. имеют схожую нотацию написания и правила использования. В простом случае для проверки валидности XML может быть указана схема DTD, которую также можно описать самостоятельно. Фактически схема нужна для того, чтобы проверить правильность вложения сущностей XML, определить количество и порядок допустимых вложений.
<?xml version="1.0"?>
<!DOCTYPE greeting SYSTEM "hello.dtd">
<greeting>
<word>Hello</word><sym>></sym><word>world</word><noword/>
</greeting>
На основе XML созданы и языки-процессоры XML, такие, как например, язык XSLT. В простом случае XSLT - это преобразователь одного формата XML - в другой формат XML или же в любой другой язык разметки, схожий с HTML. На самом деле XML широко используется при сохранении документов в современных версиях Microsoft Office (MS Word, MS Excel и т.д.)
Таким образом, XML формат является очень удобным форматом для упаковки практически любых метаданных. XML интуитивно понятен, легко читаем, поддерживает удобную и эффективную машинную обработку, подходит для кратковременного и долговременного хранения данных, поддерживает средства для валидации и преобразования. Однако формат имеет и свои недостатки.
К недостаткам формата XML следует отнести:
- Область применения - преимущественно текстовые данные. Про бинарные - замечания ниже.
- Некоторые текстовые элементы (являющиеся частью формата XML, например двойные кавычки) должны быть кодированы с помощью амперсанда и декодированы при чтении XML-пакета
- Бинарные данные - должны быть преобразованы в текстовые, что, как правило, приводит к заметному увеличению объема файла.
- Теги добавляют достаточно большой объем повторяющейся информации в файл, в разных ситуациях от 1/100 до 1/2 оригинального объема данных.
- Файлы XML, содержащие большой объем данных (миллионы единиц), достаточно трудно обрабатываются, медленно проверяются, требуют значительных ресурсов для обработки.
По указанным выше причинам XML не очень удобен, к примеру, для передачи крупных отчётов об использовании звукозаписей или отчётов о доставке sms-сообщений, для упаковки каталогов, содержащих большое число мелко раздробленных наименований и т.п.