140 likes | 303 Views
DTD – Document type definition. Validný vs w ell-formed dokument. Well-formed dokument - spĺňa všetky podmienky syntaxe XML Validný dokument – spĺňa podmienky pre to aby bol dokument well formed a zároveň spĺňa všetky všetky podmienky určené napr. pomocou DTD.
E N D
Validnývswell-formed dokument • Well-formed dokument - spĺňa všetky podmienky syntaxe XML • Validný dokument – spĺňa podmienky pre to aby bol dokument wellformed a zároveň spĺňa všetky všetky podmienky určené napr. pomocou DTD
Prepájanie DTD a XML dokumentu • DTD sa nachádza v jednom súbore ako XML dokument <!DOCTYPE root [ ----------DTD--------- ]> • DTD sanachádza v externom súbore <!DOCTYPE root SYSTEM “subor.dtd”>
Element (1) • <!ELEMENT nazov_elementuobsah_elementu> • Obsah elementu: PCDATA- element môže obsahovať nejaký text • PCDATA – element môže obsahovať nejaký text • Dalsi_element – element obsahuje element Dalsi_element • Napríklad: • <!ELEMENT text (#PCDATA)> • <!ELEMENT text (Dalsi_element)>
Element (2) – názorná ukážka • DTD súbor: <!ELEMENT clanok (text)> <!ELEMENT text (#PCDATA)> • Validný XML dokument: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE clanok SYSTEM "subor.dtd"> <clanok> <text>toto je text</text> </clanok>
Element (2) – názorná ukážka • XML dokument, ktorý nie je validný: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE clanok SYSTEM "subor.dtd"> <text>toto je text</text>
Príklad(1) • Napíšte validný XML dokument na základe nasledujúceho DTD súboru: <!ELEMENT root (elemA,elemB)> <!ELEMENT elemA (#PCDATA)> <!ELEMENT elemB (elemC)> <!ELEMENT elemC (#PCDATA)>
ELEMENT (3) • []-element samusí vyskytnúť práve raz • [*]- element sa nemusí vyskytovať ani raz, ale môže sa vyskytnúť niekoľko krát • [+]- element samusí vyskytnúť raz, ale môže sa vyskytnúť aj viackrát • [?]- element sa môže vyskytnúť 0 alebo 1 krát • [|]-môže sa vybrať jeden z elementov • Text môže byť premiešaný s elementamy • <!ELEMENT elemA (#PCDATA|elemB)*>
Príklad (2) • Napíšte validný XML dokument na základe nasledujúceho DTD súboru: <!ELEMENT root ((elemA+,elemB*)|elemC)> <!ELEMENT elemA (elemD|elemC)> <!ELEMENT elemB (#PCDATA)> <!ELEMENT elemC (elemD)> <!ELEMENT elemD (#PCDATA|elemB)*>
Atribúty-syntax • <!ATTLIST názov-elementupopis-atribútu> • Popis atribútu: • Názov altribútu • Typ atribútu • Voliteľnosť atribútu • Napríklad: <!ELEMENT elemA (#PCDATA)> <!ATTLIST elemAatribut CDATA #REQUIRED> • XML dokument: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE elemA SYSTEM "subor.dtd"> <elemAatribut="text"/>
Typ atribútu • CDATA – ľubovoľný text (“3x3”, “33%”) • NMTOKEN - jedno slovo z písmen, číslic a zopár špeciálnych znakov (“2.5cm”) • NMTOKENS – viacero NMTOKEN oddelených medzerami • (hotnota1|hodnota2|hodnota3…..) – výber jednej z viacerých možností • ID – jedinečná hodnota v rámci dokumentu
Voliteľnosť atribútu • #REQUIRED- je nutné zadať • #IMPLIED – nie je potrebné zadať • “hodnota” – ak nezadané tak sa použije daná hodnota • # FIXED “hodnota” - atribút musí mať iba danú hodnotu
Príklad (3) • Vytvorte jednoduché DTD pre zjednodušenú verziu html a následne vytvorte XML dokument ktorý bude validný podľa tohto DTD. DTD musí obsahovať nasledujúce elementy a atribúty: • Koreňový element pre html je html • Element html obsahuje head a body • Head môže obsahovať element meta obsahujúci dva atribúty: name, majúci vždy hodnotu author a content obsahujúci meno autora • Head obsahuje element Title ktoré môže obsahovať jednoduchý text
Príklad (3) • Body obsahuje nadpis h1 ktorého obsah môže byť ľubovoľný text • Body obsahuje odkaz, ktorý môže obsahovať ľubovoľný text a povinný atribút href, obsahujúci odkaz na stránku • Nakoniec body obsahuje obrazok(img) obsahujúci povinný atribút src obsahujúci link na obrázok a nepovinný atribút alt obsahujúci text s popisom obrázku