XML-семейство постепенно объединяет все большее количество независимых и совместимых в работе технологий. Одна из самых необходимых технологий, отвечающих за совместимость программных продуктов, называется XML-npocmpan-cmeo имен.
Язык XHTML 1.1 поддерживает модули элементов и возможность построения новых элементов для их последующего использования в структуре XHTML-документов (см. главы 14-16). Однако это может стать причиной конфликта, если разработчики модулей используют в разных проектах одно и то же имя элемента.
Язык XML, а следовательно, и XHTML, решает данную проблему с помощью пространств имен. Приведем пример из повседневной жизни. Допустим, нескольких людей из вашего окружения зовут одинаково - Эндрю. Но их будет легко различить, если кроме имени воспользоваться еще и фамилией: Эндрю Смит, Эндрю Паттерсон, Эндрю Ватт.
В структуре XML подобный механизм применяется при разрешении ситуации с одинаковыми именами для элементов XHTML (XML), принадлежащих различным модулям, но используемых в едином XHTML- или XML-документе.
Пример. В документе необходимо различать два элемента с одинаковыми именами <text>. Одному из них можно присвоить полное имя <xsl:text>. Данный элемент является частью XSLT-спецификации. Существует множество других префиксов для обозначения остальных элементов <text>. Следовательно, конфликтной ситуации, обусловленной наличием одинаковых имен, избежать достаточно просто.
Когда составляются списки участников какого-либо мероприятия, в первой колонке, как правило, указываются имя и фамилия, причем фамилия стоит первой. Аналогично в структуре XML сначала записывается префикс, определяющий пространство имен (в предыдущем случае - xsl), затем символ : (двоеточие) и, наконец, завершающий элемент, часто называемый локальной частью (local part) -в предыдущем примере это элемент text.
Возвратимся к примеру с фамилиями. Обычно фамилии вполне достаточно для обозначения конкретного человека. Однако при составлении генеалогических схем описывать членов семьи придется на основе дополнительных данных, например даты и места рождения. Только тогда запись об определенном человеке станет уникальной.
В стандарте XML также существует проблема уникальной идентификации каждой области имен. Объявление пространства имен связывает префикс именной области xsl с универсальным идентификатором ресурса (URI). В большинстве существующих приложений URI может быть синонимом унифицированного указателя ресурса (URL).
Идентификатор URI, определяющий пространство имен, обычно не содержит записей, то есть является уникальной строкой символов, а префикс служит псевдонимом более длинной, но неизменяемой текстовой строки URI. Вероятность того, что два идентификатора ресурса окажутся тождественными, очень мала. Однако рекомендуется использовать только URI, соответствующий имени контролируемого разработчиком домена в Web.
Пример. Обычно объявление XSL-пространства имен в XSLT-таблицах стилей осуществляется в виде атрибута открывающего тэга типа <xsl: stylesheetx
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
Представленная запись эквивалентна следующему определению:
<xsl:transform
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
Другими словами, элементы <xsl : stylesheet> И <xsl : transform> в XSLT-стан-дарте языка таблиц стилей (или таблиц преобразования стилей - рекомендация «XSLT Recommendation» поддерживает два элемента с единым значением) имеют одинаковый смысл.
XML-пространства имен применяются для явного описания элементов XSLT, например <xsl: stylesheet>, <xsl: template> и т.д. Данные пространства внутри древовидной структуры узлов наделяются собственным смыслом (см. XSLT 1.0 и XPath Recommendations).
Опубликовал vovan666
April 08 2013 14:57:59 ·
0 Комментариев ·
4834 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.