SlideShare a Scribd company logo
TNPW2
2012/2013
10 – Technologie XML


Mgr. Lukáš Vacek
lukas.vacek@uhk.cz
2




Agenda
         •   Co je to XML?
         •   Přednosti a nedostatky XML



10       •
         •
         •
         •
         •
         •
             Nejčastější použití XML
             Základy syntaxe
             Prohlížení a kontrola XML dokumentů
             Vzhled XML dokumentů
             DTD a XML schémata
             Jmenné prostory, prefixy
         •   Co je to XSL a XSLT?
         •   Internet, doporučená literatura
3

Co je XML? Vymezení proti HTML a XHTML

HTML
• Definuje jednoduchý, pevně stanovený typ dokumentu
• Množina používaných značek je navržena tak, aby vyhovovala požadavkům na
  běžné dokumenty >> nadpisy, odstavce, seznamy, obrázky apod.
• HTML umožňuje použití hypertextu a integraci multimedií

XML
• XML (eXtensible Markup Language) je rozšiřitelný značkovací jazyk
• Umožňuje definici vlastních typů dokumentů a přesně označuje význam jejich
  jednotlivých částí, a ne jen jejich vzhled (jako HTML)
• Na rozdíl od jazyka HTML jde spíše o metajazyk

XHTML
• Je nástupcem HTML, používá XML syntaxi a má přísnější pravidla
• Validní XHTML dokument je i validním XML dokumentem!
4

SGML , XML x HTML (XHTML)

• Oba jazyky (HTML a XML) vycházejí z mezinárodního standardu SGML
  (norma ISO 8879, z roku 1986) pro popis struktury a obsahu různých druhů
  elektronických dokumentů
• Značkovací jazyky vycházející ze SGML definují množinu značek (a jejich
  vzájemných vztahů) pomocí tzv. definic typu dokumentu (DTD)

• XML není nástupcem ani konkurentem HTML!

• XML dokumenty samy o sobě nejsou (pro běžného uživatele) dost dobře
  zobrazitelné, představují datovou základnu, ze které lze transformací vytvořit
  něco, co se dá prezentovat uživateli v podobě HTML, WML, PDF nebo jinak

http://www.w3.org/
http://zvon.org/
5

Mýty a předsudky o XML

Nejrůznějších bludů o XML je rozšířena celá řada 

+ Je to moderní (revoluční) technologie, hodí se skoro na všechno
  (XML je spása, XML jako univerzální kráječ)
+ Musíme to použít, protože to používá konkurence!
+ Když použijeme XML, budou naše aplikace kvalitnější!

– XML je jenom takové lepší HTML…
– XML je hodně „upovídaný“ jazyk, má příliš svazující pravidla!
– XML je pomalá a paměťově náročná technologie!
6




Agenda
          Co je to XML?
         • Přednosti a nedostatky XML



10       • Nejčastější použití XML
         • Základy syntaxe
         • Prohlížení a kontrola XML dokumentů
         • Vzhled XML dokumentů
         • DTD a XML schémata
         • Jmenné prostory, prefixy
         • Co je to XSL a XSLT?
         • Internet, doporučená literatura
7

Přednosti XML

• Standardní formát pro výměnu a sdílení strukturovaných informací
• Je nezávislý na platformě
• Mezinárodní podpora (i jiné jazyky než angličtina)
• Informační obsah (přesné určení toho, co která část dokumentu znamená)
• Snadná konverze do dalších formátů (pomocí stylových jazyků – CSS, XSL apod.)
  a pro různá cílová zařízení
• Automatická kontrola struktury dokumentu (prohlížeč se klasické HTML vždy
  "pokusí" nějak interpretovat, XML ne)!
• Rozšiřuje možnosti relačních databází u složitě strukturovaných dat, která se
  nedají dost dobře uložit do tabulek
• Přesné indexování a vyhledávání dokumentů a jejich částí
8

Nedostatky XML

• XML umí být „pěkně ukecaný“ formát, jako všechny značkovací jazyky 
• Je určen hlavně pro výměnu textových dat, nehodí se pro
  ▫ binární data
  ▫ velké objemy dat – pro tzv. datové pumpy použijte nějaký ETL tool
• XML standardy se neustále vyvíjejí
• S XML dokumentem lze (zatím) pracovat jen jako s celkem
• Poněkud problematické je indexování a prohledávání XML dokumentů – nic na
  způsob „domácího“ fulltextu zatím není u XML k dispozici
• V porovnání s relačními databázemi
  ▫   poněkud složitější programování
  ▫   menší rychlost
  ▫   problematická kontrola přístupových práv k jednotlivým částem XML dokumentu
  ▫   je třeba řešit i zálohování souborů uložených mimo DB…
9




Agenda
          Co je to XML?
          Přednosti a nedostatky XML



10       • Nejčastější použití XML
         • Základy syntaxe
         • Prohlížení a kontrola XML dokumentů
         • Vzhled XML dokumentů
         • DTD a XML schémata
         • Jmenné prostory, prefixy
         • Co je to XSL a XSLT?
         • Internet, doporučená literatura
10

Nejčastější použití XML

• Zveřejňování informací na webových stránkách (XHTML)
• Vytváření popisných metadat (RDF – W3C standard, jde model) o dokumentech
  (např. OpenURL, Dublin Core, RSS/atom kanály apod.)
• Vzájemná komunikace (výměna dat) mezi různými informačními systémy >>
  hlavně webové služby
• Elektronické publikování (knihy, manuály, vyhlášky) a následná správa
  dokumentů pomocí metadat
• Uchovávání dat malého rozsahu nebo dat nerelačního charakteru
• Konfiguračních data k aplikacím (.NET, Java Spring)
• Formáty založené na XML, např. vektorová grafika (SVG), matematické vzorce
  (MathML), chemická data (CML)

• Doporučení: Při implementaci XML v aplikaci využívejte existující standardy
  a knihovny. Nevynalézejte znovu kolo!
11

Kdy XML není dobrou volbou?

• Velké množství přenášených dat
  ▫ Velmi intenzivní komunikace >> vlastní data tvoří pouze zlomek celkové velikosti,
    limitujícím faktorem může být i přenosová cesta
      příklad: nativní aplikace v mobilním telefonu, komunikující se serverem
      alternativy: JSON, REST
  ▫ Přenos velkých (strukturovaných) dat >> problémem je jednak velikost dat, jednak
    "náklady" na serializaci/parsing
      příklad: datové pumpy (přenos velkých dat z A -> B), datová replikace většího množství dat
       v reálném čase (i mezi více systémy)
      alternativy: ETL nástroje, flat-file
• Nepodporovaný typ rozhraní >> nativní podpora neexistuje nebo je velmi
  omezena na dané platformě
  ▫ příklad: velké firmy, jejichž ICT infrastruktura vznikala v průběhu 70-80. let nebo i
    dříve, stále používají main-frame/mid-range servery
  ▫ alternativa: proprietární/průmyslové formáty jako COPYBOOK, SWIFT nebo flat-file
• Low-level programování, kde je kladen důraz na výkon
  ▫ příklad: telefonní ústředny, ATMs (bankomaty) nebo platební terminály
  ▫ alternativa: flat-file
12




Agenda
          Co je to XML?
          Přednosti a nedostatky XML



10        Nejčastější použití XML
         • Základy syntaxe
         • Prohlížení a kontrola XML dokumentů
         • Vzhled XML dokumentů
         • DTD a XML schémata
         • Jmenné prostory, prefixy
         • Co je to XSL a XSLT?
         • Internet, doporučená literatura
13

XML elementy

• Základním stavebním prvkem XML dokumentu jsou elementy
• Každý XML dokument musí být uzavřen v jednom XML elementu (root),
  obdobně jako se v HTML používá tag <html>
• Všechny elementy jsou párové. Pokud je element prázdný, je možné jej zapsat
  ve zkrácené podobě <element />
• Elementy je možno do sebe vnořovat, ale není možno je křížit
• V názvech elementů a atributů se rozlišují velká a malá písmena. Jestliže
  v HTML znamenají prvky <TABLE> a <Table> totéž, v XML tomu tak není!
• Název elementu může obsahovat písmena, čísla, znaky „_“, „–“ a „.“, mezery
  nejsou povoleny, nesmí začínat řetězcem „xml“, dvojtečky „:“ jsou vymezeny pro
  použití v názvech jmenných prostorů

<obsah>
  <mujElement>nějaký řetězec</mujElement>
</obsah>
14

Kódování znaků

• Aby šlo v XML dokumentu bez problémů zapisovat znaky libovolného jazyka,
  používá se standardně kódování UTF-8
• Je však možné použít i jiné kódování např. iso-8859-2 nebo windows-1250
• Nastavení kódování XML dokumentu se provádí v XML deklaraci
  (vždy na 1. řádku každého XML dokumentu!):
<?xml version="1.0" encoding="windows-1250"?>

• Pokud je použito kódování UTF-8, je možné v XML deklaraci nastavení kódování
  vynechat:
<?xml version="1.0 ?>
15

Mime type v XHTML

• Mime typ je textová informace v hlavičce zprávy, která popisuje, jaká data
  budou následovat.
• Je složena ze dvou částí: Označení typu dat/Konkretizace dat.
• Podle mime typu se určuje, jaký parser v prohlížeči (HTML vs XML) bude
  zdrojový kód zpracovávat.
HTML:
<meta http-equiv="content-type" content="text/html;...
XHTML:
<meta http-equiv="content-type" content="application/xhtml+xml;...


• Až do verze IE9 neuměl MS prohlížeč správně zpracovat mime typ pro XHTML!
• Problém částečně řeší HTML5.

• http://dero.name/weblog/xhtml-mime/
• http://zdrojak.root.cz/clanky/polyglot-aneb-webovym-koderem-pod-oboji/
• http://zdrojak.root.cz/clanky/xhtml-je-mrtve-at-zije-html5-nebo-ne/
16

Znakové entity

• Mezi počáteční a koncovou značkou XML elementu se nesmí používat znaky
  „<“ a „&“, nedoporučuje se používat znak „>“

• Namísto těchto kolizních znaků se používají tzv. znakové entity.
  V XML jsou předdefinovány tyto znakové entity:

  <   ...   &lt;
  &   ...   &amp;
  >   ...   &gt;
  “   ...   &quot;
  ‘   ...   &apos;

• Doporučuji používat i v XHTML dokumentech!

http://www.aspnet.cz/Articles/205-jak-na-html-entity-v-xml-dokumentech.aspx
17

Atributy

• Atribut poskytuje dodatečnou (doplňující) informaci o elementu, pokud je
  použit, je vždy součástí počáteční (otevírací) značky elementu
• Elementy mohou obsahovat jeden nebo více atributů (na pořadí nezáleží)
• Jednotlivé atributy jsou ve značce odděleny mezerou (proto není mezera
  v názvu značky povolena)
• Názvy atributů se řídí stejnými pravidly jako názvy elementů
• Všechny atributy musejí mít určenou hodnotu, která je uzavřena do uvozovek
  nebo apostrofů:
<element atribut1='hodnota1’ tribut2=“hodnota2“>obsah</element>
<element2 atribut3=’a“BC“d’>obsah</element2>
18

Komentáře v XML

• Do zdrojového kódu XML dokumentů lze vkládat komentáře
• Komentář je součástí dokumentu, ale je ignorován při jeho zpracování
• Komentář může být kdekoliv ve zdrojovém kódu, ale nesmí být součástí nějaké
  značky!
<!– můj komentář -->

<element <!– můj komentář -->>obsah</element> je chybně!
19

Instrukce pro zpracování

• Instrukce pro zpracování se vkládají do XML dokumentu v případě, že
  potřebujeme ovlivnit charakter jeho dalšího zpracování
<?identifikátor data?>

• Identifikátor určuje aplikaci nebo zařízení, pro které je instrukce určena
• Data jsou vlastní instrukce (příkazy) ve formátu odpovídajícímu uvedené
  aplikaci nebo zařízení
<?xml-stylesheet href="styl.css" type="text/css"?>
...
<?php echo “výpis“ ?>
20

CDATA

• Když potřebujeme do XML dokumentu vložit větší kus textu se značkami (např.
  nějaké instrukce pro pozdější zpracování, CSS, JavaScript apod.), je vhodné
  použít sekci CDATA
<script type="text/javascript">
<![CDATA[
  for (i=0; i < 10; $++)
  {
    document.writeln("<p>Ahoj</p>");
  }
]]>
</script>
21




Agenda
          Co je to XML?
          Přednosti a nedostatky XML



10        Nejčastější použití XML
          Základy syntaxe
         • Prohlížení a kontrola XML dokumentů
         • Vzhled XML dokumentů
         • DTD a XML schémata
         • Jmenné prostory, prefixy
         • Co je to XSL a XSLT?
         • Internet, doporučená literatura
22

Prohlížení a kontrola XML dokumentů

• Prohlížení XML dokumentů je možné např. v prohlížeči s podporou XML (např.
  Internet Explorer, Mozilla Firefox apod.)
• Program, kterým se provádí kontrola a zpracování XML dokumentu, se jmenuje
  parser
• Prohlížeče s podporou XML tento parser obsahují, jsou proto nejjednodušší
  cestou, jak dokument zobrazit a zároveň zkontrolovat
• Bude-li XML dokument správně zformátován (well formed), zobrazí jej.
  V opačném případě prohlížeč oznámí chybu!

10-01-priklad.xml
10-02-priklad-validace.html (pouze Internet Explorer! Používá ActiveX prvek)
23




Agenda
          Co je to XML?
          Přednosti a nedostatky XML



10        Nejčastější použití XML
          Základy syntaxe
          Prohlížení a kontrola XML dokumentů
         • Vzhled XML dokumentů
         • DTD a XML schémata
         • Jmenné prostory, prefixy
         • Co je to XSL a XSLT?
         • Internet, doporučená literatura
24

Vzhled XML dokumentů

• XML odděluje informační obsah dokumentu od definice grafického vzhledu >>
  neurčuje, jakým způsobem se má obsah jednotlivých značek (elementů)
  zobrazovat

• K tomu se používají stylové jazyky:
  ▫ CSS (Cascading Style Sheet)
  ▫ XSL (eXtensible Stylesheet Language)

• CSS je jednodušší a není vytvořen podle pravidel XML (na rozdíl od XSL), používá
  svá vlastní pravidla!
25

XML a CSS

• Připojení CSS k dokumentu XML:
<?xml-stylesheet href="styl.css" type="text/css"?>


• Pozor! V CSS pro XML se rozlišuje velikost písmen v názvech selektorů
• Vlastnost display (block, inline, list-item, none) určuje způsob
  zobrazení obsahu elementu v prohlížeči
• Neurčíme-li v CSS jinak, je výchozí zobrazení elementu nastaveno na display:
  inline

10-03-priklad.xml
26




Agenda
          Co je to XML?
          Přednosti a nedostatky XML



10        Nejčastější použití XML
          Základy syntaxe
          Prohlížení a kontrola XML dokumentů
          Vzhled XML dokumentů
         • DTD a XML schémata
         • Jmenné prostory, prefixy
         • Co je to XSL a XSLT?
         • Internet, doporučená literatura
27

DTD a XML schémata – I.
• DTD (Document Type Definition) a XML schémata jsou formální sady pravidel, které jsou
  určeny pro lepší kontrolu nad obsahem XML dokumentu

• Vymezují množinu elementů a atributů, které mohou být v dokumentu použity, včetně
  jejich obsahu a vzájemných vazeb (způsobů vnořování)

• Pokud XML dokument obsahuje odkaz na strukturu, kterou má dodržovat, je možné
  kromě správné strukturovanosti (well formed) kontrolovat také její validitu

• Použití DTD a XML schémat má význam při výměně informací mezi informačními
  systémy, umožňuje jednoznačnou interpretaci elementů

• Každé XML schéma je zároveň XML dokumentem, DTD používá vlastní formát

• Existují i další varianty pravidel pro XML, např. RELAX NG (Wikipedia)
28

DTD a XML schémata – II.

• DTD je starší, jednodušší (a díky tomu i více rozšířené)
• XML schémata sice vznikla později, ale jsou zase mnohem komplexnější
  (řeší některé nedostatky DTD, např. datové typy)
• Vazba XML dokumentu na XML schéma je složitější, než je tomu v případě DTD
• DTD soubory používají příponu *.dtd, XML schémata *.xsd

• Příklad použití XML souboru s DTD:
  10-04-priklad.xml

• Příklad použití XML souboru s XML schématem:
  http://www.kosek.cz/xml/schema/index.html
29

Příklady nejběžnějších DTD

•   Hypertext Markup Language (HTML)
•   Channel Definition Format (CDF)
•   Mathematical Markup Language (MathML)
•   Resource Description Framework (RDF)
•   Chemical Markup Language (CML)
•   Precision Graphics Markup Language (PGML)
•   UML eXchange Format (UXF)
•   DocBook (publikování)
•   Scalable Vector Graphics (SVG)
30




Agenda
          Co je to XML?
          Přednosti a nedostatky XML



10        Nejčastější použití XML
          Základy syntaxe
          Prohlížení a kontrola XML dokumentů
          Vzhled XML dokumentů
          DTD a XML schémata
         • Jmenné prostory, prefixy
         • Co je to XSL a XSLT?
         • Internet, doporučená literatura
31

Jmenné prostory

• V XML dokumentech od různých autorů může nastat situace, kdy budou
  v jednotlivých dokumentech použity stejně pojmenované elementy, ale
  s různým významem!
