Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Aplikace XML pro Internet

Podobné prezentace


Prezentace na téma: "Aplikace XML pro Internet"— Transkript prezentace:

1 Aplikace XML pro Internet
Kateřina Ježková, Jaroslav Ráček

2 Osnova semináře Co je to XML Kontrola dokumentu pomocí DTD
Styly pro XML (CSS a XSLT) WML XHTML MathML

3 Standard XML XML (eXtensible Markup Language) vznikl v devadesátých letech jako podmnožina jazyka SGML (Standard Generalized Markup Language) Ze SGML byla vyčleněna jeho nejpoužívanější část Syntaxe XML je přísnější než syntaxe obecnějšího SGML, což umožňuje snazší vývoj aplikací Jako znaková sada je v XML podporována 32bitová ISO 10646, která bez problémů pokrývá všechny znaky současných jazyků

4 Zásady pro tvorbu XML dokumentů
Nekřížit tagy Uzavírat párové tagy Párový tag: <x> … </x> Nepárový tag: <y/>

5 DTD Při dodržení syntaktických pravidel, může být obecný XML dokument vytvořen za použití libovolných elementů Vznikají tak nové značkovací jazyky, které jsou podmnožinami obecnějšího XML. Jazyk může být popsán pomocí tzv. Definice Typu Dokumentu (DTD), která obsahuje sadu povolených elementů, jejich atributů a popis vzájemných vztahů, v nichž mohou být jednotlivé elementy použity.

6 Výhody používání DTD Strukturu můžeme kontrolovat pomocí parseru.
Pro spoustu standardních DTD existuje množství již vytvořených nástrojů, které můžeme pro daná DTD s úspěchem použít.

7 Struktura DTD Jazyk, v němž jsou jednotlivá DTD psána, je rovněž odvozen od XML. Vlastní DTD pak lze rozdělit do čtyř základních částí. Jsou to:   deklarace elementů        deklarace atributů        deklarace entit     deklarace notací

