XML

редактировать
Язык разметки, пример консорциумом W3C для кодирования данных
XML (стандартный)
Расширяемый язык разметки
СтатусОпубликован, Рекомендация W3C
Год начала1996; 24 года назад (1996 г.)
Впервые опубликовано10 февраля 1998 г.; 22 года назад (1998-02-10) В качестве рекомендации
Последняя версия1.1 (второе издание). 29 сентября 2006 г.; 14 лет назад (29.09.2006)
ОрганизацияКонсорциум World Wide Web (W3C)
Редакторы
Базовые стандартыSGML
Связанные стандартыСхема XML
ДоменДанные сериализация
АббревиатураXML
Веб-сайтw3.org/TR/xml11
XML (формат файла)
Расширение имени файла .xml
Тип Интернет -носителя
  • application / xml
  • text / xml
Uniform Type Identifier (UTI) public.xml
UTI conformationpublic.text
Magic number
Разработано отКонсорциума World Wide Web
Тип форматаЯзык разметки
Расширен сSGML
Расширен до
Standard
Открытый формат ?Да

Extensible Markup Language (XML ) - это язык разметки, котор ый установить набор правил для кодирования документов в формат, который является одновременно читаемым человеком и машиночитаемым. Спецификация XML 1.0 от 1998 г. Консорциума Всемирной паутины и несколько других связанных спецификаций - все они бесплатные открытые стандарты - определяют XML.

Цели проектирования XML подчеркивает простоту, универсальность и удобство использования в Интернете. Это текстовый формат данных с сильной поддержкой через Unicode для различных человеческих языков. Хотя дизайн XML ориентирован на документы, этот язык широко используется для представления произвольных структур данных, таких как те, которые используются в веб-сервисах.

Существует несколько систем схем , чтобы помочь в определении языков на основе XML, в то время как программисты разработали множество интерфейсов прикладного программирования (API) для помощи в обработке данных XML.

Содержание
  • 1 Приложения
  • 2 Ключевые термины
  • 3 Символы и экранирование
    • 3.1 Допустимые символы
    • 3.2 Обнаружение кодировки
    • 3.3 Экранирование
    • 3.4 Комментарии
    • 3.5 Международное использование
  • 4 Синтаксическая корректность и обработка ошибок
  • 5 Схемы и проверка
    • 5.1 Определение типа документа
    • 5.2 Схема
    • 5.3 RELAX NG
    • 5.4 Schematron
    • 5.5 DSDL и другие языки схем
  • 6 Связанные спецификации
  • 7 Интерфейсы программирования
    • 7.1 Простой API для XML
    • 7.2 Анализ по запросу
    • 7.3 Объект документа
    • 7.4 Связывание данных
    • 7.5 XML как тип данных
  • 8 История
    • 8.1 Источники
    • 8.2 Версии
      • 8.2.1 XML 1.0
      • 8.2.2 XML 1.1
      • 8.2.3 Допустимые символы Unicode в XML 1.0 и XML 1.1
      • 8.2.4 XML 2.0
      • 8.2.5 Двоичный XML
  • 9 Критика
  • 10 См. Также
  • 11 Примечания
  • 12 Ссылки
  • 13 Дополнительная литература
  • 14 Ссылки
Приложения

Суть того, почему необходимы расширяемые языки разметки, объясняется в Язык разметки (Например, см. Язык разметки § XML ) и Стандартный обобщенный язык разметки.

Были разработаны сотни форматов документов с использованием синтаксиса XML, включая RSS, Atom, SOAP, SVG и XHTML. Форматы на основе XML по умолчанию для многих офисных инструментов, включая Microsoft Office (Office Open XML ), OpenOffice.org и LibreOffice. (OpenDocument ) и Apple iWork. XML также предоставил базовый язык для протоколов связи, таких как XMPP. Приложения для Microsoft .NET Framework используют файлы XML для конфигурации, а списки свойств предоставляют собой хранилище конфигурации, построенного на XML.

Многие отраслевые стандарты данных, такие как Уровень здоровья 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 разделители и hibitedune>классифицируются как разметка, а текст между ними классифицируется как контент. Кроме того, пробелы до и после самого внешнего элемента классифицируются как разметка.

Тег

Тег - это конструкция разметки, которая начинается с <и заканчивается >. Теги бывают трех видов:
  • начальный тег, такой как
    ;
  • конечный тег, такой как ;
  • тег пустого элемента, например .

Элемент