• Pomocí jmenných prostorů tomu lze předejít a odlišit elementy jednoho autora
  od elementů jiného autora
• Označení jmenného prostoru je vizuálně podobné URL adrese

http://doména/volitelná_informace_o_prostoru/popis_prostoru/verze

Příklad:
http://www.mojedomena.cz/alfa/dopisy/1.0


• Někdy se místo označení URL (Uniform Resource Locator) používá zkratka URN
  (Uniform Resource Name). 1URN = 1-n URL
32

Deklarace jmenných prostorů, prefixy

• Jmenný prostor je možné deklarovat v libovolném elementu
<dopis xmlns=“identifikace jmenného prostoru“>
 ...
</dopis>

• Jmenný prostor se vztahuje na element, ve kterém je deklarován a na všechny
  jeho potomky
• V případě, že chceme v elementu (a v jeho potomcích) použít více jmenných
  prostorů, lze používat prefixy

<mujelement xmlns=“identifikace prostoru“
            xmlns:bib=“http://www.book.org/bibliography“>
  <test1>obsah</test1>
  <bib:test2>obsah2</test2>
  <test3>obsah2<test3>
</mujelement>
33




Agenda
          Co je to XML?
          Přednosti a nedostatky XML



10        Nejčastější použití XML
          Základy syntaxe
          Prohlížení a kontrola XML dokumentů
          Vzhled XML dokumentů
          DTD a XML schémata
          Jmenné prostory, prefixy
         • Co je to XSL a XSLT?
         • Internet, doporučená literatura
34

Co je XSL a XSLT?

• XML dokumenty samy o sobě nejsou dost dobře zobrazitelné, představují
  datovou základnu, se kterou je možné dále pracovat
• Jednou z možností je tzv. XSL (eXtensible Stylesheet Language) transformace
  dat uložených v XML dokumentu do požadovaného formátu, např. HTML, RTF,
  PDF nebo jinak
• XSL transformace se provádí prostřednictvím jazyka XSLT (eXtensible Stylesheet
  Language Transformations)

• XSL má dvě části:
  ▫ XSLT,
  ▫ XSL-FO (formátovací objekty typu XSL).
35

Použití XSL a XSLT

• XSL používá jazyk XML a je tedy sám XML dokumentem
• XSL dokumenty mají příponu *.xsl
• Každý XSL dokument
  ▫ Vždy obsahuje řídící příkazy XSLT procesoru
  ▫ Může obsahovat data (elementy, text), která se použijí při sestavování
     výsledného výstupu (dokumentu)
• Řídící příkazy XSLT procesoru náleží jmennému prostoru
  http://www.w3.org/1999/XSL/Transform,
  podle kterého XSLT procesor pozná, že má element zpracovat
• Pro vyhledávání jednotlivých prvků XML dokumentu, které vyhovují zadaným
  podmínkám, se používá dotazovací jazyk XPath (XPath je pro XML totéž, co SQL
  pro relační databáze )

10-05-priklad.xml
36




Agenda
          Co je to XML?
          Přednosti a nedostatky XML



10        Nejčastější použití XML
          Základy syntaxe
          Prohlížení a kontrola XML dokumentů
          Vzhled XML dokumentů
          DTD a XML schémata
          Jmenné prostory, prefixy
          Co je to XSL a XSLT?
         • Internet, doporučená literatura
37

Odkazy na Internetu

•   http://www.zvon.org
•   http://www.w3.org/
•   http://www.kosek.cz/xml/index.html
•   http://www.docbook.cz
•   http://en.wikipedia.org/wiki/Document_Type_Definition
•   http://en.wikipedia.org/wiki/XML_Schema_(W3C)
•   http://en.wikipedia.org/wiki/RELAX_NG
•   http://zdrojak.root.cz/clanky/polyglot-aneb-webovym-koderem-pod-oboji/
38

Doporučená literatura

•   Bráza, Jiří – XML Praktické příklady, Grada 2003
•   Žák, Miroslav – XML Začínáme programovat, Grada 2003
•   Esposito, Dino – XML Efektivní programování pro .NET, Grada 2004
•   Herout, Pavel – Java a XML pro Javu 5 i 6, Kopp 2007
39




Agenda
          Co je to XML?
          Přednosti a nedostatky XML



10        Nejčastější použití XML
          Základy syntaxe
          Prohlížení a kontrola XML dokumentů
          Vzhled XML dokumentů
          DTD a XML schémata
          Jmenné prostory, prefixy
          Co je to XSL a XSLT?
          Internet, doporučená literatura

More Related Content

PPTX
TNPW2-2012-09
PPTX
TNPW2-2011-09
PPTX
TNPW2-2014-02
PPTX
TNPW2-2014-03
PPTX
TNPW2-2014-06
PPTX
TNPW2-2013-02
PPTX
TNPW2-2013-03
PPTX
TNPW2-2011-10
TNPW2-2012-09
TNPW2-2011-09
TNPW2-2014-02
TNPW2-2014-03
TNPW2-2014-06
TNPW2-2013-02
TNPW2-2013-03
TNPW2-2011-10

Similar to TNPW2-2013-10 (20)

