Учебник по XML

XML ГЛАВНАЯ Введение в XML XML Как использовать XML-дерево Синтаксис XML XML-элементы XML-атрибуты Пространства имен XML Отображение XML XML HttpRequest XML-парсер XML DOM XML XPath XML XSLT XML XQuery XML-ссылка XML-валидатор XML-DTD XML-схема XML-сервер XML-примеры XML-викторина XML-сертификат

XML АЯКС

Введение в АЯКС AJAX XMLHttp АЯКС-запрос AJAX-ответ XML-файл AJAX АЯКС PHP АЯКС АСП База данных AJAX AJAX-приложения Примеры AJAX

XML DOM

Введение в ДОМ DOM-узлы Доступ к DOM Информация об узле DOM Список узлов DOM Обход DOM DOM-навигация DOM Получить значения Узлы изменения DOM DOM Удалить узлы DOM заменить узлы DOM Создание узлов DOM Добавить узлы Узлы клонирования DOM Примеры DOM

Учебник XPath

XPath Введение Узлы XPath Синтаксис XPath Оси XPath Операторы XPath Примеры XPath

XSLT- учебник

Введение в XSLT Языки XSL XSLT-преобразование XSLT <шаблон> XSLT <значение> XSLT <для каждого> XSLT <сортировка> XSLT <если> XSLT <выбрать> XSLT Применить XSLT на клиенте XSLT на сервере XSLT Редактировать XML XSLT-примеры

Учебник по XQuery

Введение в XQuery Пример XQuery XQuery FLWOR XQuery HTML Условия XQuery Синтаксис XQuery XQuery Добавить Выбор XQuery Функции XQuery

XML -DTD

Введение в DTD Строительные блоки DTD Элементы DTD Атрибуты DTD Элементы DTD и Attr Сущности DTD Примеры DTD

XSD- схема

Введение в XSD XSD Как XSD <схема> XSD-элементы XSD-атрибуты XSD-ограничения

Комплекс XSD

XSD-элементы XSD пустой Только элементы XSD Только текст XSD XSD смешанный XSD-индикаторы XSD <любой> XSD <любой атрибут> Замена XSD Пример XSD

XSD- данные

XSD-строка XSD-дата XSD числовой XSD Разное Справочник по XSD

Веб- сервисы

XML-сервисы XML WSDL XML-МЫЛО XML RDF XML RSS

использованная литература

Типы узлов DOM DOM-узел Список узлов DOM DOM NamedNodeMap Документ DOM DOM-элемент Атрибут DOM DOM-текст ДОМ CDATA Дом Комментарий DOM XMLHttpRequest Парсер DOM XSLT-элементы Функции XSLT/XPath

XML , XLink и XPointer


XLink используется для создания гиперссылок в документах XML.


XPath
  • XLink используется для создания гиперссылок в документах XML.
  • Любой элемент XML-документа может вести себя как ссылка.
  • С помощью XLink ссылки могут быть определены вне связанных файлов.
  • XLink является рекомендацией W3C

Поддержка браузера XLink

Браузер не поддерживает XLink в XML-документах.

Однако все основные браузеры поддерживают XLinks в SVG .


Синтаксис XLink

В HTML элемент <a> определяет гиперссылку. Однако это не так, как это работает в XML. В документах XML вы можете использовать любые имена элементов, поэтому браузеры не могут предсказать, какие элементы ссылок будут вызываться в документах XML.

Ниже приведен простой пример использования XLink для создания ссылок в XML-документе:

<?xml version="1.0" encoding="UTF-8"?>

<homepages xmlns:xlink="http://www.w3.org/1999/xlink">
  <homepage xlink:type="simple" xlink:href="https://www.w3schools.com">Visit W3Schools</homepage>
  <homepage xlink:type="simple" xlink:href="http://www.w3.org">Visit W3C</homepage>
</homepages>

Чтобы получить доступ к функциям XLink, мы должны объявить пространство имен XLink. Пространство имен XLink: "http://www.w3.org/1999/xlink".

Атрибуты xlink:type и xlink:href в элементах <homepage> взяты из пространства имен XLink.

xlink:type="simple" создает простую "HTML-подобную" ссылку (означает "нажмите здесь, чтобы перейти туда").

Атрибут xlink:href указывает URL-адрес для ссылки.


Пример XLink

Следующий XML-документ содержит функции XLink:

<?xml version="1.0" encoding="UTF-8"?>

<bookstore xmlns:xlink="http://www.w3.org/1999/xlink">

