Professional Documents
Culture Documents
TechnologieXML XMLuvod
TechnologieXML XMLuvod
Pedn: Irena Mlnkov (mlynkova@ksi.mff.cuni.cz) - MFF Martin Neask (necasky@ksi.mff.cuni.cz) - MFF + FEL
Strnky pednky: MFF: http://www.ksi.mff.cuni.cz/~mlynkova/prg036/ FEL: http://www.ksi.mff.cuni.cz/~mlynkova/A7B36XML/
Osnova pedmtu
vod do princip formtu XML, pehled XML technologi Jazyk DTD Datov modely XML Rozhran DOM a SAX Jazyk XPath Jazyk XSLT Jazyk XQuery, XQuery Update Jazyk XML Schema Pehled standardnch XML formt Nativn XML databze Relan databze s XML rozenm SQL/XML
Motivace
Chceme penst informaci Msto A Msto B
<znaka>tlo</znaka>
A zabalme do zvorek
<zprava> <adresa>Jan Amos</adresa> <adresa>Karel Hynek</adresa> <osloveni>Ahoj!</osloveni> <text>Pozdrav z e div!</text> <podpis>Alenka</podpis> <dodatek>Napite mi!</dodatek> </zprava>
Obecn SW zpracovn
<zprava> <adresa>Jan Amos</adresa> <adresa>Karel Hynek</adresa> <osloveni>Ahoj!</osloveni> <text>Pozdrav z e div!</text> <podpis>Alenka</podpis> <dodatek>Napite mi!</dodatek> </zprava>
Kdovn:
Implicitn je dokument v kdu ISO 10646 (Unicode) Pro komunikaci se svtem se pouv UTF-8 Kompatibiln s ASCII Dal znaky kdovny na 2 a 6-ti bytech Obsahuje vechny znaky vech abeced Pro etinu lze pout ISO-8859-2 nebo Windows-1250
Lep, ale
Prohle te v co s daty
O co nm jde?
Samotn data se tko zpracovvaj Potebujeme:
??
een: XML
XML
XML (eXtensible Markup Language) je formt pro penos a vmnu obecnch dokument Extensible Markup Language (XML) 1.0 (Fifth Edition)
http://www.w3.org/TR/xml/
XML je podmnoina (aplikace) SGML (Standard Generalized Markup Language - ISO 8879) Umouje ukldn a zpracovn dat spolu s metadaty XML se nezabv zpsobem prezentace dokument Je to syntaktick nstroj
XML dokument
XML dokument je sprvn formovan (wellformed), kdy:
M vodn XML deklaraci (prolog) Je dobe uzvorkovn
Kad element obsahuje poten i koncov tag/zvorku Odpovdajc zvorky maj stejn jmno (case sensitivity) <a></A> Dvojice zvorek se nek <a><b></a></b> Cel dokument je uzaven v jedinm koenovm elementu
Prolog
Informace pro SW, e se jedn o XML dokument Mus obsahovat deklaraci verze XML
Mme 1.0 a 1.1
Deklarace verze: <?xml version="1.1"?> Pokud nen v UTF-8: <?xml version="1.1" encoding="iso-8859-2"?> Pokud je bez odkaz mimo dokument: <?xml version="1.1" standalone="yes"?>
vdy mal psmena
Elementy
<?xml version="1.1" encoding="iso-8859-2"?> <zprava> Element s textovm <adresa> obsahem <jmeno>Jan Amos</jmeno> <ulice>Severn 12</ulice> </adresa> <osloveni>Ahoj!</osloveni> <text>Pozdrav z <it>e div</it>!</text> <podpis>Alenka</podpis> <priloha/> Element se smenm </zprava> obsahem
Przdn element Koenov element
<priloha></priloha>
Atributy
<?xml version="1.1" encoding="iso-8859-2"?> <zprava> <adresa> <jmeno>Jan Amos</jmeno> Element s <ulice>Severn 12</ulice> atributy </adresa> <osloveni>Ahoj!</osloveni> <text>Pozdrav z <it>e div</it>!</text> <podpis>Alenka</podpis> <priloha cesta="obr1.png"/> </zprava>
Nzev atributu Hodnota atributu
Technologie XML
Nen to jen o tch zvorkch XML = zkladn formt pro popis dat
XML dokumenty
Technologie XML = rodina technologi pro zpracovn XML dat Popis ppustnho obsahu, naten dat, extrakce informac (dotazovn), vizualizace/transformace do jinch formt,
Standardy W3C (WWW Consortium)
Efektivn implementace standard Parsery, validtory, vyhodnocovn dotaz, transformace (aplikace skript), perzistence dat, Standardn formty XML dat Kde se XML vyuv
http://www.w3.org/
Technologie XML
XHTML UDDI XForms MathML SOAP SVG OpenTravel DocBook vyuit OpenDocument UBL
nativn XML DB
relan XML DB
SQL/XML
XSLT
perzistence transformace
parsing
SAX DOM StAX LINQ XML data
validace
DTD XML Schema RELAX NG Schematron
dotazovn
XPath
Jazyk DTD
DTD
Problm: Sprvn formovanost nesta
Potebujeme omezit sadu znaek a jejich obsah
Definice typu dokumentu (Document Type Definition DTD) popisuje strukturu (gramatiku) dokumentu
Pomoc regulrnch vraz
Me bt intern (gramatika je pmo uvnit DOCTYPE) nebo extern (pouze odkaz na gramatiku uvedenou v externm souboru)
Intern nem moc vznam Oboj souasn je ppustn Lokln deklarace maj pednost ped externmi
, | ? + *
Przdn obsah <!ELEMENT priloha EMPTY> Libovoln obsah <!ELEMENT kontejner ANY> Textov obsah <!ELEMENT prijmeni (#PCDATA)> Smen obsah <!ELEMENT text (#PCDATA|it)*> Elementov obsah <!ELEMENT zprava (adresa,text)>
(nazev, (autor|editor)?, p*, (nadpis,p+)*)
Deklarace atributu
<!ATTLIST osoba cislo ID #REQUIRED zamestnan CDATA #FIXED "ano" dovolena (ano|ne) "ne">
Atributy elementu osoba Atribut cislo je uniktn identifikace (ID) a je povinn (#REQUIRED) Atribut zamestnan obsahuje text (CDATA), je konstantn (#FIXED) a m implicitn nemnnou hodnotu ano Atribut typ je vet (ano nebo ne), implicitn hodnota je ne
Deklarace entity
Prakticky se vyuvaj pouze triviln ppady Asociace nzvu a hodnoty, kterou lze opakovan vyuvat Dlen 1: Parsovan = text, kterm je nahrazen odkaz na entitu a stv se soust XML dokumentu
Odkazujeme referencemi
Dlen 2: Obecn v XML dokumentech Parametrick v DTD Dlen 3: Intern vs. extern
viz dle
Znakov entity
Monost vloen libovolnho znaku s danm kdem
Hexadecimln nebo decimln
Vyete nerovnost 3x < 5
Obecn entity
Intern entita
Pouit: Opakujc se sti XML dokument
<!ENTITY stav "pracovn verze"> <poznamka>Souasn stav dokumentu je &stav;</poznamka>
Obecn entity
Extern neparsovan entita
Pouit: Odkaz na ne-XML data
nebo PUBLIC
<?xml version="1.0" encoding="windows-1250"?> <!DOCTYPE zprava [ Deklarace notace <!NOTATION avi SYSTEM "C:/Program Files/Video Player/Player.exe"> <!ENTITY video SYSTEM "video.avi" NDATA avi> <!ELEMENT video-dovo (#PCDATA)> <!ATTLIST video-dovo src ENTITY> ]> <zprava>Pikldm video z dovolen <video-dovo src="video"/>.</zprava>
Parametrick entity
Intern entita
Pouit: Opakujc se sti DTD
<!ELEMENT clanek (automobil*)> <!ENTITY % atributy "barva (modra|bila|cerna) #REQUIRED rychlost (velka|mala) #IMPLIED" > <!ELEMENT automobil (#PCDATA)> <!ATTLIST automobil %atributy; > <!ELEMENT motocykl (#PCDATA)> <!ATTLIST motocykl %atributy; > <!ELEMENT kolo (#PCDATA)> <!ATTLIST kolo %atributy; >
Parametrick entity
Extern entita
Pouit: Modularizace DTD <!ENTITY % ISOLat2 SYSTEM "iso-pub.ent"> ... %ISOLat2; ...
Podmnn sekce
<!ENTITY % draft 'INCLUDE' > <!ENTITY % final 'IGNORE' > <![%draft;[ <!ELEMENT book (comments*, title, body, supplements?)> ]]> <![%final;[ <!ELEMENT book (title, body, supplements?)> ]]>
DTD vt pklad
<?xml version="1.0" encoding="windows-1250"?> <!ELEMENT zamstnanci (osoba)+> <!ELEMENT osoba (jmno, email*, vztahy?)> <!ATTLIST osoba id ID #REQUIRED> <!ATTLIST osoba poznmka CDATA #IMPLIED> <!ATTLIST osoba dovolen (ano|ne) "ne"> <!ELEMENT jmno ((kestn, pjmen)|(pjmen, kestn))> <!ELEMENT kestn (#PCDATA)> <!ELEMENT pjmen (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ELEMENT vztahy EMPTY> <!ATTLIST vztahy nadzen IDREF #IMPLIED> <!ATTLIST vztahy podzen IDREFS #IMPLIED>
Konec