RELAX with your SOX on
Auteur: Rick F. van der Lans
Geschreven: juni 2000
Gepubliceerd in: CM Corporate.Net, nummer 154

De kracht van XML is dat we er nieuwe talen mee kunnen definiëren. Dat is meteen één van de belangrijkste verschillen tussen HTML en XML. HTML is reeds een kant en klare taal ontwikkeld voor een bepaald doel, namelijk het specificeren van de lay-out van documenten. XML is geen kant en klare taal, het is een taalmaker. Met XML specificeert u hoe andere talen in elkaar zitten. Voorbeelden van talen die met XML werden gedefinieerd, zijn WML, XHTML, XML/EDI en XMI.
Het definiëren van een XML-taal gebeurt met de taal DTD (Document Type Definition). Een DTD-document bepaalt specificaties als: welke elementen kunnen gebruikt worden, welke subelementen zijn er, zijn de elementen verplicht, moeten ze in een bepaalde volgorde staan, kunnen ze meerdere keren voorkomen, en welke attributen mogen ze hebben.
DTD is echter niet perfect. We kunnen bijvoorbeeld niet opgeven welk datatype een element kenmerkt , bijvoorbeeld integer, decimaal of karakter. Integriteitsregels - zoals 'de waarde moet kleiner zijn dan 10' - kunnen daarom ook nergens opgegeven worden. Een ander probleem is dat DTD zelf geen XML-taal is. Leveranciers moeten dus altijd twee 'parsers' ontwikkelen: één voor XML-documenten en één voor DTD-documenten.
Om deze redenen is er op de markt een reeks alternatieven verschenen. De inzet van de strijd is om de opvolger van DTD te worden.
Het World Wide Web Consortium (W3C) werkt al sinds het begin van 1998 aan XML Schema. Sinds april van dit jaar is er een working draft beschikbaar: XML Schema is een zeer compleet alternatief voor DTD. Alle functionaliteit die we ons kunnen bedenken, zit er in. Vandaar ook dat het al over twee documenten werd verdeeld, samen bestaande uit meer dan 300 pagina's. Zoals u waarschijnlijk al begrijpt, is XML Schema zelf keurig een XML-conforme taal. Maar die compleetheid is meteen ook het probleem van XML Schema. Het zal voor talrijke leveranciers een zware klus worden om al deze specificaties te implementeren. Zij zullen op zoek gaan naar eenvoudigere alternatieven. En die zijn er ook.
Voorbeelden van alternatieven zijn XDR (XML Data Reduced) en RELAX (REgular LAnguage for Description of XML). XDR komt bij Microsoft vandaan. Het is een subset van XML Schema en mist de onvolkomenheden van DTD. Voor RELAX kunnen we hetzelfde zeggen. RELAX voegt daar nog aan toe dat het, net als XDR, forward compatible is met XML Schema, maar tevens ook backward compatible met DTD. Voor veel leveranciers zal het aantrekkelijk zijn om eerst één van deze twee te implementeren, om dan later met een implementatie van XML Schema te komen.
Maar er is nog een vierde alternatief: SOX (Schema for Object-Oriented SQL). Ook SOX is duidelijk een verbetering vergeleken bij DTD. Het heeft veel weg van de andere oplossingen - ook SOX is een XML-taal - maar het voegt iets nieuws toe: SOX ondersteunt namelijk inheritance. Vandaar de classificatie Object-Oriented.
Het is nog te vroeg om aan te geven wie uiteindelijk dit gevecht gaat winnen. W3C zal niet de keuze gaan bepalen - daarvoor is de commerciële invloed van het consortium te klein. Het zullen de leveranciers zijn, die de winnaar kiezen. Indien leveranciers gezamenlijk kiezen voor hetzelfde alternatief, dan wordt dat ongetwijfeld de winnaar. Hopelijk zorgt W3C er wel voor dat alle leveranciers voor dezelfde standaard gaan, zodat de markt zich niet gaat splitsen. Wij als klanten zijn bij al dat getouwtrek zeker niet gebaat.