XML - статьи

         

Канонический XML («c14n»)


Вспецификации «Канонический XML, версия 1.0» (Canonical XML Version 1.0) [Рекомендация консорциума W3C] определяется стандартный метод генерации физического представления XML-документа, называемого канонической формой. В этой спецификации объясняется, как выполнять эти модификации, допустимые с точки зрения синтаксиса XML, не меняя при этом содержания. Например, порядок атрибутов в XML не имеет значения, поэтому, если в одном документе все атрибуты отсортированы в алфавитном порядке, а другой документ отличается от первого только тем, что атрибуты располагаются в каком-то ином порядке, эти два документа являются идентичными с точки зрения XML 1.0, несмотря на различия в физическом представлении. В результате, возникают серьезные практические проблемы. Например, в случае если необходимо поставить цифровую подпись на документ, чтобы гарантировать его целостность, изменение порядка атрибутов приводит к нарушению подписи, несмотря на то, что сам документ при этом не изменяется. Решение этой проблемы заключается в преобразовании документов в каноническую форму (процесс называемый «канонизацией c14n») до того, как будут выполняться различные операции над документом: его подписание, сравнение текста и т.п. Благодаря этому, изменения, не существенные с точки зрения XML 1.0, вносятся корректным образом.

Иногда, XML-документ, который необходимо сравнить или подписать, на самом деле является просто разделом более крупного документа. Спецификация c14n учитывает и этот случай — указывая порядок обработки конструкций XML, например, объявлений пространств имен. В том случае, если требуется, чтобы эта спецификация ограничивалась подмножеством документа, необходимо использовать соответствующий алгоритм «Исключающая канонизация XML, версия 1.0» (Exclusive XML Canonicalization Version 1.0) [Рекомендация консорциума W3C].



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