1 / 20

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

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

waseem
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Основные Правила • Ссылки на языке X-Pointer могут указывать только на XML-документы, т.е. имеющие расширения : text/xml application/xml. • Все выражения X-Pointer записываются при помощи символов Unicode, если символов не хватает можно использовать Escape- последовательности (общения принтера и компьютера), но это практически исключено.

  4. Основные термины • Субресурс (sub-resource)-Часть целого XML-ресурса, такая как отдельная глава или абзац. Основная единица адресации языка X-Pointer. • Набор Указателей (location-set) – упорядоченный список точек адресации XML – документа, в который входят все адресуемые субресурсы различных типов. • Точка (pointer) – место в XML-документе, где конкретно расположен адресуемый субресурс. • Интервал (range) – часть содержимого XML-документа, размешенная между двумя точками, адресованными при помощи выражений X-Pointer.

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

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

  7. Пример 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

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

  9. Конструкция 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> Указатель на указатель. Сам по себе бесполезен, используется в качестве основы для относительной адресации.

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

  11. Пример: • <! 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>

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

  13. Для адресации всех потомков начального элемента используется 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

  14. 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.

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

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

  17. Range-to – создание ссылки на ресурс интервального типа <hlinkxlink:href=”http://www.site.com/xml/f1.xml #Id(“chap1”)/range to (Id(“chap1”))”>Link to chapter 1 </hlink> Ссылка на фрагмент документа который находится между элементами с идентификаторами chap 1 и chap2.

  18. Адресация строчных субресурсов Это механизм текстового поиска в документе. Адресация осуществляется при помощи функции string – range. • String-range(//title,”Thomas Pynchon”)[17] Ищем 17-ое вхождение элемента типа title, значение которого равно Thomas Pynchon

  19. String-range(//title,”Thomas Pynchon”, 8,4) При успехе поиска функция возвратит точку адресации подстроки “Pync”,которая начинается с 8 символа строки поиска и содержит 4 символа.Можем получить несколько подстрок.

  20. String-range(String-range(//P,”Thomas Pynchon”)[17],”P”, 1,0) В качестве базы поиска передаются результаты первичного поиска – 17-ый экземпляр элемента P, который содержит строку Thomas Pynchon ; уточняющий поиск – найти символ P, от которого мы возьмем подстроку, начинающуюся с этого символа и не содержащую ни одного символа.

More Related