Inne standardy zwizane z XMLem 2005 11 17

  • Slides: 29
Download presentation
Inne standardy związane z XML-em 2005 -11 -17 XSLT – część 2

Inne standardy związane z XML-em 2005 -11 -17 XSLT – część 2

XPath 2. 0 / XSLT 2. 0 / XQuery 1. 0 XML Syntax for

XPath 2. 0 / XSLT 2. 0 / XQuery 1. 0 XML Syntax for XQuery 1. 0 (XQuery. X) XQuery 1. 0 and XPath 2. 0 Full-Text rozszerzenie XQuery 1. 0 rozszerzenie XPath 2. 0 korzysta z XSLT 2. 0 and XPath 2. 0 XQuery 1. 0 and XPath 2. 0 Serialization Functions and Operators XQuery 1. 0 and XPath 2. 0 Data Model Formal Semantics XML Schema 2005 -11 -17 XSLT – część 2 system typów 2

XPath 2. 0 • Język: – już nie tylko do wskazywania węzłów w dokumencie,

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. ). 2005 -11 -17 XSLT – część 2 3

XPath 2. 0 – funkcyjny język programowania • Operacje na sekwencjach, np. : sum(for

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 ($widget 1/unit-cost < $widget 2/unit-cost) then $widget 1 else $widget 2 • 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/xpath 2. html 2005 -11 -17 XSLT – część 2 4

XSLT 2. 0 • Najważniejsze zmiany w stosunku do XSLT 1. 0: – –

XSLT 2. 0 • Najważniejsze zmiany w stosunku do XSLT 1. 0: – – – 2005 -11 -17 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 – część 2 5

XSLT 2. 0 – wiele dokumentów wyjściowych <xsl: stylesheet version="2. 0" xmlns: xsl="http: //www.

XSLT 2. 0 – wiele dokumentów wyjściowych <xsl: stylesheet version="2. 0" xmlns: xsl="http: //www. w 3. org/1999/XSL/Transform" xmlns="http: //www. w 3. org/1999/xhtml"> <xsl: output method="xhtml"/> <xsl: output method="text" name="text. Format"/> <xsl: template match="/"> <html><body> <p>Here is a list of links to text files: </p> <ul><xsl: apply-templates select="//text. Blob"/> </ul> </body></html> </xsl: template> <xsl: template match="text. Blob"> <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="text. Format"> <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/xslt 2. html 2005 -11 -17 XSLT – część 2 6

XSLT 2. 0 – grupowanie <cities> <city name="milan" country="italy" pop="5"/> <city name="paris" country="france" pop="7"/>

XSLT 2. 0 – grupowanie <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(currentgroup()/@pop)"/> </td> </tr> </xsl: for-each-group> Źródło: Lenz, E. , What’s 2005 -11 -17 XSLT – część New 2 in XSLT 2. 0, http: //www. xml. com/pub/a/2002/04/10/xslt 2. html 7

XQuery – zapytania o dokumenty XML • Język zapytań o dokumenty XML: – podobny

XQuery – zapytania o dokumenty XML • 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. 2005 -11 -17 XSLT – część 2 8

XQuery – przykład • Zwróć nazwę każdego wydawcy i średnią cenę jego książek: FOR

XQuery – przykład • 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 (XQuery. X), http: //www. w 3. org/TR/xqueryx 2005 -11 -17 XSLT – część 2 9

Who is who? • XPath 2. 0: – The primary purpose of XPath is

Who is who? • 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 host language 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. 2005 -11 -17 XSLT – część 2 10

XPointer – adresowanie fragmentów dokumentu XML • XPath „opakowany” w składnię URI, np. :

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. 2005 -11 -17 XSLT – część 2 11

XPointer – punkty • Użycie: point(1/2/1. 1) Źródło: XPointer xpointer() Scheme, W 3 C

XPointer – punkty • Użycie: point(1/2/1. 1) Źródło: XPointer xpointer() Scheme, W 3 C Working Draft 19 December 2002, http: //www. w 3. org/TR/xptr-xpointer/ 2005 -11 -17 XSLT – część 2 12

XPointer – status • Rekomendacje W 3 C z 25 marca 2003: – XPointer

XPointer – status • Rekomendacje W 3 C z 25 marca 2003: – XPointer Framework, – XPointer element() scheme, – XPointer xmlns() scheme. • W 3 C Working Draft: – XPointer xpointer() scheme. 2005 -11 -17 XSLT – część 2 13

XInclude – łączenie zawartości dokumentów • Załączanie zawartości jednego dokumentu XML do innego: –

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. w 3. 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 W 3 C z 20 grudnia 2004. 2005 -11 -17 XSLT – część 2 14

XLink – dowiązania w XML-u • Linki jakie znamy (HTML): – łączą dwa dokumenty:

XLink – dowiązania w XML-u • 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 W 3 C z 27 czerwca 2001, – korzenie historyczne: Hy. Time. 2005 -11 -17 XSLT – część 2 15

Terminologia • Zasób (resource) – dowolna adresowalna jednostka informacji lub usługa. • Dowiązanie (link)

Terminologia • 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). 2005 -11 -17 XSLT – część 2 16

Dowiązania XLink • Extended link: – wiąże dowolną liczbę zasobów: • zasoby zewnętrzne (np.

Dowiązania XLink • 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. 2005 -11 -17 XSLT – część 2 17

Simple link – przykład <osoba xmlns: xlink="http: //www. w 3. org/1999/xlink"> <nazwisko>Kopernik, Mikołaj</nazwisko> <biogram>Wybitny

Simple link – przykład <osoba xmlns: xlink="http: //www. w 3. 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> 2005 -11 -17 XSLT – część 2 18

Extended link - przykład <fikcja xmlns: xlink="http: //www. w 3. org/1999/xlink" xlink: type="extended"> <wypowiedz

Extended link - przykład <fikcja xmlns: xlink="http: //www. w 3. 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> 2005 -11 -17 XSLT – część 2 19

Przyszłość XLink • Zastosowania: – organizowanie, kojarzenie zasobów, nawet gdy nie mamy prawa zapisu,

Przyszłość XLink • 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). 2005 -11 -17 XSLT – część 2 20

XML Signature – podpis elektroniczny • Zasada działania podpisu elektronicznego: • Kluczowa rola: –

XML Signature – podpis elektroniczny • Zasada działania podpisu elektronicznego: • Kluczowa rola: – jakości algorytmu haszującego (funkcji skrótu), – jakości asymetrycznego algorytmu szyfrowania/deszyfrowania, – zaufania do wystawcy certyfikatu. 2005 -11 -17 XSLT – część 2 21

XML Signature – podpis elektroniczny • Podpis dokumentu XML-owego: – zapisany w postaci struktury

XML Signature – podpis elektroniczny • Podpis dokumentu XML-owego: – zapisany w postaci struktury XML-owej, – umieszczany w elemencie Signature: • w osobnym dokumencie, • dołączonym do podpisywanego dokumentu, • zawierającym podpisywane dane. • Możliwości XML Signature: – podpisywanie fragmentów dokumentu XML, – podpisy wielokrotne. 2005 -11 -17 XSLT – część 2 22

XML Signature – przykład <Signature xmlns="http: //www. w 3. org/2000/09/xmldsig#"> <Signed. Info> <Canonicalization. Method

XML Signature – przykład <Signature xmlns="http: //www. w 3. org/2000/09/xmldsig#"> <Signed. Info> <Canonicalization. Method Algorithm= "http: //www. w 3. org/TR/2001/REC-xml-c 14 n-20010315"/> <Signature. Method Algorithm= "http: //www. w 3. org/2000/09/xmldsig#dsa-sha 1"/> <!-- w URI znajduje się wskazanie na podpisywane dane --> <Reference URI="http: //przyklad. pl/pliki/do-podpisu. xml"> <Transforms> <Transform Algorithm="http: //www. w 3. org/2000/09/xmldsig#base 64"/> </Transforms> <Digest. Method Algorithm="http: //www. w 3. org/2000/09/xmldsig#sha 1"/> <Digest. Value>60 Nv. Zvtd. TB+7 Unl. Lp/H 24 p 7 h 4 bs=</Digest. Value> </Reference> </Signed. Info> <!-- zaszyfrowany skrót z Signed. Info - podpis --> <Signature. Value>Os. H 9 A 1 j. TNL. . . </Signature. Value> <Key. Info><Key. Value><DSAKey. Value> <P>imup 6 lm. . . </P><Q>x. Dve 3 j 7. . . </Q><G>Nlug. Af. . . </G> <Y>W 7 d. Om. H/v. . . </Y> </DSAKey. Value></Key. Info> </Signature> Źródło: Kazienko, P. , Co tam panie w XML-u? , Software 2. 0, 6/2003 2005 -11 -17 XSLT – część 2 23

