XML is geaccepteerd als dé standaardtaal voor het toevoegen van metagegevens aan berichten in nieuwe ‘business-to-business’ (b2b) e-handelomgevingen. XML wordt ondersteund door de W3C en – nog indrukwekkender – door alle software-leveranciers. Het is echter geen applicatie, maar slechts een taal.
Het is prachtig dat een standaardtaal de kern vormt van al deze nieuwe applicaties. Toch zijn er aanvullende standaarden nodig om het formaat van de juiste XML-berichten te definiëren. Er zullen veel verschillende definities ontstaan, definities die gerelateerd zijn aan specifieke applicaties. Deze definities moeten ook in een standaard ’taal’ worden gecodeerd. Van oudsher worden opmaaktalen gebruikt voor documenten en niet voor berichten. Sgml is hiervan het belangrijkste voorbeeld. Documenten worden gedefinieerd door middel van een ‘document type definition’ (dtd). Een voorbeeld: een bedrijf, neem Boeing, definieert zijn eigen dtd’s. Toeleveranciers van componenten gebruiken deze dtd’s om de bijbehorende documentatie aan te leveren. Toen XML zich tot standaard voor b2b-berichten ontwikkelde, richtte men zich in eerste instantie op bestaande dtd’s. Daarbij kwam echter een belangrijk verschil tussen berichten enerzijds en documenten anderzijds aan het licht, ook al zijn dit in feite allebei reeksen karakters. De metagegevens die aan berichten werden toegevoegd, profiteren enorm van toegevoegde regels die betrekking hebben op specifieke elementen. Deze behoefte was in de context van documenten nooit onderkend. De standaarden zijn om die reden uitgebreid en zijn nu veel omvangrijker dan de dtd’s van vroeger. Ze worden ‘schema’s’ genoemd. Voor dtd’s was er één gemeenschappelijke standaard, maar voor schema’s is dat niet het geval. Tot op heden is W3C erin geslaagd standaarden te definiëren voordat ze essentieel worden. We moeten toegeven dat zulks in de conventionele IT niet gebruikelijk is. Neem het grote aantal verschillende SQL-smaken die ontstaan zijn omdat er commerciële producten aan de standaarden voorafgingen. Maar deze keer nam de vraag naar schema’s te snel toe; de b2b-applicaties waren al klaar voordat W3C de bijbehorende ‘standaarden’ kon definiëren. Schema’s worden gebruikt om regels toe te voegen voor het formatteren van de werkelijke XML-berichten. Dit zou met de hand kunnen, door de XML-berichten volgens een systeem van ‘papieren’ regels te coderen. Deze techniek werd in de begindagen veelvuldig toegepast. Maar het zal duidelijk zijn dat een formele standaard nodig is om de ontwikkeling en het onderhoud van echte schema’s gemakkelijker te maken. Zo’n metataal zou dan gebruikt worden om schema’s te ontwikkelen, die op hun beurt gebruikt zouden worden om XML te genereren. Hieruit volgt dat de werkelijke schema’s zelf ook in de vorm van XML gegenereerd zouden moeten worden – een nieuwe, afzonderlijke opmaaktaal is niet nodig. Gelukkig is een aantal commerciële en academische organisaties al enige tijd bezig met het ontwikkelen van dtd-uitbreidingen, zij het zonder het hoge profiel dat b2b creëert. Ik begrijp dat de schema’s die de Open Application Group heeft gepubliceerd op deze manier zijn ontwikkeld. Door de relatief onopvallende wijze van ontwikkelen waren er geen invloeden van specifieke leveranciers. Dat is een zegen, omdat Microsoft, IBM, enzovoort, geen andere keuze hadden dan het accepteren van een bestaand voorstel. Van de eerste schematalen zijn er twee op enige schaal geaccepteerd: XML Data Reduced (XDR) en Document Content Definition (DCD). De eerste heeft een XML-achtergrond, terwijl de tweede afkomstig is uit de Sgml-wereld. Zowel XDR als DCD worden in commerciële systemen gebruikt; XDR met name in Microsofts BizTalk-architectuur. W3C heeft erkend dat er een standaard schemataal moet komen en heeft het proces in gang gezet. Ze hebben ook aangegeven dat dtd’s zo snel mogelijk door schema’s moeten worden vervangen. Er is een nieuwe standaard aangekondigd, XML Schema Definition (XSD).
Tot zover het goede nieuws. W3C is er altijd in geslaagd praktisch bruikbare standaarden te produceren. Maar deze keer lijkt XSD een samenraapsel van alle bestaande ‘de facto’ standaarden te zijn. Dit is volstrekt onbruikbaar en kenmerkend voor de manier waarop de IT-industrie dergelijke zaken vroeger aanpakte. W3C heeft de autoriteit om een nieuwe praktische standaard te definiëren. Hierin kunnen ideeën uit XDR, DCD en dergelijke verwerkt zijn, maar W3C moet niet proberen om het iedereen tegelijkertijd naar de zin te maken.
Het slechte nieuws is dat XSD veel te ingewikkeld is om het ook maar iemand naar de zin te maken. Hierdoor zullen vooral de eenvoudiger ‘de facto’ standaarden worden gebruikt. En hierin voel ik nu eens sympathie voor Microsoft. Het viel te prijzen dat Microsoft de markt geen eigen standaard voor BizTalk probeerde op te dringen, maar in plaats daarvan voor XDR koos. Microsoft heeft destijds ook opgemerkt XDR te zullen vervangen door de nieuwe W3C-standaard. XSD is echter verre van praktisch. Dit zadelt Microsoft op met een onverdiend dilemma.
Martin Healey, pionier ontwikkeling van op Intel gebaseerde computers en c/s-architectuur. Directeur van een aantal IT-bedrijven en professor aan de Universiteit van Wales.