Технология Идентификации Ресурсов X-Pointer

20
Технология Идентификации Ресурсов X-Pointer

description

Технология Идентификации Ресурсов X-Pointer. Предназначение. X - Pointer – это язык, описывающий местонахождение тех или иных ресурсов. - PowerPoint PPT Presentation

Transcript of Технология Идентификации Ресурсов X-Pointer

Page 1: Технология Идентификации Ресурсов X-Pointer

Технология Идентификации Ресурсов X-Pointer

Page 2: Технология Идентификации Ресурсов X-Pointer

Предназначение

• X-Pointer – это язык, описывающий местонахождение тех или иных ресурсов.

• Выражения языка X-Pointer позволяют создавать так называемые URI – которые отслеживают целостность ссылок, т.к. они они могут адресовываться не только на внешние документы, но и на части какого-либо документа, путем создания некоторой иерархической структуры выражения. Например, можно указать ссылку на конкретное слово, значение атрибута XML- документа.

Page 3: Технология Идентификации Ресурсов X-Pointer

Основные Правила

• Ссылки на языке X-Pointer могут указывать только на XML-документы, т.е. имеющие расширения : text/xml application/xml.

• Все выражения X-Pointer записываются при помощи символов Unicode, если символов не хватает можно использовать Escape- последовательности (общения принтера и компьютера), но это практически исключено.

Page 4: Технология Идентификации Ресурсов X-Pointer

Основные термины

• Субресурс (sub-resource)-Часть целого XML-ресурса, такая как отдельная глава или абзац. Основная единица адресации языка X-Pointer.

• Набор Указателей (location-set) – упорядоченный список точек адресации XML – документа, в который входят все адресуемые субресурсы различных типов.

• Точка (pointer) – место в XML-документе, где конкретно расположен адресуемый субресурс.

• Интервал (range) – часть содержимого XML-документа, размешенная между двумя точками, адресованными при помощи выражений X-Pointer.

Page 5: Технология Идентификации Ресурсов X-Pointer

Ошибки языка X-Pointer:

• Синтаксическая ошибка (syntax error) – выражение X-Pointer содержит конструкцию, не удовлетворяющее правилам оформления выражений X-Pointer.

• Ошибка адресации (resource error) – синтаксически правильное выражение X-Pointer указывает на несуществующий XML-документ.

• Ошибка адресации субресурса (subresource error) – все правильно, но отсутствуем указываемый субресурс.

Page 6: Технология Идентификации Ресурсов X-Pointer

Абсолютные Указатели

Page 7: Технология Идентификации Ресурсов X-Pointer

