Document 5011014

advertisement
Язык XLink
(XML Linking Language)
http://www.w3.org/TR/xlink/
Язык XLink
• XML Linking Language (XLink) – это основанный на
атрибутах синтаксис для включения в XML
документы элементов, описывающих ссылки
между ресурсами.
• XLink ссылки могут быть:
– простыми связями «Из точки А в точку В», подобно
ссылкам, с которыми вы хорошо знакомы по элементу
A в HTML.
– двунаправленными связями между двумя
документами в обоих направлениях, так что есть
возможность перейти от А к В или от В к А.
– много-направленными связями, задающими много
различных путей между любым количеством
документов.
• Целью XLink ссылки не обязательно являются XMLдокументы.
• Такие ссылки могут быть включены в XML-документ,
содержащим связи между другими документами,
которые в свою очередь могут быть, а могут и не быть
XML-документами.
• Можно даже добавлять такие внешние ссылки к
страницам, которыми не управляются, например к
домашней страничке «Нью-Йорк Таймс».
• В своей основе XLink это XML-синтаксис для описания
направленных графов, в которых вершинами являются
документы по определенным URI, а ребрами – ссылки
между документами.
• Что понимается под таким графом, зависит от
разработчика.
Атрибуты языка XLink
• XLink Attribute Reference
Attribute
Value
xlink:actuate onLoad
onRequest
other
none
xlink:href
URL
Description
Defines when the linked resource is read and shown
xlink:show
Where to open the link. Replace is default
xlink:type
embed
new
replace
other
none
simple
extended
locator
arc
resource
title
none
The URL to link to
The type of link
• Современные web-браузеры в лучшем случае
поддерживают простейшие XLink, которые не
более чем дублируют функциональность
HTML-тега <A>.
• Многие браузеры вообще не поддерживают
XLink синтаксис.
• Специальные приложения могут использовать
ссылки для различных целей.
• Так как XLink чрезвычайно мощный, то с их
помощью можно сделать нечто большее, чем
просто подчеркивать ссылки на webстраницах.
– XLink ссылки способны описывать оглавления и
указатели.
– XLink ссылки могут присоединять исправления к
тексту.
– XLink ссылки могут указывать возможные пути в
онлайновых курсах или виртуальных мирах.
• Различные приложения по-разному
интерпретируют разные наборы XLink.
• Такжк, как ни один браузер фактически не
понимает семантики всех различных
приложений XLink, так ни одна программа не
может обрабатывать всю совокупность XLink
ссылок.
Пространства имен XLink
• Атрибуты XLink определены в пространстве
имен http://www.w3.org/1999/xlink и обычно
для этого URI используется префикс xlink.
• Такое соответствие может быть задано в
корневом элементе документа, либо в самом
элементе, использующем XLink.
• Каждый элемент XLink должен иметь
атрибут xlink:type, указывающий, каким
типом ссылки (или ее частью) он является.
Пространства имен XLink
• Атрибут xlink:type может принимать одно из
шести значений:
– simple (простые ссылки) ;
– extended (расширенные ссылки) ;
– locator (локаторы) ;
– arc (ребра, дуги);
– title (заголовок ссылки);
– resource (ресурс) ;
Простые ссылки
• Простые (simple) ссылки XLink – единственные
элементы, аналогичные ссылкам в HTML.
• Атрибут xlink:href определяет ресурс, на
который задается ссылка. Он всегда содержит
URI.
• Как и в HTML, могут использоваться как
относительные, так и абсолютные URL.
• Однако URI не обязательно является URL.
Пример простой ссылки
• Например, если нужно поставить ссылку на печатное
издание «Удивительный Волшебник Страны Оз» (The
Wonderful Wizard of Oz) с номером ISBN 0688069444,
нам следует записать элемент novel следующим
образом:
<novel xmlns:xlink= "http://www.w3.org/1999/xlink"
xlink:type = "simple" xlink:href =
"urn:isbn:0688069444">
<title>Удивительный Волшебник Страны Оз</title>
<author>Л. Фрэнк Баум</author>
<year>1900</year>
</novel>
Пример
• Задание простой ссылки в элементе novel
<novel xmlns:xlink= "http://www.w3.org/1999/xlink"
xlink:type = "simple"
xlink:href = "ftp://archive.org/pub/etext/etext93/wizoz10.txt">
<title>Удивительный Волшебник Страны Оз</title>
<author>Л. Фрэнк Баум</author>
<year>1900</year>
</novel>
• Браузеры могут интерпретировать эту ссылку как им угодно.
• Наиболее естественной интерпретацией является
– подчеркнутая гипертекстовая ссылка,
– при щелчке мыши заменяющая текущую страницу файлом, указанным в
ссылке.
• Возможны и другие схемы.
Поведение ссылок
• XLink описывает связь между двумя ресурсами, но не
задает, как эта связь представляется конечному
пользователю и какие действия приходится выполнять
программному обеспечению при чтении документа.
• Пример действий:
– при щелчке по ссылке загружается текст романа с
указанного URL в текущее окно, заменив таким образом
содержащий ссылку документ.
– открывается новое окно и в нем показать пользователю
новый документ.
– заказать книгу с указанным ISBN в местной библиотеке, так
чтобы пользователь мог сходить туда и получить книгу.
– заказать книгу в онлайновом книжном магазине.
– и т.п.
• Содержимое некоторых ссылок может
непосредственно встраивается в ссылающийся
документ, как например в этом элементе «image»:
<image width="152" height="345" xlink:type="simple"
xlink:href="http://www.turing.org.uk/turing/pi1/bus.jpg" />
• Браузер может найти ссылку, и сразу же загрузить и
показать изображение.
• Не нужно заменять изображением текущий документ
или открывать новое окно, следует просто вставить
изображение в текущий документ.
• XLink указывает на связь между двумя документами, но
за приложением остается задача прочитать XLink и
решить, что означает данная связь.
Рекомендации использования ссылок
• Создатели страниц могут предложить браузерам,
как обходиться со ссылками, с помощью
атрибутов xlink:show и xlink:actuate.
– атрибут xlink:show сообщает браузеру или другому
приложению, что делать, когда активизируется эта
связь; например, следует ли показывать содержимое
ссылки в том же окне или открыть ее в новом.
– атрибут xlink:actuate сообщает браузеру, когда
показывать содержимое: например, следовать по
ссылке сразу, как только браузер ее встретит, или
дождаться непосредственного запроса от
пользователя.
Атрибут xlink:show
• Необязательный атрибут xlink:show имеет пять
возможных значений, которые предлагают, каким
образом загружающее целевой ресурс приложение
должно его отобразить:
– new - Открывает новое окно и в нем показывает содержимое
URI ссылки (конечного ресурса).
– replace - Показывает конечный ресурс в текущем окне,
заменяя текущий до кумент.
– embed - Вставляет конечный ресурс в текущий документ на
место элемента ссылки.
– other - Делает нечто отличное от открытия нового окна,
замены документа в существующем окне или вставки ресурса
в текущий документ. В точности поведение задается другой,
нестандартной разметкой, которую понимает конкретное
приложение.
– none - Указывает на отсутствие какого-либо поведения.
Атрибут xlink:show (2)
• Все эти пять значений представляют собой только
рекомендации для броузеров или других
приложений, использующих XLink, и могут
игнорироваться.
• Например, web-робот не должен открывать окна для
ссылок, он может проигнорировать встраиваемые
ссылки, а другие четыре типа ссылок обработать
одинаково.
• Некоторые браузеры с необычным графическим
интерфейсом могут открывать для xlink:show="new"
новую панель в существующем окне вместо создания
совершенно нового окна.
• Особое поведение допускается, если оно имеет
смысл в контексте приложения.
Атрибут xlink:actuate
• Атрибут xlink:actuate имеет четыре возможных
значения, которые предлагают, когда приложению,
обрабатывающему документ со ссылками XLink,
следовать по этим ссылкам:
– onLoad - Следовать по ссылке сразу же, как только
приложение ее увидит.
– onRequest - Следовать по ссылке, когда этого пожелает
пользователь.
– other - Другая разметка в документе, не относящаяся к
XLink, определяет, когда следовать по ссылке.
– none - Никаких указаний на то, когда следовать по ссылке и
делать ли это вообще.
• Следование по ссылке может не иметь никакого разумного
смысла, как в ранее приведенном примере, в котором ссылка
указывает на номер ISBN, а не на URL, по которому находится
книга.
Атрибут xlink:actuate (2)
• Все четыре значения являются только
рекомендациями, и браузеры или другие
приложения, использующие XLink, могут их
игнорировать.
– Например, «web-паук» воспользуется
собственными алгоритмами, определяющими,
когда следовать и когда не следовать по ссылке.
• Для одинаковых атрибутов допускается
различное поведение, если это имеет смысл
для читающего документ приложения.
Семантика ссылок
• Ссылка описывает связь между двумя ресурсами.
• Такие ресурсы могут не быть XML-документами, но даже если
они являются таковыми, их взаимоотношения могут быть
разными.
– Например, ссылки могут указывать на отношения
родитель/ребенок, предыдущий/следующий,
работодатель/работник или покупатель/поставщик.
• Элементы XLink могут иметь атрибуты, указывающие на
смысл связи между ресурсами.
– атрибут xlink:title - содержит небольшой объем
обычного текста, описывающий удаленный ресурс,
например, подсказку, возникающую при наведении
указателя мыши на ссылку.
– атрибут xlink:role - содержит URI, указывающий на более
полное описание удаленного ресурса.
Пример указания на смысл ссылки
• Например, элемент novel использует атрибут xlink:title для
указания того, что текст взят из проекта «Гутенберг», а
xlink:role указывает на домашнюю страницу проекта
«Гутенберг»:
<novel xlink:type="simple"
xlink:href="ftp://archive.org/pub/etext/etext93/wizoz10.txt"
xlink:title= "Полный текст романа из проекта 'Гутенберг'"
xlink:role="http://promo.net/pg/" >
<title>Удивительный Волшебник Страны Оз</title>
<author>Л. Фрэнк Баум</author>
<year>1900</year>
</novel>
Расширенные ссылки
• Расширенная ссылка описывает набор ресурсов
и пути перехода между ними.
• Каждый путь соединяет в точности два ресурса.
• Любой отдельный ресурс может быть соединен
–
–
–
–
–
–
с другим ресурсом,
двумя другими ресурсами,
ни с одним из ресурсов,
со всеми ресурсами или
с любым подмножеством других ресурсов набора.
он даже может соединяться сам с собой.
Расширенные ссылки (2)
• В терминах информатики расширенная
ссылка – это направленный, помеченный
граф, в котором пути являются ребрами,
документы – вершинами, а метками
являются URI.
• Для расширенных ссылок нет простых
визуальные метафоры, наподобие
«щелкните мышью на синем подчеркнутом
тексте для перехода на новую страницу», и
ни один из браузеров не поддерживает
такие метафоры.
• В XML расширенная ссылка обозначается элементом
произвольного типа, имеющим атрибут xlink:type =
“extended”.
• Например:
<novel xlink:type = "extended">
<title>Удивительный Волшебник Страны Оз</title>
<author>Л. Фрэнк Баум</author>
<year>1900</year>
<edition xlink:type="locator" xlink:href="urn:isbn:0688069444" />
<edition xlink:type="locator" xlink:href="urn:isbn:0192839306" />
<edition xlink:type="locator" xlink:href="urn:isbn:0700609857" />
</novel>
Виды расширенных ссылок
• Большинство расширенных ссылок содержат
– удаленные ресурсы, представленные
элементами-локаторами, которые могут
элементами быть любого типа, имеющими
атрибут xlink:type = “locator”;
– локальные ресурсы, представленные элементами
ресурсами, которые могут элементами любого
типа, имеющими атрибут xlink:type = “resource”;
– ребра между ресурсами, представленные
элементами любого типа, у которого имеют
атрибут xlink:type = “arc” и задают связь между
двумя ресурсами.
Элементы-локаторы
• Элемент-локатор задает удаленный ресурс,
имеющий URI.
• Элемент-локатор должен иметь следующие
атрибуты:
– атрибут xlink:type = “locator”, и
– атрибут xlink:href = URI ресурса, на который он
указывает.
Элементы-локаторы
• Например, этот элемент «novel» для романа
«Удивительный Волшебник Страны Оз» содержит
три элемента-локатора, идентифицирующие
конкретные издания книги:
<novel xlink:type = "extended">
<title>Удивительный Волшебник Страны Оз</title>
<author>Л. Фрэнк Баум</author>
<year>1900</year>
<edition xlink:type="locator"
xlink:href="urn:isbn:0688069444" />
<edition xlink:type="locator"
xlink:href="urn:isbn:0192839306" />
</novel>
• Локаторы могут также иметь необязательные
семантические атрибуты, имеющие такое
же значение, как и для простых Xlink ссылок:
– атрибут xlink:title - содержит небольшой объем
текста, описывающий удаленный ресурс, а
– атрибут xlink:role - содержит URI, указывающий
на более полное описание удаленного ресурса.
Пример элементов-локаторов
• В элементах «edition» с помощью этих атрибутов можно указать имя
и URL издателя:
<novel xlink:type = "extended">
<title>Удивительный Волшебник Страны Оз</title>
<author>Л. Фрэнк Баум</author>
<year>1900</year>
<edition xlink:type="locator" xlink:href="urn:isbn:0688069444"
xlink:title="William Morrow"
xlink:role="http://www.williammorrow.com/"
xlink:label="ISBN0688069444"/>
<edition xlink:type="locator" xlink:href="urn:isbn:0192839306"
xlink:title="Oxford University Press"
xlink:role="http://www.oup-usa.org/"
xlink:label="ISBN0192839306"/>
</novel>
Локальные ресурсы
• Элементы -локаторы определяют удаленные
ресурсы, не являющиеся частью документа,
содержащего расширенную ссылку.
• Расширенные ссылки могут также содержать
локальные ресурсы, в которых хранятся
данные, относящиеся к элементу расширенной
ссылки.
• Элементы-ресурсы определяют локальные
ресурсы.
• Элемент-ресурс это любой элемент, имеющий
атрибут xlink:type = “resource”.
• Например, расширенная ссылка «series» содержит
дочерний элемент «author».
• Задав для этого элемента атрибут xlink:type="resource",
можно сделать его локальным ресурсом:
<author xlink:type="resource">Л. Фрэнк Баум</author>
• Элемент-ресурсы обычно имеет те же атрибуты, что и
элемент-локатор, то есть атрибуты xlink:label, xlink:role
и xlink:title.
• Эти атрибуты имеют ту же семантику, что и для
элементов-локаторов.
– Например, метка может использоваться для соединения
ребра с исходным и целевым ресурсом.
Пример расширенной ссылки
<book xlink:type="extended" xmlns:xlink="http://www.w3.org/1999/xlink">
<author>Л. Фрэнк Баум</author>
<title>Удивительный Волшебник Страны Оз</title>
<!-- элементы-локаторы -->
<edition xlink:type="locator" xlink:href="urn:isbn:0192839306"
xlink:title="Oxford University Press"
xlink:role="http://www.oup-usa.org/" xlink:label="ISBN0192839306"/>
<store xlink:type="locator"
xlink:href="http://www.amazon.com/exec/obidos/ASIN/0192839306"
xlink:label="buy">Amazon</store>
<store xlink:type="locator" xlink:href=
"http://www1.fatbrain.com/asp/bookinfo/bookinfo.asp?theisbn=0192839306"
xlink:label="buy">Fatbrain</store>
<store xlink:type="locator"
xlink:href="http://shop.bn.com/booksearch/isbninquiry.asp?isbn=0192839306"
xlink:label="buy">Barnes & Noble</store>
<!-- ребра -->
<purchase xlink:type="arc" xlink:from="ISBN0192839306" xlink:to="buy" />
</book>
Структура графа расширенной
ссылки
• Структура графа расширенной ссылки из примера
содержащего элементы-локаторы для трех различных
книжных онлайн-магазинов и одного издания книги.
• Все элементы bookstore имеют метку buy, и одно ребро
purchase объединяет все элементы.
Ребра
• Ребра (реберные элементы) это элементы
произвольного типа, имеющими атрибут
xlink:type = “arc”.
• Ребра задают пути между ресурсами.
• Каждый реберный элемент должен иметь
следующие атрибуты:
– атрибут xlink:from идентифицирует источник ссылки,
– атрибут xlink:to – цель ссылки.
• Эти атрибуты используют не URI, а имена,
соответствующее значению атрибута xlink:label
одного из элементов-локаторов в расширенной
ссылке.
• Ребро может соединять ресурс с ресурсом, ресурс с локатором, локатор с
ресурсом или локатор с локатором. Для ребер не имеет значения,
является ли ресурс локальным или удаленным.
• Для установления связи с данным ресурсом необходим атрибут
xlink:label:
<author xlink:type="resource" xlink:label="baum">
Л. Фрэнк Баум
</author>
• Чтобы установить связи между этим ресурсом и всеми книгами, просто
добавьте следующие реберные элементы:
<book xlink:type="arc" xlink:from="baum" xlink:to="oz1" />
<book xlink:type="arc" xlink:from="baum" xlink:to="oz2" />
<book xlink:type="arc" xlink:from="baum" xlink:to="oz3" />
• Чтобы установить связь в противоположном направлении, просто
поменяйте местами значения атрибутов xlink:from и xlink:to.
Пример использования ребер
<series xlink:type="extended" xmlns:xlink="http://www.w3.org/1999/xlink">
<author>Л. Фрэнк Баум</author>
<!-- элементы-локаторы -->
<novel xlink:type="locator" xlink:label="oz1"
xlink:href="ftp://archive.org/pub/etext/etext93/wizoz10.txt">
<title>Удивительный Волшебник Страны Оз</title>
<year>1900</year>
</novel>
<novel xlink:type="locator" xlink:label="oz2”
xlink:href="ftp://archive.org/pub/etext/etext93/ozland10.txt">
<title>Волшебная Страна Оз</title>
<year>1904</year>
</novel>
<novel xlink:type="locator" xlink:label="oz3"
xlink:href="ftp://archive.org/pub/etext/etext93/wizoz10.txt">
<title>Изумрудный город Страны Оз</title>
<year>1907</year>
</novel>
<!-- ребра -->
<next
xlink:type="arc" xlink:from="oz1" xlink:to="oz2" />
<next
xlink:type="arc" xlink:from="oz2" xlink:to="oz3" />
<previous xlink:type="arc" xlink:from="oz2" xlink:to="oz1" />
<previous xlink:type="arc" xlink:from="oz3" xlink:to="oz2" />
</series>
Графическое представление
расширенных ссылок
• Ресурсы показаны в виде книг, а ребра – в виде стрелок.
• Эту расширенную ссылку можно интерпретировать как
порядок, в котором следует печатать эти документы, не более.
Все детали интерпретации остаются за приложением.
Использование несколько ребер в
одном реберном элементе
• В одном реберном элементе можно определить несколько ребер.
• Если несколько элементов имеют одну и ту же метку, тогда
реберный элемент, использующий эту метку в атрибуте xlink:to или
xlink:from, определяет ребра между всеми ресурсами, имеющими
эту метку.
– Если реберный элемент не имеет атрибута xlink:to, он рассматривает в
качестве источников все ресурсы расширенной ссылки.
– Если реберный элемент не имеет атрибута xlink:from, все ресурсы
расширенной ссылки рассматриваются как цели.
• Однако явное или неявное определение ребра между двумя
одинаковыми ресурсами в более чем одном реберном элементе
является ошибкой.
• Если расширенная ссылка содержит N ресурсов и реберный
элемент, такой как <edition xlink:type="arc"/>, в котором нет ни
атрибута xlink:to, ни xlink:from, она не может содержать других
реберных элементов, так как этот единственный элемент объявляет
все N2 возможных ребер между ресурсами расширенной ссылки.
Заголовки ребер
• Все реберные элементы, как и другие элементы XLink,
могут иметь атрибут xlink:title, содержащий
небольшой текст, описывающий ребро и
предназначенный непосредственно для чтения.
• Можно задать следующие заголовки для реберных
элементов из предыдущего примера:
<next
xlink:type="arc" xlink:from="oz1" xlink:to="oz2"
xlink:title="Next" />
<next
xlink:type="arc" xlink:from="oz2" xlink:to="oz3”
xlink:title="Next" />
<previous xlink:type="arc" xlink:from="oz2" xlink:to="oz1”
xlink:title="Previous" />
<previous xlink:type="arc" xlink:from="oz3" xlink:to="oz2”
xlink:title="Previous" />
• При обработке расширенной ссылки браузер
может
– показать пользователям заголовки как оглавление
ссылки, чтобы они могли выбрать, по какому ребру
они хотят перейти с текущей позиции.
– или вывести оглавление во всплывающем меню,
когда пользователь заходит на одну из указанных
страниц.
• XLink не требует и не предлагает какого-либо
конкретного интерфейса для ребер или их
заголовков.
Роли ребер
• Реберные элементы не могут иметь атрибуты xlink:role. Однако существует
атрибут xlink:arcrole, который должен содержать URI, указывающий на
описание ребра.
• Более точно, такой URI должен указывать на ресурс, в котором
определяется, какое отношение описывает данное ребро: например,
родитель-ребенок или работодатель-работник.
• Однако фактически не существует способа проверить эту информацию,
кроме того как убедиться, что xlink:arcrole содержит корректный URI, и
даже этот URI не является обязательным.
Пример задания роли ребер
• Например к ребру purchase можно добавить атрибут xlink:arcrole,
указывающий на относительный URL «purchase_details.txt»:
<purchase xlink:type="arc" xlink:from="ISBN0192839306"
xlink:to="buy" xlink:arcrole="purchase_details.txt" />
• Файл purchase_details.txt может в этом случае содержать текст, на
пример «продается в». Этот текст говорит о том, что источник ссылки
можно купить в магазине, указанном в цели ссылки.
• Однако хотя предлагается именно такое применение этого атрибута,
процессоры XLink не навязывают его, и от них нельзя этого требовать,
так как для этого XLink процессоры должны были бы понимать то, что
они читают.
• Атрибут xlink:arcrole не является обязательным. Не обязательно
включать его в реберные элементы, а XLink процессоры не обязаны
производить с ним какие-либо операции, даже если он используется.
Элементы-заголовки
• Элементы расширенных ссылок, элементы-локаторы,
реберные элементы и элементы ресурсов все могут иметь
атрибуты xlink:title, предоставляющие короткие текстовые
аннотации для идентификации ссылки.
• Однако этих атрибутов не всегда бывает достаточно. В
документе, являющемся большой расширенной ссылкой,
нужно отметить заголовки средствами XHTML или другого
словаря.
• То есть вместо атрибута (или в дополнение к нему)
заголовок может присутствовать в виде дочернего
элемента-заголовка, элемента, у которого атрибут xlink:type
= “title”.
• Внутри элемента-заголовка можно использовать любую
выбранную разметку, если она является корректным XML.
• Приложение может по разному интерпретировать эту
разметку.
Пример использования элемента типа
title
•
•
Предположим, что вы хотите задать полное описание всех изданий «Удивительного
Волшебника Страны Оз», а не просто перечислить издателей.
В этом случае добавьте к элементу «edition» элемент-заголовок, содержащий
любую подходящую разметку, например:
<edition xlink:type="locator" xlink:href="urn:isbn:0700609857"
xlink:title="University Press of Kansas"
xlink:role="http://www.kansaspress.ku.edu/"
xlink:label="ISBN0700609857">
<publisher_info xlink:type="title">
<ul>
<li>Юбилейное издание</li>
<li>Иллюстрации Майкла МакКерди</li>
<li>Предисловие Рэя Бредбери</li>
<li>1999</li>
<li>216 страниц</li>
<li>Цена: $24.95</li>
</ul>
</publisher_info>
</edition>
Входящие и исходящие ссылки
• Одной из наиболее революционных возможностей XLink является его
способность определять связи между внешними документами.
• В частности, вышеприведенный пример использования ребер это
расширенная ссылка, описывающая и связывающая три документа, к
которым ни один из авторов этой книги не имеет отношения.
• Ссылки между полностью удаленными ресурсами называются внешними
ссылками.
• Внешняя ссылка создается, когда атрибуты xlink:from и xlink:to реберного
элемента оба содержат метки элементов-локаторов.
• Ссылки из удаленного ресурса на локальный ресурс называются
входящими ссылками, когда атрибут xlink:from реберного элемента
содержит метку элемента-локатора, а атрибут xlink:to – метку элементаресурса.
• Ссылки из локального ресурса на удаленный называются исходящими
ссылками, когда атрибут xlink:from реберного элемента содержит метку
элемента-ресурса, а атрибут xlink:to – метку элемента-локатора.
• Простые ссылки также являются исходящими.
Базы ссылок
• XML-документ, содержащий входящие или внешние ссылки,
называется базой ссылок.
• База ссылок устанавливает связи с документами, отличными от
самой базы, включая документы, которые не принадлежат автору
базы ссылок и которые он не может контролировать.
• Как браузер (или другое приложение) будет загружать базу ссылок и
как он будет обрабатывать ссылки в ней – все еще открытый вопрос.
• Этот процесс, видимо, будет включать посещение web-сайта,
предоставляющего базу ссылок.
• Когда браузер видит расширенную ссылку, пытающуюся установить
связь с внешним web-сайтом, он должен спросить пользователей,
желают ли они принять предлагаемые ссылки.
• Он может даже использовать атрибуты xlink:role и xlink:title для того,
чтобы помочь пользователям принять это решение.
• Как только браузер загрузит базу ссылок и перейдет к странице,
обозначенной как начальный ресурс хотя бы в одной из ссылок, он
должен сообщить пользователям о существующей ссылке и дать
возможность ею воспользоваться.
• Пользовательский интерфейс для такой операции еще предстоит
разработать. Возможно, это будет всплывающее окно,
показывающее внешние ссылки, связанные с этой страницей. Или
ссылки будут просто вставлены на страницу, но подчеркнуты
другим цветом. Пользователи смогут работать с этими ссылками
точно так же, как с обычными ссылками HTML.
• Если будет принята эта схема, она будет полезна для тех случаев,
когда начальный ресурс ссылки не является полноценным
документом, а лишь частью документа, скажем, отдельным
абзацем, именем человека или заголовком книги.
• Можно присоединить к начальному ресурсу ссылки, задающему
URI, указатель XPointer, который будет служить для выбора
определенной части или местоположения в начальном документе.
DTD для XLink
• Для того чтобы документ, содержащий Xlink, был действительным,
все атрибуты XLink, как и любые другие атрибуты, должны быть
объявлены в DTD.
• Некоторые атрибуты обычно объявляются как #FIXED, и потому не
должны явно указываться в самом документе. Например,
следующий фрагмент DTD описывает элемент novel, приведенный
выше:
<!ELEMENT novel (title, author, year)>
<!ATTLIST novel xmlns:xlink CDATA #FIXED
'http://www.w3.org/1999/xlink'
xlink:type (simple) #FIXED 'simple'
xlink:href CDATA #REQUIRED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT year (#PCDATA)>
• Т.к. значения фиксированных атрибутов
xmlns:xlink и xlink:type заданы этим DTD, для того
чтобы элемент novel стал полно ценной простой
ссылкой XLink, он должен иметь только атрибут
xlink:href:
<novel xlink:href = "urn:isbn:0688069444">
<title>Удивительный Волшебник Страны
Оз</title>
<author>Л. Фрэнк Баум</author>
<year>1900</year>
</novel>
•
•
•
В документах, содержащих много элементов XLink, общие атрибуты часто задаются
с помощью параметрических сущностей.
Предположим, что элементы novel, anthology и manual являются простыми
элементами XLink. Их XLink атрибуты могут объявляться в DTD следующим образом:
<!ENTITY % simplelink "xlink:type (simple) #FIXED 'simple'
xlink:href CDATA #REQUIRED
xmlns:xlink CDATA #FIXED 'http://www.w3.org/1999/xlink'
xlink:role NMTOKEN #IMPLIED
xlink:title CDATA #IMPLIED
xlink:actuate (onRequest | onLoad | other | none) 'onRequest'
xlink:show (new | replace | embed | other | none) 'new'"
>
<!ATTLIST anthology %simplelink;>
<!ATTLIST novel %simplelink;>
<!ATTLIST nonfiction %simplelink;>
Аналогичные приемы можно применять и к объявлениям атрибутов расширенных
ссылок XLink.
Download