XML Encryption – szyfrowanie XML-a • Cel: zagwarantowanie poufności danych XML-owych. • Najczęstszy scenariusz:

XML Encryption – szyfrowanie XML-a • Cel: zagwarantowanie poufności danych XML-owych. • Najczęstszy scenariusz: – wygenerowanie losowego klucza symetrycznego (sesyjnego), – zaszyfrowanie nim danych źródłowych, – zaszyfrowanie klucza sesyjnego kluczem publicznym odbiorcy. <Info. Platnicza xmlns='http: //przyklad. pl/platnosc 1'> <Nazwa>Józef Nowak</Nazwa> <Karta. Kredytowa Limit='2, 000' Waluta=‘PLN' System=”Visa”> <Nr. Karty>4019244502775567</Nr. Karty> <Wystawca>Nasz Bank S. A. </Wystawca> <Data. Ważnosci>10/03</Data. Ważnosci> </Karta. Kredytowa> </Info. Platnicza> Źródło: Kazienko, P. , Co tam panie w XML-u? , Software 2. 0, 6/2003 2005 -11 -17 XSLT – część 2 <Info. Platnicza xmlns='http: //przyklad. pl/platnosc 1'> <Nazwa>Józef Nowak</Nazwa> <Encrypted. Data Type='http: //www. w 3. org/2001/04/ xmlenc#Element’ xmlns='http: //www. w 3. org/2001/04/ xmlenc#'> <Cipher. Data> <Cipher. Value>A 2 s 3 B 4 f 5 g. Cb. Dy. Bre. Hw. TWc 5 cx 6 we. Q 3 g 5 te. V=</Cipher. Value> </Cipher. Data> </Encrypted. Data> </Info. Platnicza> 24

XForms – zaawansowane formularze • Odpowiedź na ograniczenia formularzy w HTML-u: – kontrola dziedziny

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 W 3 C z 14 października 2003 r. , – możliwość zanurzania w XHTML-u. 2005 -11 -17 XSLT – część 2 25

XForms – prosty formularz <html xmlns="http: //www. w 3. org/1999/xhtml" xmlns: xf="http: //www. w

XForms – prosty formularz <html xmlns="http: //www. w 3. org/1999/xhtml" xmlns: xf="http: //www. w 3. org/2002/xforms"> <head> <xf: model id="model 1"> <xf: instance> <dane xmlns=""><imię/><nazwisko/></dane> </xf: instance> <xf: submission id="submit" method="post" action="http: //xformstest. org/test"/> </xf: model> </head> <body> <h 1>Wpisz swoje dane</h 1> <xf: input model="model 1" ref="imię"> <xf: label>Imię</xf: label> </xf: input> <xf: input model="model 1" ref="nazwisko"> <xf: label>Nazwisko</xf: label> </xf: input> <xf: submit submission="submit"> <xf: label>Save</xf: label> </xf: submit> </body> </html> 2005 -11 -17 XSLT – część 2 26

XForms – przykład (program X-Smiles) Źródło: Kazienko, P. , Co tam panie w XML-u?

XForms – przykład (program X-Smiles) Źródło: Kazienko, P. , Co tam panie w XML-u? , Software 2. 0, 6/2003 2005 -11 -17 XSLT – część 2 27

Gdzie szukać dalej • Du. Charme, B. , The Path of Control ü www.

Gdzie szukać dalej • Du. Charme, 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/xml 4 j/xlinkexperience. html • XPointer tutorial ü www. zvon. org/xxl/xpointer/tutorial/Output. Examples/xpointer_tut. html • Tamino XQuery Demo ü tamino. demozone. softwareag. com/demo. XQuery 2005 -11 -17 XSLT – część 2 28

Gdzie szukać dalej • Simon, E. , Madsen, P. , Adams, C. , An

Gdzie szukać dalej • Simon, E. , Madsen, P. , Adams, C. , An Introduction to XML Digital Signatures ü www. xml. com/pub/a/2001/08/08/xmldsig. html • 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 2005 -11 -17 XSLT – część 2 29