Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

XML – Języki Zapytań Maciej Zabielski 15 stycznia 2003.

Podobne prezentacje


Prezentacja na temat: "XML – Języki Zapytań Maciej Zabielski 15 stycznia 2003."— Zapis prezentacji:

1 XML – Języki Zapytań Maciej Zabielski 15 stycznia 2003

2 XML - Języki Zapytań, Maciej Zabielski 2003 Wprowadzenie 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ń.

3 XML - Języki Zapytań, Maciej Zabielski 2003 XQuery 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.

4 XML - Języki Zapytań, Maciej Zabielski 2003 Struktura modułu XQuery Peł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 = 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) }

5 XML - Języki Zapytań, Maciej Zabielski 2003 Struktura modułu XQuery Trzecia część zawiera samo zapytanie. Factorial of 10 {factorial(10)} Tak jak tutaj, może się składać np. z konstruktora elementów (Element Constructor ) który w tym przypadku stworzy element Results. W tym przykładzie zostanie wywołana nasza funkcja Factorial z parametrem value = 10 a rezultat zostanie wstawiony do elementu Value.

6 XML - Języki Zapytań, Maciej Zabielski 2003 Inne Typy Zapytań XQuery FLWR Expressions (flower) Path Expressions Element Constructors Conditional Expressions Function Calls

7 XML - Języki Zapytań, Maciej Zabielski 2003 XML wykorzystywany w przykladach

8 XML - Języki Zapytań, Maciej Zabielski 2003 XQuery FLWR Expressions Ten 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 {$i/itemno, $i/description, $i/price} For -> łączy zmienna i do listy elementów item z dokumentu items.xml Let -> oblicza średnią wartość (price) ze wszystkich elementów item Where -> wybiera te elementy item których cena (price) jest poniżej średniej (spośród tych w i) Return -> tworzy elementy LowPricedItem zawierające itemno, description i price wybranych elementoów.

9 XML - Języki Zapytań, Maciej Zabielski 2003 XQuery Path Expressions Wyraż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 XMLu (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"]

10 XML - Języki Zapytań, Maciej Zabielski 2003 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: Hello World Taki zapis spowoduje utworzenie nowego elementu nazwanego newElement z jednym węzłem tekstowym o wartości Hello World (tzw. child text node). Nowe elementy mogą zawierać albo z góry ustalona wartość, albo wartość wyliczona lub pochodzącą z innej części zapytania. Poniższy przykład stworzy nowy element MyListOfExpensiveItems zawierający jako dzieci (child elements) wszystkie elementy item których cena była większa niż $1000. { document("data/items.xml")/ixq:items/item [price > 1000] }

11 XML - Języki Zapytań, Maciej Zabielski 2003 XQuery – Conditional Expressions Wyrażenia warunkowe w XQuery maja następującą postać: if then else W wyrażeniach warunkowych wyrazenie_warunkowe powinno prowadzić do TRUE lub FALSE. Jeżeli wyrazenie_warunkowe przyjmie wartość TRUE wartość całego wyrażenia warunkowego jest taka sama jak wartość wyrażenia #1 – w przeciwnym przypadku będzie to wartość wyrażenia #2.

12 XML - Języki Zapytań, Maciej Zabielski 2003 XQuery - Implementacje Jedna z implementacji, w postaci demo, jest dostępna na stronie Microsoft: Przykłady zapytań można znaleźć na XQuery Expression: { for $b in document("http://www.bn.com/bib.xml")/bib/book where $b/publisher = "Addison-Wesley" and > 1991 return { $b/title } } Query Results: TCP/IP Illustrated Advanced Programming in the Unix environment

13 XML - Języki Zapytań, Maciej Zabielski 2003 Software AG – Tamino XQuery Demo

14 XML - Języki Zapytań, Maciej Zabielski 2003 Bibliografia & Inne Linki XML Path Language (XPath) XQuery 1.0: An XML Query Language Microsoft's XQuery Prototype The Quest for an XML Query Standard


Pobierz ppt "XML – Języki Zapytań Maciej Zabielski 15 stycznia 2003."

Podobne prezentacje


Reklamy Google