Słowem wstępu. Standard: W3C XPath razem XSLT 1.0. XPath razem z XQuery 1.0 i XSLT 2.0. XPath trwają prace nad XPath 3.

Podobne dokumenty
Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 03

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

Języki XPath i XQuery

XML Path Language (XPath)

Języki XPath i XQuery

Języki XPath i XQuery

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Osie (axes) Location paths

XPath i XQuery. Patryk Czarnik. XML i nowoczesne technologie zarządzania treścią 2011/12. Wprowadzenie Status Model danych XPath

XQuery. sobota, 17 grudnia 11

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation

METAJĘZYKI. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej

Kurs WWW Język XML, część II

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Wykład 2 Składnia języka C# (cz. 1)

Prezentacja i transformacja

Podstawy programowania skrót z wykładów:

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Plan prezentacji. Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura

Przykładowy dokument XML

Drzewa DOM. Maciej Zakrzewicz.

Prezentacja i transformacja

LibreOffice Calc VBA

JĘZYKI WYSZUKIWANIA W DOKUMENTACH XML

XML. 6.6 XPath. XPath is a syntax used for selecting parts of an XML document

Języki i Techniki Programowania II. Wykład 13. TRaX, Applety, Java Security

Elektroniczna wymiana danych (EDI) jest to: - wymiana informacji pomiędzy komputerami, z użyciem powszechnie akceptowanych standardów

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

Systemy GIS Tworzenie zapytań w bazach danych

Właściwości i metody obiektu Comment Właściwości

Programowanie obiektowe

Model semistrukturalny

Modelowanie obiektowe

Służy do wybierania/wyszukiwania fragmentów dokumentu XML. Przypomina trochę ścieżki w systemie operacyjnym. Niech będzie dany dokument XML:

Przykładowy dokument XML

XML i nowoczesne technologie zarządzania treścią 2007/08

Informatyka I. Wykład 4. Tablice. Dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Podstawy JavaScript ćwiczenia

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Algorytmika i Programowanie VBA 1 - podstawy

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

DTD - encje ogólne i parametryczne, przestrzenie nazw

Oczywiście plik musi mieć rozszerzenie *.php

Temporalne bazy danych

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Wprowadzenie do standardu XSL

MATERIAŁY DO ZAJĘĆ II

Extensible Markup Language III

1 Model semistrukturalny 1 2 XML 3. 3 XPath 8. 4 Bazy danych a XML Bazy przechowywujące XML Natywne bazy XML

Podstawy Programowania C++

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Rys.2.1. Trzy warstwy stanowiące podstawę popularnego podejścia w zakresie budowy stron internetowych [2]

IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TRE CI KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Przestrzenne bazy danych Podstawy języka SQL

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Spis treści. Przedmowa

Przydatne sztuczki - sql. Na przykładzie postgres a.

extensible Markup Language, cz. 4 Marcin Gryszkalis, mg@fork.pl

Odczyt danych z klawiatury Operatory w Javie

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Wykład 4. Tablice. Pliki

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Podstawy bioinformatyki 2017/18

Abstrakcyjne struktury danych - stos, lista, drzewo

Systemy operacyjne. Laboratorium 8. Perl find

Język programowania: Lista instrukcji (IL Instruction List)

Teoretyczne podstawy informatyki

Część 4 życie programu

Język SQL. Rozdział 2. Proste zapytania

Wstęp. Jak programować w DNA? Idea oraz przykład. Problem FSAT charakterystyka i rozwiązanie za pomocą DNA. Jak w ogólności rozwiązywać problemy

Prolog struktury danych oraz obliczenia. 1. Arytmetyka?- Y is 2+2. Y = 4. ?- 5 is 3+3. false. ?- Z is (3.9 / 2.1). Z =

Zaawansowane aplikacje WWW - laboratorium

Wstęp do programowania

Język programowania Scala / Grzegorz Balcerek. Wyd. 2. Poznań, cop Spis treści

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Visual Basic for Application (VBA)

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Kolumna Zeszyt Komórka Wiersz Tabela arkusza Zakładki arkuszy

UML cz. II. UML cz. II 1/38

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

ForPascal Interpreter języka Pascal

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

Java Podstawy. Michał Bereta

Oracle PL/SQL. Paweł Rajba.

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

1 Podstawy c++ w pigułce.

Wysokość drzewa Głębokość węzła

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

Indeksowanie w bazach danych

Wprowadzenie do baz danych

Model relacyjny. Wykład II

Transkrypt:

Słowem wstępu Standard: W3C XPath 1.0-1999 razem XSLT 1.0 XPath 2.0-2007 razem z XQuery 1.0 i XSLT 2.0 XPath 3.0-2014 trwają prace nad XPath 3.1

