Publicatie:Elementen, tags en attributen
XML-documenten verschillen op een aantal punten van gewone tekstdocumenten. Zo bevatten zij een aantal eigenschappen die eigen zijn aan XML. Bekijk het XML-document uit de vorige pagina even opnieuw:
Tags
De structuur en de inhoud wordt in een XML-document weergegeven door middel van <tags>. Tags komen in XML steeds voor in paren: een <begintag> wordt gevolgd door een </eindtag>. Het verschil zie je aan de forwardslash (/) waarmee elke eindtag begint. Tags hebben eerst en vooral een beschrijvende functie: ze geven een inhoudelijke beschrijving van de waarden die ze omsluiten:
<titel>Rum Punch</titel>
en
<auteur>Elmore Leonard</auteur>
waarbij meteen duidelijk is dat Rum Punch de titel van het boek is en Elmore Leonard de auteur ervan. In technische termen stelt men dat "Rum Punch" een instantie is van het concept "titel" , en "Elmore Leonard" een instantie van het concept "auteur".
Elementen
Het geheel van <begintag>, </eindtag> en alles wat er tussen staat noemt men een element. Elementen geven de conceptuele inhoud van je document weer en vormen zo de bouwstenen van je XML-document. Het XML-document uit bovenstaand voorbeeld bevat dus zestien elementen:
1 x <catalogus>waarde</catalogus> 3 x <boek>waarde</boek> 3 x <titel>waarde</titel> 3 x <auteur>waarde</auteur> 3 x <jaar>waarde</jaar> 3 x <prijs>waarde</prijs>
Zo beschrijft het XML-document uit bovenstaand voorbeeld een catalogus die uit drie boeken bestaat en waarvan elk boek een titel, een auteur, een jaar van uitgave en een prijs heeft.
Attributen
Naast tags en waarden kunnen elementen ook attributen bevatten. Die geven extra inhoudelijke informatie die op zich niet in de waarde van het element vervat zit. Attributen bestaan uit een naam, een gelijkheidsteken en een corresponderende waarde. De waarde van elk attribuut staat steeds tussen "dubbele aanhalingstekens". Attributen bevinden zich steeds in de begintag van het element waarover ze informatie geven:
<boek categorie="MISDAAD">
Het XML-document uit bovenstaand voorbeeld bevat één attribuut dat aangeeft tot welke categorie de boeken in de catalogus behoren, namelijk "MISDAAD", "FANTASY" of "CYBERPUNK".
Boomstructuur
In het XML-document uit bovenstaand voorbeeld zijn de waarden die omvat worden door de tags meestal tekstueel van aard: "Rum Punch", "Elmore Leonard", ... . Maar elementen kunnen ook bestaan uit andere elementen. Zo bestaat de waarde die wordt omsloten door de tags <boek> uit vier andere elementen: <titel>, <auteur>, <jaar> en <prijs>:
<catalogus> <boek> <titel>waarde</titel> <auteur>waarde</auteur> <jaar>waarde</jaar> <prijs>waarde</prijs> </boek> </catalogus>
Deze vier elementen zijn genest of ingebed in het boekelement. Op die manier vormen de elementen een boomstructuur en krijgt het XML-document een zekere hiërarchie.
Helemaal bovenaan de hiërarchie van een XML-document staat een allesomvattend rootelement. In ons voorbeeld is dat het cataloguselement. Het rootelement geeft steeds weer van welke conceptuele inhoud het XML-document een beschrijving is. In ons geval is het de beschrijving van een catalogus. De andere elementen zijn rechtstreeks of onrechtstreeks ingebed in het rootelement: het cataloguselement huist drie boekelementen en elk boekelement huist dan weer een titelelement, een auteurelement, een jaarelement en een prijselement.
Tags hebben dus niet alleen een beschrijvende functie. Naast de waarden die zij omsluiten, staan zij ook in voor de formele structurering ervan. Het zijn immers de tags die door middel van inbedding een bepaalde hiërarchie creëren in het XML-document en die de verhouding van de elementen ten opzichte van elkaar vastleggen.
Zelfbeschrijvend
Kenmerkend voor XML is dat deze markeertaal geen strikt afgebakende set namen bevat voor de tags in een XML-document. De gebruiker is vrij zelf namen te creëren, naargelang de noden van het te beschrijven document. XML-tags zijn dus zelfbeschrijvend. Zo kan een XML-document dat een gedicht beschrijft de tags <gedicht>, <titel>, <auteur>, <strofe> en <vers> bevatten, maar kan een XML-document dat een muziekalbum beschrijft dan weer opgebouwd zijn door middel van de helemaal andere tags <artiest>, <titel>, <jaar>, <tracks> en <nummer>. Datzelfde muziekalbum kan dan weer even goed beschreven en vormgegeven worden door de tags <uitvoerder>, <albumtitel>, <jaartal>, <tracklist> en <track>. De namen die gebruikt worden in de tags kan je volledig zelf kiezen.
Tegenover de vrijheden die XML biedt, staan dan weer een aantal zaken die vereist zijn voor een correct gebruikt van XML, waaronder de Publicatie:XML-verklaring en de criteria voor welgevormde XML. Hoewel XML volledige vrijheid biedt voor het bepalen van de elementen, vereisen catalogi en inventarissen van collecties dat een XML-document een vaste structuur heeft en steeds dezelfde elementen gebruikt. De grammatica van een XML-document kan je vastleggen door middel van een Publicatie:Document Type Definition (DTD) of een Publicatie:XML Schema. Meer daarover lees je in het tweede deel van deze handleiding.