| Библиотека: XML: справочник
Глава 3 XLink
XLink
Рассматриваемые в этой главе
конструкции (инструкции XML или компоненты, включающие
в себя инструкции), служат для создания элементов языка XLink.
Совместно с расширенными указателями XPointer они применяются
для введения гиперссылок в XML-документы. Стандарт XLink
описывает два вида ссылок.
n Простые ссылки (simple links)
представляют собой аналог элементов А языка HTML. Простая
ссылка задает переход от некоей позиции текущего документа к
заданной позиции в рамках того же документа или какого-либо
другого документа. Простые ссылки всегда однонаправлены.
Дополнительная информация о простых ссылках изложена в рабочих
документах Интернет-кон сорциума W3C (The World Wide Web
Consortium) по языку XLink (http://www.w3.org/TR/WD-xlink/),
раздел 4.2, «Simple Links» («Простые ссылки»).
n Расширенные ссылки (extended links)
задают несколько ссылок одновремен но. Расширенная ссылка
задает переход с произвольной ссылки на любую другую.
Содержание, ассоциированное с конкретной ссылкой, может быть
идентифицировано, так что после его изменения ссылка останется
доступной — при условии сохранения идентификатора.
Расширенные ссылки могут быть внутристрочными
(inline) и внестрочными (out-of-line).
Внутристрочная ссылка рассматривается как локальный
ресурс ссылки. Дочерние элементы внутристрочных ссылок при
этом являются составной частью не локального ресурса, а
элемента ссылки. Внестрочная ссылка определяет
местоположение ссылки. Так как она не является локальным
ресурсом, приложение должно уметь легко ее найти. Внестрочные
ссылки особенно полезно использовать при работе с группами
расширенных ссылок, которые представляют собой особую
разновидность расширенной ссылки (см. единицу group далее
в этой главе). Дополнительная информация о расширенных ссылках
изложена в рабочих документах по XLink
(http://www.w3.org/TR/WD-xlink/), раздел 4.3, «Extended
Links» («Расширенные ссылки»).
- Задание простой ссылки в определении
- типа документа
Чтобы задать простую ссылку в определении
типа документа (Document Type Definition — DTD),
определим элемент, следуя указанному синтаксису:
<!ELEMENT simp_link ANY>
Определим список атрибутов, а также значение
атрибута xml:link:
<!ATTLIST simp_link
xml:link CDATA #FIXED "simple"
Задание расширенной ссылки в определении типа документа
Другие атрибуты могут быть добавлены в
список как единицы параметров, например, %parmnamel.ext;.
Закрывающим ограничителем блока объявлений служит угловая
скобка (>):
%parmnamel.ext;
%parmname2.ext;
%parmname3.ext;
%parmname4.ext;
>
Однако, используя единицы параметров, вы
можете осложнить последующее редактирование блока определения
типа документа (DTD): первоисточники ваших объявлений и
определений придется искать в разных частях блока.
Примеры задания простых ссылок приведены в
рабочих документах Интернет-консорциума W3C «XML Linking
Language (XLink)» (http://www.w3.org/TR/WD-xlink/),
раздел 4, «Linking Elements» («Связывание элементов»).
Кроме того, в настоящей главе вы найдете и другие примеры.
- Задание расширенной ссылки в определении
- типа документа
Расширенные ссылки применяются для получения
доступа к локальным, удаленным и групповым ресурсам.
- Задание расширенной локальной ссылки
Чтобы задать расширенную локальную ссылку в
определении типа документа, определим элемент по следующему
синтаксису:
<!ELEMENT extend_link ANY>
Определим список атрибутов, а также значение
атрибута xml:link:
<!ATTLIST extend_link
xml:link CDATA #FIXED "extended"
Другие атрибуты можно добавить как параметры,
закрыв список ограничите лем — угловой скобкой (>):
%parmnamel.ext;
%parmname2.ext;
%parmname3.ext;
%parmname4.ext;
>
Однако, используя параметры, вы можете
осложнить последующее редактиро вание определения типа
документа (DTD): первоисточники ваших объявлений и определений
придется искать в разных частях блока.
Примеры задания расширенных ссылок приведены
в рабочих документах Интернет-консорциума W3C «XML Linking
Language (XLink)» (http://www.w3.org/TR/WD-xlink/),
раздел 4, «Linking Elements» («Связывание элементов»).
Кроме того, в настоящей главе вы найдете и другие примеры.
- Задание расширенной удаленной ссылки
Чтобы задать расширенную удаленную ссылку в
определении типа документа, определим элемент по следующему
синтаксису:
<!ELEMENT locator_link ANY>
Определим список атрибутов, а также значение
атрибута xml:link:
<!ATTLIST locator_link
xml:link CDATA #FIXED "locator"
Затем перечислим другие атрибуты с помощью
единиц параметра и закроем блок объявления ограничителем
(>).
- Задание расширенной групповой ссылки
Чтобы задать расширенную групповую ссылку в
определении типа документа, определим элемент по следующему
синтаксису:
<!ELEMENT group_link (paper*)>
Определим список атрибутов, значение атрибута
xml:link, а также атрибут steps, который задает число уровней
(steps) углубления расширенной ссылки относительно уровня
первого ресурса, содержащего ссылку:
<!ATTLIST group_link
xml:link CDATA #FIXED "group"
steps CDATA #IMPLIED
Зададим элемент группы документов:
<!ELEMENT paper EMPTY>
<!ATTLIST paper
xml:link CDATA #FIXED "paper"
Затем перечислим другие атрибуты с помощью
единиц параметра и закроем блок объявления ограничителем
(>).
Примеры задания простых, расширенных и
групповых ссылок приведены в рабочих документах
Интернет-консорциума W3C «XML Linking Language (XLink)»
(http://www.w3.org/TR/WD-xlink/), раздел 4, «Linking
Elements» («Связывание элементов »).
В этом разделе перечислены конструкции и
атрибуты языка XLink. Все они приведены в алфавитном порядке,
в описание каждого параметра включены пункты о его назначении,
синтаксисе, аргументах, а также пункты с комментариями и
примерами.
ПРИМЕЧАНИЕ В следующем далее
справочнике команд полужирным шрифтом в примерах
выделены компоненты текущей конструкции. Верхний индекс в
квадратных скобках справа от имени конструкции (например,
Locator[1]) указывает на ее описание в спецификации
XML.
Конструкции и атрибуты
- actuate отслеживание
ссылки
Назначение
Инициирует отслеживание ссылки по явному
запросу или без такового.
Синтаксис EBNF
"actuate (auto | user)
Аргументы
n auto возвращает указанный ресурс ссылки
при нахождении любого из ресурсов этой ссылки.
n user не возвращает указанный ресурс ссылки,
если пользователь не запросил об этом явно.
Комментарии
Оба атрибута actuate и show определяют
методы отслеживания ссылки.
Осуществление действий по отслеживанию ссылки
не требует дополнитель ного программирования приложений,
обрабатывающих ссылки.
Действия actuate и show могут производиться
совместно. Если значение actuate установлено равным auto, то
все ресурсы auto могут и должны быть возвращены в том порядке,
в котором они были указаны.
Пример
Объявление из рабочих документов по XLink,
включенное в единицу параметра remote-resource-semantics.att:
<!ENTITY % remote-resource-semantics.att
"role CDATA #IMPLIED
title CDATA #IMPLIED
show (embed|replace|new) #IMPLIED
actuate (auto|user) #IMPLIED
behavior CDATA #IMPLIED"
>
Родственные атрибуты
behavior, content-role, content-title, href,
inline, role, show, steps, title, xml:attributes, xml:link.
- behavior поведение
ссылки
Назначение
Конкретизирует поведение ссылки.
Синтаксис EBNF
behavior CDATA
Аргумент
CDATA — это символьные данные (character
data); то есть любой текст, не являющийся разметкой.
Комментарии
Используйте атрибут behavior в качестве
местоположения (location) для инструкций отслеживания ссылки.
Пример
Объявление из рабочих документов по языку
XLink, включенное в единицу параметра
remote-resource-semantics.att:
<!ENTITY % remote-resource-semantics.att
"role CDATA #IMPLIED
title CDATA #IMPLIED
show (embed|replace|new) #IMPLIED
actuate (auto|user) #IMPLIED
behavior CDATA #IMPLIED"
>
Родственные атрибуты
actuate, content-role, content-title, href,
inline, role, show, steps, title, xml:attributes, xml:link.
Назначение
Ввод символа коннектора производится для
указания метода, с помощью которого ссылка извлекается из
содержащего ее ресурса.
Синтаксис EBNF
Connector ::= '#' | '|'
Стандартный синтаксис
#| |
Аргументы
n # означает, что ресурс, содержащий ссылку,
должен быть извлечен в полном объеме с хоста, на котором он
находится, а обработка XPointer будет производиться на
компьютере клиента.
n | означает, что инструкции по извлечению, а
также обработке XPointer не получены.
Комментарии
Connector является компонентом конструкции
Locator.
Конструкции и атрибуты
Пример
В данном примере коннектор #
указывает — с помощью идентификатора (ID) XPointer —
и извлекает полный ресурс ID(2489), являющийся частью
документа test.xml на сервере sample.com:
<A xml:link="extended"
href="http://www.sample.com/test.xml#ID(2489)">
Sample Document</A>
Родственные конструкции
Locator, Name (см. главу 2), URI,
XPointer (см. главу 4).
- content-role роль ресурса
локальной ссылки
Назначение
Задает роль ресурса локальной ссылки.
Синтаксис EBNF
content-role CDATA
Аргумент
CDATA — это символьные данные (character
data); то есть любой текст, не являющийся разметкой.
Комментарии
Роль может быть определена как для ресурса
ссылки, так и относительно ссылки в целом. При определении
роли для ссылки в целом используйте атрибут content-role; при
определении роли для ресурса ссылки используйте атрибут role.
Примеры
Пример из рабочих документов по XLink,
содержащий объявления атрибутов content-role и content-title в
единице параметра local-resource-semantics.att:
<ENTITY % local-resource-semantics.att
"content-role CDATA #IMPLIED
content-title CDATA #IMPLIED"
Пример простой ссылки:
<saylink xml:link="simple" title="Work"
href="http://www.twain.com/xmi/dog.xml" show="new"
content-role="author">Mark Twain</saylink>
Родственные атрибуты
actuate, behavior, content-title, href,
inline, role, show, steps, title, xml:attributes, xml:link.
- content-title заголовок
ресурса локальной ссылки
Назначение
Задает заголовок ресурса локальной ссылки.
Синтаксис EBNF
content-title CDATA
Аргумент
CDATA — это символьные данные (character
data); то есть любой текст, не являющийся разметкой.
Комментарии
Атрибут content-title соответствует
заголовку, отображаемому для данной ссылки.
Атрибут content-title не является
обязательным.
Язык XLink не требует, чтобы приложение
использовало атрибут content-title каким-либо конкретным
способом.
Заголовок может быть присвоен как содержимому
ссылки, так и ссылке в целом. Для присвоения заголовка ссылке
в целом используйте атрибут content-title; для присвоения
заголовка содержимому ссылки используйте атрибут title.
Пример
Пример из рабочих документов по языку XLink,
содержащий объявления атрибутов content-role и content-title в
единице параметра local-resource-semantics.att:
<ENTITY % local-resource-semantics.att
"content-role CDATA #IMPLIED
content-title CDATA #IMPLIED"
Родственные атрибуты
actuate, behavior, content-role, href,
inline, role, show, steps, title, xml:attributes, xml:link.
- href указатель удаленного
ресурса
Назначение
Называет указатель удаленного ресурса.
Синтаксис EBNF
href CDATA
Аргумент
CDATA — это символьные данные (character
data); то есть любой текст, не являющийся разметкой.
Конструкции и атрибуты
Комментарии
Атрибут href определяет искомый
идентификатор URI и/или расширенные указатели на элемент
ссылки.
Примеры
Пример из рабочих документов по XLink,
содержащий простую ссылку:
<A xml:link="simple"
href="http://www.w3.org/">The W3C</A>
Пример группы ссылок и двух объявлений
ссылок:
<!ELEMENT GROUP (PAPERS*)>
<!ATTLIST GROUP
xml:link CDATA #FIXED "GROUP"
steps CDATA #IMPLIED
<!ELEMENT PAPERS EMPTY>
<!ATTLIST PAPERS
xml:link CDATA #FIXED "PAPERS"
href CDATA #REQUIRED
>
Пример простой ссылки:
<saylink xml:link="simple" title="Work"
href="http://www.twain.com/xml/dog.xml" show="new"
content-role="author">Mark Twain</saylink>
Пример нескольких внестрочных расширенных
ссылок:
<tracings xml:link="extended" title="Trace"
inline="false">
<locator href="right_wingl.5"
role="criticism"/>
<locator href="left_wing3.1" role="counter"/>
<locator href="professor8.3" role="analysis"/>
<locator href="spin_doctor2.2" role="spin"/>
<locator href="extremistl0.12"
role="distort"/>
<locator href="talking_head7.7"
role="summarize"/>
</tracings>
Родственные атрибуты
actuate, behavior, content-role,
content-title, inline, role, show, steps, title,
xml:attributes, xml:link.
- inline внутристрочная
ссылка
Назначение
Идентифицирует внутристрочную или
внестрочную ссылку.
Синтаксис EBNF
inline (true|false) "
Аргументы
n true означает, что текущая ссылка является
внутристрочной. Это значение по умолчанию.
n false означает, что текущая ссылка является
внестрочной.
Комментарии
Расширенные ссылки могут быть
внутристрочными или внестрочными.
n Внутристрочная ссылка
рассматривается как локальный ресурс ссылки. Однако понятие
«дочерний элемент» распространяется только на ссылку, а не на
исходную ссылку как таковую.
n Внестрочная ссылка определяет
местоположение ссылки так, чтобы приложение могло ее найти;
внестрочные ссылки полезно использовать, в частности, для
групп расширенных ссылок.
Примеры
Пример из рабочих документов по XLink,
содержащий объявление в единице параметра
resource-semantics.att:
<!ENTITY % link-semantics.att
"inline (true|false) 'true'
role CDATA #IMPLIED"
Пример нескольких внестрочных расширенных
ссылок;
<tracings xml:link="extended" title="Trace"
inline="false">
<locator href="right_wingl.5" role="criticism"/>
<locator href="left_wing3.1" role="counter"/>
<locator href="professor8.3" role="analysis"/>
<locator href="spin_doctor2.2" role="spin"/>
<locator href="extremistl0.12" role="distort"/>
<locator href="talking_head7.7" role="summarize"/>
</tracings>
Родственные атрибуты
actuate, behavior, content-role,
content-title, href, role, show, steps, title, xml:attributes,
xml:link.
Назначение
Направляет указатель на ресурс ссылки.
Синтаксис EBNF
Locator ::= URI
| Connector (XPointer | Name)
| URI Connector (XPointer | Name]
Конструкции и атрибуты
Стандартный синтаксис
URI
[#||[XPointer|[[xnnnn|[_|:][NameChar
]]]]]]]
Аргументы
n URI является абсолютным или относительным
адресом ресурса, содержащего ссылку (cм. конструкцию
URI). Синтаксис:
[[http:|file:|ftp:|mailto:][//hostname.dom
[/filename.xml]]]
n # и | задают метод, с помощью которого
ссылка извлекается из содержаще го ее ресурса
(см. конструкцию Connector). Синтаксис: #||
n XPointer определяет местоположение
фрагментов разделов, целых разделов или диапазонов разделов в
ресурсе, который их содержит (см. конструк цию XPointer в
главе 4). Синтаксис:
AbsTerm.OtherTerms|AbsTerm|OtherTerms
n Name задает состоятельное 1 имя
XML, начинающееся с буквы или знака подчеркивания
(см. конструкцию Name в главе 2). Синтаксис:
#xnnnn
[#xnnnn][_][:][#xnnnn]|[0|1|2|3|4|5
|6|7|8|9][.]|[-][#xnnnn][#xnnnn]...[#x
nnnn]
Комментарии
Лучший способ указать расширенную ссылку —
использовать ее идентифика тор (ID). Неизменный идентификатор
указывает на ссылку даже в том случае, когда ее содержание
изменилось.
Если ссылка не идентифицирована (не имеет
поставленного ей в соответствие ID), можно попытаться найти
ID, поставленный в соответствие другому разделу или элементу.
Затем, используя определитель относительного местоположения,
например child или ancestor, показать отношение между
найденным идентификатором и искомой ссылкой. Дополнительную
информацию и примеры см. в конструкции Keyword в
главе 4 настоящей книги.
Примеры
В данном примере простая ссылка находит
документ test.xml на сайте sample.com:
<A xmi:link="simple"
href="http://www.sample.com/test.xml" >
Sample Document</A>
В следующем примере простая ссылка добавляет
атрибуты title и content-role, заданные списком атрибутов
элемента этой простой ссылки:
<A xml:link="simple" title="Test Document"
href="http://www.sample.com/test.xml"
1 Документы XML подразделяются на
состоятельные (valid) и хорошо оформленные
(well-formed), — см. Computer Weekly, № 22,
1998. — Примеч. перев.
content-role="Test 1">
Sample Document</A>
В следующем примере расширенная ссылка
находит ресурс ID(2489) в документе test.xml:
<A xml:link="extended"
href="http://www.sample.com/test.xml#ID(2489)" >
Sample Document</A>
Родственные конструкции
Connector, Name (см. главу 2),
URI, XPointer (см. главу 4).
Назначение
Формулирует запрос для поиска расширенного
указателя XPointer.
Синтаксис EBNF
Query ::= 'XML-XPTR=' (XPointer | Name)
Стандартный синтаксис
XML-XPTR=[XPointer|Name]
Аргумент ы
n XML-XPTR= строка-маркер начала содержимого
запроса XML.
n XPointer определяет местоположение
фрагментов разделов, целых разделов или диапазонов разделов в
ресурсе, который их содержит (см. конструк цию XPointer в
главе 4). Синтаксис:
AbsTerm.OtherTerms|AbsTerm|OtherTerms
n Name задает состоятельное имя XML,
начинающееся с буквы или знака подчеркивания
(см. конструкцию Name в главе 2). Синтаксис:
#xnnnn
[#xnnnn][_][:][#xnnnn]|[0|1|2|3|4|5
|6|7|8|9][.]|[-][#xnnnn][#xnnnn]...[#x
nnnn]
Комментарии
Конструкция Query замещает коннектор ?.
Пример
В данном примере расширенная ссылка включает
в себя запрос ресурса ID(2489) в документе test.xml:
<A xml:link="extended"
href="http://www.sample.com/test.xml
XML-XPTR=ID(2489)">Sample Document</A>
Родственные конструкции
Name (см. главу 2), URI, XPointer
(см. главу 4).
Конструкции и атрибуты
- role роль ресурса
удаленной ссылки
Назначение
Задает роль ресурса удаленной ссылки.
Синтаксис EBNF
role CDATA
Аргумент
CDATA — это символьные данные (character
data); то есть любой текст, не являющийся разметкой.
Комментарии
Атрибут role — это строка, определяющая
значение ссылки: автора, дату создания или изменения,
комментарии, вплоть до документации по ссылке для тех, кому
предстоит ее модифицировать в будущем.
Роль может быть определена как для ресурса
ссылки, так и относительно ссылки в целом. При определении
роли для ссылки в целом используйте атрибут content-role; при
определении роли для ресурса ссылки используйте атрибут role.
Примеры
Пример из рабочих документов по языку XLink,
содержащий объявление в единице параметра link-semantics.att:
<!ENTITY % link-semantics.att
"inline (true|false) 'true'
role CDATA #IMPLIED"
В следующем примере показано объявление из
рабочих документов по языку XLink, включенное в единицу
параметра link-semantics.att:
<!ENTITY % link-semantics.att
"role CDATA #IMPLIED
title CDATA #IMPLIED
show (embed|replace|new) #IMPLIED
actuate (auto|user) #IMPLIED
behavior CDATA #IMPLIED"
>
В следующем примере показано несколько
внестрочных расширенных ссылок:
<tracings xml:link="extended" title="Trace"
inline="false">
<locator href="right_wingl.5"
role="criticism"/>
<locator href="left_wing3.1" role="counter"/>
<locator href="professor8.3" role="analysis"/>
<locator href="spin_doctor2.2" role="spin"/>
<locator href="extremistl0.12"
role="distort"/>
 |
 |
 |
 |
 |
