De lingua franca voor computersystemen

XML is in een razendsnel tempo de nieuwe standaard aan het worden voor de uitwisseling, de verwerking en de opslag van gegevens. De belangrijkste redenen hiervoor zijn de openheid van de standaarden, de eenvoud in het gebruik, de flexibiliteit en de uitbreidbaarheid. Het resultaat is een voor iedereen beschikbare standaard met een enorm scala aan toepassingsmogelijkheden.
Behalve als uniforme manier om gegevens te structureren, fungeert XML ook als belangrijkste enabler voor een heleboel andere technologische ontwikkelingen. Denk dan bijvoorbeeld aan web services, keten integratie en de standaardisatie van allerlei toepassingsspecifieke datastructuren.

Eenvoud en bruikbaarheid

XML, kort voor Extensible Markup Language, is een vereenvoudigde versie van het tien jaar oude SGML. Deze Standard Generalized Markup Language, vastgelegd in de ISO 8879 standaard, is een behoorlijk zwaar en ingewikkeld systeem om gegevensrepresentaties vast te leggen. Men spreekt in dit verband wel van een meta-taal: een taal om weer een andere taal beschrijven. Hoewel SGML een prachtig systeem is en ook veel wordt toegepast, is het eigenlijk te complex om op echt grote schaal te worden ingezet.

Met XML heeft het World Wide Web Consortium (W3C) een vereenvoudigde vorm van SGML ontwikkeld, speciaal voor het gebruik op Internet en het Web. Daarbij heeft men goed gekeken naar HTML, de opmaak taal die het toen al vijfentwintig jaar oude Internet voorzag van een voor een breed publiek goed bruikbare interface. Het succes van XML is enerzijds dan ook te danken aan de relatieve eenvoud (ten opzichte van SGML), anderzijds aan het gebruiksgemak van HTML.

Rommeltje

XML wordt inmiddels door de meestgebruikte web browsers ondersteund, in ieder geval door Internet Explorer van Microsoft, door Mozilla/Netscape en door Opera. De W3C wilde dat ook heel graag. De HTML standaarden werden een rommeltje doordat allerlei ontwikkelaars van browsers deze voorzagen van hun eigen uitbreidingen. Bovendien werden allerlei HTML tags en uitbreidingen misbruikt om een bepaalde layout van pagina's door de browser te forceren, iets dat expliciet juist niet de bedoeling was van HTML. Een bekend voorbeeld hiervan is de manier waarop tabellen op grote schaal misbruikt worden om de layout van pagina's te sturen, terwijl de frames daar in eerste instantie voor zijn bedoeld. Anderzijds werd de W3C destijds regelmatig bekritiseerd omdat hun nieuwe HTML standaarden zo lang op zich lieten wachten, en bovendien te weinig faciliteiten boden om aantrekkelijke, interactieve grafische pagina's te maken, iets waar dat computerscherm juist zo geschikt voor is. Tenslotte wordt HTML ook misbruikt voor het vastleggen van informatie die daarna dan weer door een speciaal daarvoor geschreven parser moest worden ingelezen. Het bekendste voorbeeld daarvan is de manier waarop Netscape/Mozilla zijn bookmarks opslaat in het bookmarks.html bestand, dat daarvoor de standaard is geworden.

Het resultaat van de W3C inspanningen is een technologie die echter een veel breder toepassingsgebied heeft dan alleen de uitbreiding van HTML. Het ziet er nu dan ook naar uit dat XML in heel andersoortige toepassingen nog sneller opgang vindt dan op het web.

Industrie-specifieke standaarden

In de wereld van XML staat een document met gegevens niet meer op zichzelf. Het .xml bestand waarin de data zelf is opgenomen, is gekoppeld aan een zogenaamde Document Type Declaration (DTD). Daarin staat precies gespecificeerd welke tags er in het XML document mogen worden gebruikt en hoe die kunnen worden genest. Daarnaast bevat de DTD zogenaamde entiteiten, eenvoudige macro definities. Via XML Schema's kunnen ingewikkelder datatypen worden gedefinieerd door allerlei randvoorwaarden voor bepaalde attributen op te geven, bijvoorbeeld aan welke voorwaarden een postcode of telefoonnummer precies moet voldoen.

Deze loskoppeling van de gegevens zelf en hun representatie is wat XML zo krachtig maakt. Iedereen kan nu immers voor zijn specifieke toepassing een eigen DTD definiëren en dit formaat gebruiken om zijn data op te slaan.

De truuk is natuurlijk om dat juist niet zelf te doen, maar DTD specificaties gezamelijk te ontwikkelen en als open formaat op Internet beschikbaar te maken en te standaardiseren. Op die manier is XML niet alleen meer geschikt voor de opslag van gegevens in een scherp gedefinieerd formaat, maar kan diezelfde vorm ook gebruikt worden om gegevens tussen verschillende systemen uit te wisselen en te laten verwerken. Omdat niet alleen het XML bestand maar ook de beschrijving daarvan in het DTD bestand elektronisch beschikbaar is, is XML bij uitstek geschikt voor communicatie tussen systemen.

