XML extensible Markup Language 7

XML – eXtensible Markup Language 7 XQuery Co to jest XQuery? • XQuery to język zapytań dla XML. • XQuery jest dla XML tym czym SQL dla baz danych, a...
1 downloads 2 Views 874KB Size
XML – eXtensible Markup Language 7

XQuery Co to jest XQuery? • XQuery to język zapytań dla XML. • XQuery jest dla XML tym czym SQL dla baz danych, a SPARQL dla RDF. • XQuery wykorzystuje wyrażenia XPath. • XQuery jest wspierany przez większość baz danych. • XQuery jest rekomendacją W3C.

XQuery Kilka zasad dotyczących składni XQuery: • Xquery jest case-sensitive • w XQuery elementy, atrybuty i zmienne muszą być poprawnymi nazwami XML • ciągi znaków w XQuery mogą znajdować się w pojedynczym bądź podwójnym cudzysłowie • nazwy zmiennych w XQuery składają się z $ i nazwy np. $zmienna • komentarze w XQuery umieszczane są między symbolami (: i :), np. (: komentarz XQuery :)

Dokument XML Alan Turing computer scientist mathematician 45 Richard Feynman physicist 120

people.xml

XQuery – rozszerzenie do Firefox

XQuery – rozszerzenie do Firefox

XQuery – rozszerzenie do Firefox

XQuery – rozszerzenie do Firefox

XQuery – rozszerzenie do Firefox

XQuery – otwieranie pliku Plik otwierany jest za pomocą funkcji doc(): doc("people.xml") Nawigacja po elementach dokumentu XML odbywa się za pomocą wyrażeń XPath np.: doc("people.xml")/people/person

XQuery Przykład: doc()/people/person

XQuery Przykład: doc()/people/person/profession

XQuery – warunki Dane pobierane z dokumentów XML możemy ograniczać warunkami: doc("people.xml")/people/person[warunek] Przykład: doc()/people/person[publications>90]

XQuery – FLWOR FLWOR – akronim od FOR, LET, WHERE, ORDER BY, RETURN. Wyrażenia FLWOR są podobne do SQL-owego SELECT-FROMWHERE. for – tworzy sekwencję węzłów (nodów).

let – przypisuje sekwencję do zmiennej. where – filtruje węzły. order by – sortuje węzły. return – określa co ma być zwrócone.

XQuery – FLWOR Przykład: doc()/people/person[publications>90]/name

for $x in doc()/people/person where $x/publications>90 return $x/name

XQuery – FLWOR Przykład: for $x in doc()/people/person order by $x/name/last_name return $x/name

XQuery – FLWOR Przykład: for $x in doc()/people/person/name order by $x/last_name return $x

XQuery – FLWOR Przykład: for $x in doc()/people/person/name order by $x/last_name return $x/last_name

XQuery – FLWOR Przykład: { for $x in doc()/people/person/name order by $x/last_name return {$x/last_name} }

XQuery – funkcja data Funkcję data() stosujemy wtedy gdy chcemy uzyskać tylko zawartość elementu (bez znaczników). Przykład: { for $x in doc()/people/person/name order by $x/last_name return {data($x/last_name)} }

XQuery – instrukcja warunkowa W XQuery możemy stosować ‘standardową’ instrukcję warunkową. Przykład: for $x in doc()/people/person return if($x/@died="1988") then {$x/name/last_name} else {$x/name/last_name}

XQuery – porównywanie wartości W XQuery istnieją dwa sposoby porównywania: Ogólne porównania: =, !=, = Porównania wartości: eq, ne, lt, le, gt, ge

XQuery – FLWOR Przykład: for $x in doc()/people/person/profession order by $x return $x

XQuery – elementy HTML + tekst Przykład: { for $x in doc()/people/person order by $x/name/last_name return {data($x/name/last_name)} - publikacji: {data($x/publications)} }

XQuery – elementy HTML + tekst + atrybuty Przykład: { for $x in doc()/people/person order by $x/name/last_name return {data($x/name/last_name)} - publikacji: {data($x/publications)} }

XQuery – klauzula for Klauzula for pozwala realizować określoną ilość razy iteracje (słówko to): for $x in (1 to 6) return {$x}

XQuery – klauzula for Klauzula for pozwala realizować określoną ilość razy iteracje (słówko to): for $x in (1 to 3), $y in (1 to 4) return {$x}{$y}

XQuery – klauzula for Iteracje możemy „zliczać” z wykorzystaniem słówka at: for $x at $i in doc()/people/person/name return {$i}. {data($x/last_name)}

XQuery – klauzula for Iteracje możemy „zliczać” z wykorzystaniem słówka at: for $x at $i in doc()/people/person/name return {$i}. {data($x/last_name)}

XQuery – klauzula let Klauzula let pozwala przypisywać zmiennym wartości i pozwalaj uniknąć wielokrotnego powtarzania tego samego wyrażenia. let $x:=(1 to 6) return {$x}

XQuery – funkcje XQuery oferuje wiele „wbudowanych” funkcji. { for $x in doc()/people/person/name order by $x/last_name return {substring(data($x/last_name),1,4)} }

XQuery – funkcje XQuery oferuje wiele „wbudowanych” funkcji. { for $x in doc()/people/person/name order by $x/last_name return {upper-case(data($x/last_name))} }

XQuery – funkcje XQuery oferuje wiele „wbudowanych” funkcji. { for $x in doc()/people/person/name order by $x/last_name return {upper-case(data($x/last_name))} }

Kompletny spis funkcji XQuery można znaleźć na stronie:

http://www.w3schools.com/xpath/xpath_functions.asp

Suggest Documents