Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Определения типов документов (DTD) усложняют поддержку пространства имен. Например, следующий XML-код содержит атрибуты по умолчанию, содержащие двоеточия в их именах.
<!ATTLIST item x:id CDATA #IMPLIED>
Ниже приведены возможные разрешения, если эта конструкция разрешена:
Префикс
x:
рассматривается как пространство имен, но этот префикс должен быть разрешаемым с помощьюxmlns:x
объявления пространства имен, которое также должно присутствовать где-либо в DTD. Это ошибка сопоставления этого префикса с чем-то другим в документе экземпляра.Префикс
x:
пространства имен рассматривается как префикс пространства имен, но этот префикс всегда разрешается в контексте элементов экземпляра. Это означает, что префикс фактически может сопоставляться с разными универсальными идентификаторами ресурсов пространства имен (URI), в зависимости от области пространства имен, в которойitem
отображается элемент. Это поведение является более предсказуемым, чем разрешения, указанного в предыдущем пункте, но оно имеет другие сложные последствия, так как требует проявления атрибутов по умолчанию.Двоеточие игнорируется, так как оно находится в DTD, а имя атрибута —
x:y
, нет префикса и URI пространства имен.Двоеточие в атрибуте по умолчанию создает исключение, указывающее, что двоеточия в именах внутри DTD не поддерживаются. Это приводит к предсказуемому поведению, но означает, что вы не можете загрузить многие опубликованные DTD консорциума Всемирного интернета (W3C).
Когда пользователь запрашивает проверку DTD, поддержка пространства имен для всего документа отключается. Это позволяет загружать DTD W3C и выполнять прогнозируемое поведение.
XML в Microsoft .NET Framework реализует второй вариант для максимальной совместимости W3C.