Язык XML - практическое введение

       

Типы электронной корреспонденции


При передаче файла web-сервер посылает не только его имя и содержание. Он также отправляет множество метаданных о файле в заголовке HTTP (см. листинг 1):

Листинг 1. Пример метаданных

HTTP/1.1 200 OK Date: Sun, 23 Jan 2005 18:21:33 GMT Server: Apache/2.0.52 (Unix) mod_ssl/2.0.52 OpenSSL/0.9.7d Last-Modified: Sun, 10 Oct 2004 16:17:21 GMT ETag: "3e06d-16a05-2dbc8640" Accept-Ranges: bytes Content-Length: 92677 Content-Type: application/xhtml+xml

Необходимо обратить внимание на заголовок Content-Type в последней строке. Его значение - application/xhtml+xml - это тип электронной корреспонденции (он может сопровождаться информацией о наборе символов документа). Web-браузеры и другие получатели используют эти метаданные для того, чтобы понять, как обрабатывать файл. Например, такие данные позволяют определить, может ли файл быть представлен в своем оригинальном виде или необходимо использовать вспомогательное приложение. Типы электронной корреспонденции используются и в других контекстах, в том числе в электронной почте, а также в некоторых экспериментальных операционных системах, например, BeOS. Linux и другие системы UNIXR также пользуются типами электронной корреспонденции, но делают это несколько по-другому. Они не присваивают файлам напрямую определенные типы электронной корреспонденции, а преобразуют ("мэппируют") расширения файлов в эти типы. Основная область практического использования типов электронной корреспонденции - это интернет.

Основной тип содержимого для типичного документа XML - application/xml. Тип text/xml также является зарегистрированным, но он подвергнулся осуждению из-за некоторых неудачных взаимодействий с другими частями протокола HTTP. (Использование text/xml указывает, что документ находится в кодировке ASCII, даже если декларация XML дает другую информацию). Ниже приведены еще несколько основных зарегистрированных типов электронной корреспонденции:

  • application/xml-dtd - используется для определения типа документа;
  • application/xml-external-parsed-entity - используется для фрагментов документов.


По существующему соглашению, для более специфических типов форматов XML используется тип application/foo+xml, где foo подразумевает употребление специального словаря XML. Например, application/rdf+xml для RDF, application/xhtml+xml для XHTML, application/svg+xml для SVG и т.д. При этом обычные процессоры XML могут распознать, что документ находится в формате XML, а процессоры для обработки тех или иных специальных форматов способны определить, в каком именно формате он создан. В таблице 2 перечислены некоторые наиболее распространенные типы электронной корреспонденции.

Таблица 2. Типы электронной корреспонденции XML



Типы корреспонденции Формат документа
image/svg+xml* Масштабируемая векторная графика
application/atom+xml* Синдикация атомарных данных
application/mathml+xml* Математический язык разметки
application/beep+xml Расширяемый протокол обмена блоков
application/cpl+xml Язык обработки запросов
application/soap+xml Сообщение SOAP
application/epp+xml Расширяемый протокол инициализации
application/rdf+xml XML-синтаксис описания ресурсов
application/xhtml+xml Расширяемый язык разметки гипертекста
application/xop+xml Бинарная оптимизированная организация пакетов XML
application/xslt+xml* Таблица стилей расширяемого языка преобразования таблиц стилей
application/xmpp+xml Расширяемый протокол обмена сообщениями и присутствия
application/voicexml+xml* Голосовой расширяемый язык разметки
* Находится в процессе регистрации

Невозможно создавать новые типы электронной корреспонденции для каждого вновь появляющегося формата. Новые типы должны публиковаться в виде формальной спецификации (часто это так называемые "Запросы на комментарии" (Request for Comments) Проблемной группы проектирования Internet (Internet Engineering Task Force, сокр. IETF)) и регистрироваться в Агентстве по выделению имен и уникальных параметров протоколов Internet (Internet Assigned Numbers Authority - IANA). Но экспериментальные подтипы могут определяться и без регистрации. Они должны начинаться с символов х-. Например, тип корреспонденции для авторского языка разметки номенклатуры телевизоров, придуманного автором в качестве примера для его книги "Библия XML 1.1" (XML 1.1 Bible), может быть назван application/x-tvml+xml. Тип application указывает процессорам, что данный файл должен обрабатываться не как данные ASCII. Выражение +xml в конце названия подтипа информирует, что это файл XML, х- говорит о том, что это не зарегистрированный тип, а tvml несет информацию о виде данных.


Содержание раздела