Canonical XML

редактировать

Canonical XML - это нормальная форма из XML, предназначенная для относительно простого сравнения пар документов XML на эквивалентность; для этого преобразование Canonical XML устраняет несущественные различия между документами. Любой XML-документ можно преобразовать в Canonical XML.

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

При преобразовании произвольного XML-документа в канонический XML атрибуты кодируются в нормативном порядке (в алфавитном порядке по имени) и с нормативным интервалом. и цитирование (хотя все объявления пространств имен помещаются перед обычными атрибутами, а атрибуты пространств имен сортируются по пространству имен, а не по префиксу или квалифицированному имени). Таким образом, вторая форма выше будет преобразована в первую.

Канонический XML определяет ряд других деталей, некоторые из которых:

  • используется кодировка UTF-8
  • концы строк представлены с помощью новая строка символ 0x 0A
  • пробелы в значениях атрибутов нормализованы
  • ссылки на объекты и ссылки на неспециальные символы расширяются
  • Разделы CDATA заменяются их символьным содержимым
  • пустые элементы кодируются как пары начало / конец, без использования специального синтаксиса пустых элементов
  • атрибуты по умолчанию делаются явными
  • лишние объявления пространств имен удаляются

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

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

См. Также
Внешние ссылки
Последняя правка сделана 2021-05-14 05:44:31
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте