xml a jeho aplikace
DESCRIPTION
XML a jeho aplikace. Magdalena Raszková Ústav informatiky PEF MZLU v Brně xraszkov @pef.mendelu.cz. Značkovací jazyk. Značkovací jazyk (markup language) je formálně definovaný jazyk zavádějící množinu speciálních symbolů (značky, tagy) - PowerPoint PPT PresentationTRANSCRIPT
2
Značkovací jazyk Značkovací jazyk (markup language) je formálně definovaný
jazyk zavádějící množinu speciálních symbolů (značky, tagy) Značkovací jazyky jsou určeny k vyznačování částí textu
podle určitých pravidel, pomocí vyhrazené množiny znaků či sekvencí znaků
Značkování (markup) je proces, kdy je určitý text (dokument) obohacen o nový význam prostřednictvím značek
Značkování může probíhat manuálně či automatizovaně Důvody značkování
datová nezávislost životnost označkovaného dokumentu přehlednost zjednodušení zpracování dokumentu
3
Značkovací jazyky
CSV LaTeX HTML XML a další
4
XML (eXtensible Markup Language) Rozšiřitelný značkovací jazyk Standard konsorcia W3C Je určen především pro výměnu dat mezi
aplikacemi a pro publikování dokumentů
Meta-značkovací jazyk pro textové dokumenty, nedefinuje tedy pevně danou množinu značek
Je možné definovat si vlastní elementy, tak jak je potřeba
5
Trocha historie nikoho nazabije V roce 1986 byl jako norma ISO přijat
značkovací jazyk SGML (Standard Generalized Markup Language)
SGML je velmi obecný a poměrně složitý Ze SGML vychází jazyk
HTML XML
XML aplikace
GML
SGML
HTML XML
XHTML XSL
ebXML …
7
Schéma a obsah XML elementu
Elementy <osoba>
<jmeno>Magda</jmeno><prijmeni>Raszková</
prijmeni></osoba>
Znaková data <osoba>Magda Raszková</osoba>
Smíšený obsah <odstavec>
<pojem>XML</pojem>je značkovací…</odstavec>
Prázdný element <cara /> nebo <cara></cara>
<jméno_značky atribut="hodnota"> obsah </jméno_značky>
počáteční značka (počáteční tag)
koncová značka(koncový tag)
Element
8
Logická struktura XML Na XML data lze nahlížet jako na strom Jednotlivé části stromu jsou tvořeny
elementy a případně dalšími součástmi XML dat
Vztahy mezi prvky vycházejí z terminologie rodokmenů
předek rodič sourozenec dítě potomek (následník)
9
Syntaktická pravidla jazyka XML výhodou jazyka XML je jeho flexibilita
a rozšiřitelnost na druhou stranu XML dokumenty musí
splňovat syntaktická pravidla určující umístění značek, atributů, dovolené způsoby tvoření názvů apod.
Každý XML dokument, který striktně dodržuje dále uvedená syntaktická pravidla (pravidla správné formulace) je označován jako dobře strukturovaný (well-formed)
10
Syntaktická pravidla jazyka XML
1. XML dokument obsahuje alespoň jeden element může být i prázdný
2. Názvy XML elementů odpovídají pravidlům jména elementů by měla popisovat a blíže
specifikovat, jaké informace jsou v daném elementu obsaženy
názvy elementů musí začínat písmenem nebo podtržítkem
další znaky smí být písmena, číslice, podtržítka, pomlčky, tečky
jiné znaky nejsou povoleny
11
Syntaktická pravidla jazyka XML
3. XML dokument obsahuje kořenový element element na nejvyšší úrovni „obal“ všech ostatních elementů
4. XML je case-sensitive rozlišujeme malá a velká písmena v názvech
elementů
5. XML elementy se nesmí křížit pokud nějaký element obsahuje počáteční značku
jiného elementu, musí obsahovat i příslušnou koncovou značku
12
Syntaktická pravidla jazyka XML
6. XML atributy odpovídají pravidlům pro názvy atributů platí stejná pravidla jako pro názvy
elementů hodnota atributu musí být zapsána mezi uvozovky
nebo apostrofy element nesmí mít dva stejně pojmenované atributy
7. XML dokument neobsahuje zakázané znaky v XML existují znaky, které mají svůj specifický význam tyto znaky nemůžeme zapsat přímo, ale musíme pro
ně použít tzv. vestavěné znakové entity znak < nahrazuje entita < znak > nahrazuje entita > znak & nahrazuje entita & znak " nahrazuje entita " znak ' nahrazuje entita '
13
XML hlavička XML hlavička je deklarací XML dokumentu Je-li hlavička dokumentu uváděna, pak se musí
vyskytnout na úplném začátku dokumentu, nesmí se před ní vyskytnou žádné jiné (ani bílé) znaky
Hlavička je nepovinná (jen v případě použití UTF-8 apod.)<?xml version= "1.0" encoding="iso-8859-2" standalone="no"?>
Atributy: version – verze xml encoding – kódování dokumentu standalone – povinnost číst definice z externí
podmnožiny DTD
14
Editace XML dokumentu jde o čistě textový formát
jakýkoliv textový editor (Notepad, Emacs, …) XML editory
XMetaL Epic XMLSpy XMLwriter XMLmind Stylus Studio XML Enterprise Suite Cooktop a další
15
DTD (Document Type Definition)
DTD – definice typu dokumentu, obsahuje pravidla zápisu XML dat a jejich definici
Jazyk pro popis struktury XML, ale i (X)HTML Deklarace typu dokumentu obsahuje DTD
(interní podmnožinu) nebo odkaz na DTD (externí podmnožinu)
Deklarace se uvádí před kořenovým elementem:
<!DOCTYPE nazev_koren_elementu [interní podmnožina DTD]>
<!DOCTYPE nazev_koren_elementu SYSTEM "URI externí podmnožiny">
16
Deklarace a definice obsahu elementů
Elementový obsah<!ELEMENT osoba (jmeno+, prijmeni)>
Znaková data<!ELEMENT odstavec (#PCDATA)>
Prázdný element<!ELEMENT cara EMPTY>
Libovolný obsah<!ELEMENT smeti ANY>
Smíšený obsah<!ELEMENT popis (#PCDATA|tucne|
kurziva)*>
17
Výhody a nevýhody DTD
Široce rozšířený, jednoduchý princip popisu obsahui struktury dokumentů
Nižší flexibilita popisu, těžkopádnost Pouze minimálně podpora rozlišení různých
datových typů Další jazyky pro popis struktury XML
XML Schema RELAX NG Schematron DSD
18
Validní XML Pokud dokument odpovídá určitému DTD
(případně jinak popsané definici struktury), pak je validní (valid) Každý validní dokument je dobře strukturovaný Dobře strukturovaný dokument nemusí být validní Pokud je dokument validní existuje k němu příslušný
popis struktury (DTD, XML Schema, ...) XML dokument nemusí být validní ani dobře
strukturovaný (Je to ještě XML?)
Pomocí parseru lze zkontrolovat, zda dokument danému DTD vyhovuje (tzn. je validní).
19
XML aplikace Termín XML aplikace představuje konkrétní
množinu značek a pravidel jejich použití Existuje mnoho běžně používaných formátů
dat založených na XML
20
XML aplikace CML (Chemical Markup Language) – popis
chemických vzorců DocBook InkML MathML (Mathematic Markup Language) ODF (Open Document Format) RSS (Rich Site Summary / RDF Site Summary) SMIL (Synchronized Multimedia Integration
Language) SVG (Scalable Vector Graphic)
21
XML aplikace XForms XHTML (Extensible HyperText Markup
Language) – webové dokumenty, XML reformulace HTML
XSD (XML Schema Definition) XSL (eXtensible Stylesheet Language) XUL (XML User Interface Language) VML (Vector Markup Language) WML (Wireless Markup Language) a další
22
(X)HTML eXtensible Hypertext Markup Language Značkovací jazyk pro tvorbu hypertextových
dokumentů v prostředí WWW vyvinutý konsorciem W3C
Účelem i významovým rozsahem se jedná o HTML 4.01, řídí se však syntaktickými pravidly XML
Původně se předpokládalo, že se stane nástupcem jazyka HTML, jehož vývoj byl verzí 4.01 ukončen
V roce 2007 však došlo k založení pracovní skupiny, která má za cíl vytvořit novou verzi HTML 5.0 (od 23. 4. 2008 v podobě Working Draft)
XHTML je stále paralelně vyvíjeno a nyní se pracuje na verzi 2.0
23
MathML Mathematical Markup Language MathML je specifikace konsorcia W3C určená pro
reprezentaci matematických výrazů na webu Přímo nebo prostřednictvím pluginů je podporován ve
většině moderních prohlížečů (MSIE 5, NN 6.2, Mozilla 0.9.9)
MathML je v porovnání se syntaxí TeXu objemnější, XML struktura ovšem dovoluje použití například v zobrazovacích zařízeních jako jsou webové prohlížeče nebo ulehčuje přímou interpretaci v matematických programech
Konverze mezi TeXem a MathML itex2mml
MathML je také podporováno hlavními kancelářskými programy jako jsou Microsoft Word, OpenOffice.org
24
MathML http://www.w3.org/Math/XSL/csmall2.xml http://cs.wikipedia.org/wiki/MathML
25
SVG SVG (Scalable Vector Graphics) je jazyk pro
popis vektorové grafiky a animací Specifikace SVG 1.0 pochází ze září 2001 Přímá implementace v prohlížečích zatím
chybí, k dispozici jsou ale příslušné pluginy
26
SVG http://www.croczilla.com/svg/samples/ http://www.w3schools.com/svg/svg_examples.
asp
27
Stylové jazyk Základní myšlenkou, na které staví většina
značkovacích jazyků včetně XML a SGML, je důsledné oddělení obsahu dokumentu od jeho vzhledu
Můžeme si však odděleně vytvořit definici vzhledu jednotlivých elementů, které se říká styl
Stylové jazyky: XSL – stylový jazyk navržený speciálně pro XML DSSSL – stylový jazyk původně navržený pro SGML,
umí však zpracovat i XML dokumenty CSS (kaskádové styly) FOSI – stylový jazyk používaný v některých komerčních
aplikacích
28
Proč vůbec používat styly?
XML umožňuje strukturovat data uložená v dokumentu, neříká nám však nic o jejich vzhledu
princip oddělení obsahu dokumentu od jeho vzhledu
potřeba převodu XML dokumentu do formátu vhodného pro vlastní prezentaci1. můžeme vytvořit vlastní program pro
zpracování dat v XML ...2. použít modul nějakého programovacího
jazyka3. využijeme technologie XSL
29
připojení různých stylů k jednomu XML dokumentu
Výhoda při aktualizaci
Přizpůsobení různým koncovým zařízením (monitor, tisk, PDA, mobil, …)
Proč vůbec používat styly?
30
připojení jednoho stylu k různým XML dokumentům
Dosažení jednotného vzhledu
Změna vzhledu úpravou jednoho stylu
Proč vůbec používat styly?
31
XSL eXtensible Stylesheet Language stylový jazyk speciálně vyvinutý pro XML specifikace XSL je dílem konsorcia W3C původně jedna specifikace, která zajišťovala jak
transformaci dokumentů, tak i jejich formátování
později vymezeny 2 samostatné části, které spolu ale úzce souvisí:
transformační část: XSLT (Transformation) formátovací část: XSL-FO (Formatting Objects)
definuje vizuální vlastnosti objektů a dokumentu – formátování výstupu
transformace do formátu PDF, PS
32
Transformační část – XSLT
výkonný jazyk pro přímou manipulaci s obsahem dokumentů XML
pomocí XSLT lze jednoduchým způsobem transformovat vstupní XML dokument na rozličné výstupní formáty
umožňuje definovat transformaci XML dokumentu na jiný dokument XML s odlišnou strukturou a značkami
převod na další typy dokumentů: HTML, XHTML RTF obyčejný textový soubor kód v jazyku JavaScript sekvence SQL příkazů zdrojový kód pro TeX dokumenty XSL-FO…
verze XSLT XSLT 1.0 – doporučení (recommendation) XSLT 2.0 – od 23. ledna 2007 také ve formě doporučení
33
uvnitř klientského programu transformace pomocí prohlížeče (nejlépe
Mozilla FireFox) styl se připojuje ke XML dokumentu pomocí
instrukce <?xml-stylesheet?> uvedené za hlavičkou XML dokumentu
<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="styl.xsl"?><knihovna>
...</knihovna>
Realizace transformací
Pozn.: Internet Explorer je schopen provést transformaci pouze pokud je jako typ
uveden text/xsl místo text/xml, který by tam měl správně být. FF zvládá obojí.
34
pomocí procesoru jazyka XSLT samostatný program, která dovede aplikovat
styly na základní XML dokument a provést jeho transformaci
XT, Saxon, MSXML, Xalan
příklad transformace pomocí procesoru XT
java -cp xt.jar com.jclark.xsl.sax.Driver kurz.xml kurz.xsl kurz.html
Realizace transformací
zdrojový XML dokument XSL styl název cílového dokumentu
35
DocBook DocBook je dnes asi druhá nejpoužívanější aplikace
SGML/XML, hned za jazykem HTML DocBook vznikl v roce 1991 jako formát založený
na SGML, určený především pro výměnu unixové dokumentace
Aktuální verze DocBooku nese číslo označení 4.5 a existuje ve dvou verzích pro SGML i pro XML
Samotný DocBook není nic jiného než DTD, které definuje jaké elementy a atributy můžeme v dokumentech používat
Volně k dispozici jsou XSL a DSSSL styly, které lze použít pro formátování dokumentů v DocBooku
36
DocBook DocBook obsahuje elementy, které umožňují členit
dokumenty do kapitol, podkapitol, označovat názvy programů, obrázky, snímky, obrazovky, klávesové zkratky apod.
DocBook se vyvinul do podoby systému, který se hodí zejména pro tvorbu počítačové dokumentace, lze ho však použít pro zápis libovolných knih a článků
Dokumentace k mnoha programům je vytvářena v DocBooku (např. Linux a FreeBSD, ke skriptovacímu jazyku PHP)
DocBook používají i velká počítačové nakladatelství (O'Reilly)
Výhodou DocBooku je, že mnoho editorů a nástrojů pro práci s XML v sobě přímo zahrnuje jeho podporu
37
DocBook http://www.oasis-open.org/docbook/ http://docbook.sourceforge.net http://www.docbook.org
38
SMIL Synchronized Multimedia Integration
Language je určen pro tvorbu synchronizovaných
multimediálních webových prezentací Pomocí SMIL lze například vložit do prezentace
s videozáznamem synchronizované titulky
39
SMIL http://www.w3schools.com/smil/ http://www.w3schools.com/smil/tryit.asp?
filename=trysmil_trans
40
WML Wireless Markup Language značkovací jazyk umožňující tvorbu online
dokumentů pro mobilní zařízení Struktura WML dokumentu je podobná jako v
HTML, XHTML apod. Má však určitá specifika, vycházející z jeho změření na mobilní přístroje, především a mimo jiné:
Nepodporuje barvy Podporuje vnořené dokumenty (card) v jednom souboru Definuje některé ovládací prvky koncového prohlížeče Podporuje pouze černobílé obrázky ve formátu WBMP Prohlížeči bývá vyžadována jeho striktní validita Definice vstupních formulářů podporuje primitivní
validace hodnot
41
WML http://www.w3schools.com/wap/
wml_examples.asp
42
Transformace XML do PDF XSL-FO
Formátovací objekty TeX
1. definujeme vlastní transformace na TeXovské příkazy v XSL stylu
2. PassiveTeX (procesor FO postavený nad TeXem)
3. TeXML4. xmltex (parser XML v TeXu )Základní přehled zde
43
Kde se dozvíte více?
Stránky konsorcia W3Chttp://www.w3.org/
www.google.com www.wikipedia.com
44
Kde se dozvíte více?
Volitelný předmět E-technologie Garant: Ing. Roman Malo, Ph.D. Vhodný pro neinformatiky
Volitelný předmět XML aplikace
Garant: Ing. Roman Malo, Ph.D. Vhodný pro informatiky
a odvážné neinformatiky
45
Dotazy?
Děkuji za pozornost