XPath Język deklaratywny służący wskazywaniu elementów, atrybutów, lub całych fragmentów dokumentu XML Osie (ang. axes) oraz predykaty pozwalają wyselekcjonować pojedynczą ścieżką wiele miejsc w dokumencie XML, co nawiązuje do funkcji oferowanych przez języki zapytań

Wykorzystanie XPath został oryginalnie zaprojektowany dla XSLT, ale znajduje zastosowanie językach bazujących na XML, np. XQuery. W XML Schema w celu zapewnienia unikatowości elementów i atrybutów key, unique, keyref

Podstawy XPath Dokument jako drzewo. XPath zawiera około 100 wbudowanych funkcji. Pozwalają one na operacje na ciągach znakowych, wartościach liczbowych, obsługują czas i daty etc. fn:day-from-datetime(datetime) fn:upper-case(string) fn:ceiling(num) fn:true() Razem formułują tzw. XML Data Model (XDM)

Podstawy XPath Wyrażenia służą do wybierania węzłów i zbiorów w dokumentach XML. Wyrażenia są bardzo podobne do wyrażeń stosowanych do nawigacji w tradycyjnych systemach komputerowych /Catalog/Artist/Album /Catalog/Artist[2]/Album

Składnia kierunek podwójny dwukropek: :: symbole specjalne (np. *, /, @,..), nazwy elementów, albo funkcje: node() text() comment() processing-instruction() dowolna liczba predykatów umieszczonych w nawiasach kwadratowych: [ ]

Budowa wyrażeń XPath Ścieżka (ciąg określający) XPath jest zbudowana z tzw. kroków (step), oddzielonych symbolem /. Pojedynczy krok może reprezentować element, atrybut lub funkcję. Poszczególne kroki zawężają obszar przeszukiwania drzewa DOM

Kontekst XPath Wyrażenia danego kroku działają w kontekście określanym przez kroki poprzednie. Na kontekst składają się: Bieżący węzeł (tzw. context node) Dwie dodatnie liczby naturalne (pozycja kontekstu context position oraz rozmiar kontekstu context size - ilość węzłów w danym kontekście) Zmienne Biblioteka dostępnych funkcji

Relacje między węzłami XPath operuje na drzewie DOM, czyli na strukturze hierarchicznej. Pierwszym węzłem jest element główny dokumentu XML wraz z jego zawartością. Selekcja atrybutów wzdłuż lub wszerz drzewa DOM określana jest tzw. osiami (axes) Operatory stosowane do selekcji pojedynczych elementów: self aktualny węzeł (zwany kontekstem: context node) parent rodzic aktualnego węzła; attribute - wybór wartości atrybutu danego węzła

Relacje między węzłami (2) Operatory stosowane do wyboru kolekcji elementów: child bezpośrednie podelementy descendant całe drzewo podelementów poniżej aktualnego descendant-or-self j.w. plus aktualny węzeł ancestor przodkowie aktualnego węzła ancestor-or-self j.w. plus aktualny węzeł following-sibling kolejne węzły na tym samym poziomie hierarchii preceding-sibling wcześniejsze węzły na tym samym poziomie

Przykład /descendant::dzial[attribute::id = 234 ]/ child::pracownik[1]/child::text()

Więcej przykładów /child::osoby/child::osoba[child::imie = 'Jan'] /child::osoba[child::imie = 'Jan']/ child::nazwisko //obiekt[attribute::nazwa][3]

Skróty oś child można pominąć / Wybiera korzeń dokumentu - ścieżka bezwględna // Wybiera węzeł w dokumencie, nieważne gdzie się znajduje zamiast attribute można użyć @. zamiast self::node().. zamiast parent::node()

Przykład //dzial[@id = 234 ]/pracownik[1]/text()

Więcej przykładów /osoby/osoba[@imie = 'Jan'] osoba[@imie = 'Jan']/nazwisko //obiekt[@nazwa][3]

Podstawowe wyrażenia Ścieżki mogą być bezwzględne lub względne /krok1/krok2/krok3 krok1/krok2

Predykaty wyszukiwania Predykaty zmieniają pozycję i rozmiar kontekstu Występują opcjonalnie, umieszczane wewnątrz nawiasów kwadratowych celem zawężenia zwróconego zbioru elementów Muszą zwracać wartość logiczną Dostępne operatory logiczne: =!= > >= < <= and or not

Predykaty wyszukiwania (2) Dostępne operatory arytmetyczne: + - * div mod //produkt[@cena*1.22 < 1000] Można wyszukiwać węzły wg. ich pozycji, podając predykat np. [position()=2] skracalny do postaci [2] Indeksacja zaczyna się od 1

Porównania Równość nie jest przechodnia Nierówność nie jest zaprzeczeniem równości Argumenty poddawane są atomizacji Dla typów atomowych porównania są intuicyjne

