Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
-
5. září 2024
Matrixmedia - Obsluha a tisk na velkoformátových digitálních tiskárnách
-
30. září 2024
-
4. října 2024
Go verze
Jemný úvod do XML (II) - Základy syntaxe
3. října 2001, 00.00 | Dnes si povíme něco o tom, jak vypadá XML dokument a jaká jsou základní syntaktická
pravidla, kterými se musíme řídit při jeho tvorbě.
Jak vypadá XML dokument
Jak jsme řekli již v prvním díle tohoto našeho seriálu, XML dokument je vlastně textový soubor (obvykle s příponou .xml), jehož jednotlivé části, elementy, jsou vyznačeny značkami - tagy. Od ostatního textu jsou tagy (obdobně jako v HTML) odlišeny znaky < a >.
Jednoduchý XML-dokument by mohl vypadat například takto:
<?xml version="1.0" encoding="windows-1250" standalone="no"?>
<!DOCTYPE clanek SYSTEM "clanek.dtd">
<clanek>
<hlavni_nadpis>Nadpis článku</hlavni_nadpis>
<abstract>Přehled obsahu článku.</abstract>
<nadpis>Úvodem</nadpis>
<odstavec>Nějaký text</odstavec>
<odstavec>A zase další text.</odstavec>
</clanek>
Složení XML dokumentu je následující:
1. XML deklarace: oznamuje, že máme co do činění s XML dokumentem. Musí být proto
umístěna na začátek prvního řádku dokumentu.
Může obsahovat vymezení celkem tří
parametrů XML dokumentu (přiřazení musí být v dále uvedeném pořadí): verzi
(version), kódování (encoding) a "samostatnost"
(standalone).
Uvedení verze je povinné,
ostatní dva parametry se užívají podle potřeby. Přiřazované hodnoty se uzavírají do
uvozovek.
Parametr version může dnes nabývat pouze hodnoty 1.0, neboť k dispozici máme nyní jenom první
verzi specifikace XML.
Určení kódování má nejrůznější podoby. Použít lze mimo jiné standardy (a
odpovídající názvy) UTF-8, UTF-16, ISO-10646-UCS-2,
ISO-10646-UCS-4, ISO-8859-1 až
ISO-8859-9, windows-1250 atd.
Není-li uvedeno žádné kódování, předpokládá zpracovávající
aplikace, že dokument používá UTF-8. Ne každá aplikace musí podporovat všechna kódování,
podrobnosti je třeba zjistit v příslušné dokumentaci a řídit se jimi při vytváření
dokumentu.
Parametr standalone indikuje, zda lze dokument použít i bez externí DTD (hodnota "yes")
nebo pouze s ní (hodnota "no"). Pokud tento parametr nenastavujeme, je to, jako bychom
použili hodnotu "no".
2. Deklarace typu dokumentu (DOCTYPE)
- tato část přiřazuje danému
XML dokumentu použitou
definici typu dokumentu (DTD), tj. souhrn pravidel definující tagy a jejich vzájemné vztahy.
Je nepovinná, tj. nemusí být v XML dokumentu obsažena.
Je-li použita, musí následovat za
XML deklarací. (Druhý řádek v našem příkladu.).
Způsobem přiřazení i vytváření DTD se budeme zabývat v příštím díle našeho seriálu, dnes
svou pozornost zaměříme především na syntaktická pravidla XML. Na tomto místě je pouze
potřeba zmínit se o dvou druzích "správnosti" XML dokumentů. Je-li XML dokument vytvořen
tak, že odpovídá pravidlům syntaxe jazyka XML, říkáme o něm, že je
správně utvořený
(well formed). Pokud navíc použití všech jeho tagů odpovídá pravidlům nadefinovaným v
určité DTD, jedná se o dokument validní (valid) vzhledem k této DTD.
O XML deklaraci a určení typu dokumentu se hovoří souhrnně jako o prologu
XML dokumentu.
3. Obsah vyznačený XML tagy. Informace jsou pomocí tagů v XML dokumentu rozděleny do elementů. Podmínkou přitom je, aby byl celý dokument obsažen v jediném, tzv. kořenovém elementu. V našem příkladu odpovídá obsahu XML dokumentu veškerý text od třetího řádku dále, kořenový elementem je vyznačen tagem <clanek>.
Pravidla zápisu tagů
Jak jsme již řekli, tagy jsou v XML-dokumentu vyznačeny symboly < a >. To co je vloženo mezi tyto dva znaky je název tagu. Většině elementů v dokumentu odpovídají dva tagy, počáteční a ukončovací. Ukončovací tag se od počátečního liší tím, že má před svým názvem ještě znak /. Některé elementy nemusí mít žádný obsah (typickým příkladem může být tag odpovídající zalomení řádku - nazvěme ho jako v HTML <BR>). Takové lze pak zapisovat dvěma způsoby: buď uvedením počátečního a hned za ním ukončovacího tagu (<BR></BR>) nebo jednodušeji tak, že se uvede pouze počáteční tag, který má za svým názvem znak / (takže v našem příkladu se zapíše <BR/>).
Příklady:
<Kapitola>Název kapitoly</Kapitola>
<odstavec>Toto je odstavec základního textu. Zde <BR/>
je text zalomen.
</odstavec>
Pravidla pro zápis tagů jsou poměrně přísná (například ve srovnání s HTML). Především je třeba vzít v potaz, že se v názvech tagů rozlišuje mezi malými a velkými písmeny (párové tagy <odstavec> </odstavec> a <Odstavec> </Odstavec> tedy nejsou stejné). Dále pak tagy není možno překřižovat. (Nelze tedy například "<bold>Nadpis<italic>vyznačený</bold></italic>".) Název tagu také nesmí obsahovat mezeru (nelze tedy tag typu <číslo pokoje>, místo něj je možný například tag <číslo_pokoje>).
Na druhou stranu je syntaxe XML tolerantní k používání více mezer, konců řádků a tabelátorů za sebou. Při zápisu jich může být použito libovolné množství s tím, že vícenásobný výskyt bude ve zpracující aplikaci nahrazen mezerou jedinou. Uvedená volnost napomáhá přehlednějšímu formátování XML dokumentů.
Atributy
U každého počátečního tagu lze ještě použít atributy, rozšiřující informaci týkající se informace obsažené v daném elementu. Hodnoty přiřazené atributu se uzavírají do uvozovek nebo apostrofů, současně lze u jednoho tagu nastavit i více atributů, přiřazení se oddělují mezerou (proto se nesmí v názvech tagů užívat mezery - viz výše). Atributy spojené s daným tagem se spolu s vymezením jejich hodnot definují v DTD. XML nabízí i vyhrazené atributy pro označení jazyka elementu (atribut xml:lang) a zachování formátování pomocí mezer, konců řádků a tabelátorů (xml:space).
Příklad:<odstavec zarovnání="nastřed" řádkování="jednoduché">Ukázka vycentrovaného odstavce.</odstavec>
Zápis speciálních znaků: předdefinované a znakové entity a sekce CDATA
Nyní se někdo možná dotáže, jakým způsobem můžeme použít v XML dokumentu znaky < a >, které jsou rezervovány pro oddělení tagů. Zde musíme využít takzvané předdefinované entity.
Uvedený typ entit se uvozuje znakem & (ampersand) a ukončuje znakem ; (středník). Pro zápis znaku < je určena entita < a pro zápis znaku > pak entita >. Uvozovky zapisujeme pomocí entit " (dvojité uvozovky) a ' (jednoduché uvozovky - apostrofy). Libovolný znak můžeme vložit pomocí tzv. znakové entity. Ta má dvě podoby: &#xkód_znaku;, kde kód_znaku je kód znaku ze znakové sady ISO 10 646 zapsaný v šestnáctkové soustavě, nebo &#kód_znaku, kde kód_znaku je zapsán v desítkové soustavě. Přehled znaků a jejich kódů lze nalézt například na serveru sdružení Unicode.
Příklad:
<odstavec>"Nerovnost 'Jedna je menší než dvě' zapíšeme takto 1 <
2."</odstavec>
Někdy může být použití uvedených znakových entit pro speciální znaky nevýhodné - představme si například více odstavcovou ukázku XML kódu, kterou bychom chtěli použít ve svém XML-dokumentu. Zde pomůže tzv. CDATA ("character data") sekce . Ta je uvozena řetězcem <![CDATA[ a ukončena řetězcem ]]>. Vše, co je vloženo mezi tyto řetězce, pak ztrácí na svém speciálním významu.
Příklad:
<![CDATA[<odstavec zarovnání="nastřed" řádkování="jednoduché">
Ukázka vycentrovaného
odstavce.</odstavec>]]>
Komentáře a instrukce pro zpracování
Někdy je žádoucí do XML dokumentu vložit text, který zůstane skryt okolnímu světu (nebude zobrazen v prohlížeči, vytištěn apod.) a bude obvykle určen pouze pro autora dokumentu. Takovýto komentář má v XML podobu zvláštního tagu, který je uvozen řetězcem <!-- a ukončen řetězcem -->.
Příklad:<!--Tuhle část bude ještě třeba doladit.-->
Vedle komentářů lze do XML dokumentů také vkládat instrukce pro zpracování(Processing Instructions) určené programům, které budou daný dokument zpracovávat. Může se například jednat o skripty pro webovský server, instrukce pro prohlížeč nebo příkazy pro zpracovávající editory (zalomení stránky, záložky apod.).
Instrukce pro zpracování se vkládají mezi řetězce <? a ?>. Samotný zápis instrukcí je uvozen identifikátorem.
Příklad:
<?xml version="1.0" encoding="windows-1250"> (XML deklarace je vlastně zpracovávající
instrukce.)
<?xml-stylesheet href="basic.css"> (Přiřazení kaskádového stylu pro zobrazení daného
dokumentu.)
Obsah seriálu (více o seriálu):
- Jemný úvod do jazyka XML (I) - Proč právě XML?
- Jemný úvod do XML (II) - Základy syntaxe
- Jemný úvod do XML (III) - Definice typu dokumentu
-
14. května 2014
Jak vkládat snímky do galerií a soutěží? Stručný obrazový průvodce
-
23. dubna 2014
Konica Minolta přenesla výhody velkých zařízení do kompaktních modelů
-
12. června 2012
-
9. dubna 2014
-
29. listopadu 2013
-
6. září 2004
OKI snižuje ceny barevných laserových tiskáren C3100 a C5200n
-
13. května 2004
-
19. ledna 2004
QuarkXPress Passport 6: předvedení nové verze na konferenci Apple Forum 27.1.2004
-
6. února 2001
-
30. listopadu 2014
Nový fotoaparát α7 II: první plnoformát s pětiosou optickou stabilizací obrazu na světě
-
5. srpna 2024
Bubnový scanner na 4000dpi optické rozlišení + PC + software
-
8. září 2024
-
14. října 2024
-
5. listopadu 2024