Канонический XML - Canonical XML - Wikipedia
Канонический XML это нормальная форма из XML, предназначенный для относительно простого сравнения пар XML-документов на эквивалентность; с этой целью преобразование Canonical XML устраняет несущественные различия между документами. Любой XML-документ можно преобразовать в Canonical XML.
Например, XML разрешает использование пробелов в различных точках начальных тегов, а атрибуты должны указываться в любом порядке. Такие различия редко, если вообще когда-либо, используются для передачи значения, поэтому эти формы обычно считаются эквивалентными:
<p class="a" secure="1">
<p secure = "1" class='a' >
При преобразовании произвольного XML-документа в канонический XML атрибуты кодируются в нормативном порядке (в алфавитном порядке по имени) и с нормативными интервалами и кавычками (хотя все объявления пространств имен размещаются перед обычными атрибутами, а атрибуты пространств имен сортируются по пространству имен, а не по префиксу. или полное имя). Таким образом, вторая форма выше будет преобразована в первую.
Канонический XML определяет ряд других деталей, некоторые из которых:
- то UTF-8 кодировка используется
- концы строк представлены с помощью новая линия персонаж 0x 0A
- пробелы в значениях атрибутов нормализованы
- ссылки на сущности и ссылки на неспециальные символы расширяются
- CDATA разделы заменяются их характерным содержанием
- пустые элементы кодируются как пары начало / конец, без использования специального синтаксиса пустых элементов
- атрибуты по умолчанию сделаны явными
- лишние объявления пространств имен удаляются
Согласно W3C, если два XML документы имеют одинаковую каноническую форму, тогда два документа логически эквивалентны в рамках данного контекста приложения (за исключением ограничений, касающихся нескольких необычных случаев).
Однако в особом контексте пользователей может интересовать особая семантика, выходящая за рамки общей логической эквивалентности, с которой связан канонический XML. Например, стеганография Система может скрывать информацию в XML-документе, изменяя пробелы, кавычки и порядок атрибутов, используя ссылки на шестнадцатеричные и десятичные числовые символы и так далее. Очевидно, что преобразование такого файла в Canonical XML приведет к потере этой специализированной семантики. С другой стороны, XML-файлы, которые различаются использованием верхнего и нижнего регистра, или в которых используется устаревшее правописание по сравнению с современным, и так далее, могут считаться эквивалентными для определенных целей. Такие контексты выходят за рамки Canonical XML.
Смотрите также
внешняя ссылка
- Рекомендация W3C, Canonical XML Version 1.0, 15 марта 2001 г.
- Рекомендация W3C, эксклюзивная канонизация XML, версия 1.0, 18 июля 2002 г.
Этот язык разметки статья - это заглушка. Вы можете помочь Википедии расширяя это. |