W3C | vertalingen

XML in 10 punten

(7, eigenlijk...)

XML, XLink, Namespace, DTD, Schema, CSS, XHTML ... Als je net XML leert kennen is het soms moeilijk te weten waar te moet beginnen. Deze samenvatting in 10 punten probeert genoeg basis-ideeen te bieden dat een beginner door de bomen het bos kan zien. En als je een praatje houdt over XML, start dan eens met deze 10 punten. Ze worden je hierbij aangeboden.

1. XML is een methode om gestructureerde data in een tekstbestand te stoppen

Lees voor "gestructureerde data" dingen zoals spreadsheets, adressenbestanden, configuratie-parameters, financiële transacties, technische tekeningen, enz. Programma's die zulke data produceren slaan die vaak op op schijf, waarvoor ze ofwel een binair formaat, ofwel een tekstformaat gebruiken. Een tekstformaat staat toe dat je, zo nodig, de data kunt bekijken zonder gebruik te maken van het programma dat ze produceerde. XML is een verzameling regels, richtlijnen, gebruiken, hoe je ze ook maar wilt noemen, voor het ontwerpen van tekstformaten voor dergelijke data, op een dusdanige manier dat het eenvoudig is (voor de computer) bestanden te genereren en te lezen; bestanden, bovendien, die nooit ambigu zijn en waarmee vaak voorkomende fouten kunnen worden vermeden, zoals bestanden die niet extensibel zijn, die niet kunnen worden geïnternationaliseerd of vertaald of die platform-afhankelijk zijn.

2. XML lijkt een beetje op HTML maar is het niet

