Article Index


Úvod

XML (eXtensible Markup Language) je metajazyk. Co to znamená? Že definuje pravidla, jak definovat vlastní jazyk dle XML pravidel, který pak můžeme používat k libovolným účelům. XML se označuje jako formát pro předávání a uchovávání dat. Byť v obou rolích má své soupeře. Těmi jsou například JSON (předávání dat) a databáze (ukládání dat). Pokud se podíváme na existující jazyky na bázi XML, pak najdeme zástupce obou přístupů.

Vznik jazyka lze vyjádřit jako evoluci z prvotního pokusu GenCode. Ten byl neúspěšný, neboť autoři měli ambici vytvořit jeden značkovací jazyk pro všechny dokumenty - což se realizovat nepovedlo. Nicméně základní pravidla byla navržena dobře a nástupnické značkovací jazyky je drží dodnes.

Dalším v pořadí byl jazyk GML (Generalized Mark-Up Language), který si z GenCode vzal vše pozitivní a omezil své působení na prostředí firmy IBM.

Myšlenka GML byla použita u nástupnického jazyk SGML (Structured GML), kde došlo k odstranění značek a SGML bylo označeno jako metajazyk - bez vlastní značek, ale s pravidly, jak si značky vytvořit dle potřeby. SGML bylo poměrně komplexní a jeho část upravující definování značek byla osamostatněna jako XML - eXtensible Markup Language.

XML jazyk je nástroj pro předávání dat, oproti HTML je názor k prezentaci dat. Na rozdíl od HTML nemá předdefinované značky.


XML pravidla

Pokud známe HTML jazyk, pak většina pravidel je schodná. Základem jsou značky, které jsou uvozeny pomocí složených závorek - <>. Značka může obsahovat atribut (jeden nebo více), každý atribut má svůj název a musí mít hodnotu, <značka atribut="hodnota"></značka>. Značka, i dle předchozího příkladu, musí být vždy uzavřena.

Značky se rozdělují na párové a nepárové:

  • párová značka má počáteční část a koncovou část, uvnitř je obvykle nějaký obsah - <h1>Velký nadpis</h1>,
  • nepárová značka má pouze první část, která je na konci uzavřena - <br />.

Atribut pak umožňuje upřesnit nebo doplnit text nebo číslo ve značce. Příkladem může být značka cena - <cena mena="CZK">249</cena> - kdy hodnota ve značce je bez definování měny. Lze s ní pak snadno počítat, zatímco měna je uložena jako atribut.

Značky pak dodržují hierarchickou strukturu, jedna značka je vždy hlavní (kořenová - root) a obsahuje vše další. Značky do sebe musí zapadat a nesmí se křížit. Obvykle se značky píší malými písmeny. Značky jsou povinně ukončovány. Každý atribut má svou hodnotu. Název značky nesmí začínat trojznakem xml a musí začínat písmenem.

<?xml version="1.0" encoding="UTF-8"?> <!-- XML prolog -->
<filmoteka> <!-- Komentář -->

   <film jazyk="en">
      <nazev>Star Trek II</nazev>
      <rezie></rezie>
      <delka></delka>
   </film>
   <film>
...
</filmoteka>


Pravidla XML

Vždy je pouze jedna kořenová značka. POVINNÉ

Měl by být před kořenovou značkou XML prolog. VOLITELNÉ

Značky jsou vždy uzavřeny. POVINNÉ

Značky jsou case sensitive. VLASTNOST

Značky musí být správně vnořeny. POVINNÉ

Hodnota atributu musí být vždy v uvozovkách. POVINNÉ

Použití entit místo speciálních znaků. POVINNÉ

Bílé znaky - v hodnotě může být více mezer za sebou, na rozdíl od HTML nebudou sjednoceny do jediné. VLASTNOST

Nový řádek - řídící znak LF (lline feed). VLASTNOST

Pokud výsledný soubor respektuje výše uvedená pravidla, pak je tzv. well-formed.

Atribut nebo značka

Při návrhu struktury souboru je potřeba si určit, zda námi požadovaná hodnota či text je značka nebo zda je to atribut.

Obecné doporučení je, že atribut upřesňuje nebo doplňuje význam obsahu značky. Například výše uvedený příklad <cena mena="CZK">249</cena>.

Jinak vše závisí na invenci autora návrhu, níže uvedené příklad z hlediska zpracování dat jsou v podstatě rovnocenné.

   <film jazyk="en">
      <nazev>Star Trek II</nazev>
      <rezie></rezie>
      <delka></delka>
   </film>

   <film jazyk="en" nazev="Star Trek II" rezie="" delka=""/>

U atributů je pouze omezení, že v rámci jedné značky může být atribut pouze jedenkrát, což může být v některých případech limitující. U uvedeného příkladu by to velmi limitovalo přiřazení herců k filmům.

Názvy značek

Značky mohou být pojmenovány celkem volně, nicméně je zde několik omezení a doporučení.

Omezení:

  • Název je case sensitive
  • První znak musí být malé písmeno nebo podtržítko
  • Na začátku nesmí být XML nebo varianty (velká malá písmena)
  • Může obsahovat čísla, písmena, podtržítka, pomlčka, tečka.
  • Nemůže obshaovat mezery

Doporučení:

  • Používat popisné názvy - aby bylo jasné, co značka obsahuje
  • Kratší návy jsou lepší - rz lepší než registracni_znacka
  • Pozor na znak "-" - může být vnímán některým softwarem jako znak pro odečítání.
  • Pozor na znak "."- mlže být vnímám některým softwarem jako znak pro vlastnost.
  • Lze používat národní znaky - opět může být problém se softwarem v podpoře.

Styly pojmenování

Malá písmena - <registracniznacka>

Velká písmena - <REGISTRAČNÍZNAČKA>

Oddělení podtržítkem - <registracni_znacka>

Velké písmeno na začátku každého slova (Pascal Case) - <RegistracniZnacka>

Velká písmena na začátku druhého a dalších slov (Camel Case) - <registracniZnačka>


Použití

Předávání dat

Sem lze zařadit například RSS jazyk, kde webová stránka předává klientovi (čtečce) informace o novém obsahu na stránce.

SOAP - simple object access protocol - standarní protokol pro výměnu dat v rámci webových aplikací.

Ukládání dat

I když to není typické ukládání dat, lze jmenovat soubory využívané kancelářským softwarem - docx, odt, xslx, ... . Pomocí těchto formátů ukládáme vytvořené dokumenty. Další formáty pak mohou předávat a ukládat data o počasí a další.