Inmiddels is er een enorme hoeveelheid DTD formaten voor van alles en nog wat beschikbaar, met name voor allerlei industrie- en wetenschapsspecifieke toepassingen. Het uitwisselen van medische patiënt gegevens gebeurt bijvoorbeeld in het HL7 (Health Level 7) formaat. Muziekschrift wordt vastgelegd volgens SMDL (Standard Music Description Language). Chemici maken gebruik van de Chemical Markup Language (CML). Voor FAQ's (Frequently Asked Questions, and Answers) is er de Question and Answer Markup Language (QAML). En voor schaaksporters is er de Chess Markup Language (ChessML).

Conversies

Behalve in de standaardisatie van XML zelf heeft de W3C ook veel werk gestoken in allerlei tools om van XML als uniforme standaard voor gegevensrepresentatie ook een practisch bruikbaar systeem te maken. Voor het omzetten van XML naar een ander document formaat, bijvoorbeeld HTML, WML, LaTeX of platte tekst, kan gebruik gemaakt worden van de Extensible Stylesheet Language (XSL). In het stylesheet .xsl bestand, ook weer een XML bestand met een eigen DTD formaat, wordt gespecificeerd hoe een XML document moet worden weergegeven. Op die manier wordt een scheiding gemaakt tussen de gegevens zelf en de presentatie informatie, vergelijkbaar met de manier waarop de kleuren, fonts en spatiëring van HTML pagina's worden vastgelegd in Cascading Style Sheets (CSS).

XSLT (XSL Transformation) is van origine bedoeld als aanvulling op de XLS stylesheets om ook complexere zaken te kunnen weergeven, maar wordt nu gebruikt als een algemene taal voor de conversie van XML. Daarbij wordt gebruik gemaakt van de XML Path Language (XPath), waarmee naar (delen van) andere XML documenten kan worden gerefereerd. De meest bekende XSLT processors zijn Saxon en Xalan, beide in Java geschreven. De eerste is een open source project van Michael Kay. De tweede is door IBM aan de Apache community gedoneerd.

De output van een XSLT engine kan ook bestaan uit een XSL-FO document (XSL Formatting Objects). Dit is een tussen-formaat, dat met behulp van een rendering engine (bijvoorbeeld XEP van RenderX of de XSL Formatter van Antenna House) verder kan worden verwerkt tot bijvoorbeeld een PDF, PostScript of PCL bestand. Wie bekend is met het LaTeX document systeem kan XSL-FO vergelijken met het DVI formaat (Device-Independent).

Linken en zoeken

XPath wordt niet alleen gebruikt door XSLT, maar ook door XPointer (XML Pointer Language), een algemeen mechanisme voor het selecteren van fragmenten binnen XML documenten. Binnen XML documenten wordt weer XLink (Linking Language) gebruikt om naar andere XML resources te verwijzen.
Waar XPath op de logische, hiërarchische structuur van XML werkt, elementen daarbinnen kan selecteren, kunnen met de XML Query Language (XQL) zoekopdrachten op de inhoud zelf worden uitgevoerd. Daarmee lijkt deze taal meer op bijvoorbeeld de SQL queries om databases te bevragen.

XML als bron

Hoewel XML in eerste instantie is ontwikkeld omdat de W3C niet gelukkig was met de manier waarop de HTML standaarden zich ontwikkelden, is het niet zo dat XML op termijn HTML gaat vervangen. XML zal daar als aparte technologie naast staan. Wel wordt de huidige HTML 4 standaard op dit moment als XHTML geherdefinieerd in XML formaat. Specifiek voor XML formulieren zijn er nog de XForms.

CSS'es kunnen wel samen XML worden gebruikt, maar meestal zal XML vergezeld gaan van XSL stylesheets, en HTML van CSS bestanden.

Hoewel het misschien aantrekkelijk lijkt om HTML bestanden op de web server eenmalig uit XML bestanden te laten genereren, is dat geen goed idee. Je wilt al je gegevens in XML bewaren en daarop ook je wijzigingen doorvoeren. Bovendien is XML veel geschikter om zoekopdrachten op uit te voeren dan het soort (onleesbare) HTML dat door automatische tools wordt gegenereerd.

Voor wat betreft de ontwikkeling van de XML standaard zelf kijkt de W3C naar DSSSL-0. Deze standaard is een afgeleide van de in de drukkerswereld populaire DSSSL specificatie, maar dan speciaal voor gebruik bij on-line toepassingen. Er vindt wel uitwisseling van ideeën en technologie plaats tussen XML en DSSSL, maar het is volgens de W3C nog te vroeg om te zeggen welke kant de ontwikkelingen precies op zullen gaan.

Plaats reactie

Security code Vernieuwen

Verstuur