- Úvod do XML
- Použití XML
- Syntaktická pravidla XML
XML je v současnosti často diskutovaným tématem, a proto si myslím, že by bylo dobré se s ním blíže seznámit. Přiznávám se, že tento seriál není psán mým „perem“ nýbrž jej pouze překládám z www.w3schools.com. Tuto stránku vám mohu jedině doporučit. Látku z této stránky budu později rozšiřovat o obrázky, zdrojové kódy apod. Nyní se můžeme vrhnout na základy XML.
Úvod do XML
Co byste měli již znát?
Pro zvládnutí XML byste měli, alespoň na základní úrovni, ovládat:
- (X)HTML
- JavaScript nebo VBScript
Myslíte-li si, že vaše znalosti zde nejsou dostatečné, potom doporučuji navštívit některé z našich kurzů a seriálů.
Co je XML?
Zkratka XML znamená EXtensible Markup Language, což by se doslovně dalo přeložit jako rozšiřitelný značkovací jazyk. Teď několik faktů:
- XML je značkovací jazyk stejně jako HTML.
- XML byl sestrojen k popisu dat.
- XML tagy nejsou předdefinované. Musíte si definovat své vlastní.
- XML používá k popisu dat DTD nebo XML schémata.
- XML je sestrojeno tak, aby bylo lehce čitelné.
- XML je normou W3C (od 10. února 1998)
Hlavní rozdíl mezi XML a HTML
XML bylo sestrojeno k popisu dat se zaměřením na to, co jsou data, zatímco HTML bylo sestrojeno k zobrazení dat se zaměřením na vzhled a úpravu. XML tedy rozhodně není náhradou za HTML.
XML nic nedělá!
Další důležitou věcí, možná trošku složitější na pochopení, je, že XML není sestrojeno, aby cokoliv dělalo, takže nic nedělá :-). XML bylo vytvořeno k uspořádání a uchování informací, nikoliv k jejich zobrazování či interpretaci. Kousek kódu pod textem představuje zprávu od Jany pro Tomáše uloženou jako XML:
<zprava>
<pro>Tomáš</pro>
<od>Jana</od>
<zahlavi>Připomínka</zahlavi>
<telo>Nezapomeň na mě tenhle víkend!</telo>
</zprava>
Zpráva má záhlaví, tělo zprávy, obsahuje také informace o odesílateli a příjemci. Stále ale zůstává XML dokumentem, který nic nedělá. Jsou to jenom čiré informace, psané jako XML. Někdo musí napsat kousek softwaru k zaslání, přijmutí a zobrazení zprávy.
XML je zdarma a rozšiřitelný
Tagy používané v HTML dokumentu jsou předdefinované. Autor tedy může v podstatě používat pouze tagy, které jsou předdefinované v HTML standardu (jako <p>, <h1>, atd.). Programátor v XML si musí „vyvinout“ tagy vlastní, které si může libovolně pojmenovat (nedoporučuji používat diakritiku). Takže tagy jako <pro> nebo <od> (viz nahoře) nejsou definované v žádném XML standardu, nýbrž jsem si je vymyslel.
XML je doplňkem k HTML
I když jsem se již zmínil, tak znovu opakuji, že XML není náhradou za HTML (tou může být XHTML). Současnost i budoucnost vývoje webů zatím vypadá pro XML nadějně, protože kombinace XML pro popis dat a HTML (respektive jeho náhrada) pro zobrazení se jeví jako ideální.
Moje nejlepší definice XML je tato: XML je multiplatformní, softwarově a hardwarově nezávislý jazyk pro přenos informací.
Jaká je budoucnost XML?
Účastnili jsme se vývoje XML od jeho vytvoření. Bylo uchvacující vidět, jak rychle se XML standard vyvíjel a jakou rychlostí se velký počet softwarových vývojářů přizpůsobil tomuto standardu. Pevně věříme, že XML bude pro budoucnost webu tak důležité, jako bylo HTML pro jeho založení, a že XML bude jasnou volbou pro manipulaci se všemi daty.
Použití XML
Asi po třetí zdůrazňuji, že XML bylo sestrojeno pro uchování, přenášení a výměnu dat a nikoliv k jejich zobrazování! Opravdu je klíčové toto vzít na vědomí.
XML umí oddělit data z HTML
HTML je používáno k zobrazování dat a data jsou uložena uvnitř HTML souboru. S XML můžete data uložit do zvláštního XML souboru. Touto cestou můžete docílit používání HTML k zobrazení dat a jejich grafické úpravě a můžete si být jisti, že změny v odděleném XML souboru nebudou vyžadovat změny v pracně vytvořeném HTML.
Kód s XML může být také uložen v HTML souboru jako „ostrůvek dat“. Ale stále platí tvrzení z konce předchozího odstavce.
XML je používáno k výměně dat
S XML můžete vyměňovat data i mezi dvěma naprosto nesourodými systémy. V současném počítačovém světě počítačové systémy a databáze obsahují data v nekompatibilním formátu. Jedním z časově nejnáročnějších úkolů pro vývojáře je vyměňovat taková data přes Internet. Převod dat do XML může tuto komplikovanost odstranit a vytvořit data, která mohou být čitelná pro velké množství odlišných typů aplikací.
XML a B2B
S XML mohou být finanční informace vyměňovány po celém světě jediným úhozem na klávesnici. V blízké budoucnosti se od kombinace XML a B2B hodně očekává. XML se chystá stát jasnou volbou pro výměnu finančních informací mezi obchody po celém světě a dost zajímavých B2B aplikací je právě ve vývoji.
XML může být použito ke sdílení dat
S XML prosté textové soubory mohou být použity ke sdílení dat, poněvadž XML je softwarově i hardwarově nezávislé. Je proto mnohem jednoduší komunikace mezi různými aplikacemi. Jednou se mi stalo, že jsem potřeboval uveřejnit můj seznam VHS na Internetu (neptejte se proč :D), ale problém byl, že jsem to musel všechno krásně opsat. Kdyby ovšem měl ten program seznam uložen ve formátu XML a nebo pouze zvládal export do XML, tak bych měl asi hodně ušetřené práce.
XML může být použito k uchování dat
V tom není snad žádná nesrozumitelnost. Jenom bych se vrátil k příkladu v předchozím bodu. Myslím, že kdyby se více vývojářů shodlo na uchování dat v XML, byl by mnohem jednodušší export dat apod.
S XML mohou být vaše data užitečnější
Vaše data uložená jako XML mohou být užitečnější, poněvadž k nim bude mít přístup více uživatelů a při více příležitostech. Uložíte-li data jako HTML, budou přístupná pouze jako webová stránka, ale pokud je uložíte jako XML, uděláte data dostupnější i pro zrakově postižené spoluobčany, kteří používají různá čtecí zařízení, a nebo pro lidi s jiným hendikepem. Budou přístupná i pro různé databáze (i do Acces databáze můžete exportovat data uložená jako XML, ale zkuste tam exportovat data uložená v HTML).
XML může být použito k vytvoření nového programovacího jazyka
XML je matičkou WAPu a WML používaného jako značkovací jazyk pro ruční zařízení, jako jsou mobilní telefony. Více o WML se dočtete na www.w3schools.com.
Když mají vývojáři nápad
Pokud přejde velký počet softwarových vývojářů na XML k uchování dat, dá se předpokládat, že ostatní je budou následovat. Tak to bývá vždy. Nadějí jsou textové editory, tabulkové procesory a databáze, které si mohou mezi sebou vyměňovat data bez jakýchkoliv převáděcích utilit. Můžeme se pouze modlit, aby vývojáři s naší vizí souhlasili.
Syntaktická pravidla XML
Syntaktická pravidla XML jsou velice jednoduchá k naučení a používání, ale také velmi přísná. Taktéž vytvořit software k manipulaci s XML není programátorsky nikterak obtížné.
Příklad XML dokumentu
<?xml version="1.0" encoding="ISO-8859-1"?>
<zprava>
<pro>Tomáš</pro>
<od>Jana</od>
<zahlavi>Připomínka</zahlavi>
<telo>Nezapomeň na mě tenhle víkend!</telo>
</zprava>
První řádka v dokumentu – XML deklarace – definuje verzi XML a kódování znaků, které si přejeme použít. V tomto případě se jedná o specifikaci XML 1.0 a používaná znaková sada je ISO-8859-1 (Latin-1/West European). Pro české znaky bychom museli použít ISO-8859-2 (= středoevropské jazyky).
Druhá řádka v dokumentu představuje rodičovský element v dokumentu (jako by říkal: „tento dokument je zpráva“):
<zprava>
Další 4 řádky představují 4 potomky (elementy podřízenému rodiči) – <od>, <pro>, <zahlavi>, <telo>:
<pro>Tomáš</pro>
<od>Jana</od>
<zahlavi>Připomínka</zahlavi>
<telo>Nezapomeň na mě tenhle víkend!</telo>
A poslední řádek definuje konec rodiče:
</zprava>
Tento kousek zdrojového kódu obsahuje zprávu od Jany pro Tomáše. Teď vás možná napadlo: „Kdybys mi to neřek', tak to nevím!“ Myslím, že kód v XML je výborně čitelný a téměř ihned (při smysluplných popiscích) zjistíte, jaká data kód popisuje (oproti Assembleru je to příjemná změna).
Prvky XML musí mít uzavírací tag
V HTML můžete občas vynechat uzavírací tag. Například následující kód je v HTML povolený:
<p>Toto je odstavec.
<p>Toto je jiný odstavec.
V XML uzavírací tag ale vynechat nemůžete!
<p>Toto je odstavec.</p>
<p>Toto je jiný odstavec.</p>
Poznámka: Mohli jste si všimnout, že v předchozí příkladu neměla deklarace XML (<?xml version="1.0" encoding="ISO-8859-1"?>) uzavírací tag. To není chyba. Deklarace není částí samotného XML dokumentu. Není to značka XML, a nemusí mít tedy uzavírací tag.
Tagy v XML rozlišují velká a malá písmena
Toto je další z mnoha rozdílů XML a HTML. Poněvadž v HTML je úplně jedno, jestli napíšete <DIV> nebo <diV>, protože výsledek bude stejný. Naproti tomu v XML tag <dopis> je rozdílný od <Dopis>. Otevírací a uzavírací tagy musí být nutně psány se stejnými písmeny.
<Zprava> Toto je špatně</zprava>
<zprava> Toto je správně</zprava>
XML elementy musí být vhodně vložené
V HTML můžete některé elementy vkládat mezi sebe ne zrovna v ideálním (přehledném) pořadí, ale výsledek bude přesto správný.
<b><i> Tento text je tučný a kurzívou</b></i>
V XML bude korektně fungovat jenom následující:
<b><i> Tento text je tučný a kurzívou</i></b>
XML dokument musí mít hlavní element
Všechny XML dokumenty musí obsahovat tagový pár k definici rodičovského elementu (na začátku a na konci). Rodičovský element obsahuje podelementy (potomky) a ty pak mohou mít další potomky atd. Důležité je správné vložení a uzavření (viz předchozí podnadpis).
<rodic>
<potomek>
<podpotomek>...</podpotomek>
</potomek>
</rodic>
Atributy v XML musí být uzavřeny do uvozovek
S XML není dovoleno vynechat uvozovací znaménka kolem hodnoty atributu. XML elementy mohou mít atributy stejně jako HTML. Prostudujte si dva XML dokumenty pod textem. První není správě a druhý ano.
<?xml version="1.0" encoding="ISO-8859-1"?>
<zprava datum=12/11/2002>
<pro>Tomáš</pro>
<od>Jana</od>
</zprava>
<?xml version="1.0" encoding="ISO-8859-1"?>
<zprava datum="12/11/2002">
<pro>Tomáš</pro>
<od>Jana</od>
</zprava>
V prvním příkladu není hodnota atributu datum uzavřena v uvozovkách a již to vyvolá chybu. Je proto nutné si dávat pozor.
XML zachovává tzv. bílé znaky
Toto je jedna z nevýhod (či výhod) HTML. V HTML věta
Ahoj jmenuji se Tomáš.
bude zobrazena takto:
Ahoj jmenuji se Tomáš.
HTML vícenásobné, za sebou jdoucí, jdoucí bílé znaky redukuje na jediný . XML je zachovává a zobrazí vše opravdu tak, jak bylo zadáno.
V XML CR / LF je převedeno na LF
Víte co je psací stroj? Inu, psací stroj je mechanické zařízení, které se používalo v minulém století k výrobě tiskopisů. :-)
Poté, co jste napsali jednu řádku na psací stroji, museli jste ručně vrátit vozík vlevo na krajní pozici a ručně posunout papír nahoru (předpokládá se pralesní model).
V aplikacích pro Windows je nový řádek obvykle uložen párem znaků CR (vrátit vozík – Carriage Return) a LF (posun o řádku – Line Feed). V aplikacích pro Unix je standardně nová řádka uložena pouze znakem LF a aplikace pro Macintosh používají zase jen CR. A jak již říká nadpis, XML používá pouze znak LF.
Komentáře v XML
Komentář v XML napíšete stejně jako v HTML.
<!-- Toto je komentář -->
V čem psát XML dokumenty?
Pro manipulaci s XML můžete používat jakýkoliv textový editor a nebo můžete využít speciálního editoru se zvýrazněním syntaxe, kontrolou uzavírání tagů apod. Volba je pouze na vás.
První část tohoto nového seriálu je u konce. Možná, že jste při čtení článku nalezli nějaká zastaralá fakta apod. Je to možné, proto vás prosím o zapsání svých poznámek do komentářů. Děkuji.