Porównania (1,2) = (1,2) //true (1,2) = (2,3) //true (1,2)!= (1,2) //true ()!=() //false ()=() //false

Porównania Równość nie jest przechodnia Nierówność nie jest zaprzeczeniem równości Argumenty poddawane są atomizacji Dla typów atomowych porównania są intuicyjne Jeśli porównywane są sekwencje to wystarczy jedna para spełniająca kryterium, aby wyrażenie było prawdziwe

Predykaty wyszukiwania (3) concat(łańcuch1, łańcuch2, ) contains(łańcuch, wzorzec) normalize-space(łańcuch) starts-with(łańcuch, wzorzec) string-length(łańcuch) substring(łańcuch, od, do), substring-after(łańcuch, wzorzec), substring-before(łańcuch, wzorzec), translate(łańcuch, stare, nowe), string( ) => konwersja na string;

Predykaty wyszukiwania (4) Operacje na liczbach: ceiling(liczba), floor(liczba), round(liczba), sum(zbiór_węzłów), number( ) -> konwersja na typ liczbowy Operacje na wartościach logicznych: false(), true(), not(); boolean( ) -> konwersja na typ logiczny Operacje na węzłach: count(zbiór_węzłów) last() position() id(identyfikator) -> wyszukiwania węzła po identyfikatorze name(element) namespace-uri(element)

Przykłady bookstore Wybiera wszystkie węzły w elemencie bookstore /bookstore Wybiera główny element bookstore Jeśli wyrażenie zaczyna się od ukośnika (/) to zawsze musi reprezentować element główny bookstore/book Wybiera wszystkie elementy book, które są dziećmi elementu bookstore //book Wybiera wszelkie elementy o nazwie book, nieistotne gdzie są umiejscowione bookstore//book wybiera wszelkie elementy o nazwie book, nieistotne gdzie są umiejscowione o ile są potomkami elementu bookstore //@lang Wybiera wszystkie atrybuty lang

Przykłady (2) /bookstore/book[1] Wybiera pierwszy element book, który jest dzieckiem elementu głównego bookstore /bookstore/book[last()] Wybiera ostatni element book, który jest dzieckiem elementu głównego bookstore /bookstore/book[last()-1] Element przedostatni /bookstore/book[position()<3] Pierwsze dwa elementy

Przykłady (3) //title[@lang] Wybiera wszelkie elementy title, które posiadają atrybut lang //title[@lang= en ] Wybiera wszelkie elementy title, które posiadają atrybut o nazwie lang, którego wartością jest en /bookstore/book[price>35.00] Wybiera elementy book, które posiadają element price o wartości większej niż 35.00 /bookstore/book[price>35.00]/title Wybiera elementy title z elementów /bookstore/book, które posiadają element price o wartości większej niż 35.00

Wildcards * Znaczy każdy element @* Każdy atrybut node() Każdy rodzaj węzła

Wildcards - przykłady /bookstore/* Wszystkie podelementy bookstore //* Wszystkie elementy dokumentu //title[@*] Wszystkie elementy title, które posiadają jakikolwiek atrybut Wybór kilku ścieżek poprzez użycie operatora //book/title //book/price Wybiera elementy title i price z elementów book //title //price Wybiera elementy title i price z całego dokumentu

Rzutowanie typów xs:date("2001-08-25") - typy np. z XSL xs:float("10.23") adresy:kod_pocztowy("48-200")

Co nowego w XPath 2.0 XPath 1.0 uwzględniał tylko 4 typy danych: node-set (nieuporządkowany zbiór elementów) boolean number (liczba zmiennoprzecinkowa) string Możliwość uwzględniania schematu XML (w wersji 2.0) -> obsługa typów danych Sekwencje -> wszystko jest sekwencją

Co nowego w XPath 3.0 i 3.1 łańcuchy wywołań contains(upper-case(substring-before($in, ' ')), 'X') $in => substring-before(' ') => upper-case() => contains('x') unie bezpośrednie odwołania do zewnętrznych przestrzeni nazw Q{http://www.w3.org/2005/xpath-functions/math}pi

Ograniczenia XPath Nie można wyszukiwać łańcuchów znaków rozciągających się poprzez kilka elementów (np. przy zawartości mieszanej) Brak możliwości wskazania na znaczniki początkowy i końcowy; Brak możliwości wyszukiwania encji i sekcji CDATA Brak możliwości wskazywania punktów lub zakresów w tekście. Nie można zadeklarować oczekiwanego sortowania Nie można przeprowadzać operacji agregacji

Podsumowanie XPath jest to język, który: Pozwala na posługiwanie się dokumentem XML jak drzewem katalogowym Posiada możliwość korzystania ze zmiennych, atomizacji, obliczeń, sekwencji, kwalifikatorów, funkcji Posiada możliwość definiowania osi, testów i predykatów Jest używany w XQuery, XSLT etc.