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

Podobne dokumenty
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

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 i bezpieczeństwie

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

XML standardy pokrewne

XML w bazach danych i bezpieczeństwie

Inżynieria biomedyczna

EDI, XML i ochrona danych Przemysław Kazienko

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)

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

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

XML w bazach danych, standardy wiaż ace dokumenty XML

XML extensible Markup Language 7

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

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

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

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

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

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

XQuery. sobota, 17 grudnia 11

XML extensible Markup Language. część 6

Wprowadzenie do XSLT

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

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

Rodzaje przetwarzania XSLT (1)

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

XML extensible Markup Language. część 3

XML i nowoczesne technologie zarządzania treścią

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

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

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

XML extensible Markup Language 3

Rozproszone systemy internetowe. Bezpieczeństwo usług WWW

APEX zaawansowany raport

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

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

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

Standard SQL/XML. Wprowadzenie do XQuery

XML extensible Markup Language. część 4

Instrukcja obsługi User s manual

XML extensible Markup Language. część 8

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

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

Wykład 4. Metody uwierzytelniania - Bezpieczeństwo (3) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

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

15. Funkcje i procedury składowane PL/SQL

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

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

Przykładowy dokument XML

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

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

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

Przegląd języków zapytań

Przykładowy dokument XML

API transakcyjne BitMarket.pl

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

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

Spis treści. Przedmowa

XML stan obecny i trendy rozwojowe

Language INtegrated Query (LINQ)

Model semistrukturalny

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

Projektowanie obiektowe oprogramowania Wykład 14 Architektura systemów (1), Interoperability Wiktor Zychla 2013

SPECYFIKACJA FUNKCJONALNA OPROGRAMOWANIA 11 marca 2014 XLZEBRAPRINTER

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

XML i nowoczesne technologie zarządzania treścią

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

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

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Bazy danych i strony WWW

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

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

Bezpieczeństwo dokumentów XML

Aplikacje WWW - laboratorium

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

Elastyczna ochrona w elektronicznej wymianie danych

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

Przykładowy dokument XML

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

ROZPORZĄDZENIE MINISTRA FINANSÓW 1) z dnia 27 stycznia 2011 r.

E-DOWÓD FUNKCJE I KONSTRUKCJA. Maciej Marciniak

Java Code Signing UŜycie certyfikatów niekwalifikowanych do podpisywania kodu w technologii Java. wersja 1.2 UNIZETO TECHNOLOGIES SA

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Prezentacja i transformacja

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Zajęcia 13 wykorzystanie MySQL w PHP cz. 2

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

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 2005-11-17 XSLT część 2 7 2005-11-17 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 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. XQuery1.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 9 2005-11-17 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/ 2005-11-17 XSLT część 2 11 2005-11-17 XSLT część 2 12

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. 2005-11-17 XSLT część 2 13 2005-11-17 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). 2005-11-17 XSLT część 2 15 2005-11-17 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> 2005-11-17 XSLT część 2 17 2005-11-17 XSLT część 2 18

Extended link - przykład <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> 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 19 2005-11-17 XSLT część 2 20 XML Signature podpis elektroniczny Zasada działania podpisu elektronicznego: 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. 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 2005-11-17 XSLT część 2 22 XML Signature przykład XML Encryption szyfrowanie XML-a <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm= "http://www.w3.org/tr/2001/rec-xml-c14n-20010315"/> <SignatureMethod Algorithm= "http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> <!-- w URI znajduje się wskazanie na podpisywane dane --> <Reference URI="http://przyklad.pl/pliki/do-podpisu.xml"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#base64"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>60NvZvtdTB+7UnlLp/H24p7h4bs=</DigestValue> </Reference> </SignedInfo> <!-- zaszyfrowany skrót z SignedInfo - podpis --> <SignatureValue>OsH9A1jTNL...</SignatureValue> <KeyInfo><KeyValue><DSAKeyValue> <P>imup6lm...</P><Q>xDve3j7...</Q><G>NlugAf...</G> <Y>W7dOmH/v...</Y> </DSAKeyValue></KeyValue></KeyInfo> </Signature> Źródło: Kazienko, P., Co tam panie w XML-u?, Software 2.0, 6/2003 2005-11-17 XSLT część 2 23 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. <InfoPlatnicza xmlns='http://przyklad.pl/platnosc1'> <Nazwa>Józef Nowak</Nazwa> <KartaKredytowa Limit='2,000' Waluta= PLN' System= Visa > <NrKarty>4019244502775567</NrKarty> <Wystawca>Nasz Bank S.A.</Wystawca> <DataWażnosci>10/03</DataWażnosci> </KartaKredytowa> </InfoPlatnicza> Źródło: Kazienko, P., Co tam panie w XML-u?, Software 2.0, 6/2003 <InfoPlatnicza xmlns='http://przyklad.pl/platnosc1'> <Nazwa>Józef Nowak</Nazwa> <EncryptedData Type='http://www.w3.org/2001/04/ xmlenc#element xmlns='http://www.w3.org/2001/04/ xmlenc#'> <CipherData> <CipherValue>A2s3B4f5gCbDyBreHwTWc 5cx6weQ3g5teV=</CipherValue> </CipherData> </EncryptedData> </InfoPlatnicza> 2005-11-17 XSLT część 2 24

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> 2005-11-17 XSLT część 2 25 2005-11-17 XSLT część 2 26 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 2005-11-17 XSLT część 2 27 2005-11-17 XSLT część 2 28 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