Extensible Markup Language ( XML ) - это язык разметки, который определяет набор правил для кодирования документов в формате, который удобен для чтения человеком и компьютером . World Wide Web Consortium «s XML 1.0 Спецификация [2] 1998 [3] и ряд других связанных с ними спецификаций [4] -все из них бесплатно открытых стандартов -define XML. [5]
расширяемый язык разметки | |
Статус | Опубликован, Рекомендация W3C |
---|---|
Год начался | 1996 |
Впервые опубликовано | 10 февраля 1998 г . | В качестве рекомендации
Последняя версия | 1.1 (Второе издание) 29 сентября 2006 г . |
Организация | Консорциум World Wide Web (W3C) |
Редакторы |
|
Базовые стандарты | SGML |
Связанные стандарты | Схема XML |
Домен | Сериализация данных |
Сокращение | XML |
Веб-сайт | www |
Расширение имени файла | .xml |
---|---|
Тип интернет-СМИ |
|
Единый идентификатор типа (UTI) | public.xml |
Конформация ИМП | public.text |
Магическое число |
|
Разработано | Консорциум World Wide Web |
Тип формата | Язык разметки |
Расширен с | SGML |
Расширен до |
|
Стандарт |
|
Открытый формат ? | да |
Цели разработки XML подчеркивают простоту, универсальность и удобство использования в Интернете . [6] Это текстовый формат данных с сильной поддержкой Unicode для разных человеческих языков . Хотя дизайн XML ориентирован на документы, этот язык широко используется для представления произвольных структур данных [7], например, используемых в веб-сервисах .
Существует несколько систем схем, помогающих в определении языков на основе XML, в то время как программисты разработали множество интерфейсов прикладного программирования (API) для помощи в обработке данных XML.
Приложения
Суть того, почему необходимы расширяемые языки разметки, объясняется на языке разметки (например, см. Язык разметки § XML ) и в Стандартном обобщенном языке разметки .
Были разработаны сотни форматов документов с использованием синтаксиса XML [8], включая RSS , Atom , SOAP , SVG и XHTML . XML-форматы на основе стали по умолчанию для многих инструментов офисно-производительности, в том числе Microsoft Office ( Office Open XML ), OpenOffice.org и LibreOffice ( OpenDocument ), и Apple , «s iWork [ править ] . XML также предоставил базовый язык для протоколов связи, таких как XMPP . Приложения для Microsoft .NET Framework используют файлы XML для конфигурации, а списки свойств представляют собой реализацию хранилища конфигурации, построенного на XML. [9]
Многие отраслевые стандарты данных, такие как Health Level 7 , OpenTravel Alliance , FpML , MISMO и Национальная модель обмена информацией , основаны на XML и разнообразных функциях спецификации схемы XML. Многие из этих стандартов довольно сложны, и нередко спецификации содержат несколько тысяч страниц. [ необходимая цитата ] В публикации Darwin Information Typing Architecture является отраслевым стандартом данных XML. XML широко используется для поддержки различных форматов публикации.
XML широко используется в сервис-ориентированной архитектуре (SOA). Разрозненные системы взаимодействуют друг с другом посредством обмена XML-сообщениями. Формат обмена сообщениями стандартизирован как схема XML (XSD). Это также называется канонической схемой. XML стал широко использоваться для обмена данными через Интернет. IETF RFC: 3023 , который теперь заменен RFC: 7303 , дал правила для создания типов Интернет-носителей для использования при отправке XML. Он также определяет типы мультимедиа application/xml
и text/xml
, которые говорят только о том, что данные находятся в XML, и ничего не о его семантике .
RFC 7303 также рекомендует давать языкам на основе XML типы носителей, оканчивающиеся на +xml
; например image/svg+xml
для SVG . Дополнительные рекомендации по использованию XML в сетевом контексте содержатся в RFC 3470, также известном как IETF BCP 70, документе, охватывающем многие аспекты разработки и развертывания языка на основе XML.
Ключевые термины
Материал в этом разделе основан на спецификации XML. Это не исчерпывающий список всех конструкций, которые появляются в XML; он представляет собой введение в ключевые конструкции, наиболее часто встречающиеся в повседневном использовании.
Персонаж
- XML-документ - это строка символов . Почти каждый допустимый символ Unicode может появиться в XML-документе.
Процессор и приложение
- Процессор анализирует разметку и передает структурированную информацию к приложению . Спецификация предъявляет требования к тому, что должен делать XML-процессор, а что не делать, но приложение выходит за его рамки. Процессор (как его называют в спецификации) часто называют анализатором XML .
Разметка и контент
- Символы, составляющие XML-документ, делятся на разметку и содержимое , которые можно различить, применяя простые синтаксические правила. Как правило, строки, составляющие разметку, либо начинаются с символа
<
и заканчиваются на>
, либо начинаются с символа&
и заканчиваются на;
. Строки символов, не являющиеся разметкой, являются содержимым. Однако в разделе CDATA разделителии
]]>
классифицируются как разметка, а текст между ними классифицируется как контент. Кроме того, пробелы до и после самого внешнего элемента классифицируются как разметка.
Тег
- Тег является Разметка конструкция , которая начинается с
<
и заканчивается>
. Теги бывают трех видов:- начальный тег , например
;
- конечный тег , например
- начальный тег , например
.Элемент
- Элемент представляет собой логический компонент документа , который либо начинается с начальным тегом и заканчивается соответствующим конечным тегом или состоит только из пустого элемента тега. Символы между начальным и конечным тегами, если они есть, являются содержимым элемента и могут содержать разметку, включая другие элементы, которые называются дочерними элементами . Пример такой
. ДругойHello, world!
.>
Атрибут
- Атрибут является разметка конструкция , состоящая из пары имя-значение , которое существует в пределах стартового тега или пустого элемента тега. Например
, имена атрибутов - «src» и «alt», а их значения - «madonna.jpg» и «Madonna» соответственно. Другой пример:
имя атрибута - «число», а его значение - «3». Атрибут XML может иметь только одно значение, и каждый атрибут может появляться не более одного раза в каждом элементе. В обычной ситуации, когда требуется список из нескольких значений, это должно быть выполнено путем кодирования списка в правильно сформированный атрибут XML [i] с некоторым форматом, выходящим за рамки того, что XML определяет сам себя. Обычно это список, разделенный запятой или точкой с запятой, или, если известно, что отдельные значения не содержат пробелов, [ii] можно использовать список, разделенный пробелами.Connect A to B.
, где атрибут «class» имеет значение «внутреннее поле приветствия», а также указывает два имени класса CSS «внутреннее» и «поле приветствия».Welcome!
Декларация XML
- Документы XML могут начинаться с объявления XML, которое описывает некоторую информацию о себе. Пример такой
.
Персонажи и побег
XML-документы полностью состоят из символов из репертуара Unicode . За исключением небольшого количества специально исключенных управляющих символов , любой символ, определенный Unicode, может появляться в содержимом XML-документа.
XML включает средства для идентификации кодировки символов Unicode, составляющих документ, и для выражения символов, которые по той или иной причине не могут использоваться напрямую.
Допустимые символы
Кодовые точки Unicode в следующих диапазонах действительны в документах XML 1.0: [10]
- U + 0009 (горизонтальная табуляция), U + 000A (перевод строки), U + 000D (возврат каретки): это единственные элементы управления C0, принятые в XML 1.0;
- U + 0020 – U + D7FF, U + E000 – U + FFFD: исключает некоторые несимволы в BMP (все суррогаты, U + FFFE и U + FFFF запрещены);
- U + 10000 – U + 10FFFF: сюда входят все кодовые точки в дополнительных плоскостях, включая несимвольные.
XML 1.1 расширяет набор разрешенных символов, чтобы включить все вышеперечисленное, а также оставшиеся символы в диапазоне U + 0001 – U + 001F. [11] В то же время, однако, он ограничивает использование управляющих символов C0 и C1, кроме U + 0009 (горизонтальная табуляция), U + 000A (перевод строки), U + 000D (возврат каретки) и U + 0085. (Следующая строка), требуя, чтобы они были записаны в экранированной форме (например, U + 0001 должен быть записан как или его эквивалент). В случае символов C1 это ограничение является обратной несовместимостью; он был введен, чтобы позволить обнаруживать распространенные ошибки кодирования.
Кодовая точка U + 0000 (Null) - единственный символ, который не разрешен ни в одном документе XML 1.0 или 1.1.
Обнаружение кодировки
Набор символов Unicode может быть закодирован в байты для хранения или передачи множеством различных способов, называемых «кодировками». Сам Unicode определяет кодировки, охватывающие весь репертуар; к хорошо известным относятся UTF-8 и UTF-16 . [12] Есть много других кодировок текста, предшествующих Unicode, например ASCII и ISO / IEC 8859 ; их репертуар символов почти в каждом случае является подмножеством набора символов Unicode.
XML позволяет использовать любую кодировку, определенную в Unicode, и любые другие кодировки, символы которых также присутствуют в Unicode. XML также предоставляет механизм, с помощью которого процессор XML может надежно, без каких-либо предварительных знаний, определять, какая кодировка используется. [13] Кодировки, отличные от UTF-8 и UTF-16, не обязательно распознаются каждым анализатором XML.
Побег
XML предоставляет средства экранирования для включения символов, которые проблематично включить напрямую. Например:
- Символы «<» и «&» являются ключевыми маркерами синтаксиса и никогда не могут появляться в содержимом за пределами раздела CDATA . Разрешено, но не рекомендуется использовать "<" в значениях сущности XML. [14]
- Некоторые кодировки символов поддерживают только подмножество Unicode. Например, допустимо кодировать XML-документ в ASCII, но в ASCII отсутствуют кодовые точки для символов Юникода, таких как «é».
- Возможно, не удастся набрать символ на машине автора.
- Некоторые символы имеют глифы, которые нельзя визуально отличить от других символов, например неразрывный пробел (
А
) "А" и заглавную латинскую букву A (A
) «А».
Есть пять предопределенных сущностей :
<
представляет собой "<";>
представляет ">";&
представляет "&";'
представляет " ' ";"
представляет ' " '.
Все разрешенные символы Unicode могут быть представлены ссылкой на числовые символы . Рассмотрим китайский символ «中», числовой код которого в Юникоде - шестнадцатеричный 4E2D или десятичный 20 013. Пользователь, чья клавиатура не предлагает метода для ввода этого символа, все равно может вставить его в XML-документ, закодированный как 中
или 中
. Точно так же строка «I <3 Jörg» может быть закодирована для включения в XML-документ как I <3 Jörg
.