Technologie internetowe



Podobne dokumenty
Kurs WWW Język XML, część II

Kurs WWW Język XML, część I

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

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

WYKŁAD 2 DTD DOCUMENT TYPE DEFINITION CZĘŚĆ 1

Prezentacja i transformacja

XML Schema. Typy proste, wyprowadzanie typów, modularyzacja schematu. Patryk Czarnik. Instytut Informatyki UW

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

XML extensible Markup Language. część 4

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema

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

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

Aplikacje internetowe laboratorium XML, DTD, XSL

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 Path Language (XPath)

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

Rola języka XML narzędziem

XML extensible Markup Language 3

Prezentacja dokumentów XML

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

Prezentacja dokumentów XML

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Przykładowy dokument XML

Wprowadzenie do technologii XML

Wprowadzenie do XML schema

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML

DTD - encje ogólne i parametryczne, przestrzenie nazw

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

Wprowadzenie do technologii XML

Prezentacja dokumentów XML

XML extensible Markup Language. Paweł Chodkiewicz

XML DTD XML Schema CSS

XSL, tj. XSLT i XSL-FO czyli jak przekształcać i ładnie wyświetlać XML-e. Kuba Pochrybniak

extensible Markup Language, cz. 4 Marcin Gryszkalis, mg@fork.pl

Extensible Markup Language III

Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi:

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

Egzamin z przedmiotu Projektowanie języków XML imię i nazwisko. Zadanie Suma Punkty Max Punkty

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Ogólna struktura dokumentu XSL-FO. Model formatowania. Ogólna struktura dokumentu XSL-FO C.d. Przykład Hello World Użycie szablonu strony

- wewnątrz elementów prostych występuje tylko jeden typ danych, wewnątrz złoŝonych nie moŝemy dokładnie określić liczby wystąpień elementu

Słowem wstępu. Standard: W3C XPath razem XSLT 1.0. XPath razem z XQuery 1.0 i XSLT 2.0. XPath trwają prace nad XPath 3.

Prezentacja i transformacja

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

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

29. Poprawność składniowa i strukturalna dokumentu XML

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

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

Jak wygląda XML? Definiowanie typów dokumentów. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków. Poprawność dokumentów

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

Wprowadzenie do XSLT

Rodzaje przetwarzania XSLT (1)

XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania.

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

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków

XML extensible Markup Language. część 2

Podstawy (X)HTML i CSS

XML extensible Markup Language. część 3

Dokumenty SEDU składają się z dwóch części: Opisu sprawy Formularza elektronicznego

Podstawy XML-a. Zaawansowane techniki programowania

Wprowadzenie do standardu XSL

Definiowanie typów dokumentów Część 3. XML Schema

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

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema. Elementy czy atrybuty? Wartości domyślne i ustalone. Elementy czy atrybuty?

XML i jego zastosowania

Technologie zarządzania treścią

XML extensible Markup Language. część 3

Plan prezentacji DTD. Wiązanie DTD z dokumentem XML Deklaracja typu dokumentu. Co to jest DTD. Wstęp. Przedmiot: XML i jego zastosowania

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

Przykładowy dokument XML

Literatura. Głównie informacje w sieci:

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

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

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

XML Schema w przykładach

Podstawy JavaScript ćwiczenia

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema

Facelets ViewHandler

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Programowanie internetowe

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

ABC języka HTML i XHTML / Maria Sokół. wyd. 2. Gliwice, cop Spis treści

XML i nowoczesne technologie zarządzania treścią

Języki XPath i XQuery

PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński

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

Technologie zarządzania treścią

Zaawansowana Pracownia Komputerowa - Ćwiczenia. Krzysztof Miernik

Prezentacja dokumentów XML

XQuery. sobota, 17 grudnia 11

Struktura języka HTML ZNACZNIKI. Oto bardzo prosta strona WWW wyświetlona w przeglądarce: A tak wygląda kod źródłowy takiej strony:

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

Rozdział 1 Cel dokumentu Rozdział 2 Deklaracja Rozdział 3 Nagłówek Rozdział 4 Podmiot Rozdział 5 FATCA...

Aplikacje internetowe

Schematy XML. Tomasz Traczyk.

XML Schema. Alternatywne metody definiowania struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

Języki XPath i XQuery

Transkrypt:

Technologie internetowe Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/

Zawartość modułu Wprowadzenie do XML Składnia, znaczniki i atrybuty XML Schema, DTD XSL XPath XSLT XSL-FO Na podstawie kursów ze stron: http://www.w3schools.com/schema/default.asp http://www.w3schools.com/xpath/default.asp http://www.w3schools.com/xsl/default.asp http://www.w3schools.com/xslfo/default.asp - 1 -

Kilka uwag wstępnych o XML XML to extensible Markup Language XML nie ma zastąpić HTML, oba języki służą do innych celów XML służy do opisu danych HTML skupia się na wyglądzie danych Do opisu struktury dokumentu XML używamy DTD XML Schema RelaxNG - 2 -

Kilka uwag wstępnych o XML XML niczego nie robi służy tylko do opisu i składowania informacji XML, jak nazwa wskazuje jest rozszerzalny, czyli możemy tworzyć własne znaczniki XML nie ma żadnych predefiniowanych znaczników wszystko tworzymy od zera - 3 -

Przykłady Pierwszy prosty dokument <?xml version="1.0" encoding="utf-8"?> <mail> <to>pawel@ii.uni.wroc.pl</to> <from>zenon@ii.uni.wroc.pl</from> <subject>jak leci?</subject> <body>jak tam w Wielkim Świecie?</body> </mail> - 4 -

Kilka uwag dotyczących składni Każdy znacznik musi mieć znacznik zamykający, a jeśli jest nieparzysty, to jest to inaczej zaznaczane <p>akapit</p> <img src="obrazek" /> Nazwy znaczników są case sensitive Ważna jest kolejność zagnieżdżania Dokument XML ma jeden znacznik będący korzeniem Wartości atrybutów muszą być w cudzysłowach Wielokrotne spacje nie są zamieniane na jedną spację Komentarz: <!-- komentarz --> - 5 -

Kilka uwag o znacznikach Zależności między znacznikami są takie jak te omówione przy okazji drzewa dokumentu Nazwy znaczników mogą zawierać litery, cyfry, -,., _, itp. muszą się zaczynać od litery lub podkreślenia nie mogą się zaczynać się od słowa xml nazwy nie mogą zawierać spacji - 6 -

Kilka uwag o znacznikach,,dobre zwyczaje'' dotyczące nazw znaczników nie zaleca się używania w nazwach znaków i. nazwy powinny opisywać zawartość znacznika, ale nie powinny być przesadnie długie <book_title> a nie <the_title_of_the_book> litery inne niż w alfabecie angielskim są dozwolone, ale nie zalecane nie powinno się używać znaku : w nazwach - 7 -

Kilka uwag o atrybutach Atrybuty dostarczają dodatkowej informacji o znacznikach Można używać zarówno cudzysłowie ' i " zagnieżdżamy różne np. 'Ala "ma" kota' Czego używać: zagnieżdżonych znaczników czy atrybutów? dane mogą być przechowywane w jednym i drugim znaczniki przechowują również strukturę, atrybuty nie <mail date="2005-10-22>...</mail> <mail><date>2005-10-22</date>...</mail> <mail><date><year>2005</year> <month>10</month><day>22</day></year> - 8 -

Kilka uwag o atrybutach Czego używać: zagnieżdżonych znaczników czy atrybutów? zalecenie speców: używać raczej znaczników zamiast atrybutów problemy z atrybutami: nie mogą mieć wielu wartości, znaczniki mogą trudniej je modyfikować (w przyszłych zmianach) nie opisują struktury trudniej nimi operować z poziomu kodu programów trudniej testować wartości z poziomu DTD wyjątek: atrybut id, czyli identyfikator elementów - 9 -

XML Schema Co daje XML Schema? definiuje elementy i atrybuty określa dzieci elementów i ich porządek określa, czy element jest pusty, czy może zawierać tekst określa typy danych dla elementów i atrybutów definiuje domyślne i ustalone wartości dla elementów i atrybutów - 10 -

XML Schema Przewaga XML Schema nad DTD XML Schema łatwiej rozszerzać korzystać z jednych schematów w innych tworzyć własne typy danych na podstawie już istniejących XML Schema są bogatsze niż DTD XML Schema są pisane w XML XML Schema wspiera typy danych można tworzyć wzorce, konwersje,... XML Schema wspiera przestrzenie nazw - 11 -

Składnia XML Schema Proste elementy XSD Opis mogą zawierać tylko tekst nie mogą zawierać innych elementów i atrybutów Deklaracja <xs:element name="xxx" type="yyy"/> Wbudowane typy danych xs:string,xs:decimal,xs:integer,xs:boolean,xs:date,xs:time Wartości mogą być także domyślne lub ustalone default="domyślna", fixed="ustalona" - 12 -

Składnia XML Schema Proste elementy XSD, przykłady <xs:element name="nazwisko" type="xs:string"/> <xs:element name="imie" type="xs:string"/> <xs:element name="wzrost" type="xs:integer"/> <xs:element name="data_urodzenia" type="xs:date"/> <nazwisko>zabłocki</nazwisko> <imie>ferdynand</imie> <wzrost>194</wzrost> <data_urodzenia>1968-03-27</data_urodzenia> <xs:element name="color" type="xs:string" default="red"/> <xs:element name="color" type="xs:string" fixed="red"/> - 18 -

Składnia XML Schema Atrybuty Opis tylko złożone elementy mogą mieć atrybuty atrybut zawsze jest,,prostym elementem'' Deklaracja <xs:attribute name="xxx" type="yyy"/> Wartości mogą być także domyślne lub ustalone default="domyślna", fixed="ustalona" Wartości mogą być także wymagane lub opcjonalne use="required", use="optional" - 14 -

Składnia XML Schema Atrybuty, przykłady <lastname lang="en">smith</lastname> <xs:attribute name="lang" type="xs:string"/> <xs:attribute name="lang" type="xs:string" default="en"/> <xs:attribute name="lang" type="xs:string" fixed="en"/> <xs:attribute name="lang" type="xs:string" use="optional"/> <xs:attribute name="lang" type="xs:string" use="required"/> - 15 -

Składnia XML Schema Ograniczenia na wartości elementów i atrybutów enumeration określa listę wartości fractiondigits określa maksymalną ilość cyfr po przecinku length określa dokładną długość lub liczbę elementów maxexclusive określa wartość maksymalną na liczby (<) maxinclusive określa wartość maksymalną na liczby (<=) maxlength określa maksymalną długość lub liczbę elementów (<=) odpowiednio maxexclusive, minexclusive, minlength pattern określa wzorzec totaldigits określa dokładną liczbę cyfr whitespace określa sposób traktowania białych znaków (LF, CR, tab, space) - 16 -

Składnia XML Schema Ograniczenia na wartości, przykłady <xs:element name="age"> <xs:simpletype> <xs:restriction base="xs:integer"> <xs:mininclusive value="0"/> <xs:maxinclusive value="100"/> </xs:restriction> </xs:simpletype> </xs:element> <xs:element name="letter"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpletype> </xs:element> - 17 -

Składnia XML Schema Złożone elementy Takie, które zawierają inne elementy i/lub atrybuty Są cztery rodzaje złożonych elementów puste elementy elementy zawierające tylko inne elementy elementy zawierające tylko tekst elementy zawierające zarówno inne elementy jak i tekst Każdy z powyższych rodzajów może zawierać atrybuty - 18 -

Składnia XML Schema Przykłady złożonych elementów w XML z kolejnych kategorii <product pid="1345"/> <employee> <firstname>jan</firstname> <lastname>kowal</lastname> </employee> <food type="przysmaki">budyń</food> <description>kolizja miała miejsce <date lang="en">03.03.99</date>...</description> - 19 -

Składnia XML Schema Mamy dany kod XML <employee> <firstname>john</firstname> <lastname>smith</lastname> </employee> Definicję w XML Schema możemy zrobić na kilka różnych sposobów. - 20 -

Składnia XML Schema Wersja 1 <xs:element name="employee"> <xs:complextype> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> - 21 -

Składnia XML Schema Wersja 2 <xs:element name="employee" type="personinfo"/> <xs:complextype name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complextype> Ten sposób jest bardziej elegancki, ponieważ można typ personinfo wykorzystać wielokrotnie - 22 -

Składnia XML Schema Przykład wykorzystania jednego typu w drugim <xs:element name="employee" type="fullpersoninfo"/> <xs:complextype name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complextype> <xs:complextype name="fullpersoninfo"> <xs:complexcontent> <xs:extension base="personinfo"> <xs:sequence> <xs:element name="address" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:extension> </xs:complexcontent> </xs:complextype> - 23 -

Składnia XML Schema Definiowanie pustego znacznika <xs:element name="product"> <xs:complextype> <xs:attribute name="prodid" type="xs:positiveinteger"/> </xs:complextype> </xs:element> <xs:element name="product" type="prodtype"/> <xs:complextype name="prodtype"> <xs:attribute name="prodid" type="xs:positiveinteger"/> </xs:complextype> - 24 -

Składnia XML Schema Specyfikatory(?) (ang. indicators) Porządkowe All Choice Sequence Ilości wystąpień maxoccurs minoccurs Grupy Group name attributegroup name - 25 -

Składnia XML Schema Specyfikator all określa, że jego dzieci mogą wystąpić w dowolnym porządku każde jego dziecko musi wystąpić dokładnie raz <xs:element name="person"> <xs:complextype> <xs:all> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:all> </xs:complextype> </xs:element> - 26 -

Składnia XML Schema Specyfikator choice określa, że może wystąpić dokładnie jedno z jego dzieci <xs:element name="person"> <xs:complextype> <xs:choice> <xs:element name="employee" type="employee"/> <xs:element name="member" type="member"/> </xs:choice> </xs:complextype> </xs:element> - 27 -

Składnia XML Schema Specyfikator sequence określa, że jego dzieci muszą wystąpić w ustalonym w definicji porządku <xs:element name="person"> <xs:complextype> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> - 28 -

Składnia XML Schema Specyfikatory ilości wystąpień: minoccurs, maxoccurs określają minimalną i maksymalną ilość wystąpień dzieci jeśli nie chcemy dawać ograniczenia, możemy użyć maxoccurs="unbounded" domyślnie wartości obu specyfikatorów wynoszą 1 <xs:element name="person"> <xs:complextype> <xs:sequence> <xs:element name="full_name" type="xs:string"/> <xs:element name="child_name" type="xs:string" maxoccurs="10" minoccurs="0"/> </xs:sequence> </xs:complextype> </xs:element> - 29 -

Składnia XML Schema Specyfikator group pozwala utworzyć grupę elementów, do której można się później odwoływać <xs:group name="persongroup"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> <xs:element name="birthday" type="xs:date"/> </xs:sequence> </xs:group> <xs:element name="person" type="personinfo"/> <xs:complextype name="personinfo"> <xs:sequence> <xs:group ref="persongroup"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:complextype> - 30 -

Składnia XML Schema Specyfikator attributegroup Pozwala utworzyć grupę atrybutów <xs:attributegroup name="personattrgroup"> <xs:attribute name="firstname" type="xs:string"/> <xs:attribute name="lastname" type="xs:string"/> <xs:attribute name="birthday" type="xs:date"/> </xs:attributegroup> <xs:element name="person"> <xs:complextype> <xs:attributegroup ref="personattrgroup"/> </xs:complextype> </xs:element> - 31 -

Składnia XML Schema Przykłady osoby2.xml, osoby2.xsd produkty1.xml, produkty1.xsd produkty2.xml, produkty2.xsd - 32 -

DTD Służy do definiowania schematu dokumentu XML Kłopot ze sprawdzaniem typów wartości w znacznikach i typów wartości atrybutów - 10 -

DTD Deklaracja DTD w dokumencie Wewnętrzne DTD: <!DOCTYPE nazwa-dtd [podzbior-wewnętrzny]> nazwa-dtd nazwa DTD, powinna być taka sama jak nazwa głównego dokumentu pozdbiór-wewnętrzny zawiera lokalne deklaracje elementów, atrybutów i encji Jeśli opis całej struktury jest wewnątrz dokumentu XML, to dokument taki jest autonomiczny objawia się to w następujący sposób <?xml version="1.0" standalone="yes"?> - 11 -

DTD Deklaracja DTD w dokumencie Zewnętrzne DTD Identyfikator systemowy <!DOCTYPE nazwa SYSTEM "http://i.pl/plik.dtd"> <!DOCTYPE nazwa SYSTEM "../plik.dtd"> - 12 -

DTD Deklaracja DTD w dokumencie Zewnętrzne DTD Identyfikator publiczny oficjalne DTD <!DOCTYPE nazwa PUBLIC "identyfikator" "sciezka/dtd"> Identyfikator ma następującą budowę: rodzaj-rejestracji // właściciel // opis // język rodzaj-rejestracji to znak (+) jeśli właściciel został zarejestrowany zgodnie z ISO9070; zwykle tak nie jest i dajemy znak (-) właściciel nazwa właściciela, np. nazwisko, firma opis opis, można używać spacji język identyfikator języka zgodnie z ISO639 (2 znaki) Dobrze jest dać potem adres do dokumentu DTD Przykład: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> - 13 -

Składnia DTD Deklaracje elementów <!ELEMENT nazwa kategoria> <!ELEMENT nazwa (zawartosc)> kategoria to: EMPTY pusty znacznik np. <br /> ANY zawartość znacznika może być dowolna (parsowalna); raczej niestosowane zawartość to: #PCDATA oznacza dane tekstowe; nie może zawierać elementów podrzędnych nazwy innych elementów - 14 -

Składnia DTD Deklaracje elementów Dodatkowe reguły przy tworzeniu definicji elementu + oznacza powtórzenie elementu jeden lub więcej razy * oznacza powtórzenie elementu zero lub więcej razy? oznacza pojawienie się elementu raz lub nie pojawienie w ogóle, oznacza, że elementy muszą występować w określonej kolejności oznacza alternatywę, czyli jeden z wielu - 15 -

Składnia DTD Deklaracje atrybutów <!ATTLIST element atrybut typ domyslna_wartosc> element nazwa elementu, dla którego definiujemy atrybut atrybut nazwa definiowanego atrybutu typ typ wartości; wymienione na następnej stronie domyslna_wartosc szczegóły na kolejnych stronach Przykład: <!ATTLIST konto typ CDATA "internetowe"> - 16 -

Składnia DTD Deklaracje atrybutów Typy atrybutów mogą być następujące: CDATA oznacza tekst (w1 w2...) - wartością musi być jedna z pozycji ID wartością jest unikalny identyfikator IDREF wartością jest identyfikator innego elementu IDREFS wartością jest lista identyfikatorów innych elementów NMTOKEN wartością jest poprawna w XMLu nazwa NMTOKENS wartością jest lista poprawnych w XMLu nazw - 17 -

Składnia DTD Deklaracje atrybutów Typy atrybutów mogą być następujące: ENTITY wartością może być nazwa encji ENTITIES wartością może być list nazw encji NOTATION wartościa może być nazwa notacji xml: predefiniowana nazwa xml - 18 -

Składnia DTD Deklaracje atrybutów Wartość domyślna może być następująca: value jakiś tekst #REQUIRED atrybut w elemencie musi wystąpić #IMPLIED atrybut w elemencie może wystąpić; jeśli nie wystąpi wykorzystywana jest wartość domyślna #FIXED atrybut ustaloną na sztywno wartość DTD: <!ATTLIST system name CDATA #FIXED "W2K"> Poprawny XML: <system name="w2k" /> Niepoprawny XML: <system name="linux" /> DTD: <!ATTLIST cena waluta NMTOKEN #FIXED "pln"> Odczytanie <cena>100</cena> jest równoważne odczytaniu <cena waluta="pln">100</cena> - 19 -

Składnia DTD Pojęcie encji Encje predefiniowane & &apos; " > < Kategorie encji ogólnego przeznaczenia lub parametrów wewnętrzne lub zewnętrzne zewnętrzne mogą być analizowane lub nieanalizowane - 20 -

Składnia DTD Encje ogólnego przeznaczenia zmienne, które definiujemy w celu utworzenie skrótu na pewien tekst deklarowane w DTD, używane w DTD lub XML Przykład <!ENTITY plik "nazwa_pliku"> <!ENTITY link "<a href='&plik;'>&plik;</a> - 21 -

Składnia DTD Encje parametrów deklarowane i używane w DTD przykład <!ENTITY % boolean "(true false) 'false'"> <!ELEMENT tel (#PCDATA)> <!ATTLIST tel ulubiony %boolean;> <?xml version="1.0" encoding="iso-8859-2"?> <!ENTITY de "Germany"> <!ENTITY it "Italy"> <!ENTITY us "United States"> <!ENTITY pl "Poland">... <?xml version="1.0" encoding="iso-8859-2"> <!DOCTYPE address SYSTEM "address.dtd" [ <!ENTITY % countries SYSTEM "countries.ent"> %countries;]>... <country>&pl;</country>... - 22 -

Składnia DTD Encje wewnętrzne definiowane wewnątrz dokumentu przykład <!ENTITY jednostka "Instytut Informatyki"> <!ENTITY adres "ul. Przesmyckiego 20"> Użycie: <author>&jednostka;&adres;</author> Encje zewnętrzne definiowane w zewnętrznych plikach przykład <!ENTITY jednostka SYSTEM "http://i.pl/dtd/entities.dtd"> <!ENTITY adres SYSTEM "http://i.pl/dtd/entities.dtd"> Użycie: <author>&jednostka;&adres;</author> - 23 -

Przykłady osoby1.xml, osoby1.css pracownicy.xml, pracownicy-encje.ent - 24 -

Kilka uwag wstępnych o XSL XSL pochodzi od extensible Stylesheet Language CSS style dla HTML-a XSL style dla XML-a XSL składa się z trzech części XPath język nawigacji dokumentów XML XSLT transformacja dokumentów XML XSL-FO język formatowania dokumentów XML - 33 -

XPath Terminologia Node węzłem są elementy, atrybuty, tekst, itp. np. <znacznik>, <p>akapit</p>, lang="en" Wartości atomowe węzły, które nie mają potomków np. Akapit, "en", Item node lub wartość atomowa Terminologia zależności (jak w DOM) Parent, Children, Siblings, Ancestors, Descendants - 34 -

XPath Składnia wzorców, przykłady para dopasuje się do elementu para *, @* dopasuje się do każdego elementu/atrybutu chap appen dopasuje się do chap i do appen ol/item dopasuje się do item, którego rodzicem jest ol ol//item dopasuje się do item, którego przodkiem jest ol. bieżący węzeł.. rodzic danego węzła - 35 -

XPath Składnia wzorców, przykłady / root @class dopasuje się do atrybutu class id("w11") dopasuje się do elementu o id=w11 div[@class="appendix"]//p dopasuje sie do p, który jest potomkiem div z atrybutem class= appendix items/item[position()>1] dopasuje się do item-ów, które są innych niż pierwszym dzieckiem items item[position() mod 2 = 1] analogicznie para[last()=1] dopasuje się do para, które jest jedynakiem (jedynym znacznikiem para) - 36 -

XPath Przykłady /bookstore bookstore/book //book bookstore//book //@lang /bookstore/book[1] /bookstore/book[price>35]/title - 37 -

XPath Dokładne określenie lokalizacji Relacje zależności: ancestor, ancestor-or-self, attribute, child, descendant, descendant-or-self, following, following-sibling, namespace, parent, preceding, preceding-sibling, self Ścieżka ma postać /step/step/... lub step/step/... każdy krok ścieżki ma postać axisname::nodetest[predykat] Przykłady: child::book, attribute::lang, child::*, attribute::*, ancestor::book, child::*/child::price - 38 -

XPath Kilka przykładowych funkcji compare(s1,s2) zwraca -1, jeśli s1<s2; 0, jeśli s1=s2 i 1 jeśli, s1>s2 concat(s1,s2,...) - zwraca połączone napisy np. concat('xpath ','is ','FUN!') // XPath is FUN codepoints-to-string(int,int,...) - zwraca napis złożony z kodów będących argumentami np. string-to-codepoints("thérèse") Wynik: 84, 104, 233, 114, 232, 115, 101 substring(string,start,len) wycina fragment napisu np. substring('beatles',1,4) Wynik: 'Beat' - 39 -

XPath Kilka przykładowych funkcji string-length(napis) zwraca długość napisu name() - zwraca nazwę bieżącego węzła index-of((item,item,...),searchitem) zwraca numer szukanego elementu; numeracja od 1 count((item,item,...)) - zwraca liczbę węzłów position() - zwraca numer aktualnie przetwarzanego elementu last() - zwraca liczbę elementów na liście - 40 -

XSLT Wprowadzenie Korzysta z XPath Służy do transformacji dokumentów XML na inne dokumenty XML, dokumenty HTML, itd. Przeglądarki obsługujące XSLT: Firefox 1.0.2 Mozilla 1.7.8 Netscape 8 Opera 8 Internet Explorer 6-41 -

XSLT Deklaracja arkusza transformacji <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> Odwołanie do arkusza XSL w dokumencie XML <?xml-stylesheet type="text/xsl" href="arkusz.xsl"?> - 42 -

XSLT Arkusz XSL może zawierać pewną liczb reguł (template) Do utworzenia reguły używamy elementu <xsl:template match="wartość"> atrybut match określa element, dla którego reguła będzie obowiązywać wartość atrybutu match to wyrażenie XPath - 43 -

XSLT Element value-of Służy do pobrania wartości elementu z dokumentu XML i przekazanie jej do wyniku Składnia <xsl:value-of select="element"> select określa wyrażenie XPath Przykład <xsl:value-of select="/dostawa/produkt/nazwa"> - 44 -

XSLT Element for-each Służy do iterowania elementów z dokumentu XML Składnia <xsl:for-each select="element"> select określa wyrażenie XPath Przykład <xsl:for-each select="nazwa_pliku"> <xsl:value-of select="."/> </xsl:foreach> - 45 -

XSLT Element sort Umożliwia sortowanie wyniku uzyskanego przez foreach Składnia <xsl:sort order="ascending descending" case-order="upper-first lower-first"> Znaczenie atrybutów zgodne z opisem Podanie kilku elementów sort realizuje sortowanie zagnieżdżone - 46 -

XSLT Element if Umieści treść w wyniku, jeśli będzie spełniony określony warunek Składnia <xsl:if test="warunek"> treść </xsl:if> Przykład <xsl:if test=". > 10">Robimy na zielono</xsl:if> - 47 -

XSLT Element choose Podobny do instrukcji switch z języka C Składnia <xsl:choose> <xsl:when test="expression">... some output... </xsl:when> <xsl:otherwise>... some output... </xsl:otherwise> </xsl:choose> - 48 -

XSLT Element apply-templates Przetwarza dzieci znacznika Składnia <xsl:apply-templates select="element"> Podanie opcjonalnego atrybutu select spowoduje przetwarzanie tylko określonych elementów - 49 -

XSLT Do utworzenia elementu wraz atrybutami mamy znaczniki element i attribute Przykład XSL: <xsl:element name="napis"> <xsl:attribute name="kolor">czerwony</xsl:attribute> Wielki napis </xsl:element> Wynik: <napis kolor="czerwony">wielki napis</napis> - 50 -

XSLT Do utworzenia komentarza mamy znacznik comment Przykład XSL: <xsl:comment>to jest komentarz</xsl:comment> Wynik: <!--To jest komentarz--> Do uworzenia tekstu mamy znacznik text Przykład <xsl:text>to będzie zwykły kawałek tekstu</xsl:text> - 51 -

XPath i XSLT Przykłady produkty3.xml, produkty3.xsl osoby3.xml, osoby3.xsl osoby4.xml, osoby4.xsl - 52 -

XSL-FO Służy do formatowania elementów w XML Jest pod pewnym względem podobne do CSS - 53 -

XSL-FO Szablon dokumentu <?xml version="1.0" encoding="iso-8859-2"?> <fo:root xmlns:fo="http://www.w3.org/1999/xsl/format"> <fo:layout-master-set> <fo:simple-page-master master-name="a4"> <!-- Page template goes here --> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="a4"> <!-- Page content goes here --> </fo:page-sequence> </fo:root> - 54 -

XSL-FO W XSL FO również występuje tzw. box model Kolejne poziomy obszarów strony (page) regiony (region) bloki (block) wiersze (line) zawartość wierszy (inline) - 55 -

XSL-FO Dokument dzieli się na strony w wydruku jest to jedna lub więcej stron na ekranie jest to jedna wielka strona Każda strona dzieli się na regiony region-body (treść strony) region-before (nagłówek) region-after (stopka) region-start (lewy panel nawigacyjny) region-end (prawy panel nawigacyjny) - 56 -

XSL-FO Każdy region zawiera bloki Każdy blok może zawierać inne bloki lub wiersze Wiersze zawierają jakąś zawartość, zwykle po prostu tekst. - 57 -

XSL-FO Jak to dokładnie wygląda? XSL-FO korzysta z <fo:page-sequence> do zdefiniowania stron wyniku Każda strona wynikowa odwołuje się do,,page master'', który definiuje układ strony Każda strona wynikowa ma elementy <fo:flow> określające jej zawartość Kolejne strony są drukowane lub wyświetlane sekwencyjnie - 58 -

XSL-FO Strony XSL-FO są wypełnione zawartością elementu <xsl:flow> Element ten ma atrybut "flow-name", który może przyjmować następujące wartości xsl-region-body (odpowiednik region-body) xsl-region-before (odpowiednik region-before) xsl-region-after (odpowiednik region-after) xsl-region-start (odpowiednik region-start) xsl-region-end (odpowiednik region-end) - 59 -

XSL-FO Wzorce stron (tzw. page masters) definiują układ stron Przykłady <fo:simple-page-master master-name="intro"> <fo:region-body margin="5in" /> </fo:simple-page-master> <fo:simple-page-master master-name="left"> <fo:region-body margin-left="2in" margin-right="3in" /> </fo:simple-page-master> <fo:simple-page-master master-name="right"> <fo:region-body margin-left="3in" margin-right="2in" /> </fo:simple-page-master> pierwszy może być używany jako wstęp, dwa kolejne do stron nieparzystych i parzystych - 60 -

XSL-FO Do określenia rozmiaru strony mamy atrybuty page-width page-height Do określenia marginesów mamy margin-top margin-bottom margin-left margin-right margin (wszystkie cztery marginesy) - 61 -

XSL-FO Przykład układu strony A4 <fo:simple-page-master master-name="a4" page-width="297mm" page-height="210mm" margin-top="1cm" margin-bottom="1cm" margin-left="1cm" margin-right="1cm"> <fo:region-body margin="3cm"/> <fo:region-before extent="2cm"/> <fo:region-after extent="2cm"/> <fo:region-start extent="2cm"/> <fo:region-end extent="2cm"/> </fo:simple-page-master> - 62 -

XSL-FO Umieszczanie bloków, przykład <fo:page-sequence> <fo:flow flow-name="xsl-region-body"> <fo:block> <!-- Treść --> </fo:block> </fo:flow> </fo:page-sequence> Formatowanie bloków Mamy szereg właściwości znanych już z CSSa - 63 -

XSL-FO Tworzenie list, przykład <fo:list-block> <fo:list-item> <fo:list-item-label> <fo:block>*</fo:block> </fo:list-item-label> <fo:list-item-body> <fo:block>volvo</fo:block> </fo:list-item-body> </fo:list-item> <fo:list-item> <fo:list-item-label> <fo:block>*</fo:block> </fo:list-item-label> <fo:list-item-body> <fo:block>saab</fo:block> </fo:list-item-body> </fo:list-item> </fo:list-block> - 64 -

XSL-FO Do tworzenia tabel mamy następujące obiekty fo:table-and-caption fo:table fo:table-caption fo:table-column fo:table-header fo:table-footer fo:table-body fo:table-row fo:table-cell - 65 -

XSL-FO Przykłady xslfo-w3c.xml osoby5.xml, osoby5.xsl - 66 -