QName - это XML-термин, характеризующий составные имена (qualified names). Они понадобятся, если пространства имен XML будут использоваться для задания различий между элементами, принадлежащими различным языкам разметки. Например, в структуре XHTML существует элемент title, который применяется для заголовка документа. В других языках тот же элемент служит для указания ученого звания некоторого лица или для обращения к кому-либо, то есть замещает слова типа «доктор», «ваше преподобие» и даже «Ее Величество».
Пространство имен XML указывает на принадлежность определенного элемента какому-либо языку с помощью префикса, который следует за его именем. Таким образом, описание элемента tit 1е, принадлежащего языку XHTML, в виде составного имени принимает вид xhtml: title.
Модуль QName содержит параметрические компоненты, применяемые для хранения составных имен тех элементов, которые должны быть описаны в модуле объявлений. Такая структура является гарантией того, что в конкретных условиях данные элементы будут представлены собственными составными именами.
Примечание Более детально пространства имен XML описываются в документах сайта, размещенного по адресу http://www.w3.org/TR/REC-xml-nam.es/.
Подмодуль QName начинается с комментариев. В этом сегменте указываются: имя модуля, имя файла, а также публичный и системный идентификаторы, используемые для ссылки на модуль. Здесь же происходит объявление пространства имен. Разместив указанные записи на соответствующих позициях подмодуля QName, получим вступительную часть проекта:
<!-- -->
<!-- QName (Модуль рецептов) - модуль составных имен -->
<! — Файл: recipe-qname-1.mod
PUBLIC "-//WebGeek//ELEMENTS XHTML Recipe Qnames 1.0//" SYSTEM "http://www.webgeek.com/DTD/recipe-qname-l.mod"
xmlns:recipe="http://www.webgeek.com/xmlns/recipe"
—>
В секции использовано несколько соглашений. Так, имя подмодуля содержит суффикс . mod, соотнесенный с суффиксом параметрического компонента, который потребуется позднее в процессе связывания компонентов модулей для идентификации элемента.
Следующее соглашение касается формального публичного идентификатора (Formal Public Identifier - FPI), имеющего специальную форму записи. Строка всегда начинается с символов -//, после которых указывается владелец модуля (в данном случае - компания WebGeek, Inc). Затем вновь последовательность символов / / , слово ELEMENT (обязательно заглавными буквами), заголовок и версия модуля. Завершает запись идентификатора FPI еще одна пара символов / / :
"-//WebGeek//ELEMENTS XHTML Recipe Qnames 1.0//"
Системный идентификатор это URI, по адресу которого размещено содержимое файла. Выражение для него может представлять либо полную, либо сокращенную форму записи (сокращенный вариант относится к описанию локального URI). В следующем примере использован полный вариант:
xmlns:recipe="http://www.webgeek.com/xmlns/recipe"
URI, применяемый для представления пространства имен, необязательно должен иметь содержание. Поэтому обращение к нему вряд ли приведет к результату, который можно получить, адресуясь к URL.
Следующая запись соответствует началу описания параметрических компонентов, задействованных в модуле XHTML Framework. Эти параметры предназначаются для построения окончательной формы правил описания типов документа. Первые множества независимо от того, являются они в новом модуле элементами или нет, используют составные пространства имен. По умолчанию значение данной опции устанавливается равным " IGNORE".
<!ENTITY %NS.prefixed "IGNORE">
В нашем модуле компоненту %NS . prefixed соответствует параметрический компонент %Recipe.prefixed:
<!ENTITY %Recipe.prefixed "%NS.prefixed">
Параметрический компонент с указателем prefixed создается для разрешения возможности переопределения. Экземпляр документа настраивается таким образом, что наименования всех элементов получают префикс.
Опубликовал vovan666
April 09 2013 22:31:51 ·
0 Комментариев ·
3758 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.