Элемент - это логический документ. компонент, который либо начинается с начального тега, и соответствующий конечным тегом, либо только из тега пустого элемента. Символы между начальным и конечным тегами, если они есть, являются содержащимися элементами и могут содержать разметку, включая другие элементы, которые называются дочерними элементами. Пример: Привет, мир!. Другой - .

Атрибут

Атрибут - это конструкция разметки, состоящая из пары имя - значение, которая существует внутри начального тега или тега пустого элемента. Пример: Мадонна , где именаов - «src» и «alt», а их значения - «madonna.jpg» и «Мадонна» соответственно. Другой пример - Соединить A с B., где имя атрибута - «число», а его значение - «3». Атрибут XML может иметь только одно значение, и каждый атрибут может появляться не более одного раза в каждом элементе. В обычной ситуации, когда используется список из нескольких значений, это должно быть сделано путем кодирования списка в правильно сформированном XML с некоторым форматом, выходным за рамки того, что XML определяет сам. Обычно это список, разделенный запятой или с запятой, или, если известно, что отдельные значения не содержат пробелов, можно использовать список, разделенный пробелами. Welcome!, где атрибут «class» имеет значение «внутреннее приветствие-поле», а также указывает на два имени класса CSS «inner» и «welcome- box ".

Объявление XML

Документы XML могут быть предоставлены с объявлением XML, которое может служить некоторую информацию о себе. Примером могут служить .
символы и экранирующие

XML-документы, состоящие полностью из символов из репертуара Unicode. За исключением небольшого числа, специально исключенного управляющих символов, любого символа, определенного Unicode, который может находиться в содержимом XML-документа.

XML включает средства для идентификации кодировки

Допустимые символы

Кодовые точки Unicode в следующих диапазонах действительны в документах XML 1.0:

  • 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. Однако в то же время он ограничивает использование управляющих символов 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. Есть много других кодировок текста, предшествующих Unicode, например, ASCII и ISO / IEC 8859 ; их репертуар символов почти в каждом случае является подмножеством набора символов Unicode.

XML позволяет использовать любые из определенных кодировок Unicode, а также любые другие кодировки, символы, которых также присутствуют в Unicode. XML также механизм, с помощью которого процессор XML может надежно, без каких-либо предварительных знаний, определять какая кодировка используется. Кодировки, отличные от UTF-8 и UTF-16, не обязательно распознаются каждым анализатором XML.

Экранирование

XML предоставляет возможности escape для включения символов, которые проблематично включить напрямую. Например:

  • символы «<" and "" are key syntax markers and may never appear in content outside a CDATA раздел. Разрешено, но не рекомендуется использовать «<" in XML entity values.
  • >Некоторые кодировки символов Unicode только подмноже. Например, допустимо кодировать XML-документ в ASCII, но в ASCII отсутствуют кодовые точки для символов Юникода, таких как «é».
  • Может быть невозможно символ на машине автора.
  • Некоторые символы имеют глифы, которые нельзя визуально отличить от других символов, например, неразрывный пробел () "" и пробел () "", а кириллическая заглавная буква A (А) "А" и латинская заглавная буква A (А) «А».

Имеется пять предопределенных сущностей :

  • <представляет «<";
  • >представляет«>»;
  • представляет "";
  • 'представляет "'";
  • "представляет '"'.

Все разрешенные символы Unicode могут быть представлены с ссылка на числовой символ. Рассмотрим китайский символ «中», числовой код которого в Юникоде - шестнадцатеричный 4E2D или десятичный 20 013. Пользователь, чья клавиатура не предлагает метода ввода этого символа, все равно может вставить его в XML-документ, закодированный как или . Точно так же строка «I <3 Jörg» может быть закодирована для включения в XML-документ как I <3 Jörg.

, однако не допускается, поскольку нулевой символ является одним из управляющих символов, исключенных из XML, даже при использовании числовой символьной ссылки. Для представления таких символов необходим альтернативный механизм кодирования, такой как Base64.

Комментарии

Комментарии могут появляться в любом месте документа за пределами разметки. Комментарии могут быть представлены перед объявлением XML. Комментарии начинаются с . Для совместимости с SGML строка «-» (двойной дефис) не допускаются внутри комментариев; это означает, что комментарии не могут быть вложенными. Амперсанд не имеет особого значения в комментариях, поэтому на сущности и символы не распознаются как таковые, и нет способа представить символы вне символов кодировки документа.

Пример правильного комментария: