Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
xml.docx
Скачиваний:
49
Добавлен:
16.04.2015
Размер:
115.97 Кб
Скачать

15. Типы ссылок, создаваемых на языке xLink

Типы ссылок

Как видно из предыдущих примеров, ссылки бывают разных типов. Во-первых, ссылка может быть простой или расширенной. Во-вторых, ссылка может быть информационным ресурсом, ука­зателем на ресурс, дугой графа или просто заголовком. Кроме того, значением атрибута type может служить слово none, означающее, что остальные атрибуты и содержимое элемента не имеют никакого отношения к ссылкам.

Тип none

Указание в качестве значения атрибута xlink:type слова none показывает, что элемент вовсе не является ссылкой, несмотря на то, что другие атрибу­ты и его содержимое могут вьгглядеть так, как будто относятся к языку XLink. Это полезно, если в каких-то ситуациях элемент надо использовать как ссылку, а в других ситуациях — нет. Вот, например, определение про­стого типа, сделанное на языке XSD. Определяемый тип состоит из двух значений: "simple" И "none".

<xsd:simpleType name="docType">

<xsd:restriction base="xsd:name">

<xsd:enumeration value="simple" /> <xsd:enumeration value="none" />

</xsd:restriction>

</xsd:simpleType>

Далее идет объявление элемента anEiem с атрибутом xlink:type только что определенного типа locType. Такой атрибут принимает значения "simple"

ИЛИ "none".

<xsd:element name="anElem" type="xsd:string">

<xsd:complexType>

<xsd:attribute name="xlink:type" type="locType"

use="required" /> <xsd:attribute name="xlink:href" type="xsd:anyURL" use="optional" /> </xsd:complexType>

</xsd:element>

После этого объявления элемент anEiem можно использовать в документах XML как ссылку:

<anElem xlink:type="simple" xlink:href="fl.xml">

Ссылка на описание </апЕ1ет>

или как простой элемент:

<anElem xlink:type="none">

Простое описание </anElem>

Тип locator

Ссылка типа locator описывает удаленный информационный ресурс. Опи­сание выполняется обязательным атрибутом href, записанным явно или имеющим значение по умолчанию. Значением атрибута href служит адрес URL описываемого информационного ресурса. Например:

<myBiogr xlink:type="locator"

xlink:href="http://hsh.com/names/ivanov.xml"xlink:label="L1234" />

Описание удаленного ресурса используется затем при создании ссылки-дуги типа arc.

Ссылка типа locator не применяется самостоятельно, а только как один из элементов сложной ссылки типа extended. Пример тако­го использования приведен в листинге 4.2. Если элемент типа locator не записан внутри сложной ссылки типа extended, то он не будет обрабаты­ваться как ссылка, а будет считаться просто неким элементом XML.

Кроме обязательного атрибута href, элементы типа locator могут содержать атрибуты role, title и label, и др. У элементов типа locator может быть любое тело, в том числе и вложенные элементы. Вложенные элементы не будут обрабатываться как ссылки.

Ссылки типа simple свя­зывают один документ, тот, в котором определена ссылка, с другим доку­ментом или другой частью того же самого документа. Таким образом, связь устанавливается только между двумя документами, направление связи идет только от текущего документа, в котором записана ссылка типа simple, к удаленному ресурсу, адрес URL которого указан в атрибуте href.

В ссылке типа simple атрибут href необя­зателен. В случае его полного отсутствия, если у него нет даже значения по умолчанию, ссылка типа simple просто описывает информационный ресурс подобно ссылке типа resource. Пример ссылки типа simple приведен в лис­тинге 4.1.

Кроме необязательного атрибута href, в элементах-ссылках типа simple можно использовать атрибуты role, arcrole, title, show, actuate И атрибу­ты, не относящиеся к языку XLink. У элемента типа simple может быть лю­бое содержимое, но вложенные элементы не будут рассматриваться как ссылки.

Ссылка типа extended, пример которой уже приведен в листинге 4.2, может связывать любое число документов и других информационных ресурсов. Некоторые из этих связей могут быть входящими, другие — выходящими, третьи могут связывать сторонние документы. Описание таких связей про­изводится элементами, вложенными в элемент-ссылку типа extended. Эти вложенные элементы — тоже ссылки, их типы — title, resource, locator или arc.

Самый простой тип ссылки — тип title. Атрибут xlink:type — это единст­венный обязательный атрибут языка XLink в такой ссылке. Более того, кроме него в ссылке типа title нет ни одного атрибута языка XLink, хотя могут быть атрибуты из другого пространства имен. Ссылка типа title ни на что не ссылается. Ее обычное назначение — дать описание расширенной ссылке, предназначенное для человека, а не для программы-обработчика. Например:

<rem xlink:type="title">

Другие материалы по теме </rem>

Значение атрибута title — простая строка символов, а содер­жимым элемента-ссылки типа title может быть что угодно, в том числе какой-то размеченный текст, содержащий вложенные элементы. Например:

<im xlink:type="title">

<html> <body>

<п2>Чертеж 2</h2>

<img src="p2302.gif">

</body> </html> </im>

Элементы-ссылки типа title можно вложить не только в ссылку типа extended, но и в ссылки типа locator или arc.

Ссылка типа resource за­писывается в теле сложной ссылки типа extended и отмечает локальный ресурс, чаще всего текущий документ XML, в котором записана ссылка. Правильнее было бы сказать, что это не ссылка, а пометка, сделанная в ка­ком-то месте локального ресурса атрибутом label, как это представлено, например, в листинге 4.2.

Кроме атрибута label в ссылках типа resource можно использовать атрибу­ты title и role языка XLink, а также любые атрибуты, определенные самостоятельно. У элемента типа resource может быть любое содержимое, в том числе и вложенные элементы, хотя чаще всего такой элемент бывает пустым.

Ссылка типа arc создает дугу. Как правило, каждая такая ссылка создает дугу только одного вида: входящую, выходящую или стороннюю. В созда­нии дуги участвуют атрибуты from и to. Они задают начало и конец дуги.

Кроме этих атрибутов в ссылках-дугах можно использовать атрибуты arcrole, title, show и actuate. Содержимое элемента типа arc может быть любым, но вложенные в него элементы не будут рассматриваться как ссылки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]