Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Maciej Zabielski 15 stycznia 2003
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ń. XML - Języki Zapytań, Maciej Zabielski 2003
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. XML - Języki Zapytań, Maciej Zabielski 2003
4
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) } XML - Języki Zapytań, Maciej Zabielski 2003
5
Struktura modułu XQuery
Trzecia część zawiera samo zapytanie. <Results> <Description>Factorial of 10<Description/> <Value>{factorial(10)}<Value/> <Results/> 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. XML - Języki Zapytań, Maciej Zabielski 2003
6
Inne Typy Zapytań XQuery
FLWR Expressions („flower”) Path Expressions Element Constructors Conditional Expressions Function Calls XML - Języki Zapytań, Maciej Zabielski 2003
7
XML wykorzystywany w przykladach
XML - Języki Zapytań, Maciej Zabielski 2003
8
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 <LowPricedItems> {$i/itemno, $i/description, $i/price} </LowPricedItems> 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. XML - Języki Zapytań, Maciej Zabielski 2003
9
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 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: <newElement>Hello World</newElement> 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. <MyListOfExpensiveItems>{ document("data/items.xml")/ixq:items/item [price > 1000] }</MyListOfExpensiveItems> XML - Języki Zapytań, Maciej Zabielski 2003
11
XQuery – Conditional Expressions
Wyrażenia warunkowe w XQuery maja następującą postać: if <wyrazenie_warunkowe> then <wyrazenie_1> else <wyrazenie_2> 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. XML - Języki Zapytań, Maciej Zabielski 2003
12
XQuery - Implementacje
Jedna z implementacji, w postaci demo, jest dostępna na stronie Microsoft: Przykłady zapytań można znaleźć na XQuery Expression: <bib> { for $b in document(" where $b/publisher = "Addison-Wesley" and > 1991 return <book year="{ }"> { $b/title } </book> } </bib> Query Results: <bib> <book year="1994"> <title>TCP/IP Illustrated</title> </book> <book year="1992"> <title>Advanced Programming in the Unix environment</title> </book> XML - Języki Zapytań, Maciej Zabielski 2003
13
XML - Języki Zapytań, Maciej Zabielski 2003
Software AG – Tamino XQuery Demo XML - Języki Zapytań, Maciej Zabielski 2003
14
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 XML - Języki Zapytań, Maciej Zabielski 2003
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.