Введение в SAX

Пространства имен на атрибутах


Атрибуты тоже могут принадлежать к определенному пространству имен. Например, если имя вопроса изменяется второй раз, вы можете добавить второй относящийся к нему атрибут, revised:subject, так:

<?xml version="1.0"?> <surveys xmlns="http://www.nicholaschase.com/surveys/" xmlns:revised="http://www.nicholaschase.com/surveys/revised/"> <response username="bob"> <question subject="appearance">A</question> <question subject="communication">B</question> <question subject="ship">A</question> <question subject="inside">D</question> <question subject="implant">B</question> <revised:question subject="appearance" revised:subject="looks" >D</revised:question> <revised:question subject="communication">A</revised:question> <revised:question subject="ship">A</revised:question> <revised:question subject="inside">D</revised:question> <revised:question subject="implant">A</revised:question> </response> <response username="sue"> ...

Несколько странно, но атрибуты никогда не находятся в пространстве имен по умолчанию. Даже если Even было объявлено пространство имен по умолчанию, атрибут без префикса рассматривается как вообще не имеющий пространства имен. Это означает, что response находится в пространстве имен http://www.nicholaschase.com/surveys/, но его атрибут username - нет. Эта странность определена в самой Рекомендации XML.

Список Attributes имеет методы, которые позволяют вам определять пространство имен атрибута. Эти методы, getURI() и getQName, используются так же, как методы qname и localName для самого элемента.



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