XML - čo to je

Uverejnené: 10.08.2021

Definícia XML

XML - Extensible Markup Language , čo je v preklade značkovací jazyk. XML súbor má koncovku .xml a skladá sa z elementov a atribútov (atribúty nie sú povinné). Súbor je možné otvoriť v poznámkovom bloku a pre najrýchlejšiu vizuálnu kontrolu ho odporúčam otvárať cez Google Chrome (v prípade, ak Vám chybajú ukončené elementy alebo Vám chýba root/koreňový element, tak vypíše chybu). XML je case-sensitive (rozlišovanie veľkých a malých písmen). XML sa zobrazuje v stromovej štruktúre. 

Element

Element je tag, ktorý je ohraničený zobáčikovými zátvorkami (<element>), ktorý musí byť vždy v páre a musí byť ukončený. Elementy môžu byť rôzne pomenované (záleží od tvorcu XML)

  • element s obsahom: <element> obsah </element>
  • prázny element: <element/>

Atribút

Atribút sa nachádza vo vnútri elementu a štandardne je jeho obsah uložený medzi úvodzovky (atribut="obsah"). Je možné ním vyjadriť nejaké dodatočné informácie (atribút je aj pri html obrázku napr. <img src="image/picture.png"> ).

Špeciálne znaky v XML

Treba si dávať pozor na špeciálne znaky (&, < , > , ' , "), s ktorými má XML problém (napr. zátvorky môžu znamenať ukončenie elementu, ale majú byť použité v nejakom texte).

Špeciálne znaky musíte vkladať ošetrené:

  • & - &#38;
  • < - &#60;
  • > - &#62;
  • ' - &#39;
  • " - &#34;
  • <text>Text s &#38;, ktorý nezobrazí ako chybu, taktiež je možné použiť &#60;zátvorky&#62;</text>

alebo ich jednoducho vložiť do <![CDATA[ obsah ]]> napr. :

  • <text><![CDATA[ Text s & , ktorý nezobrazí ako chybu, taktiež je možné použiť < zátvorky > ]]></text>

Validácia

Overiť validáciu (správnosť) XML súboru sa dá použitím napr. nejakého online validátora https://www.xmlvalidation.com/ a https://www.w3schools.com/xml/xml_validator.asp.

 

Základná štruktúra XML:

Definícia XML súboru

v hlavičke XML musí byť vždy zadané, čo určuje XML súbor - prvý riadok

<?xml version="1.0" encoding="utf-8"?> <!-- definícia XML súboru -->

Koreňový / root / top-level element

v XML musí byť vždy jeden top-level/root/koreňový element - v tomto prípade <root>

<?xml version="1.0" encoding="utf-8"?>
<root>

</root>

Menný priestor - Namespace

XML sa môže odkazovať na XSD schému, podľa ktorej sa má riadiť a s ktorou sa dá overiť validácia.
xml:ns znamená, že to je definícia menného priestoru (najčastejšie sa odkazuje na XSD schému). Ak do nejakého elementu vložíte Namespace, tak to znamená, že Namespace platí pre daný element a elementy pod ním (v stromovej štruktúre). Preto sa väčšinou NameSpace vkladá do root elementu, aby to platilo pre celý XML súbor. Ak neviete, ako správne vyplniť element, tak Namespace by vám k tomu mal napovedať. 

xmlns:item="schema.xsd"

Namespace je v tomto prípade item, ktorý sa odkazuje na XSD schému. 

Vzorové XML

<?xml version="1.0" encoding="utf-8"?>
<root xmlns:item="https://www.havri.eu/files/schema.xsd"> <!-- hlavný/koreňový/root element s definíciou XSD schémy platnou pre celý súbor -->
	<head ID="01"> <!-- element head, v ktorom sa nachádzajú ďalšie elementy a je v ňom použitý atribút ID s hodnotou 01 -->
		<email>havri@havri.eu</email> <!-- element s obsahom -->
		<text>Text s &#38;, ktorý nezobrazí ako chybu, taktiež je možné použiť &#60;zátvorky&#62;</text> <!-- element obsahuje špeciálne znaky -->
		<element/> <!-- Prázdny element -->
		<item:date>2021-08-10</item:date> <!-- element date , ktorý sa odkazuje na schema.xsd kvôli Namespace item: -->
	</head> <!-- ukončenie elementu head -->
</root> <!-- ukončenie elementu root -->

 

Najčastejšie chyby

Neukončený XML element 

V tomto prípade nie je ukončený element, ktorý je pomenovaný ako <element>

<?xml version="1.0" encoding="utf-8"?>
<!-- hlavný/koreňový/root element -->
<root>
	<!-- element head, v ktorom sa nachádzajú ďalšie elementy -->
	<head>
		<!-- element s obsahom -->
		<email>havri@havri.eu</email>
		<!-- Chybný element - neukončený -->
		<element>
	<!-- ukončenie elementu head -->
	</head>
<!-- ukončenie elementu root -->	
</root>
  • Vzorový chybný XML súbor [VZOR]