1 Maciej Zabielski 15 stycznia 2003XML – Języki Zapytań Maciej Zabielski 15 stycznia 2003
2 XML - Języki Zapytań, Maciej Zabielski 2003Wprowadzenie W ciągu ostatnich kilku lat technologia XML zyskiwała na popularności. Ciągle pojawiają się nowe systemy oparte o ta technologie. XML wykorzystywany jest do wielu rzeczy, od wymiany danych miedzy systemami po bazy danych. W związku z tym ilość danych zapisanych w tym formacie ciągle wzrasta i konieczna jest efektywna metoda ich przeszukiwania za pomocą języków zapytań. XML - Języki Zapytań, Maciej Zabielski 2003
3 XML - Języki Zapytań, Maciej Zabielski 2003XQuery Status: W3C Working Draft Pełna specyfikacja (około 180 stron): Podstawowe założenie: „inteligentne” przeszukiwanie danych fizycznie zapisanych w formacie XML lub udostępnionych przez middleware. XML - Języki Zapytań, Maciej Zabielski 2003
4 Struktura modułu XQueryPełne zapytanie składa się z 3 części Pierwsze dwie to tzw. Query Prolog – są opcjonalne. Pierwsza cześć zawiera deklaracje Namespace i polecenia importu schematów (XML Schema) Namespace xsd = ‘http://www.w3.org/2000/01/XMLSchema’ Druga cześć może zawierać funkcje zdefiniowana przez użytkownika. Np: funkcja obliczającą silnie ze znalezionej liczby: Define function factorial(xsd:integer $n) returns xsd:integer{ if($n eq 0) then 1 else $n * factorial($n – 1) } XML - Języki Zapytań, Maciej Zabielski 2003
5 Struktura modułu XQueryTrzecia część zawiera samo zapytanie.
6 Inne Typy Zapytań XQueryFLWR Expressions („flower”) Path Expressions Element Constructors Conditional Expressions Function Calls XML - Języki Zapytań, Maciej Zabielski 2003
7 XML wykorzystywany w przykladachXML - Języki Zapytań, Maciej Zabielski 2003
8 XQuery FLWR ExpressionsTen typ wyrażeń jest jednym z najciekawszych stosowanych w XQuery. Przypominają SELECT stosowany w SQL – cechuje go podobna funkcjonalność. FLWR to skrót od „For-Let-Where-Return” – są to trzy podstawowe klauzule z których składa się wyrażenie. Przykładowe wyrażenie FLWR które znajduje wszystkie elementy których cena jest poniżej średniej: for $i in document("data/items.xml")//item let $avg_price := avg(document("data/items.xml")//item/price) where $i/price < $avg_price return
9 XQuery Path ExpressionsWyrażenia typu „Path” („ścieżka”) są dokładnie takimi samymi wyrażeniami jakie były stosowane w standardzie XML Path Language (XPath). Pełna specyfikacja XPath 1.0: W uproszczeniu można powiedzieć, ze wyrażenie typu XPath to opis w jaki sposób należy nawigować po XML’u (reprezentowanym w postaci drzewa) aby dotrzeć do szukanej wartości. Następujący przykład zwraca wszystkie elementy „item” których tym „itemType” ma wartość "Purchasing item„ document("data/items.xml")/ixq:items/item[ItemType = "Purchasing item"] XML - Języki Zapytań, Maciej Zabielski 2003
10 XQuery - Element Constructors„Konstruktory Elementów” mogą być przydatne wtedy, gdy podczas budowania zapytania, chcemy aby częścią wyniku były nowe elementy. Przykład konstruktora:
11 XQuery – Conditional ExpressionsWyrażenia warunkowe w XQuery maja następującą postać: if
12 XQuery - ImplementacjeJedna z implementacji, w postaci demo, jest dostępna na stronie Microsoft: Przykłady zapytań można znaleźć na XQuery Expression:
13 XML - Języki Zapytań, Maciej Zabielski 2003Software AG – Tamino XQuery Demo XML - Języki Zapytań, Maciej Zabielski 2003
14 Bibliografia & Inne LinkiXML Path Language (XPath) XQuery 1.0: An XML Query Language Microsoft's XQuery Prototype The Quest for an XML Query Standard XML - Języki Zapytań, Maciej Zabielski 2003