XML

Az Extensible Markup Language (XML) az SGML egy kibővíthető leegyszerűsítése. Leegyszerűsítése a kötötteb szintaxis, amely könnyebben parszolhatóvá teszi, azaz a gépi ellenőrzése, feldolgozása könnyebbé válik. Kiterjeszthetősége pedig azt jelenti, hogy adott alkalmazásokhoz magunk definiálhatunk u.n. tag-eket.

Elsődleges célja strukturált adatok tárolása és megosztása, elsősorban az Interneten, de máshol is. Az XML nem arra a célra készült, hogy csináljon valamit, nem is arra, hogy "szépen" meg lehessen jeleníteni, hanem, hogy egy dokumentumot tároljon a strukturájával együtt.

Az XML nyitott és bővíthető, azaz nem léteznek előre definiált tag-ek, (mint pl. a HTML-ben), hanem nekünk kell és lehet szabadon definiálni az egyes tag-eket.

Az XML a World Wide Web Consortium (W3C) ajánlása. A W3C-nek 2007 tavaszám több, mint 400 tagja volt.

Egy XML dokumentum két nagyon fontos szinten lehet "korrekt":


<book>This is a book.... </book>

<recipe name="bread" prep_time="5 mins" cook_time="3 hours">
   <title>Basic bread</title>
   <ingredient amount="3" unit="cups">Flour</ingredient>
   <ingredient amount="0.25" unit="ounce">Yeast</ingredient>
   <ingredient amount="1.5" unit="cups" state="warm">Water</ingredient>
   <ingredient amount="1" unit="teaspoon">Salt</ingredient>
   <instructions>
     <step>Mix all ingredients together.</step>
     <step>Knead thoroughly.</step>
     <step>Cover with a cloth, and leave for one hour in warm room.</step>
     <step>Knead again.</step>
     <step>Place in a bread baking tin.</step>
     <step>Cover with a cloth, and leave for one hour in warm room.</step>
     <step>Bake in the oven at 350° for 30 minutes.</step>
   </instructions>
 </recipe>

 <!-- WRONG! NOT WELL-FORMED XML! -->
 <p>Normal <em>emphasized <strong>strong emphasized</em> strong</strong></p>

Viszont lehetnek üres, és önlezáró tag-ek:


  <foo></foo>
  <foo />
  <foo/>

  <info author="John" genre="science-fiction" date="2009-Jan-01" />

XML deklaráció. Tartalmazza a verziót (tipikusan 1.0), a karakterkódolást (UTF-8, UTF-16, latin-2, stb...), és esetleges külső függéseket:


<?xml version="1.0" encoding="UTF-8"?>

<?xml version="1.0" encoding="ISO-8859-2"?>

Kommentek:


<!-- This is a comment. -->

<!-- This is a comment. 

      in more lines...

-->

Az alapegység az elem (element):


<name attribute="value">content</name>

Az XML két módon engedi, hogy speciális karakterekre hivatkozzunk. Az egyik az Entity referenciák alkalmazása:


&amp;	&	ampersand
&lt;	<	less than
&gt;	>	greater than
&apos;	'	apostrophe
&quot;	"	quotation mark

<company_name>AT&amp;T</company_name>

Mi magunk is definiálhatunk ilyeneket a Document Type Definition (DTD)-ben:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE example [
    <!ENTITY copy "&#xA9;">
    <!ENTITY copyright-notice "Copyright &copy; 2006, XYZ Enterprises">
]>
<example>
    &copyright-notice;
</example>

Vagy hivatkozhatunk a decimnális, vagy hexadecimális kódjukra:


<company_name>AT&#38;T</company_name>
<company_name>AT&#x26;T</company_name>