XML maakt gebruik van tags (woorden tussen '<' en '>) en van attributen (naam="waarde"), net als HTML. Maar terwijl HTML specificeert wat alle tags en attributen betekenen (en voor een deel ook hoe de tekst ertussen er in een browser uit ziet), gebruikt XML de tags alleen als afbakening voor stukjes data en laat de interpretatie geheel over aan de applicatie die ze leest. Anders gezegd: als je een "<p>" ziet in een XML file, ga er dan niet vanuit dat het een alinea is. Afhankelijk van de context kan het een prijs zijn, een parameter, een persoon, een p... (trouwens, waarom zou het iets met een "p" moeten zijn?)

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

XML-bestanden zijn tekstbestanden, zoals ik eerder al zei, maar als HTML-bestanden al niet bedoeld zijn om door mensen gelezen te worden, XML-bestanden zijn dat nog minder. Het zijn tekstbestanden, omdat experts (zoals programmeurs) dan eenvoudiger hun applicaties kunnen debuggen, en omdat ze in noodgevallen een eenvoudige tekst-editor kunnen gebruiken om beschadigde XML-bestanden te repareren. Maar de regels voor XML zijn veel strenger dan voor HTML. Een vergeten tag of een attribuut zonder aanhalingstekens maakt het bestand onleesbaar, terwijl dergelijke dingen in HTML vaak expliciet zijn toegestaan, of tenminste worden getolereerd. In de officiële specificatie voor XML staat te lezen dat het niet is toegestaan voor een applicatie te proberen te raden wat de maker van een beschadigd XML-bestand bedoelde; als het bestand beschadigd is, dan moet de applicatie op die plaats stoppen en een foutmelding geven.

4. XML is een familie van technologieën

We hebben XML 1.0, de specificatie die definiëert wat "tags" en "attributen" zijn, maar rondom XML 1.0 bestaat een groeiende verzameling van optionele modules die verzamelingen tags & attributen of richtlijnen voor bepaalde taken bieden. Zo is er Xlink, die een standaardmethode beschrijft om hyperlinks aan een XML-bestand toe te voegen. XPointer & XFragments (nog in ontwikkeling in juni 2001) zijn syntaxen om naar delen van een XML-bestand te kunnen wijzen. (Een XPointer is een beetje als een URL, maar in plaats van naar een document op het Web, wijst hij naar een stukje data in een XML-bestand.) CSS, de stijl-taal, kan zowel op XML als op HTML worden toegepast. XSL is de geavanceerde taal voor stijl. Hij is gebaseerd op XSLT, een transformatie-taal, die ook vaak los van XSL wordt gebruikt, voor het hergroeperen, toevoegen of verwijderen van tags & attributen. De DOM is een verzameling standaardfuncties om XML (en HTML) te manipuleren vanuit een programmeertaal. XML Namespaces is een specificatie die beschrijft hoe je een URL kunt toevoegen aan elke tag en elk attribuut in een XML-bestand. Maar het is de applicatie die het bestand leest die uitmaakt waar die URL voor wordt gebruikt. (Bijvoorbeeld: RDF, W3C's standaard voor metadata, gebruikt hem om elk stukje metadata te linken aan een bestand dat definieert wat het type van de data is.) XML Schemas 1 en 2 helpen ontwikkelaars bij het precies definiëren van op XML gebaseerde formaten. Er bestaan inmiddels verscheidene andere modules en hulpmiddelen en andere zijn in ontwikkeling. Let op de pagina W3C's technical reports.

5. XML is breedsprakig, maar dat is geen probleem

Omdat XML een tekstformaat is, en omdat het tags gebruikt om data af te bakenen, zijn XML-bestanden bijna altijd groter dan vergelijkbare binaire bestanden. Dat was een bewuste keuze van de XML-ontwikkelaars. De voordelen van een tekstformaat zijn duidelijk (zie 3 hierboven) en de nadelen kunnen meestal op een ander niveau worden gecompenseerd. Schijfruimte is niet zo duur meer als het ooit was en programma's zoals zip en gzip kunnen bestanden zeer goed en zeer snel comprimeren. Deze programma's zijn voorhanden op bijna alle platformen (en zijn meestal gratis). Bovendien kunnen communicatie-protocollen zoals modems en HTTP/1.1 (het basis-protocol van het Web) data comprimeren, zodat ze net zoveel bandbreedte gebruiken als binaire bestanden.

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

De ontwikkeling van XML is begonnen in 1996 en het is een W3C-standaard sinds februari 1998, waardoor je misschien kunt denken dat het een tamelijk onvolwassen technologie betreft. Maar in werkelijkheid is die technologie niet zo nieuw. Vòòr XML was er al SGML, ontwikkelt begin jaren '80, een ISO-standaard sinds 1986 en veel gebruikt voor grote documentatie-projecten. En natuurlijk HTML, waarvan de ontwikkeling is begonnen in 1990. De ontwikkelaars van XML hebben eenvoudigweg de beste delen van SGML genomen, gestuurd door de ervaring met HTML, en hebben iets geproduceerd dat niets in kracht onderdoet voor SGML, maar dat stukken consistenter en eenvoudiger in het gebruik is. Maar sommige evoluties zijn moeilijk te onderscheiden van revoluties... En het is waar dat SGML in brede kring werd gebruikt voor technische documentatie en veel minder voor ander soorten data, terwijl dat met XML precies omgekeerd is.

7, 8, 9...

Deze weet ik nog niet.

10. XML is vrij van licenties, platform-onafhankelijk en goed ondersteund

Door XML als basis voor een project te kiezen boor je een grote en groeiende gemeenschap aan van gereedschappen (waarvan er misschien één al doet wat je nodig hebt!) en ingenieurs met ervaring in de technologie. Kiezen voor XML is een beetje zoals kiezen voor SQL in databases: je moet nog steeds je eigen database bouwen en je eigen programma's en procedures om ermee te werken, maar er zijn vele hulpmiddelen beschikbaar en veel mensen die je kunnen helpen. En omdat XML, als een W3C-technologie, vrij van licenties is, kun je je eigen software eromheen bouwen zonder iemand iets te betalen. De brede en groeiende ondersteuning betekent dat je niet aan één software-maker gebonden bent. XML is niet altijd de beste oplossing, maar het is altijd waard hem in overweging te nemen.


Origineel: Bert Bos
Vertaald door Bert Bos
Geschreven 27 Mar 1999 (laatste wijziging: $Date: 2001/07/02 22:17:50 $)

Copyright © 1999-2000 W3C® ( MIT, INRIA, Keio), alle rechten voorbehouden.