XML in 10 Punten

XML, XLink, Namespace, DTD, Schema, CSS, XHTML ... Ben je onbekend met XML, dan is het misschien lastig te weten waar je een begin moet maken. Met deze samenvatting in 10 punten proberen we voldoende basisconcepten te leveren. Deze tekst is geschreven in 1999.\  


1. XML is om data te structureren

Gestructureerde data omvatten spreadsheets, adresboeken, configuratieparameters, financiële transacties, technische tekeningen, etc. XML is een stel regels (je kunt ze ook als richtlijnen of conventies beschouwen) om tekstformaten te ontwerpen, waarmee je data kunt structureren. XML is geen programmeertaal en je hoeft geen programmeur te zijn om het te gebruiken of te leren. XML maakt het de computer makkelijk data te genereren en te lezen en zorgt voor eenduidige datastructuur. XML voorkomt veel voorkomende valkuilen bij taalontwerp; is uitbreidbaar, platform-onafhankelijk en ondersteunt internationalisatie en lokalisatie. XML werkt geheel volgens de Unicode standaard.

2. XML lijkt enigszins op HTML

Net als HTML maakt XML gebruik van tags (woorden tussen haakjes geplaatst met < en >) en attributen (bijvoorbeeld name="value"). Terwijl HTML de betekenis van elke tag en attribute specificeert en vaak ook aangeeft hoe de tekst tussen deze twee in eruit komt te zien in een browser, gebruikt XML de tags slechts ter afbakening van stukjes data en laat de interpretatie ervan volledig over aan de leesapplicatie. Met andere woorden, zie je <p> in een XML-bestand staan, neem dan niet aan dat dit een paragraaf betreft. Afhankelijk van de context, zou dit kunnen zijn een prijs, een parameter, een persoon, een p (wie beweert dat dit een woord met een p moet zijn?).

3. XML is tekst, maar is niet bedoeld om gelezen te worden

Programma's die spreadsheets, adresboeken en andere gestructureerde data produceren, bewaren deze data vaak op schijf, gebruikmakend van hetzij een binaire of een tekstformaat. Eén voordeel van een tekstformaat is dat het iemand, indien nodig, toestaat data te bekijken zonder het programma waarmee het geproduceerd is; je kan, zonodig, een tekstformaat lezen met je favoriete teksteditor. Teksteditors stellen ontwikkelaars bovendien in staat om applicatiefouten gemakkelijker te herstellen. Net als HTML zijn XML-bestanden tekstbestanden die men niet per se zou hoeven te lezen, maar dat wel zou kunnen doen indien de noodzaak toe bestaat. Minder dan het geval is bij HTML gelden wel strenge regels bij XML-bestanden. Een tag die men vergeet te gebruiken of een attribute zonder aanhalingstekens, maakt een XML-bestand onbruikbaar, terwijl in HTML zoiets wel mogelijk is en vaak ook expliciet wordt toegestaan. De officiële XML- specificatie verbiedt applicaties te proberen achteraf te zeggen wie de maker van een afgebroken XML-bestand is; een afgebroken bestand dient precies daar te stoppen en een foutmelding aan te geven.

4. XML is verbose van ontwerp

Aangezien XML een tekstformaat is en gebruikmaakt van tags om data af te bakenen, zijn XML-bestanden vrijwel altijd groter dan vergelijkbare binaire formaten. De ontwerpers hebben daar bewust voor gekozen. De voordelen van een tekstformaat zijn duidelijk (zie punt 3) en de nadelen kunnen doorgaans op een ander niveau worden gecompenseerd. Schijfruimte is minder kostbaar dan vroeger het geval was en compressieprogrammas zoals zip en gzip kunnen bestanden heel goed en heel snel comprimeren. Communicatieprotocollen zoals protocollen van modems en HTTP/1.1, het kernprotocol van het Web, kunnen data comprimeren tijdens het draaien van het programma, waarbij bandbreedte net zo effectief wordt bewaard als een binair formaat.

5.XML is een familie van technologieën

XML 1.0 is de specificatie die tags en attributen definieert. Buiten XML 1.0, is de XML-familie een steeds groeiend pakket modulen die nuttige diensten bieden om belangrijke en veelgevraagde werkzaamheden uit te voeren.Xlink beschrijft een standaardmanier om hyperlinks aan een XML-bestand toe te voegen. XPointer en XFragments betreffen in ontwikkeling zijnde syntaxes, wijzend op delen van een XML-document. Een XPointer is enigszins als een URL, maar in plaats van te wijzen op documenten op het Web, wijst deze op delen van gegevens binnen een XML-bestand. CSS, de taal van het stijlblad, is toepasselijk op XML evenals op HTML. XSL is de geavanceerde taal om stijlbladen te beschrijven. Deze is gebaseerd op XSLT, een transformatietaal die gebruikt wordt voor het reorganiseren, toevoegen en verwijderen van tags en attributen. De DOM is een standaardgroep functieaanroepen om XML- (en HTML)-bestanden van een programmeertaal te manipuleren. XML Schemas 1 en 2 ondersteunen ontwikkelaars om de structuren van hun eigen op XML gebaseerde formaten nauwkeurig te definiëren. Er zijn veel meer modulen en tools voorhanden of in ontwikkeling. Houdt de pagina omtrent de technische rapporten van het W3C in de gaten.

