Языки информационного обмена



   запчасти на рено в Уфе        

Уточненные ссылки XPointer


Язык XLink позволяет организовать только внешние ссылки на информационный ресурс. Они не могут сослаться на определенное место удаленного документа или на какое-то произвольное место того документа, в котором они записаны. Такие ссылки могут быть полезны, поскольку очень часто в документах нужно организовать ссылку на определенное место того же самого документа, скажем, при создании оглавления, предметного указателя, глоссария.

В языке HTML <а>. В нем атрибутом href указывается метка того места документа, на которое мы хотим перейти. Перед меткой ставится символ "решетка" #.

Например: <a href="#ref0012"> Пункт оглавления </a>

В том месте документа, на которое мы хотим перейти, записывается тег <а> с атрибутом name и той же меткой:

<a name="ref0012"></a>

Подобную метку можно записать в удаленном документе, допустим, в файле remfile.html, и ссылаться на нее следующим образом:

<a href="http://some.com/pub/remfile.html#ref0012"> Пункт оглавления </а>

Браузер загрузит документ remfile.html и покажет ту его часть, в которой записан элемент.

<a name="ref0012"></a>

Аналогичная конструкция, разумеется, есть и в XML. По правилам XML метки создаются с помощью атрибутов типа ID, которые можно объявить в любом элементе.

Ссылки на помеченные элементы указываются атрибутами типа IDREF или IDREFS, которые тоже можно объявить в любом элементе. Проверяющий анализатор, просматривая документ XML, следит за соответствием меток и ссылок на них, отмечая как ошибку ссылку на несуществующую метку. Знак решетки # в ссылках записывать не нужно, сам тип IDREF показывает, что значение атрибута - ссылка.

Предыдущий пример, переписанный по правилам XML, будет выглядеть следующим образом. Ссылку на помеченный элемент можно записать в виде:

<item ref="ref0012"> ????? ?????????? </item> ? ???????? ??????? ????? ???: <ch id="ref0012" /> ?????????? ????????? item ? ch ?? ????? XSD ????? ????? ???: <xsd:element name="item"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="ref" type="xsd:IDREF"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd: element name=="ch"> <xsd:attribute name="id" type="xsd:ID" use="required" /> </xsd:element>




Содержание  Назад  Вперед