|
|
|
|
|
|
|
|
|
|
|
|
Глава 3 n XLink
|
|
|
|
<locator href="talking_head7.7"
role="summarize"/>
</tracings>
Родственные атрибуты
actuate, behavior, content-role,
content-title, href, inline, show, steps, title,
xml:attributes, xml:link.
- show отобразить
ресурс ссылки
Назначение
Показывает, отображать или же
обрабатывать ресурс ссылки.
Синтаксис EBNF
show (embed | replace | new)
Аргументы
n embed включает содержание новой
ссылки в текущее содержание, начиная с места
инициализации процедуры отслеживания.
n replace заменяет текущее содержание
(ресурс) новой ссылки, начиная с места инициализации
процедуры отслеживания.
n new создает новое содержание (ресурс)
ссылки, не вытесняя ее текущее содержание.
Комментарии
Оба атрибута actuate и show определяют
методы отслеживания ссылки.
Осуществление действий по actuate и
show не требует дополнительного программирования
приложений, обрабатывающих ссылки.
Действия actuate и show могут
производиться совместно.
Примеры
Объявление из рабочих документов по
XLink, включенное в единицу параметра
remote-resource-semantics.att:
<!ENTITY % remote-resource-semantics.att
"role CDATA #IMPLIED
title CDATA #IMPLIED
show (embed|replace|new) #IMPLIED
actuate (auto|user) #IMPLIED
behavior CDATA #IMPLIED"
>
Пример простой ссылки:
<saylink xml:link="simple" title="Work"
href=" http://www.twain.com/xml/dog.xml"
show="new"
content-role="author">Mark Twain</saylink>
Конструкции и атрибуты
Родственные атрибуты
actuate, behavior, content-role,
content-title, href, inline, role, steps, title,
xml:attributes, xml:link.
- steps глубина группы
расширенных ссылок
Назначение
Задает число уровней (steps), на
которых в других группах продолжается обработка группы
расширенных ссылок.
Синтаксис EBNF
steps CDATA
Аргумент
CDATA — это символьные данные
(character data); то есть любой текст, не являющийся
разметкой.
Комментарии
Используйте атрибут steps для указания
количества групп расширенных ссылок, которые будут
обработаны до завершения процедуры. Если число уровней
не задано, придется обрабатывать слишком много групп
расширенных ссылок, — особенно если речь идет о
большом количестве сложных XML-документов.
Пример
Пример группы ссылок и двух объявлений
ссылок:
<!ELEMENT GROUP (PAPERS*)>
<!ATTLIST GROUP
xml:link CDATA #FIXED "GROUP"
steps CDATA #IMPLIED
<!ELEMENT PAPERS EMPTY>
<!ATTLIST PAPERS
xml:link CDATA #FIXED "PAPERS"
href CDATA #REQUIRED
>
Родственные атрибуты
actuate, behavior, content-role,
content-title, href, inline, role, show, title,
xml:attributes, xml:link.
- title заголовок
ресурса удаленной ссылки
Назначение
Задает заголовок ресурса удаленной
ссылки.
Синтаксис EBNF
title CDATA
Аргумент
CDATA — это символьные данные
(character data); то есть любой текст, не являющийся
разметкой.
Комментарии
Атрибут title соответствует заголовку,
отображаемому для данной ссылки.
Атрибут title не является обязательным.
Заголовок может быть присвоен как
содержимому ссылки, так и ссылке в целом. Для присвоения
заголовка ссылке в целом используйте атрибут
content-title; для присвоения заголовка содержимому
ссылки используйте атрибут title.
XLink не требует, чтобы приложение
использовало title каким-либо конкретным способом.
Примеры
Объявление из рабочих документов по
языку XLink, включенное в единицу параметра
remote-resource-semantics.att:
<!ENTITY % remote-resource-semantics.att
"role CDATA #IMPLIED
title CDATA #IMPLIED
show (embed|replace|new) #IMPLIED
actuate (auto|user) #IMPLIED
behavior CDATA #IMPLIED"
>
Пример нескольких внестрочных
расширенных ссылок:
<tracings xml:link="extended" title="Trace"
inline="false">
<locator href="right_wingl.5"
role="criticism"/>
<locator href="left_wing3.1" role="counter"/>
<locator href="professor8.3" role="analysis"/>
<locator href="spin_doctor2.2" role="spin"/>
<locator href="extremistl0.12" role="distort"/>
<locator href="talking_head7.7"
role="summarize"/>
</tracings>
Родственные атрибуты
actuate, behavior, content-role,
content-title, href, inline, role, show, steps,
xml:attributes, xml:link.
- uri[3]
единый идентификатор ресурса
Назначение
Задает единый идентификатор ресурса
(Uniform Resource Identifier — URI), содержащего
ссылку.
Конструкции и атрибуты
Синтаксис EBNF
URI ::== URIchar*
Стандартный синтаксис
[URIchar][URIchar]…[URIchar ]
Аргумент
URIchar соответствует символам, из
которых состоит адрес в Интернете. Синтаксис:
[[http:|file:|ftp:|mailto:][//hostname.dom
[/filename.xml]]]
Комментарии
Конструкция URI является компонентом
конструкции Locator.
Идентификатор URI является адресом
ссылки в Интернете.
Идентификатор URI является либо
указателем URL (абсолютная ссылка), либо фрагментом
адреса (относительная ссылка).
Идентификатор URI представляет собой
адрес в Интернете. Он включает тип протокола (в том
числе: http:, ftp:, gopher:, mailto: и т. д.), имя
сервера, с которым необходимо установить связь (скажем,
www.w3.org), названия каталогов или папок (например,
/pub/WWW/Provider/), а также необязательный компонент
имени файла (например, contents.xml или index.xml).
Если URI не указан, то документ, из
которого инициируется ссылка, рассматривается как
содержащий ресурс.
Примеры
В данном примере расширенная ссылка с
помощью указателя URL находит ресурс ID(2489) в
документе test.xml:
<A xml:link="extended"
href="http://www.sample.com/test.xml#ID(2489)">
Sample Document</A>
В следующем примере расширенная ссылка
находит ресурс ID(sect_01) в документе test.xml,
используя фрагмент адреса на текущем Web-узле:
<A xml:link="extended"
href="test.xml#ID(sect_01)">
Sample Document</A>
Родственные конструкции
Connector, Locator, Name
(см. главу 2), XPointer
(см. главу 4).
- xml:attributes имена
атрибутов
Назначение
Помечает выбранные пользователем имена
атрибутов для элемента, составляющего ссылку.
Синтаксис EBNF
xml:attributes CDATA
Аргумент
CDATA — это символьные данные
(character data); то есть любой текст, не являющийся
разметкой.
Комментарии
Используйте атрибут xml:attributes для
переименования атрибутов (actuate, behavior,
content-role, content-title, href, inline, role, show,
steps, title), не являющихся уникальными.
Атрибут xml:attributes должен содержать
одну или более пар, состоящих из исходного и нового
имени атрибута.
Пример
Пример объявления, переопределяющего
title как xl-title и role как xl-role (из рабочих
документов по XLink):
<!ATTLIST TEXT-BOOK
xml:link CDATA #FIXED "simple"
xml:attributes CDATA #FIXED
"title xl-title role xl-role"
Родственные атрибуты
actuate, behavior, content-role,
content-title, href, inline, role, show, steps, title,
xml:link.
- xml:link обработка
ссылок XLink
Назначение
Обрабатывает один или более элементов,
составляющих ссылку XLink, следующих за этим атрибутом.
Стандартный синтаксис
xml:link="simple"|"extended"|"locator"|"group"
|"document"
Аргументы
n simple показывает, что далее следует
простая ссылка.
n extended показывает, что далее
следует расширенная ссылка.
n locator показывает, что далее следует
определитель местонахождения.
n group показывает, что далее следует
связанный перечень документов.
n document показывает, что далее
следует элемент документа с расширенной ссылкой.
Комментарии
Используйте атрибут xml:link для
указания на то, что последует ссылка XLink.
Конструкции и атрибуты
Простая ссылка использует только один
указатель, включенный в элемент, составляющий ссылку.
Внестрочная простая ссылка считается
состоятельной; она называется однонаправленной
ссылкой (one-ended link).
В ссылку может быть включен указатель
на содержание любого типа, для чего используется
служебное слово ANY. Однако при этом документ должен
соответствовать своему определению типа данных DTD.
Используйте группу расширенных ссылок
для организации списка однородных ссылок. Используйте
элемент документа с расширенной ссылкой для задания
каждого документа из списка.
Для задания группы расширенных ссылок
используйте значение group; для задания элемента
документа с расширенной ссылкой используйте значение
document.
Ссылка может быть обозначена одним из
двух способов: либо с помощью открывающего и
закрывающего тегов (см. первый пример), либо через
объявление (см. второй пример).
Примеры
Пример простой ссылки из рабочих
документов языка XLink:
<A xml:link="simple"
href="http://www.w3.org/">The W3C</A>
Пример объявления простой ссылки из
рабочих документов языка XLink:
<!ATTLIST A xml:link CDATA #FIXED
"simple">
Пример группы ссылок и двух объявлений
ссылок:
<!ELEMENT GROUP (PAPERS*)>
<!ATTLIST GROUP
xml:link CDATA #FIXED "GROUP"
steps CDATA #IMPLIED
<!ELEMENT PAPERS EMPTY>
<!ATTLIST PAPERS
xml:link CDATA #FIXED "PAPERS"
href CDATA #REQUIRED
>
Пример простой ссылки:
<saylink xml:link="simple" title="Work"
href="http://www.twain.com/xml/dog.xml" show="new"
content-role="author">Mark Twain</saylink>
Пример нескольких внестрочных
расширенных ссылок:
<tracings xml:link="extended" title="Trace"
inline="false">
<locator href="right_wingl.5"
role="criticism"/>
<locator href="left_wing3.1" role="counter"/>
<locator href="professor8.3" role="analysis"/>
<locator href="spin_doctor2.2" role="spin"/>
<locator href="extremistl0.12" role="distort"/>
<locator href="talking_head7.7"
role="summarize"/>
</tracings>
Родственные атрибуты
actuate, behavior, content-role,
content-title, href, inline, role, show, steps, title,
xml:attributes.
| |