XML jazyk

Jazyk XML je značkovací jazyk, ktorý slúži na uchovávanie, výmenu, zdieľanie a opis dát. To znamená, že ak máme dva systémy (dve aplikácie), ktoré si posielajú medzi sebou dáta, formát XML vieme pre tieto vymieňané dáta využiť. Či už ide o obojsmernú komunikáciu systémov (napr. chat medzi dvomi používateľmi chatovacej aplikácie), alebo situáciu kde jeden systém sťahuje dáta z druhého (napr. lokálny počítač sťahuje predpoveď počasia zo serveru), XML je jedným z najviac vhodných formátov na tento prenos. V tomto XML tutoriáli si objasníme základné črty o jazyku XML, ako vyzerá zdrojový kód v jazyku XML a ako a kde XML využiť.

Charakteristika jazyka XML

  • Jazyk XML slúži najmä na uchovávanie a výmenu dát medzi rôznymi systémami (alebo rôznymi časťami jedného systému).

  • Jazyk XML je značkovací jazyk, podobne ako jazyk HTML.

  • Jazyk XML vznikol z jazyka SGML podobne ako jazyk HTML.

  • Jazyk XML nemá definovanú množinu značiek (na rozdiel od jazyka HTML).

Výhody jazyka XML:

  • Údaje sú v textovej podobe (dajú sa ľahko čítať).

  • XML je platformovo nezávislý jazyk (vieme ho používať bez ohľadu na platformu, s ktorou pracujeme). Vďaka tomu je populárne jeho použitie pri výmene dát medzi rôznymi systémami.

  • Nenáročná konverzia: dáta v XML formáte je možné previesť do iného formátu (napr. JSON, CSV, HTML a pod.)

  • V jazyku XML vieme dáta validovať (skontrolovať správnosť - napr. či sa posiela všetko potrebné).

XML vs HTML

Jazyk XML sa v porovnaní s jazykom HTML líši v niekoľkých bodoch:

  1. Jazyk XML slúži prioritne na uchovávanie, výmenu a zdieľanie dát, nie na ich reprezentáciu.

    • Jazyk XML opisuje dáta (čo dáta obsahujú).

    • Jazyk HTML reprezentuje dáta (ako dáta vyzerajú).

  2. Jazyk XML nemá definovanú množinu značiek (tagov). To znamená, že na rozdiel od jazyka HTML neexistuje zoznam tagov, ktoré vieme použiť. Názvy tagov si môžeme vytvoriť sami ako chceme (môžeme tag nazvať takmer ľubovoľným názvom).

Ukážka XML

V zdrojovom kóde XML nižšie vidíme jednoduchú ukážku správy. Podobne ako v jazyku HTML, aj tu je potrebné dodržať pravidlo o vnáraní bez kríženia (ktorý tag skôr začne, ten neskôr skončí). V prípade nepárových tagov (resp. prázdnych tagov) je tiež možné tag uzavrieť rovno v otváracej značke.

< ?xml version="1.0" encoding="UTF-8"?>
<oznam>
  <odosielatel>Alenka</odosielatel>
  <prijimatel>Marienka</prijimatel>
  <text>Ahoj, ako sa máš?</text>
</oznam>

V prvom riadku sa nachádza definícia typu dokumentu (že ide o XML dokument) vo verzii 1.0 v kódovaní UTF-8.
Na ďalších riadkoch je samotný XML obsah, teda dáta, ktoré posielame. Koreňovým elementom tejto XML správy je tag s názvom oznam, v ňom sú uložené tri informácie:

  • Tag odosielatel je tag, do ktorého sme uložili meno odosielateľa.

  • Tag prijimatel je tag, do ktorého sme uložili meno prijímateľa.

  • Tag text je tag, v ktorom je text nášho oznamu.

Ako sme už spomenuli, keďže XML nemá definovanú množinu tagov, môžeme si tagy nazývať ako chceme. Treba dodržiavať len základné pravidlá na určenie názvu pre tag:

  • Názov tagu môže obsahovať len písmená a číslice a bežné znaky .

  • Prvý znak názvu môže byť len písmeno alebo podčiarnik _

  • Názov tagu nemôžu začínať sekvenciou xml, keďže tento názov je vyhradený pre hlavičku (to platí pre všetky kombinácie veľkých a malých písmen: xml, XML, Xml, xmL...).

  • Názov tagu nesmie obsahovať biely znak (napr. medzeru).

Atribúty v jazyku XML

Každý XML element môže mať svoje atribúty. Keď chceme napríklad poslať informácie o pohlaví, vieme k tomu použiť nielen element, ale aj atribút. Je jedno, ktorý spôsob zvolíme, ale odporúča sa, aby sme v jednom dokumente používali jednotný spôsob uchovávania informácií pre jednoduchšiu čitateľnosť.

<kamarati> 

  <osoba pohlavie="žena">
    <meno>Anna</meno>
  </osoba>

  <osoba>
    <meno>Jano</meno>
    <pohlavie>muž</pohlavie>
  </osoba>

</kamarati>

Uvádzanie koreňového elementu, ktorý všetky dáta obaľuje, je povinné (v našom prípade sme koreňový element nazvali kamarati).

Alebo, ak chceme extrémne šetriť znakmi, vieme dáta poslať aj takto (všetko vložíme do atribútov a tag môžeme rovno uzavrieť, keďže nemá obsah):

<kamarati> 
  <osoba pohlavie="žena" meno="Anna" />
  <osoba pohlavie="muž" meno="Jano" />
</kamarati>

Sekvencia CDATA v XML

Občas môže nastať situácia, že chceme v jazyku XML poslať aj znak, ktorý má v XML pravidlách špeciálny význam (napríklad znak pre ampersand &). Keďže v obsahu správy by tento znak spôsoboval problémy, musíme tento znak ošetriť. V tomto prípade vieme využiť špeciálnu sekvenciu znakov, ktorou vymedzíme sekciu s názvom CDATA. V sekcii CDATA môžeme uviesť ľubovoľný obsah a systém na spracovanie XML súboru bude vedieť, že táto časť je špeciálna a nemá jej priraďovať iný význam (obsah správy spracuje bez zmeny). Sekvencia CDATA vyzerá nasledovne:

  • začína znakmi: <![CDATA[

  • končí znakmi: ]]>

<firma>
  <meno><![CDATA[R&D]]></meno>
</firma>

To je k úvodu do XML všetko. Jazyk XML je tak jednoduchý, že pre základné používanie netreba nič viac dodať :)


Zhrnutie XML

V tomto krátkom úvode sme sa dozvedeli základné informácie o jazyku XML.


  • Jazyk XML slúži na uchovávanie a prenos dát medzi systémami.

  • Jazyk XML je značkovací jazyk, tagy sa uvádzajú medzi znakmi < a >.

  • Tagy v jazyku XML sú párové (každý tag musí byť ukončený).

  • Jazyk XML opisuje, čo obsahujú dáta, ale neurčuje ich reprezentáciu.

  • Koreňový element v jazyku XML je povinný, musí byť presne jeden a musí obaľovať celý dokument (všetky ostatné elementy) okrem hlavičky.

Otestujte sa z jazyka XML: Tréning: testové otázky z jazyka XML