110 likes | 246 Views
Technol ógie XML Prednáška č.2. Schémovacie jazyky, DTD. Z minula. Motivácia pre XML? Čo nove XML prináša? Štandardný formát pre informácie; Medzinárodná podpora; Otvorený informačný obsah; Ľahká konverzia; Automatická kontrola štruktúry; Kedy je dokument “ well-formed “?.
E N D
Technológie XMLPrednáška č.2 Schémovacie jazyky, DTD.
Z minula • Motivácia pre XML? • Čo nove XML prináša? • Štandardný formát pre informácie; • Medzinárodná podpora; • Otvorený informačný obsah; • Ľahká konverzia; • Automatická kontrola štruktúry; • Kedy je dokument “well-formed“?
Schémovacie jazyky • DTD • Vlastná sada značiek = vlastný jazyk nad XML • Jednoduchosť a úspornosť • Nevýhody: • Nie je založený na XML. • Nízka expresivita. • Slabá typová kontrola. • Preto novšie jazyky ako napr. Schematron, Relax NG riešia spomínane slabé/silné stránky.
DTD = Document Type Definition • Vytváranie jazykov, ktoré budú používať syntax XML. • Následne je možná automatická kontrola dokumentu. • Nami vytvorené XML sa stane kompatibilným s nástrojmi, ktoré používajú rovnaké DTD. (HTML)
DTD – Syntax - Element <!ELEMENT faktura (odberatel, dodavatel, polozka+)> <faktura> <odberatel> Jan </odberatel> <dodavatel/> <polozka> 1. polozka </polozka> <polozka> 2. polozka </polozka> </faktura>
DTD – Syntax - Element <!ELEMENT clanok (nazov, (autor|editor), odstavec+)> <clanok> <nazov> </nazov> <editor> </editor> <odstavec> </odstavec> </clanok>
DTD – Syntax - Element <!ELEMENT clanok (nazov?, autor*,#PCDATA )*> <clanok> Toto je clanok ! </clanok>
DTD – Syntax – Atribut <!ATTLIST fakturasplatnost CDATA #IMPLIED vystavil(jozef | fero) “jozef”> <fakturasplatnost =“30.09.2009” vystavil = “fero”> </faktura>
Syntax DTD - Vysvetlivky • ? = môže/nemusí sa vyskytnúť • + = minimálne raz alebo viac • * = kombinácia predošlých • IMPLIED/REQUIRED = hodnota atribútu nie je/je povinná. • NMTOKEN = atribút môže obsahovať písmená, bodku, pomlčku. • Úplný zoznam je na: http://www.zvon.org/xxl/DTDTutorial/General_cze/book.html
Pripojenie DTD z externého súboru <!DOCTYPE faktura SYSTEM "faktura.dtd"> <faktura> ... </faktura> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
Definícia DTD v XML <!DOCTYPE faktura [ <!ELEMENT faktura (odberatel, dodavatel, polozka+) > <!ELEMENT odberatel ...> ... ]> <faktura> ... </faktura>