XML - статьи

В самом начале работ над


В самом начале работ над XML 1.1 члены рабочей группы XML Core обсуждали возможность изменения основы XML с Unicode 2.0 на последнюю изданную версию Unicode (тогда это была версия 3.0) посредством простого добавления новых символов в существующие конструкции. Однако, это было бы временным решением, поскольку после выхода еще нескольких версий Unicode, рабочей группе пришлось бы начинать все с самого начала. Именно поэтому члены группа избрали более радикальный подход: совместимость снизу вверх.

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

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

Каким образом это достигается? Дело в том, что XML 1.0, определяя конструкции, такие как имена элементов, явно допускает определенные символы и исключает любые другие. Таким образом, исключению подлежат все символы, которые еще не определены в Unicode. В случае XML 1.1 применяется противоположный подход: допускаются все возможные символы за исключением определенных символов. Как правило, такие символы либо имеют особое значение для процессоров XML, как, например, отрывающая угловая скобка (<) или символ пробела, либо использование таких символов, например, пустого символа (null character), чревато возникновением проблем. Этот подход означает, что символы, которые в будущем будут добавлены в Unicode, на самом деле уже допускаются в именах элементов и аналогичных конструкциях.

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


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