R2D2 > Waarom XML 2 RDB > XML

3.1 XML

XML is ontworpen door het W3C1 en is bedoeld voor de elektronische uitwisseling van machineleesbare data, in tegenstelling tot HTML dat bedoeld is om documenten voor mensen leesbaar te maken op het internet. XML is een subset van SGML en is op een drietal punten krachtiger dan HTML (ook een subset van SGML)[SUC98]:

  1. De gebruiker kan zelf nieuwe tags definiëren.
  2. Documentstructuren kunnen genest worden tot ieder gewenst niveau.
  3. Elk XML-document kan een verwijzing naar een Document Type Description (DTD) bevatten. In deze DTD staat de grammatica voor dat document beschreven. Deze kan dan gebruikt worden bij validatie van de structuur van het XML-document.

In het algemeen bestaat XML uit elementen die begrensd worden door zogenaamde tags (open- en sluittags) die genest kunnen worden. Hieronder staat een voorbeeld van XML data:

<doc>
<titel id="o1" reference="o2">Semistructured data and XML</titel>
<auteur>
<voornaam>Dan</voornaam>
<achternaam>Suciu</achternaam>
</auteur>
</doc>

Hierbij zijn de tags de stukjes tussen de 'vishaken' (< en >), waarbij de sluittags voorafgegaan worden door een slash (/). Een voorbeeld van een opentag is <auteur> en van een sluittag </auteur>. Een element is het geheel van matchende tags en de informatie die ertussen staat, bijvoorbeeld:

<firstname>Dan</firstname>

XML heeft veel weg van semistructured data2. Zo kan de structuur van een XML-document onregelmatig zijn, zelfs onbekend zijn en van tijd tot tijd veranderen zonder dat daar melding van gedaan wordt. Daar staat tegenover dat zonder veel moeite allerlei soorten data omgezet kunnen worden naar een XML-document. Dit heeft als voordeel dat het aantrekkelijk wordt om gegevens te publiceren in een XML-document. De gegevens zijn namelijk vervolgens eenvoudig te verspreiden naar andere XML-applicaties op het internet.

XML is bedoeld om informatie te structureren. Het zegt niets over de presentatie van data. Hiervoor kan zijn stylesheet-talen ontwikkeld. Voor de presentatie op internet is er de stylesheet-taal CSS (Cascading Style Sheets). Deze taal geeft aan hoe elementen getoond moeten worden. Voor de presentatie in andere omgevingen da het internet (zoals MS Word- of PDF-documenten) kan gebruik gemaakt worden van XSLT. In deze scriptie wordt verder niet ingegaan op deze stylesheet-talen. Wat wel belangrijk is, is de strikte scheiding in XML tussen structuur en presentatie.

1 http://www.w3.org
2 Voor uitleg over semistructured data verwijs ik naar mijn literatuurstudie, te vinden op http://www.robert.dds.nl/litstud/index.html