XPath 2.0 / XSLT 2.0 / XQuery 1.0. Inne standardy związane z XML-em. XPath 2.0 XSLT 2.0. XPath 2.0 funkcyjny język programowania

Podobne dokumenty
XPath 2.0 / XSLT 2.0 / XQuery 1.0. Inne standardy związane z XML-em. XPath 2.0 XSLT 2.0. XPath2.0 funkcyjny język programowania

Inne standardy zwiazane z XML

Inne standardy zwiazane z XML

Rodzaje przetwarzania XSLT (1) XSLT część 2. Inne standardy związane z XML-em. Rodzaje przetwarzania XSLT (2) Zmienne. Zaawansowane możliwości XSLT

XML w bazach danych, standardy wiążące dokumenty XML

XML standardy pokrewne

XSLT. Patryk Czarnik. Instytut Informatyki UW. XML i nowoczesne technologie zarzadzania treścia 2007/08

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2007/08

SGML a XML różnice. XML a SGML. Standardy pokrewne. Minimalizacja w SGML-u. Elementy w SGML-u. Atrybuty w SGML-u

XML Path Language (XPath)

XML w bazach danych, standardy wiaż ace dokumenty XML

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

Język XSLT. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

XML extensible Markup Language 7

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

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

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

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarządzania treścią 2008/09. Instytut Informatyki UW

Języki XPath i XQuery

Języki XPath i XQuery

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 04

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2008/09. Instytut Informatyki UW. Patryk Czarnik 08 XSLT XML 2008/09 1 / 1

XQuery. sobota, 17 grudnia 11

XML extensible Markup Language. część 6

