Старая версия xmlhack.ru


[W3C][XML]  Справедливое требование
  14.08.03 Александр Савенков

Справедливое требование

Опубликованы Требования к xml:id

Официальное объявление

6 августа 2003 года основная рабочая группа по XML выпустила первый публичный рабочий проект Требований к xml:id (xml:id Requirements). Требования описывают механизм идентификации XML-элемента по явному идентификатору (ID), независимому от проверки с помощью DTD или схемы, и применимы ко всем классам XML-процессоров. Приветствуются комментарии. Посетите домашнюю страницу XML.

Заплатка для XML

Далее приводятся выдержки из решения группы по технической архитектуре (TAG), на основе которого опубликован документ.

Сильной стороной архитектуры Всемирной сети является возможность пометить информацию или указать на неё со степенью детализации меньшей чем целый ресурс. Для медиатипов XML способом идентификации до сих пор служила декларация идентификаторов (ID) с использованием механизмов DTD или схемы, которые, тем не менее, являются необязательными для совместимых XML-процессоров. Таким образом существует проблема, в случае если анализаторам, не выбирающим внешние DTD или схему, или же в отсутствие каких-либо DTD или схем, желательно иметь функциональность, подобную ID.

Функциональность ID является следствием анализа DTD, а не проверки на действительность. Все реализации XML обязаны уметь анализировать внутреннее подмножество DTD. Факультативно они могут выбирать и анализировать внешнее подмножество DTD.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE авто [
<!ATTLIST авто запчасть ID #IMPLIED> ]>
<авто запчасть="Ю54321" цвет="зелёный"/>

Этот документ построен правильно, однако действительным не является и не может быть проверен, т. к. имеются недекларированные элементы и атрибуты. Тем не менее, атрибут запчасть на элементе авто имеет тип ID.

Большое число связанных с XML спецификаций зависят от того, известно ли, какие из атрибутов имеют тип ID, однако у всех это происходит по-разному. Некоторые спецификации предполагают наличие ID у всех документов с DTD (что неверно), или что анализаторы выбирают только DTD для HTML, но не для XML, или что реализации имеют некое «встроенное» знание о конкретных пространствах имён и связанных с ними атрибутах, имеющих тип ID.

Другие реализации предполагают, что любой атрибут, названный id имеют тип ID, или, наоборот, допускают его в HTML, однако не распознают функциональность ID в этом же HTML-документе при использовании правильно построенного анализатора XML вместо «настоящего» анализатора HTML.

В результате при реализации нескольких спецификаций W3C возникает путаница в среде разработчиков, а также отсутствие взаимодействия между правильно построенными, но непроверенными документами. Поскольку авторы документов не могут указать, хотят они, и нужна ли им проверка на действительность, данное сообщество не может самостоятельно решить описываемую проблему.