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.
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?).
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.
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.
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.
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.
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).
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.
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.
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.
Copyright © 1994-2005 W3C® (MIT, ERCIM, Keio), All Rights Reserved.