Cechy języka XQUERY. o na wejściu dokument lub fragment względnie kolekcja dokumentów lub fragmentów o na wyjściu dokument lub fragment.

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Przetwarzanie dokumentów XML za pomocą procesora XSLT (Zajęcia r.

Języki XPath i XQuery

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

Języki formatowania dokumentów strukturalnych. XSL przekształcenia XML-a. XSL a XSLT. XSL części składowe. Zasada działania przekształcenia XSLT

XML w bazach danych i bezpieczeństwie

Wprowadzenie do XSLT

Rodzaje przetwarzania XSLT (1)

XML i nowoczesne technologie zarządzania treścią

XML extensible Markup Language. część 3

Przetwarzanie dokumentów XML za pomocą XSLT ( r.)

XML w bazach danych i bezpieczeństwie

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarządzania treścią 2011/12

XML extensible Markup Language 3

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

XML extensible Markup Language. część 4

XML extensible Markup Language. część 8

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

XSLT. Patryk Czarnik. XML i nowoczesne technologie zarzadzania treścia 2011/12. Instytut Informatyki UW. Patryk Czarnik 08 XSLT XML 2011/12 1 / 54

APEX zaawansowany raport

Tworzenie raportów XML Publisher przy użyciu Data Templates

Przykładowy dokument XML

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

Standard SQL/XML. Wprowadzenie do XQuery

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

Przegląd języków zapytań

DB2 XML w relacyjnych bazach danych wstęp do wprowadzenia. Kuba Pochrybniak

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

Spis treści. Przedmowa

15. Funkcje i procedury składowane PL/SQL

Instrukcja obsługi User s manual

Informatyka (10) dr inż. Katarzyna Palikowska Katedra Transportu Szynowego i Mostów p. 4 Hydro

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Przykładowy dokument XML

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

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

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Model semistrukturalny

Bazy danych dokumentów XML wykład 3 modyfikacja dokumentów

XML materiały dydaktyczne - Kurs Podstawowy XSL - wprowadzenie. XSL warstwa przekształcania (XSLT) oraz prezentacji informacji (XSL FO).

SPECYFIKACJA FUNKCJONALNA OPROGRAMOWANIA 11 marca 2014 XLZEBRAPRINTER

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

Language INtegrated Query (LINQ)

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

XML i nowoczesne technologie zarządzania treścią

Intro. I.Wojnicki, ZTB:XML ZTB: XML. Igor Wojnicki. Katedra Informatyki Stosowanej, Akademia Górniczo-Hutnicza w Krakowie.

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

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Zajęcia 13 wykorzystanie MySQL w PHP cz. 2

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Przykładowy dokument XML

Język XML Query. Czym jest XML Query? Po co XML Query? Tomasz Traczyk. Czym jest XML Query? Wprowadzenie do składni języka.

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

1. CZYM JEST SERIALIZACJA

Środowisko publikacyjne oparte na XML-u. Szymon Zioło 1 maja 2004

Bazy danych i strony WWW

Prezentacja i transformacja

1 Wprowadzenie do bloków nazwanych 1. 2 Parametry 2. 3 Procedury i funkcje 3. 4 Pakiety 6. 5 Podsumowanie Źródła 10

Oracle11g: Wprowadzenie do SQL

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Pakiety podprogramów Dynamiczny SQL

Plan wykładu BAZY DANYCH II WYKŁAD 3. Zasięg zmiennych. Zasięg zmiennych

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

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

HTML DOM, XHTML cel, charakterystyka

XML i nowoczesne metody zarządzania treścią

<body> <div style="max-width: 900px; margin: 0 auto;">

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML

Pakiet XML Czym jest i z czym się je?

PODSTAWY BAZ DANYCH 13. PL/SQL

Rozszerzenie funkcjonalności systemów wiki w oparciu o wtyczki i Prolog

Podstawy (X)HTML i CSS

Transkrypt:

XPath 2.0 / XSLT 2.0 / XQuery 1.0 XML Syntax for XQuery 1.0 (XQueryX) Full-Text Inne standardy związane z XML-em korzysta z XQuery 1.0 XPath 2.0 XSLT 2.0 XSLT 2.0 and XPath 2.0 Serialization Data Model Functions and Operators Formal Semantics XML Schema 2006-11-30 XSLT część 2 system typów 2 XPath 2.0 Język: już nie tylko do wskazywania węzłów w dokumencie, operujący na sekwencjach (wartości atomowych lub węzłów), funkcyjny język programowania. Model danych: wykorzystanie typów danych (19 typów pierwotnych XML Schema), wykorzystanie informacji dostępnych w Post-Schema Validation Infoset (typów danych, wartości domyślnych, itp.). XPath 2.0 funkcyjny język programowania Operacje na sekwencjach, np.: sum(for $x in /order/item return $x/price * $x/quantity) $x intersect /order/item/number Wyrażenia warunkowe, np.: if ($widget1/unit-cost < $widget2/unit-cost) then $widget1 else $widget2 Kwantyfikatory, np.: some $x in /students/student/name satisfies $x = "Fred" every $x in /students/student/name satisfies $x = "Fred" Przykłady na podstawie: Lenz, E., What s New in XPath 2.0, http://www.xml.com/pub/a/2002/03/20/xpath2.html 2006-11-30 XSLT część 2 3 2006-11-30 XSLT część 2 4 XSLT 2.0 Najważniejsze zmiany w stosunku do XSLT 1.0: możliwość wykorzystania typów ze schematu XML Schema, wykorzystanie XPath 2.0, grupowanie węzłów (for-each-group), definiowanie i wywoływanie własnych funkcji, generowanie wielu dokumentów wyjściowych, koniec z fragmentami drzewa wynikowego (teraz używamy sekwencji XPath 2.0). XSLT 2.0 wiele dokumentów wyjściowych <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform" xmlns="http://www.w3.org/1999/xhtml"> <xsl:output method="xhtml"/> <xsl:output method="text" name="textformat"/> <xsl:template match="/"> <html><body> <p>here is a list of links to text files:</p> <ul><xsl:apply-templates select="//textblob"/> </ul> </body></html> </xsl:template> <xsl:template match="textblob"> <xsl:variable name="uri" select="concat('text', position(), '.txt')"/> <li><a href="{$uri}"><xsl:value-of select="$uri"/></a></li> <xsl:result-document href="{$uri}" format="textformat"> <xsl:value-of select="."/> </xsl:result-document> </xsl:template> </xsl:stylesheet> Źródło: Lenz, E., What s New in XSLT 2.0, http://www.xml.com/pub/a/2002/04/10/xslt2.html 2006-11-30 XSLT część 2 5 2006-11-30 XSLT część 2 6 1

XSLT 2.0 grupowanie XQuery zapytania o dokumenty XML <cities> <city name="milan" country="italy" pop="5"/> <city name="paris" country="france" pop="7"/> <city name="munich" country="germany" pop="4"/> <city name="lyon" country="france" pop="2"/> <city name="venice" country="italy" pop="1"/> </cities> <xsl:for-each-group select="cities/city" group-by="@country"> <tr> <td><xsl:value-of select="@country"/></td> <td><xsl:value-of select="current-group()/@name" separator=", "/></td> <td><xsl:value-of select="sum(current-group()/@pop)"/> </td> </tr> </xsl:for-each-group> Język zapytań o dokumenty XML: podobny do SQL-a, pozwala pytać o kolekcje dokumentów, rozszerza funkcjonalność XPath m. in. o: zmienne, wyrażenia FLWOR (for, let, where, order by, return), złączenia, wyrażenia warunkowe, definiowanie funkcji, konstruktory, umożliwiające tworzenie struktur XML w zapytaniu, wyrażenia walidujące względem schematu. Dostępne składnie: SQL-opodobna, oparta na XML-u. Źródło: Lenz, E., What s New in XSLT 2.0, http://www.xml.com/pub/a/2002/04/10/xslt2.html 2006-11-30 XSLT część 2 7 2006-11-30 XSLT część 2 8 XQuery przykład Who is who? Zwróć nazwę każdego wydawcy i średnią cenę jego książek: FOR $p IN distinct(document("bib.xml")//publisher) LET $a := avg(document("bib.xml")//book[publisher = $p]/price) RETURN <publisher> <name>{ $p/text() }</name> <avgprice>{ $a }</avgprice> </publisher> Źródło: XML Syntax for XQuery 1.0 (XQueryX), http://www.w3.org/tr/xqueryx XPath 2.0: The primary purpose of XPath is to address the nodes of XML or trees. XPath 2.0 is an expression language that allows the processing of values conforming to the data model. XPath is designed to be embedded in a hostlanguage such as XSLT 2.0 or XQuery. XPath has a natural subset that can be used for matching (testing whether or not a node matches a pattern. XSLT 2.0: A language for transforming XML documents into other XML documents. XQuery 1.0: A language for retrieving and interpreting information from a broad spectrum of XML information sources, including both databases and documents. Cytaty z Candidate Recommendations. 2006-11-30 XSLT część 2 9 2006-11-30 XSLT część 2 10 XPointer adresowanie fragmentów dokumentu XML XPath opakowany w składnię URI, np.: http://www.sejm.gov.pl/ustawa.xml#xpointer(/art[5]/ par[2]) Dodatkowe możliwości: proste adresowanie elementów opatrzonych atrybutami ID, np.: urlopy adresowanie elementów bez znajomości struktury, z wykorzystaniem atrybutów ID jako kotwic, np.: element(/4/2/3) element(urlopy/2/3) wskazanie punktu w dokumencie, wskazanie zakresu pomiędzy dwoma punktami, wskazanie punktów w tekście i fragmentów tekstu. XPointer punkty Użycie: point(1/2/1.1) Źródło: XPointer xpointer() Scheme, W3C Working Draft 19 December 2002, http://www.w3.org/tr/xptr-xpointer/ 2006-11-30 XSLT część 2 11 2006-11-30 XSLT część 2 12 2

XPointer status Rekomendacje W3C z 25 marca 2003: XPointer Framework, XPointer element() scheme, XPointer xmlns() scheme. W3C Working Draft: XPointer xpointer() scheme. XInclude łączenie zawartości dokumentów Załączanie zawartości jednego dokumentu XML do innego: pozwala załączyć fragment dokumentu (wskazany XPointer-em), pozwala określić zawartość używaną w razie błędu. Przykład: <file name="salatka.xml"> <xi:include xmlns:xi="http://www.w3.org/2001/xinclude" href="salatka.xml#xpointer(/przepis/tytul)"/> </file> po przetworzeniu procesorem XInclude: <file name="salatka.xml"> <tytul>sałatka z ogórków</tytul> </file> Status: Rekomendacja W3C z 20 grudnia 2004. 2006-11-30 XSLT część 2 13 2006-11-30 XSLT część 2 14 XLink dowiązania w XML-u Terminologia Linki jakie znamy (HTML): łączą dwa dokumenty: źródło i cel linku, źródłem linku jest zawsze element opisujący link (A, IMG). XLink rozszerzona koncepcja dowiązań: dowolne elementy przechowują informacje o linkach, informacja o linkach poza połączonymi dokumentami, więcej niż dwa końce linku. Status: rekomendacja W3C z 27 czerwca 2001, korzenie historyczne: HyTime. Zasób (resource) dowolna adresowalna jednostka informacji lub usługa. Dowiązanie (link) jawnie wyrażona (przy pomocy elementu wiążącego (linking element)) relacja pomiędzy zasobami. te zasoby uczestniczą (participate) w dowiązaniu. Przejście (traversal) użycie pary zasobów połączonej dowiązaniem. Łuk (arc) informacja o przejściu między dwoma zasobami (kierunek, zachowanie aplikacji, itp.): wychodzący (outbound), wchodzący (inbound), niezależny (third party). 2006-11-30 XSLT część 2 15 2006-11-30 XSLT część 2 16 Dowiązania XLink Simple link przykład Extended link: wiąże dowolną liczbę zasobów: zasoby zewnętrzne (np. odwołania do innych dokumentów), zasoby lokalne (zawarte w elemencie wiążącym). łuki opisujące sposoby przechodzenia pomiędzy zasobami, role zasobów uczestniczących w linku, role łuków. Simple link: link wychodzący, wiąże dokładnie 2 zasoby: 1 lokalny i 1 zewnętrzny, jeden łuk z zasobu lokalnego do zewnętrznego. <osoba xmlns:xlink="http://www.w3.org/1999/xlink"> <nazwisko>kopernik, Mikołaj</nazwisko> <biogram>wybitny polski astronom, matematyk, lekarz, prawnik, tłumacz poezji włoskiej i ekonomista, pochodził z rodziny wywodzącej się z mieszczan krakowskich. Urodzony w <geogr xlink:type="simple" xlink:href="torun.xml">toruniu</geogr>.</biogram> </osoba> 2006-11-30 XSLT część 2 17 2006-11-30 XSLT część 2 18 3

Extended link - przykład Przyszłość XLink <fikcja xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="extended"> <wypowiedz xlink:type="resource">kopernik była kobietą!</wypowiedz> <film xlink:type="locator" xlink:href="seksmisja.xml" xlink:title="seksmisja"/> <osoba xlink:type="locator" xlink:href="kopernik.xml" xlink:title="kopernik, Mikołaj"/> <pojecie xlink:type="locator" xlink:href="kobieta.xml" xlink:title="kobieta"/> </fikcja> Zastosowania: organizowanie, kojarzenie zasobów, nawet gdy nie mamy prawa zapisu, dostarczanie wartości dodanej zbiorów linków. Zasięg: lokalny: serwery linków operujące na bazie linków, Internet? Problemy: wizualizacja extended links, synchronizacja zasobów i linków (Internet). 2006-11-30 XSLT część 2 19 2006-11-30 XSLT część 2 20 XForms zaawansowane formularze Odpowiedź na ograniczenia formularzy w HTML-u: kontrola dziedziny wprowadzanych danych po stronie klienta, specyfikowanie pól obowiązkowych i opcjonalnych, zależności między polami, np.: wartość pola jest funkcją wartości innych pól, pole jest widoczne tylko przy określonej zawartości innych pól; wyzwalacze aktywowane zdarzeniami interfejsu użytkownika, bogaty zasób kontrolek, np.: powtórzenia, grupy, wielopoziomowe wybory, suwaki do wyboru wartości z zakresu, kontrolki wyboru plików. Status: rekomendacja W3C z 14 października 2003 r., możliwość zanurzania w XHTML-u. XForms prosty formularz <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xf="http://www.w3.org/2002/xforms"> <head> <xf:model id="model1"> <xf:instance> <dane xmlns=""><imię/><nazwisko/></dane> </xf:instance> <xf:submission id="submit" method="post" action="http://xformstest.org/test"/> </xf:model> </head> <body> <h1>wpisz swoje dane</h1> <xf:input model="model1" ref="imię"> <xf:label>imię</xf:label> </xf:input> <xf:input model="model1" ref="nazwisko"> <xf:label>nazwisko</xf:label> </xf:input> <xf:submit submission="submit"> <xf:label>save</xf:label> </xf:submit> </body> </html> 2006-11-30 XSLT część 2 21 2006-11-30 XSLT część 2 22 XForms przykład (program X-Smiles) Gdzie szukać dalej DuCharme, B., The Path of Control www.xml.com/pub/a/2005/05/04/tr-xml.html Arciniegas, A. F., What is XLink? www.xml.com/pub/a/2000/09/xlink Carr, L., Initial Experiences of an XLink Implementation journals.ecs.soton.ac.uk/xml4j/xlinkexperience.html XPointer tutorial www.zvon.org/xxl/xpointer/tutorial/outputexamples/xpointer_tut.html Tamino XQuery Demo tamino.demozone.softwareag.com/demoxquery Źródło: Kazienko, P., Co tam panie w XML-u?, Software 2.0, 6/2003 2006-11-30 XSLT część 2 23 2006-11-30 XSLT część 2 24 4

Gdzie szukać dalej XForms Institute. Interactive XForms School xformsinstitute.com Dubinko, M., What Are XForms? www.xml.com/pub/a/2001/09/05/xforms.html Dubinko, M., Ten Favorite XForms Engines www.xml.com/pub/a/2005/02/09/xforms.html Kazienko, P., Co tam panie w XML-u? Software 2.0, nr 6/2003, Wydawnictwo Software 2006-11-30 XSLT część 2 25 5