PPTX
Webové technologie
PDF
Xm lfunctionality inpostgresql
ODP
Pavel Rusinský (Mergado) - Nekonference 2018
PDF
Strukturovaná data
ODP
Znáte feedy jako své boty?
ODP
Xm lfunctionality inpostgresql
PDF
Pavel Rusinský (Mergado) - Nekonference 2018
PDF
Vytváření Www Prezentací
PDF
Kpi11 závěrečný úkol
PDF
Content Management Framework Drupal aneb 80% webu za pár hodin. Hodí se i pro...
PDF
Linked Data pro Evropský sociální fond
PPS
ASP.NET 3.5 / futures
PDF
Jak na XML feedy pro vyhledávače zboží a PPC kampaně
PPTX
TNPW2-2012-05
PDF
DEV Čtvrtkon #107 - Štefan Földesi
PDF
Bez HTML5/CSS3 to nejde
PPTX
Úvod do XAML
PPTX
TNPW2-2013-05
PDF
Ondřej Černoš: Sémantický web
Webové technologie
Xm lfunctionality inpostgresql
Pavel Rusinský (Mergado) - Nekonference 2018
Strukturovaná data
Znáte feedy jako své boty?
Xm lfunctionality inpostgresql
Pavel Rusinský (Mergado) - Nekonference 2018
Vytváření Www Prezentací
Kpi11 závěrečný úkol
Content Management Framework Drupal aneb 80% webu za pár hodin. Hodí se i pro...
Linked Data pro Evropský sociální fond
ASP.NET 3.5 / futures
Jak na XML feedy pro vyhledávače zboží a PPC kampaně
TNPW2-2012-05
DEV Čtvrtkon #107 - Štefan Földesi
Bez HTML5/CSS3 to nejde
Úvod do XAML
TNPW2-2013-05
Ondřej Černoš: Sémantický web
Ad

More from Lukáš Vacek (20)

PPTX
TNPW2-2016-07
PPTX
TNPW2-2016-06
PPTX
TNPW2-2016-05
PPTX
TNPW2-2016-04
PPTX
TNPW2-2016-03
PPTX
TNPW2-2016-02
PPTX
TNPW2-2016-01
PPTX
TNPW2-2014-01
PPTX
TNPW2-2014-05
PPTX
TNPW2-2014-04
PPTX
TNPW2-2013-09
PPTX
TNPW2-2013-08
PPTX
TNPW2-2013-07
PPTX
TNPW2-2013-06
PPTX
TNPW2-2013-04
PPTX
TNPW2-2013-01
PPTX
TNPW2-2012-10
PPTX
TNPW2-2012-08
PPTX
TNPW2-2012-07
PPTX
TNPW2-2012-06
TNPW2-2016-07
TNPW2-2016-06
TNPW2-2016-05
TNPW2-2016-04
TNPW2-2016-03
TNPW2-2016-02
TNPW2-2016-01
TNPW2-2014-01
TNPW2-2014-05
TNPW2-2014-04
TNPW2-2013-09
TNPW2-2013-08
TNPW2-2013-07
TNPW2-2013-06
TNPW2-2013-04
TNPW2-2013-01
TNPW2-2012-10
TNPW2-2012-08
TNPW2-2012-07
TNPW2-2012-06
Ad

