
- •Оглавление
- •1. История появления xml и его особенности. Хорошо оформленный документ
- •2. Структура документа xml. Верный документ
- •3. Ссылки на сущности, секция cdata. Комментарии, атрибуты, имена
- •4. Пространства имён xml. Инструкции по обработке
- •5. Конструкции dtd: объявление типа элемента, объявление атрибутов
- •6. Конструкции dtd: объявление сущности, объявление обозначения
- •7. Размещение описания dtd. Программы-анализаторы xml
- •8. Описание схемы документа на языке xsd. Встроенные простые типы
- •9. Определение новых простых типов в xsd
- •10. Объявление элементов и их атрибутов в xsd
- •11. Определение сложных типов в xsd
- •12. Пространства имён языка xsd. Связь документа xml со своей схемой
- •13. Создание ссылок на языке xLink. Пространство имён языка xLink
- •14. Атрибуты, используемые при создании ссылок на языке xLink
- •15. Типы ссылок, создаваемых на языке xLink
- •16. Создание банка ссылок. Программы-обработчики атрибутов xLink
- •17. Таблицы стилей css в языке xml. Язык описания стилей xsl
- •18. Язык записи преобразований xslt бред, не стала разбираться, что из этого надо, а что нет
14. Атрибуты, используемые при создании ссылок на языке xLink
Атрибут title может встретиться в ссылке любого типа, за исключением ссылки типа title, в которой он просто будет лишним. Значением атрибута title может быть любая строка символов. Она предназначена для человека и может быть выведена на экран дисплея, записана в журнальный файл сообщений или распечатана на принтере. Обычно эта строка играет роль комментария или информационного сообщения, поясняя действие ссылки или отмечая способ ее активизации. В отличие от обычного комментария атрибут title обрабатывается программой-обработчиком документа XML. Например, значение атрибута title можно использовать в подсказке, всплывающей при наведении на ссылку курсора мыши.
Листинг 4.1 показывает пример ссылки с атрибутом title.
<someLnk xmlns:xlink="http://www.w3.org/1999/xlink"xlink:type="simple"
xlink:title="3arpyacaeTCH классификатор"
xlink:href="http://some.domain.com/pub/ind/kldr012.xml">
Классификатор адресов
</someLnk>
Ссылка на документ kldr012.xml, по своему действию аналогичная гиперссылке языка HTML. Первый атрибут элемента someLnk определяет префикс xlink пространства имен языка XLink. Второй атрибут xlink:type показывает тип ссылки. В третьем атрибуте xlink:title записано информационное сообщение. Четвертый атрибут xilnk:href задает адрес документа kldr012.xml.
Атрибут label - назначение — пометить ссылку. В отличие от атрибута title значение атрибута label может быть только простым именем без специальных знаков, пробелов, двоеточий, точнее, значением типа NCName. Это имя предназначено для того, чтобы к элементу можно было обратиться из других элементов документа, а именно из элементов-ссылок типа arc. Поэтому атрибут типа label применяется только в ссылках типа locator или resource, чтобы пометить их для дальнейшего использования ссылками типа arc.
Листинг 4.2. Метки и их использование
<multLink xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="extended" xlink:title="CBЯ3b документов">
<src xlink:type="resource" xlink:label="s0012" />
<tgt xlink:type="locator"
xlink:href="http://domain.com/docs/udr01.xml" xlink:label="t0012" />
<ref xlink:type="arc" from="s0012" to="t0012" />
</multLink>
Элемент multLink — сложная ссылка типа extended. Сложные ссылки содержат в себе другие ссылки. В частности, в элементе multLink содержатся три ссылки.
Элемент-ссылка src типа resource помечен меткой s0012. Он ссылается на текущий документ и используется в элементе ref как начальная точка определяемой ссылки, поскольку его метка s0012 записана в атрибуте from.
Элемент-ссылка tgt с меткой tooi2 используется как конечная точка ссылки, т. к. эта метка присутствует в атрибуте to элемента ref. Начальной точкой ссылки становится текущий документ, а конечной — документ udrOl.xml.
Если мы запишем элемент ref по-другому:
<ref xlink:type="arc" from="t0012" to="s0012" />
то получим обратную ссылку документа udrOl.xml на текущий документ.
Атрибут href, значением которого служит адрес ресурса в форме URL, встречается только в ссылках типа simple и locator. причем для ссылки типа locator он обязателен. Его можно не записывать в элементе-ссылке типа locator явно, но тогда у него должно быть значение по умолчанию, определенное при описании схемы документа.
Атрибут type обязателен для всех ссылок. Больше того, именно он определяет элемент как ссылку. Следующий пример показывает, как можно оформить ссылку в духе гиперссылки языка HTML:
<myLink xmlns:xlink="http://www.w3.org/1999/xlink"
xlink: Ъ1Ъ1е="Дополнительные сведения"
xlink:type="simple" xlink:href="http://host.domain/newdoc.html">
Новая версия документа
</myLink>
Первый атрибут xmlns:xlink элемента myLink определяет префикс xlink имен язьжа XLink. Второй атрибут xlink:type указывает, что элемент myLink— ссылка типа simple. Третий атрибут xlink:href задает адрес URL документа, на который делается ссылка.
Хотя атрибут type обязателен, можно сделать его присутствие неявным, задав ему значение по умолчанию при описании схемы документа. Например, при описании структуры документа XML элемент myLink из предыдущего примера можно объявить на языке XSD следующим образом:
<xsd:element name="myLink" type="xsd:string">
<xsd:complexType>
<xsd:attribute name="xlink:type" type="xsd:name" use="optional" default="simple" />
<xsd:attribute name="xlink:href" type="xsd:anyURL" use="required" />
</xsd:complexType>
</xsd:element>
После такого объявления атрибут xlink:type можно не записывать в элементе myLink, при этом значением атрибута и, следовательно, типом элемента myLink будет тип simple.
Атрибуты from и to записываются только в дугах — ссылках типа arc — для указания начальной и конечной точки дуги. У элементов-ссылок, описывающих эти точки (это ссылки типа resource — точки в локальном ресурсе, или locator — точки, расположенные в удаленном ресурсе), должен быть атрибут label, помечающий ссылки. Значениями атрибутов from и to служат эти метки. В листинге 4.3 элемент-дуга load типа arc использует метки "loc" и "base", которыми помечены элементы sresource, описывающие начальную и конечную точки дуги.
Листинг 4.3. Связь удаленных ресурсов
<tplink xlink:type="extended">
<sresource xlink:type="locator" xlink:label="loc"
xlink:href="http://some.com/pub/res024.xml" />
<sresource xlink:type="locator" xlink:label="base"
xlink:href="http://some.com/pub/res043.xml" />
<load xlink:type="arc" xlink:from="loc" xlink:to="base" />
</tplink>
Описания начальной и конечной точек обязательно должны располагаться в той же ссылке типа extended, что и описание дуги, связывающей их.
Необязательный атрибут show можно употреблять в ссылках типа simple и arc в тех случаях, когда предполагается показать полученный по ссылке ресурс на экране. У атрибута show всего пять значений, аналогичных значениям атрибута target:
"new" — полученный ресурс следует показать в новом месте, а не там, где была ссылка на него;
"replace" — полученный ресурс следует показать в том же окне, фрейме, или на той же панели, где была ссылка на ресурс;
"embed" — полученный ресурс следует показать в том же окне, где была ссылка на него, при этом первоначальный ресурс не должен подвергаться преобразованиям;
"other" — какой-то способ представления, описанный в других элементах документа;
"none" — способ представления не описан ни в одном элементе документа.
Например:
<sign xlink:type="simple"
xlink:href="http://some.domain/pub/math/sigma.gif">
xlink:show="embed"
xlink:title="3HaK суммы" />
Атрибут actuate показывает момент времени для активизации ссылки. Используется в ссылках типа simple и arc. Атрибут actuate может принимать четыре значения:
"onLoad" — активизировать ссылку сразу же при загрузке документа;
"onRequest" — активизировать ссылку по какому-то событию — действию пользователя, таймеру и т. п.;
"other" — какой-то способ активизации, описанный в других элементах документа;
"none" — способ активизации не описан ни в одном элементе документа.
Например:
<sign xlink:type="simple"
xlink:href="http://some.domain/pub/intro.xml">xlink:actuate="onLoad" />
Атрибут role указывает на ресурс, описывающий ссылку. Значения атрибута — абсолютные адреса URL. Его удобно использовать в тех случаях, когда несколько ссылок описываются одним ресурсом, определяющим роль, которую играют эти ссылки. Атрибут role можно записать в элементе-ссылке любого типа, за двумя исключениями: в ссылке типа title и в ссылке типа arc. Например:
<problem xlink:type="simple"
xlink:href="http://some.domain/pub/articles/integral.xml"> xlink:role="http://some.domain/pub/roles/math.xml">Решение интегрального уравнения
</problem>
Атрибут arcroie служит той же цели, что и атрибут role, но применяется только в ссылках типа simple и arc. Его значением тоже может быть любая строка URL, указывающая на реальный ресурс или служащая только идентификатором.