6. XML is nieuw, maar ook weer niet zo nieuw.

De ontwikkeling van XML is in 1996 begonnen en geldt vanaf februari 1998 als een aanbeveling van W3C, wat je misschien doet vermoeden dat het om nogal onontwikkeld technologie gaat. De technologie is in feite niet nieuw. Vóór XML bestond SGML, die beginjaren tachtig ontwikkeld is, een ISO standaard sinds 1986 en op grote schaal gebruikt voor grote documentatieprojecten. De ontwikkeling van HTML is in 1990 begonnen. De ontwikkelaars hebben zich doodgewoon laten leiden door de ervaring met HTML, de beste onderdelen van SGML genomen, iets geproduceerd dat zeker niet in kracht onderdoet voor SGML en daarbij veel en veel regelmatiger en eenvoudiger te gebruiken is. Sommige evoluties zijn evenwel moeilijk te onderscheiden van revoluties En terwijl SGML grotendeels voor technische documentatie wordt gebruikt en veel minder voor andere datatypen, is dit precies het omgekeerde met XML.

7. XML leidt HTML naar XHTML

Er bestaat een belangrijke XML-applicatie dat een documentformaat is, namelijk XHTML van het W3C, de opvolger van HTML. XHTML beschikt over vaak dezelfde elementen als HTML. De syntaxis is iets gewijzigd om te kunnen voldoen aan de regels van XML. Een op XML gebaseerd document erft de syntaxis van XML en beperkt deze op bepaalde manieren (bijvoorbeeld bij XHTML mag <p>, maar <r> niet); aan de syntaxis wordt ook betekenis toegevoegd (XHTML zegt dat <p> betekent paragraaf en niet prijs, persoon of iets anders).

8. XML is modulair

Met XML is men in staat een nieuw documentformaat te definiëren door andere formaten te combineren en opnieuw te gebruiken. Aangezien twee onafhankelijk ontwikkelde formaten elementen of attributen kunnen hebben met dezelfde naam, moet men oppassen bij het combineren van die formaten (betekent <p> paragraaf bij dit formaat of persoon bij dat ander formaat?). Om naamsverwarring uit te sluiten bij het combineren van formaten, zorgt XML voor een namespace mechanisme. XSL en RDF prachtige voorbeelden van op XML gebaseerde formaten, die namespaces gebruiken. XML Schema is ontworpen om deze modulariteitsondersteuning af te spiegelen op het niveau van het definiëren van XML-documentstructuren, door het gemakkelijk te maken om twee schemas te combineren teneinde een derde te produceren dat een samengevoegd documentstructuur omvat.

9. XML is de basis voor RDF en het Semantisch Web

XML zorgt voor een eenduidige syntaxis voor RDF van het W3C, de taal om metadata te beschrijven (eigenlijk voor kennis in het algemeen). RDF is net als hypertext naar het volgende niveau verheven. Terwijl hypertext stukjes tekst linkt en hun relatie vaag laat, kan RDF alles en ook alles linken en aan de relaties namen toekennen: A is de prijs van B kan een relatie zijn tussen een object en een geldsom; A is zwaarder dan B kan de relatie zijn tussen twee sumoworstelaars; A is de oorzaak van B zou de relatie kunnen zijn tussen een bui en het feit dat men nat is. Voor het mededelen van kennis of het nou in XML/RDF of in gewoon Engels is, dient zowel de mens als de machine overeenstemming te bereiken omtrent het woordgebruik. Een nauwkeurig gedefinieerde serie woorden ter beschrijving van een bepaald levensgebied (van winkelen tot mathematische logica) noemt men een ontologie. RDF, ontologieën en de representatie van betekenis om de computers de mens bij het werken hulp te kunnen bieden, zijn alle themas van Semantic Web Activity.

10. XML is licentievrij, platform-onafhankelijk en heeft een goede ondersteuning

Door XML als basis voor een project te kiezen krijg je toegang tot een toenemend aantal tools voor gemeenschappelijk gebruik (wellicht gebruik je al één ervan voor wat je nodig hebt!) en tot technici met ervaring in de technologie. De keus voor XML is enigszins vergelijkbaar met het kiezen van SQL voor databases: je eigen database, eigen programmas en procedures die deze manipuleren moet je toch bouwen; er zijn heel wat tools voorhanden en vele mensen beschikbaar om hulp te bieden. En aangezien XML licentievrij is, kan je je eigen software eromheen bouwen zonder iemand een cent te hoeven betalen. De aanzienlijke en toenemende ondersteuning houdt in dat je evenmin aan één leverancier gebonden bent. XML is niet altijd de beste oplossing, maar is toch altijd het overwegen waard.


Translated into Dutch by Chester Thomson\ Revised 6 December 2001 Created 27 Mar 1999