• Пример XML-документа:• <! DOCTYPE body [• <! ELEMENT p (#PCDATA)>• <!ELEMENT group (item*)>• <!ATTLIST p• Id ID #REQUIRED>• ]>• ……………………………….• <body>• <p id=’p1’>First paragraph</p>• <p id=’p2’>Second paragraph</p>• </body>

Будем считать что URL этого XML-файла : http://www.site.com/xml/f1.xml

Page 8: Технология Идентификации Ресурсов X-Pointer

• Ключевое слово root указывает на точку местонахождения открывающего тега самого главного элемента, кот. Объявлен как тип документа (DOCTYPE)<hlink xlink:href=http://www.site.com/xml/f1.xml#root()/hlink>В этой строке мы указываем уже не на URL XML-документа, а URI некоторого субресурса. Перед выражением X-Pointer ставится знак #. Будет загружен документ из файла f1.xml , а фокус передан на открывающийся тег <body>, т.к он является корневым для нашего документа.

Page 9: Технология Идентификации Ресурсов X-Pointer

• Конструкция ID (name) позволяет адресовать элемент в XML-документе, у кот. значение атрибута id установлено в name.<hlink xlink:href=”http://www.site.com/xml/f1.xml#ID(p1)”>Link on first paragraph</hlink>Установили ссылку на 1 параграф с содержимым First Paragraph.

• Ключевое слово here является указателем на текущее положение самого указателя, т.е. отсчет будет вестись от самой ссылки, адресовать можно только те субресурсы, кот. находятся в том же XML-документе что и сама ссылка.<hlink xlink:href=”http://www.site.com/xml/f1.xml#here()”>Link </hlink>Указатель на указатель. Сам по себе бесполезен, используется в качестве основы для относительной адресации.

Page 10: Технология Идентификации Ресурсов X-Pointer

Относительная адресация.

Page 11: Технология Идентификации Ресурсов X-Pointer

• Пример:• <! DOCTYPE body [• <! ELEMENT list (item*)>• <!ELEMENT item (#PCDATA|part)>• <!ELEMENT part (#PCDATA)>• <!ATTLIST item• Id ID #REQUIRED>• <!ATTLIST part• Id ID #REQUIRED>• ]>• ……………………………….• <body>• <list id=’l1’>• <item id=’i1’>• <part id=’p1’>Part 1</part>• <part id=’p2’>Part 2</part>• </item>• <item id=’i2’>Second item</item>• </list>• </body>

Page 12: Технология Идентификации Ресурсов X-Pointer

• Ключевое слово Child позволяет адресовать все дочерние элементы источника, на кот мы указали при помощи абсолютной адресации, при этом адресуется только потомки находящиеся на 1 уровень ниже.<hlink xlink:href=”http://www.site.com/xml/f1.xml#root().child(2)”>Link to second item </hlink>

Указывает на элемент item c идентификатором i2.

Page 13: Технология Идентификации Ресурсов X-Pointer

• Для адресации всех потомков начального элемента используется descendant .При перемещении относительно ключевого элемента мы уже не учитываем иерархию потомков, а просто обходим содержимое и используем только порядковый номерОбратимся к одному и тому же элементу : part с индентификатором p2<hlink xlink:href=”http://www.site.com/xml/f1.xml#root().child(1).child(2)”>Link to part 2 </hlink><hlink xlink:href=”http://www.site.com/xml/f1.xml#root().decsedant(4)”>Link to part 2 </hlink><hlink xlink:href=”http://www.site.com/xml/f1.xml#root().Id(i1).child(2)”>Link to part 2 </hlink> - сначала установили абсолютный указатель на Эл. Item с идентификатором i1, а уж от него движемся к искомому элементу part

Page 14: Технология Идентификации Ресурсов X-Pointer

• Ancestor – если надо пройти вверх по иерархии объектов вверх от ключевого элемента к его предкам<hlink xlink:href=”http://www.site.com/xml/f1.xml#root().Id(p2).ancestor(3)”>Link to root </hlink>Двигаемся от самого глубокого элемента part к элементу body.

• Ключевое слово psibling используется для указания на «предшествующих братьев», т.е. на элементы, у которых родитель совпадает с родителем исходного элемента и которые в содержимом XML-документа находятся после адресуемого элемента.

• Fsibling – позволяет адресовать «последующих братьев»<hlink xlink:href=”http://www.site.com/xml/f1.xml#Id(p1).fsibling(1)”>Link to part 2 </hlink>Переход от экземпляра документа с идентификатором p1 к экземпляру с идентификатором p2.<hlink xlink:href=”http://www.site.com/xml/f1.xml#Id(p2).psibling(1)”>Link to part 1 </hlink>Переход от экземпляра документа с идентификатором p2 к экземпляру с идентификатором p1.

Page 15: Технология Идентификации Ресурсов X-Pointer

• Following – если нас не интересует иерархическая зависимость элементов друг от друга, и мы хотим просто по содержимому XML-документа и просчитать то или иное количество экземпляров вниз.<hlink xlink:href=”http://www.site.com/xml/f1.xml#root().following(4)”>Link to part 2 </hlink>Для установки гиперссылки на элемент с идентификатором i2.

• Preceding – для смещения вверх по содержимому XML-документа от начального элемента поиска<hlink xlink:href=”http://www.site.com/xml/f1.xml#Id(i1).preceding(1)”>Link to part 2 </hlink>Установим абсолютный указатель на элемент, близкий к концу документа, двинемся вверх по направлению к part 2.

Page 16: Технология Идентификации Ресурсов X-Pointer

Адресация интервалов

• Мы можем адресовываться не только на единичные элементы, но и на целые фрагменты XML- документа, т.к. они тоже являются субресурсами.

Ссылка на фрагмент производится при помощи 2 выражений X-Pointer, при этом возвращается блок, находящийся между двумя точками, на которые указывают выражения X-Pointer.Первое выражение должно адресовывать элемент, находящийися ближе к началу документа, иначе сообщение об ошибке.

Page 17: Технология Идентификации Ресурсов X-Pointer

• Range-to – создание ссылки на ресурс интервального типа

<hlink xlink:href=”http://www.site.com/xml/f1.xml

#Id(“chap1”)/range to (Id(“chap1”))”>Link to chapter 1 </hlink>

Ссылка на фрагмент документа который находится между элементами с идентификаторами chap 1 и chap2.

Page 18: Технология Идентификации Ресурсов X-Pointer

Адресация строчных субресурсов

Это механизм текстового поиска в документе. Адресация осуществляется при помощи функции string – range.

• String-range(//title,”Thomas Pynchon”)[17]

Ищем 17-ое вхождение элемента типа title, значение которого равно Thomas Pynchon

Page 19: Технология Идентификации Ресурсов X-Pointer

• String-range(//title,”Thomas Pynchon”, 8,4)

При успехе поиска функция возвратит точку адресации подстроки “Pync”,которая начинается с 8 символа строки поиска и содержит 4 символа.Можем получить несколько подстрок.

Page 20: Технология Идентификации Ресурсов X-Pointer

• String-range(String-range(//P,”Thomas Pynchon”)[17],”P”, 1,0)

В качестве базы поиска передаются результаты первичного поиска – 17-ый экземпляр элемента P, который содержит строку Thomas Pynchon ; уточняющий поиск – найти символ P, от которого мы возьмем подстроку, начинающуюся с этого символа и не содержащую ни одного символа.