<book title="Harry Potter">
  <description
  xlink:type="simple"
  xlink:href="/images/HPotter.gif"
  xlink:show="new">
  As his fifth year at Hogwarts School of Witchcraft and
  Wizardry approaches, 15-year-old Harry Potter is.......
  </description>
</book>

<book title="XQuery Kick Start">
  <description
  xlink:type="simple"
  xlink:href="/images/XQuery.gif"
  xlink:show="new">
  XQuery Kick Start delivers a concise introduction
  to the XQuery standard.......
  </description>
</book>

</bookstore>

Объяснение примера:

  • Пространство имен XLink объявляется в верхней части документа (xmlns:xlink="http://www.w3.org/1999/xlink").
  • xlink:type="simple" создает простую ссылку "HTML-подобную"
  • Атрибут xlink:href указывает URL-адрес для ссылки (в данном случае — изображение)
  • xlink:show="new" указывает, что ссылка должна открываться в новом окне.


XLink — идем дальше

В приведенном выше примере мы продемонстрировали простые XLink. XLink становится все более интересным при доступе к удаленным расположениям как к ресурсам, а не к отдельным страницам.

Если мы установим значение атрибута xlink:show на «встроить», связанный ресурс должен обрабатываться на странице. Когда вы считаете, что это может быть другой XML-документ, вы можете, например, построить иерархию XML-документов.

Вы также можете указать, КОГДА должен появиться ресурс, с помощью атрибута xlink:actuate.


Справочник по атрибутам XLink

Attribute Value Description
xlink:actuate onLoad
onRequest
other
none
Defines when the linked resource is read and shown:
  • onLoad - the resource should be loaded and shown when the document loads
  • onRequest - the resource is not read or shown before the link is clicked
xlink:href URL Specifies the URL to link to
xlink:show embed
new
replace
other
none
Specifies where to open the link. Default is "replace"
xlink:type simple
extended
locator
arc
resource
title
none
Specifies the type of link

XPointer

XPath
  • XPointer позволяет ссылкам указывать на определенные части XML-документа.
  • XPointer использует выражения XPath для навигации по XML-документу.
  • XPointer является рекомендацией W3C

Поддержка браузера XPointer

Браузер не поддерживает XPointer. Но XPointer используется и в других языках XML.


Пример XPointer

В этом примере мы будем использовать XPointer в сочетании с XLink, чтобы указать на определенную часть другого документа.

Мы начнем с просмотра целевого XML-документа (документа, на который мы ссылаемся):

<?xml version="1.0" encoding="UTF-8"?>

<dogbreeds>

<dog breed="Rottweiler" id="Rottweiler">
  <picture url="https://dog.com/rottweiler.gif" />
  <history>The Rottweiler's ancestors were probably Roman
  drover dogs.....</history>
  <temperament>Confident, bold, alert and imposing, the Rottweiler
  is a popular choice for its ability to protect....</temperament>
</dog>

<dog breed="FCRetriever" id="FCRetriever">
  <picture url="https://dog.com/fcretriever.gif" />
  <history>One of the earliest uses of retrieving dogs was to
  help fishermen retrieve fish from the water....</history>
  <temperament>The flat-coated retriever is a sweet, exuberant,
  lively dog that loves to play and retrieve....</temperament>
</dog>

</dogbreeds>

Обратите внимание, что XML-документ выше использует атрибуты id для каждого элемента!

Таким образом, вместо ссылки на весь документ (как в XLink), XPointer позволяет вам ссылаться на определенные части документа. Чтобы сделать ссылку на определенную часть страницы, добавьте знак номера (#) и выражение XPointer после URL-адреса в атрибуте xlink:href, например: xlink:href="https://dog.com/dogbreeds.xml. #xpointer(id('Ротвейлер'))". Выражение относится к элементу в целевом документе со значением идентификатора «Ротвейлер».

XPointer также позволяет использовать сокращенный метод для ссылки на элемент с идентификатором. Вы можете использовать значение идентификатора напрямую, например: xlink:href="https://dog.com/dogbreeds.xml#Rottweiler".

Следующий XML-документ содержит ссылки на дополнительную информацию о породе каждой из моих собак:

<?xml version="1.0" encoding="UTF-8"?>

<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">

<mydog>
  <description>
  Anton is my favorite dog. He has won a lot of.....
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">
  Fact about Rottweiler
  </fact>
</mydog>

<mydog>
  <description>
  Pluto is the sweetest dog on earth......
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">
  Fact about flat-coated Retriever
  </fact>
</mydog>

</mydogs>