TNPW2-2013-10

  • 1. TNPW2 2012/2013 10 – Technologie XML Mgr. Lukáš Vacek lukas.vacek@uhk.cz
  • 2. 2 Agenda • Co je to XML? • Přednosti a nedostatky XML 10 • • • • • • Nejčastější použití XML Základy syntaxe Prohlížení a kontrola XML dokumentů Vzhled XML dokumentů DTD a XML schémata Jmenné prostory, prefixy • Co je to XSL a XSLT? • Internet, doporučená literatura
  • 3. 3 Co je XML? Vymezení proti HTML a XHTML HTML • Definuje jednoduchý, pevně stanovený typ dokumentu • Množina používaných značek je navržena tak, aby vyhovovala požadavkům na běžné dokumenty >> nadpisy, odstavce, seznamy, obrázky apod. • HTML umožňuje použití hypertextu a integraci multimedií XML • XML (eXtensible Markup Language) je rozšiřitelný značkovací jazyk • Umožňuje definici vlastních typů dokumentů a přesně označuje význam jejich jednotlivých částí, a ne jen jejich vzhled (jako HTML) • Na rozdíl od jazyka HTML jde spíše o metajazyk XHTML • Je nástupcem HTML, používá XML syntaxi a má přísnější pravidla • Validní XHTML dokument je i validním XML dokumentem!
  • 4. 4 SGML , XML x HTML (XHTML) • Oba jazyky (HTML a XML) vycházejí z mezinárodního standardu SGML (norma ISO 8879, z roku 1986) pro popis struktury a obsahu různých druhů elektronických dokumentů • Značkovací jazyky vycházející ze SGML definují množinu značek (a jejich vzájemných vztahů) pomocí tzv. definic typu dokumentu (DTD) • XML není nástupcem ani konkurentem HTML! • XML dokumenty samy o sobě nejsou (pro běžného uživatele) dost dobře zobrazitelné, představují datovou základnu, ze které lze transformací vytvořit něco, co se dá prezentovat uživateli v podobě HTML, WML, PDF nebo jinak http://www.w3.org/ http://zvon.org/
  • 5. 5 Mýty a předsudky o XML Nejrůznějších bludů o XML je rozšířena celá řada  + Je to moderní (revoluční) technologie, hodí se skoro na všechno (XML je spása, XML jako univerzální kráječ) + Musíme to použít, protože to používá konkurence! + Když použijeme XML, budou naše aplikace kvalitnější! – XML je jenom takové lepší HTML… – XML je hodně „upovídaný“ jazyk, má příliš svazující pravidla! – XML je pomalá a paměťově náročná technologie!
  • 6. 6 Agenda  Co je to XML? • Přednosti a nedostatky XML 10 • Nejčastější použití XML • Základy syntaxe • Prohlížení a kontrola XML dokumentů • Vzhled XML dokumentů • DTD a XML schémata • Jmenné prostory, prefixy • Co je to XSL a XSLT? • Internet, doporučená literatura
  • 7. 7 Přednosti XML • Standardní formát pro výměnu a sdílení strukturovaných informací • Je nezávislý na platformě • Mezinárodní podpora (i jiné jazyky než angličtina) • Informační obsah (přesné určení toho, co která část dokumentu znamená) • Snadná konverze do dalších formátů (pomocí stylových jazyků – CSS, XSL apod.) a pro různá cílová zařízení • Automatická kontrola struktury dokumentu (prohlížeč se klasické HTML vždy "pokusí" nějak interpretovat, XML ne)! • Rozšiřuje možnosti relačních databází u složitě strukturovaných dat, která se nedají dost dobře uložit do tabulek • Přesné indexování a vyhledávání dokumentů a jejich částí
  • 8. 8 Nedostatky XML • XML umí být „pěkně ukecaný“ formát, jako všechny značkovací jazyky  • Je určen hlavně pro výměnu textových dat, nehodí se pro ▫ binární data ▫ velké objemy dat – pro tzv. datové pumpy použijte nějaký ETL tool • XML standardy se neustále vyvíjejí • S XML dokumentem lze (zatím) pracovat jen jako s celkem • Poněkud problematické je indexování a prohledávání XML dokumentů – nic na způsob „domácího“ fulltextu zatím není u XML k dispozici • V porovnání s relačními databázemi ▫ poněkud složitější programování ▫ menší rychlost ▫ problematická kontrola přístupových práv k jednotlivým částem XML dokumentu ▫ je třeba řešit i zálohování souborů uložených mimo DB…
  • 9. 9 Agenda  Co je to XML?  Přednosti a nedostatky XML 10 • Nejčastější použití XML • Základy syntaxe • Prohlížení a kontrola XML dokumentů • Vzhled XML dokumentů • DTD a XML schémata • Jmenné prostory, prefixy • Co je to XSL a XSLT? • Internet, doporučená literatura
  • 10. 10 Nejčastější použití XML • Zveřejňování informací na webových stránkách (XHTML) • Vytváření popisných metadat (RDF – W3C standard, jde model) o dokumentech (např. OpenURL, Dublin Core, RSS/atom kanály apod.) • Vzájemná komunikace (výměna dat) mezi různými informačními systémy >> hlavně webové služby • Elektronické publikování (knihy, manuály, vyhlášky) a následná správa dokumentů pomocí metadat • Uchovávání dat malého rozsahu nebo dat nerelačního charakteru • Konfiguračních data k aplikacím (.NET, Java Spring) • Formáty založené na XML, např. vektorová grafika (SVG), matematické vzorce (MathML), chemická data (CML) • Doporučení: Při implementaci XML v aplikaci využívejte existující standardy a knihovny. Nevynalézejte znovu kolo!
  • 11. 11 Kdy XML není dobrou volbou? • Velké množství přenášených dat ▫ Velmi intenzivní komunikace >> vlastní data tvoří pouze zlomek celkové velikosti, limitujícím faktorem může být i přenosová cesta  příklad: nativní aplikace v mobilním telefonu, komunikující se serverem  alternativy: JSON, REST ▫ Přenos velkých (strukturovaných) dat >> problémem je jednak velikost dat, jednak "náklady" na serializaci/parsing  příklad: datové pumpy (přenos velkých dat z A -> B), datová replikace většího množství dat v reálném čase (i mezi více systémy)  alternativy: ETL nástroje, flat-file • Nepodporovaný typ rozhraní >> nativní podpora neexistuje nebo je velmi omezena na dané platformě ▫ příklad: velké firmy, jejichž ICT infrastruktura vznikala v průběhu 70-80. let nebo i dříve, stále používají main-frame/mid-range servery ▫ alternativa: proprietární/průmyslové formáty jako COPYBOOK, SWIFT nebo flat-file • Low-level programování, kde je kladen důraz na výkon ▫ příklad: telefonní ústředny, ATMs (bankomaty) nebo platební terminály ▫ alternativa: flat-file
  • 12. 12 Agenda  Co je to XML?  Přednosti a nedostatky XML 10  Nejčastější použití XML • Základy syntaxe • Prohlížení a kontrola XML dokumentů • Vzhled XML dokumentů • DTD a XML schémata • Jmenné prostory, prefixy • Co je to XSL a XSLT? • Internet, doporučená literatura
  • 13. 13 XML elementy • Základním stavebním prvkem XML dokumentu jsou elementy • Každý XML dokument musí být uzavřen v jednom XML elementu (root), obdobně jako se v HTML používá tag <html> • Všechny elementy jsou párové. Pokud je element prázdný, je možné jej zapsat ve zkrácené podobě <element /> • Elementy je možno do sebe vnořovat, ale není možno je křížit • V názvech elementů a atributů se rozlišují velká a malá písmena. Jestliže v HTML znamenají prvky <TABLE> a <Table> totéž, v XML tomu tak není! • Název elementu může obsahovat písmena, čísla, znaky „_“, „–“ a „.“, mezery nejsou povoleny, nesmí začínat řetězcem „xml“, dvojtečky „:“ jsou vymezeny pro použití v názvech jmenných prostorů <obsah> <mujElement>nějaký řetězec</mujElement> </obsah>
  • 14. 14 Kódování znaků • Aby šlo v XML dokumentu bez problémů zapisovat znaky libovolného jazyka, používá se standardně kódování UTF-8 • Je však možné použít i jiné kódování např. iso-8859-2 nebo windows-1250 • Nastavení kódování XML dokumentu se provádí v XML deklaraci (vždy na 1. řádku každého XML dokumentu!): <?xml version="1.0" encoding="windows-1250"?> • Pokud je použito kódování UTF-8, je možné v XML deklaraci nastavení kódování vynechat: <?xml version="1.0 ?>
  • 15. 15 Mime type v XHTML • Mime typ je textová informace v hlavičce zprávy, která popisuje, jaká data budou následovat. • Je složena ze dvou částí: Označení typu dat/Konkretizace dat. • Podle mime typu se určuje, jaký parser v prohlížeči (HTML vs XML) bude zdrojový kód zpracovávat. HTML: <meta http-equiv="content-type" content="text/html;... XHTML: <meta http-equiv="content-type" content="application/xhtml+xml;... • Až do verze IE9 neuměl MS prohlížeč správně zpracovat mime typ pro XHTML! • Problém částečně řeší HTML5. • http://dero.name/weblog/xhtml-mime/ • http://zdrojak.root.cz/clanky/polyglot-aneb-webovym-koderem-pod-oboji/ • http://zdrojak.root.cz/clanky/xhtml-je-mrtve-at-zije-html5-nebo-ne/
  • 16. 16 Znakové entity • Mezi počáteční a koncovou značkou XML elementu se nesmí používat znaky „<“ a „&“, nedoporučuje se používat znak „>“ • Namísto těchto kolizních znaků se používají tzv. znakové entity. V XML jsou předdefinovány tyto znakové entity: < ... &lt; & ... &amp; > ... &gt; “ ... &quot; ‘ ... &apos; • Doporučuji používat i v XHTML dokumentech! http://www.aspnet.cz/Articles/205-jak-na-html-entity-v-xml-dokumentech.aspx
  • 17. 17 Atributy • Atribut poskytuje dodatečnou (doplňující) informaci o elementu, pokud je použit, je vždy součástí počáteční (otevírací) značky elementu • Elementy mohou obsahovat jeden nebo více atributů (na pořadí nezáleží) • Jednotlivé atributy jsou ve značce odděleny mezerou (proto není mezera v názvu značky povolena) • Názvy atributů se řídí stejnými pravidly jako názvy elementů • Všechny atributy musejí mít určenou hodnotu, která je uzavřena do uvozovek nebo apostrofů: <element atribut1='hodnota1’ tribut2=“hodnota2“>obsah</element> <element2 atribut3=’a“BC“d’>obsah</element2>
  • 18. 18 Komentáře v XML • Do zdrojového kódu XML dokumentů lze vkládat komentáře • Komentář je součástí dokumentu, ale je ignorován při jeho zpracování • Komentář může být kdekoliv ve zdrojovém kódu, ale nesmí být součástí nějaké značky! <!– můj komentář --> <element <!– můj komentář -->>obsah</element> je chybně!
  • 19. 19 Instrukce pro zpracování • Instrukce pro zpracování se vkládají do XML dokumentu v případě, že potřebujeme ovlivnit charakter jeho dalšího zpracování <?identifikátor data?> • Identifikátor určuje aplikaci nebo zařízení, pro které je instrukce určena • Data jsou vlastní instrukce (příkazy) ve formátu odpovídajícímu uvedené aplikaci nebo zařízení <?xml-stylesheet href="styl.css" type="text/css"?> ... <?php echo “výpis“ ?>
  • 20. 20 CDATA • Když potřebujeme do XML dokumentu vložit větší kus textu se značkami (např. nějaké instrukce pro pozdější zpracování, CSS, JavaScript apod.), je vhodné použít sekci CDATA <script type="text/javascript"> <![CDATA[ for (i=0; i < 10; $++) { document.writeln("<p>Ahoj</p>"); } ]]> </script>
  • 21. 21 Agenda  Co je to XML?  Přednosti a nedostatky XML 10  Nejčastější použití XML  Základy syntaxe • Prohlížení a kontrola XML dokumentů • Vzhled XML dokumentů • DTD a XML schémata • Jmenné prostory, prefixy • Co je to XSL a XSLT? • Internet, doporučená literatura
  • 22. 22 Prohlížení a kontrola XML dokumentů • Prohlížení XML dokumentů je možné např. v prohlížeči s podporou XML (např. Internet Explorer, Mozilla Firefox apod.) • Program, kterým se provádí kontrola a zpracování XML dokumentu, se jmenuje parser • Prohlížeče s podporou XML tento parser obsahují, jsou proto nejjednodušší cestou, jak dokument zobrazit a zároveň zkontrolovat • Bude-li XML dokument správně zformátován (well formed), zobrazí jej. V opačném případě prohlížeč oznámí chybu! 10-01-priklad.xml 10-02-priklad-validace.html (pouze Internet Explorer! Používá ActiveX prvek)
  • 23. 23 Agenda  Co je to XML?  Přednosti a nedostatky XML 10  Nejčastější použití XML  Základy syntaxe  Prohlížení a kontrola XML dokumentů • Vzhled XML dokumentů • DTD a XML schémata • Jmenné prostory, prefixy • Co je to XSL a XSLT? • Internet, doporučená literatura
  • 24. 24 Vzhled XML dokumentů • XML odděluje informační obsah dokumentu od definice grafického vzhledu >> neurčuje, jakým způsobem se má obsah jednotlivých značek (elementů) zobrazovat • K tomu se používají stylové jazyky: ▫ CSS (Cascading Style Sheet) ▫ XSL (eXtensible Stylesheet Language) • CSS je jednodušší a není vytvořen podle pravidel XML (na rozdíl od XSL), používá svá vlastní pravidla!
  • 25. 25 XML a CSS • Připojení CSS k dokumentu XML: <?xml-stylesheet href="styl.css" type="text/css"?> • Pozor! V CSS pro XML se rozlišuje velikost písmen v názvech selektorů • Vlastnost display (block, inline, list-item, none) určuje způsob zobrazení obsahu elementu v prohlížeči • Neurčíme-li v CSS jinak, je výchozí zobrazení elementu nastaveno na display: inline 10-03-priklad.xml
  • 26. 26 Agenda  Co je to XML?  Přednosti a nedostatky XML 10  Nejčastější použití XML  Základy syntaxe  Prohlížení a kontrola XML dokumentů  Vzhled XML dokumentů • DTD a XML schémata • Jmenné prostory, prefixy • Co je to XSL a XSLT? • Internet, doporučená literatura
  • 27. 27 DTD a XML schémata – I. • DTD (Document Type Definition) a XML schémata jsou formální sady pravidel, které jsou určeny pro lepší kontrolu nad obsahem XML dokumentu • Vymezují množinu elementů a atributů, které mohou být v dokumentu použity, včetně jejich obsahu a vzájemných vazeb (způsobů vnořování) • Pokud XML dokument obsahuje odkaz na strukturu, kterou má dodržovat, je možné kromě správné strukturovanosti (well formed) kontrolovat také její validitu • Použití DTD a XML schémat má význam při výměně informací mezi informačními systémy, umožňuje jednoznačnou interpretaci elementů • Každé XML schéma je zároveň XML dokumentem, DTD používá vlastní formát • Existují i další varianty pravidel pro XML, např. RELAX NG (Wikipedia)
  • 28. 28 DTD a XML schémata – II. • DTD je starší, jednodušší (a díky tomu i více rozšířené) • XML schémata sice vznikla později, ale jsou zase mnohem komplexnější (řeší některé nedostatky DTD, např. datové typy) • Vazba XML dokumentu na XML schéma je složitější, než je tomu v případě DTD • DTD soubory používají příponu *.dtd, XML schémata *.xsd • Příklad použití XML souboru s DTD: 10-04-priklad.xml • Příklad použití XML souboru s XML schématem: http://www.kosek.cz/xml/schema/index.html
  • 29. 29 Příklady nejběžnějších DTD • Hypertext Markup Language (HTML) • Channel Definition Format (CDF) • Mathematical Markup Language (MathML) • Resource Description Framework (RDF) • Chemical Markup Language (CML) • Precision Graphics Markup Language (PGML) • UML eXchange Format (UXF) • DocBook (publikování) • Scalable Vector Graphics (SVG)
  • 30. 30 Agenda  Co je to XML?  Přednosti a nedostatky XML 10  Nejčastější použití XML  Základy syntaxe  Prohlížení a kontrola XML dokumentů  Vzhled XML dokumentů  DTD a XML schémata • Jmenné prostory, prefixy • Co je to XSL a XSLT? • Internet, doporučená literatura
  • 31. 31 Jmenné prostory • V XML dokumentech od různých autorů může nastat situace, kdy budou v jednotlivých dokumentech použity stejně pojmenované elementy, ale s různým významem! • Pomocí jmenných prostorů tomu lze předejít a odlišit elementy jednoho autora od elementů jiného autora • Označení jmenného prostoru je vizuálně podobné URL adrese http://doména/volitelná_informace_o_prostoru/popis_prostoru/verze Příklad: http://www.mojedomena.cz/alfa/dopisy/1.0 • Někdy se místo označení URL (Uniform Resource Locator) používá zkratka URN (Uniform Resource Name). 1URN = 1-n URL
  • 32. 32 Deklarace jmenných prostorů, prefixy • Jmenný prostor je možné deklarovat v libovolném elementu <dopis xmlns=“identifikace jmenného prostoru“> ... </dopis> • Jmenný prostor se vztahuje na element, ve kterém je deklarován a na všechny jeho potomky • V případě, že chceme v elementu (a v jeho potomcích) použít více jmenných prostorů, lze používat prefixy <mujelement xmlns=“identifikace prostoru“ xmlns:bib=“http://www.book.org/bibliography“> <test1>obsah</test1> <bib:test2>obsah2</test2> <test3>obsah2<test3> </mujelement>
  • 33. 33 Agenda  Co je to XML?  Přednosti a nedostatky XML 10  Nejčastější použití XML  Základy syntaxe  Prohlížení a kontrola XML dokumentů  Vzhled XML dokumentů  DTD a XML schémata  Jmenné prostory, prefixy • Co je to XSL a XSLT? • Internet, doporučená literatura
  • 34. 34 Co je XSL a XSLT? • XML dokumenty samy o sobě nejsou dost dobře zobrazitelné, představují datovou základnu, se kterou je možné dále pracovat • Jednou z možností je tzv. XSL (eXtensible Stylesheet Language) transformace dat uložených v XML dokumentu do požadovaného formátu, např. HTML, RTF, PDF nebo jinak • XSL transformace se provádí prostřednictvím jazyka XSLT (eXtensible Stylesheet Language Transformations) • XSL má dvě části: ▫ XSLT, ▫ XSL-FO (formátovací objekty typu XSL).
  • 35. 35 Použití XSL a XSLT • XSL používá jazyk XML a je tedy sám XML dokumentem • XSL dokumenty mají příponu *.xsl • Každý XSL dokument ▫ Vždy obsahuje řídící příkazy XSLT procesoru ▫ Může obsahovat data (elementy, text), která se použijí při sestavování výsledného výstupu (dokumentu) • Řídící příkazy XSLT procesoru náleží jmennému prostoru http://www.w3.org/1999/XSL/Transform, podle kterého XSLT procesor pozná, že má element zpracovat • Pro vyhledávání jednotlivých prvků XML dokumentu, které vyhovují zadaným podmínkám, se používá dotazovací jazyk XPath (XPath je pro XML totéž, co SQL pro relační databáze ) 10-05-priklad.xml
  • 36. 36 Agenda  Co je to XML?  Přednosti a nedostatky XML 10  Nejčastější použití XML  Základy syntaxe  Prohlížení a kontrola XML dokumentů  Vzhled XML dokumentů  DTD a XML schémata  Jmenné prostory, prefixy  Co je to XSL a XSLT? • Internet, doporučená literatura
  • 37. 37 Odkazy na Internetu • http://www.zvon.org • http://www.w3.org/ • http://www.kosek.cz/xml/index.html • http://www.docbook.cz • http://en.wikipedia.org/wiki/Document_Type_Definition • http://en.wikipedia.org/wiki/XML_Schema_(W3C) • http://en.wikipedia.org/wiki/RELAX_NG • http://zdrojak.root.cz/clanky/polyglot-aneb-webovym-koderem-pod-oboji/
  • 38. 38 Doporučená literatura • Bráza, Jiří – XML Praktické příklady, Grada 2003 • Žák, Miroslav – XML Začínáme programovat, Grada 2003 • Esposito, Dino – XML Efektivní programování pro .NET, Grada 2004 • Herout, Pavel – Java a XML pro Javu 5 i 6, Kopp 2007
  • 39. 39 Agenda  Co je to XML?  Přednosti a nedostatky XML 10  Nejčastější použití XML  Základy syntaxe  Prohlížení a kontrola XML dokumentů  Vzhled XML dokumentů  DTD a XML schémata  Jmenné prostory, prefixy  Co je to XSL a XSLT?  Internet, doporučená literatura