8 Deklarace elementu <!ELEMENT <<název_elementu>> obsah_elementu>>> Příklad: <!ELEMENT clanek (nazev, autor?, odstavec+)> <!ELEMENT nazev (#PCDATA)> <!ELEMENT autor (#PCDATA)> <!ELEMENT odstavec (#PCDATA)>

9 Deklarace atributů <!ATTLIST <<název_elementu>> <deklarace_atributů>>> Příklad: <!ATTLIST clanek autor CDATA jazyk MNTOKEN zarovnani(vlevo|nastred|vpravo) ”vlevo”> Užití: <clanek autor=”Jaroslav Ráček” jazyk=”cz” zarovnani=”nastred”> … </clanek>

10 Způsoby připojení DTD k dokumentu
<!DOCTYPE clanek SYSTEM ”clanek.dtd”> <clanek> </clanek> <!DOCTYPE clanek [ <!ELEMENT clanek ...> <!ELEMENT ... > ]> <clanek> </clanek>

11 Styly a XML Styly se používají v případě, kdy chceme oddělit obsah dokumentu od jeho vzhledu. Více stylů pro jeden dokument Jeden styl pro více dokumentů

12 Styly a XML Stylových jazyků, které lze použit pro formátování XML dokumentů je poměrně velké množství. Vedle CSS (Cascading Style Sheets) a XSL (eXtensible Stylesheet Language) například ještě DSSSL nebo FOSI.

13 Připojení stylu k dokumentu
<?xml-stylesheet href=”<<URI>>” type=”<<typ>>”?> Příklad: <?xml version=”1.0” encoding=”utf-8”?> <?xml-stylesheet href=”styl.css” type=”text/css”?> <dokument> ... </dokument>

14 CSS Cascading Style Sheets = kaskádové styly JavaScript + CSS = DHTML
CSS nejlépe podporuje IE 6

15 Způsob zápisu CSS (1) 1.přímý styl (in-line)
- zápis stylu přímo u formátovaného elementu obecně: <tag style="vlastnost1:hodnota1[;hodnota2][další hodnoty]; vlastnost2:hodnota2 ... "> příklad: <p style="color:blue; background-color:yellow; font-size:12pt"> Modrý text na žlutém pozadí velikosti 12, platí pouze pro tento text</p>

16 Způsob zápisu CSS (2a) 2.pomocí stylopisu (stylesheet)
- seznam stylu mezi tagy <style> a </style> v hlavičce stránky obecně: <style> selektor1 {vlastnost1:hodnota1[;hodnota2][další hodnoty]; vlastnost2:hodnota2 ... } selektor2 {vlastnost1:hodnota1[;hodnota2][další hodnoty]; vlastnost2:hodnota2 ... } . </style>

17 Způsob zápisu CSS (2b) příklad: <html> <head>
<style> p {color:blue; background-color:yellow; font-size:12pt} </style> </head> <body> <p> Modrý text na žlutém pozadí velikosti 12, platí mezi každými tagy "<p> a </p>". </p> </body> </html>

18 Způsob zápisu CSS (3a) 3.zápis stylu do externího souboru s příponou .css obecně: selektor1 {vlastnost1:hodnota1[;hodnota2][další hodnoty]; vlastnost2:hodnota2 ... } selektor2 {vlastnost1:hodnota1[;hodnota2][další hodnoty]; vlastnost2:hodnota2 ... } . selektor = html tag/tag:pseudotřída/vlastní třída/identifikátor

19 Způsob zápisu CSS (3b) Příklad: soubor muj_styl.css:
p {color:blue; background-color:yellow; font-size:12pt} HTML soubor: <html> <head> <link rel="stylesheet" type="text/css" href="muj_styl.css"> </head> <body> <p>Modrý text na žlutém pozadí velikosti 12, platí mezi každými tagy "<p> a </p>". </p> </body> </html>

20 Pseudotřídy Jediný tag a má svoje pseudotřídy (různé stavy).
Stylopis muže vypadat takto: <style> a {text-decoration:none} ... text odkazu nebude podtržený a:link {color:red} ... nenavštívený odkaz bude červený a:active {color:yellow} ... odkaz na který se zrovna kliklo bude žlutý a:hover {color:blue;text-decoration:underline} ... odkaz, přes který jede myš bude modrý a podtržený a:visited {color:green} ... navštívený odkaz bude zelený </style>

21 Vlastní třídy (1) <html> <head> <style>
.mojetrida{font-weight:bold;color:blue;text-align:center} </style> </head> <body> <p> <span class="mojetrida">Tučný modrý text zarovnaný na střed </span> Normální text </p> </body> </html>

22 Vlastní třídy (2) Tečka před jménem třídy je důležitá!
Atribut class je možné použít u libovolného tagu. Párové tagy <span> a <div> se používají, pokud je potřeba formátovat text, který není omezen žádným tagem. Uvnitř odstavce se používá <span>, u textu obsahujícího více odstavců <div>.

23 Identifikátory Chovají se podobně jako třídy. V těle dokumentu by se měl vyskytovat jeden element s jedním identifikátorem jen jednou. Rozdíly mezi třídami a identifikátory jsou znatelné ve skriptech. <html> <head> <style> #mujid{font-weight:bold;color:blue;text-align:center} </style> </head> <body> <p><span id="mujid">Tučný modrý text zarovnaný na střed </span> Normální text </p> </body> </html>

24 Další deklarace Hromadná deklarace pro více selektorů najednou
h1, h3, p {color:black} Oddělovací čárka je důležitá. Pokud je nepoužijeme jedná se o kontextovou deklaraci p a {font-weight:bold} Tato deklarace určuje, že všechny odkazy uvnitř odstavce budou tučným písmem. <h1>Normální nadpis <a href= ...>normální odkaz</a></h1> <p>Normální text<a ...>Tučný odkaz</a></p>

25 XSL eXtensible Stylesheet Language Syntaxe XSL založena na XML
Pro transformaci XML dokumentů je určeno XSLT (XSL Transformations). Pro abstraktní popis vzhledu dokumentu jsou určeny XSL formátovací objekty.

26 XSLT Základními stavebními kameny XSLT jsou šablony:
<xsl:template match=”<<výraz>>”> <<výstup>> </xsl:template> Příklad: <b><xsl:apply-templates/></b>

27 XSLT dokument <xsl:stylesheet version=”1.0”
xmlns:xsl=” Transform”> <<deklarace šablon>> </xsl:stylesheet>

28 WML WAP = Wireless application protocol WML = Wireless Markup Language
Soubor obsahující wml se nazývá deska (angl. DECK), obsahuje jednu nebo více karet (CARD), které se na displeji mobilního telefonu zobrazují jako jednotlivé stránky.

29 WML soubor WML soubor musí obsahovat následující řádky, definující typ dokumentu: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" " Poté následují wml tagy: <wml> <card title="Titulek karty" id="nazev"> <p>Prvni pokusna karta</p> </card> </wml>

30 WML tagy (1) Formátování textu <b>tučné</b>
<i>italic</i> <u>podtržené</u> <small>malé</small> <big>velké</big> <strong>silné</strong> <em>kurzíva</em> <p align="left/right/center">nový odstavec</p> <br/> nepárový tag sloužící k zalomení řádku Komentáře <! komentář> Odkazy <a href=" na wapway.cz</a>

31 WML tagy (2) Navigace mezi kartami <?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" " <wml> <card title="Moje prvni karta" id="prvni"> <p>Prvni karta. Muzete skocit se podivat i na <a href="#druha">druhou</a>.</p> </card> <card title="Moje druha karta" id="druha"> <p>Jestli se Vam nelibi, vratte se na <a href="#druha">prvni</a>.</p> </wml>

32 WML tagy (3) U každé karty je možné použít tag <do> ve kterém lze definovat několik akcí, které se provedou buď vzbráním položky z menu, nebo stiskem speciální klávesy. <do label="popisek" type="accept/prev"> nejake akce </do> accept ... uživatel musí něco akceptovat prev ... skok na předchozí wml stránku

33 WML tagy (4) <?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" " <wml> <card title="Moje prvni karta" id="prvni"> <do type="accept" label="druha karta"> <go href="#druha"/> </do> <p>Bezte na druhou.</p> </card> <card title="Moje druha karta" id="druha"> <do type="accept" label="zpatky"> <prev/> <p>Vratte se zpatky.</p> </wml>

34 WML tagy (5) <prev/> ... skok na předchozí stránku, funguje jako tlačítko zpět <go/> ... skok na kartu nebo URL Pokud chceme u všech karet ve wml souboru používat stejnou akci, například návrat na původní stránku, můžeme použít tag <template>, který je dobré umístit před začátkem první karty.

35 WML tagy (6) <?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" " <wml> <temlate> <do type="prev" label="Zpatky"> </prev> </do> </temlate> <card title="Moje prvni karta" id="prvni"> <do type="accept" label="druha karta"> <go href="#druha"/> <p>Bezte na druhou.</p> </card> <card title="Moje druha karta" id="druha"> <p>Vratte se zpatky.</p> </wml>

36 České znaky ve WML (1) Český text na displeji telefonu:
Růžovoučká kytička nebo žluťoučké přáníčko. Zdrojový kód vypadá takto: <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" " <wml> <card id="pokus" title="Pokus"> <p> Růžovoučká kytička nebo žluťoučké přáníčko. </p> </card> </wml>

37 České znaky ve WML (2) ě ě Ě Ě š š Š Š
ě ě Ě Ě š š Š Š č č Č Č ř ř Ř Ř ž ž Ž Ž ý ý Ý Ý á á Á Á í í Í Í é é É É ú ú Ú Ú ů ů Ů Ů ó ó Ó Ó ť ť Ť Ť ň ň Ň Ň ď ď Ď Ď

38 České znaky ve WML (3) České znaky ve WML nahrazujeme entitami. Pro usnadnění práce můžeme použít konvertor. On-line konvertor naleznete například na adrese

39 Obrázky - ve formátu WBMP
- pouze dvoubarevné o maximální velikosti 94x52 pixelů - vkládání do wml stránky pomocí tagu <img/> s atributy: src, alt, width, height, hspace, vspace, align obdobně jako v HTML Stránka s obrázkem <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" " <wml> <card id="obrazek" > <p align="center"> <img src="neco.wbmp" alt="Muj obrazek"/> </p> </card> </wml>

40 Tabulky (1) Stejně jako v HTML se vkládají tagem <table> s povinným atributem columns, který určuje počet sloupců. Tabulky není vhodné používat, nepodporují je všechny prohlížece. Příklad: a b c d

41 Tabulky (2) <?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" " <wml> <card title="Karta s tabulkou" id="tabulka"> <p> <table columns="2"> <tr> <td> a </td> b </tr> .

42 Tabulky (3) . <tr> <td> c </td> d </tr>
</table> </p> </card> </wml>

43 XHTML eXtensible HyperText Markup Language Jazyk podobný HTML a WML.
Asociace WAPForum ve verzi WAP 2.0 přechází na jazyk XHTML, který má podstatně širší možnosti než WML.

44 Rozdíly mezi XHTML a HTML (1)
XHTML je aplikací XML, kdežto HTML vychází z SGML Velikost písmen, používaných v jednotlivých elementech HTML ... je to jedno XHTML ... trvá na zápisu malými písmeny Křížení tagů HTML ... většina prohlížečů zobrazí i tagy ve špatném pořadí. XHTML ... křížení je nepřípustné např.: <i>Kurzíva<b>tučná</i></b> je v XHTML špatně, ale v HTML to nevadí. Správně v XHTML: <i>Kurzíva<b>tučná</b></i>

45 Rozdíly mezi XHTML a HTML (2)
Rozšiřitelnost HTML ... složitější a neefektivní XHTML ... snadná Struktura hlavní části dokumentu HTML ... může obsahovat jen samotný text a prohlížeč jej zobrazí XHTML ... musí obsahovat všechny tyto prvky, pokud ne, prohlížeč stránku nezobrazí <html> <head> <title></title> </head> <body> </body> </html>

46 Rozdíly mezi XHTML a HTML (3)
Nepárové tagy HTML ... zápis bez lomítka např <br> XHTML ... zápis s lomítkem na konci <br/> Hlavička definující typ dokumentu HTML ... Nepovinná XHTML ... povinná, jsou 3: <!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1.0 Strict//EN” ” <!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1.0 Transitional//EN” ” <!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1.0 Frameset//EN” ”

47 MathML Aplikace XML (podobně jako XHTML nebo WML)
Podpora konsorcia W3C => velká šance na uchycení ve světě WWW. Dva způsoby zápisu: prezentační (vzhled) sémantický (význam)

48 x2 + 4x + 4 = 0 pomocí prezentačních tagů:
<mrow> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo> <mn>4</mn> <mo>&InvisibleTimes;</mo> <mi>x</mi> </mrow> <mo>+</mo> <mo>=</mo> <mn>0</mn>

49 x2 + 4x + 4 = 0 pomocí sémantických tagů:
<apply> <plus/> <power/> <ci>x</ci> <cn>2</cn> </apply> <times/> <cn>4</cn>

50 := v d ó õ ô x Ukázka exportu neurčitého integrálu z Maple 7:
> restart; > with( MathML ): > v := Int(sqrt(x),x); := v d ó õ ô x > Export( v ): > XMLTools:-Print( % );

51 <math xmlns='http://www.w3.org/1998/Math/MathML'>
<semantics> <mrow xref='id4'> <mo>&Integral;</mo> <mrow xref='id3'> <msqrt> <mi xref='id2'>x</mi> </msqrt> </mrow> <mo>&InvisibleTimes;</mo> <mrow> <mo>&DifferentialD;</mo> <mi xref='id1'>x</mi>

52 <annotation-xml encoding='MathML-Content'> <apply id='id4'> <int/> <bvar> <ci id='id1'>x</ci> </bvar> <apply id='id3'> <root/> <ci id='id2'>x</ci> </apply> </apply> </annotation-xml> <annotation encoding='Maple'> Int(x^(1/2),x) </annotation> </semantics> </math>

53 WWW odkazy http://www.kosek.cz / http://www.oasis-open.org/


Stáhnout ppt "Aplikace XML pro Internet"

Podobné prezentace


Reklamy Google