De nieuwste trend op internet is XML – Extensible Markup Language. De ene na de andere softwareleverancier haast zich om ondersteuning voor XML aan te kondigen. Microsoft heeft zo ongeveer zijn hele internet-toekomst op XML ingezet. De taal wordt door Bill Gates en diens volgelingen gezien als de doorbraak van ‘business-to-business’ e-handel: de grote zak met geld die aan de internet-boom hangt. Een consultant beschrijft de mogelijkheden van XML.
XML is een nieuwe taal om documenten op internet op te maken. Begin jaren negentig was Html verantwoordelijk voor de grote doorbraak van internet. Het idee achter Html was dat de inhoud op een server stond, het web opgestuurd werd, en dat de browser bepaalde hoe deze content gepresenteerd werd. Het oorspronkelijke Html werd later regelmatig uitgebreid met nieuwe tags, bijvoorbeeld de font-tag waarmee web-ontwerpers net als in Word, lettertype en -grootte kunnen bepalen.
Dit is een inherent nadeel van Html: de opmaaktaal kent een beperkt aantal tags. Voor iedere uitbreiding moet de taal zelf aangepast worden: dat betekent lange discussies in standaardiseringsorganisaties als het World Wide Web Consortium (W3C). Verder zijn sommige dingen moeilijk te doen met Html omdat Html zich beperkt tot opmaak, maar geen mogelijkheid kent ‘kennis’ over de inhoud van een document op te slaan. Zo is met Html een factuur prima weer te geven, maar weet de browser niet wat de weergegeven informatie betekent. Wanneer de browser zou ‘weten’ wat een factuurregel, een item, een prijs, enzovoort is, zou hier gebruik van kunnen worden gemaakt – bijvoorbeeld om factuurbedragen bij elkaar op te tellen, of om informatie te exporteren naar een boekhoudpakket.
Hoe werkt XML?
XML lost dit probleem op. Met XML is het mogelijk zelf tags voor documenten te definiëren. XML is dus een taal om opmaaktalen te definiëren. Hiermee worden de problemen met de beperkte verzameling tags van Html definitief opgelost. XML is een ‘gestripte’ versie van Sgml, de meta-opmaaktaal waarvan ook Html afgeleid is. Hoe werkt dit nu?
Met XML wordt eerst een beschrijving gemaakt van alle tags die in een XML-document voor kunnen komen. Dit levert een Document Type Definition op (DTD). (Een XML-document kán ook zonder DTD, maar de interessante mogelijkheden beginnen pas bij gebruik van de DTD.) In deze DTD staat gespecificeerd welke tags voor kunnen komen, en in welke volgorde deze kunnen (of moeten) staan. Vervolgens kunnen een of meer XML-documenten gemaakt worden die voldoen aan deze DTD. Wanneer een van deze XML-documenten ingelezen wordt door een browser die XML kan lezen, kan de browser dus met behulp van de DTD bepalen of er sprake is van een ‘geldig’ XML-document, dat wil zeggen een XML-document dat voldoet aan de specificaties uit de DTD. Uiteraard moet de browser de juiste DTD kunnen vinden. Hier zijn twee mogelijkheden voor: de DTD kan als geheel opgenomen zijn in het XML-document, of – interessanter: in het XML-document kan een verwijzing staan naar een DTD op een locatie op internet. Zo kan een XML-document zelf aangeven aan welke specificatie het document moet voldoen (zie kader: Een voorbeeld van XML).
De browser kan nu bepalen of er sprake is van een geldig XML-document, maar kan verder nog niet veel laten zien, behalve een lijst met alle tags en de inhoud daarvan. Voor de presentatie in een browser kan het XML-document uitgebreid worden met specificaties voor de lay-out. Dit kan gebeuren met Cascading Style Sheets (CSS). Hierin staat voor iedere tag gespecificeerd hoe deze in de browser weergegeven moet worden: fontgrootte en -kleur, spatiëring et cetera. (Zie kader: de interactie van XML, DTD en CSS op het Web.) Met een XML-document en de bijbehorende CSS kan een browser dus een presentatie van het XML-document geven in overeenstemming met wat de schrijver van het XML-document voor ogen stond.
Met deze hulpmiddelen – het XML-document zelf, de DTD en een CSS – kan XML internet radicaal van aanzicht doen veranderen. Niet meer gebonden zijn aan de beperkingen van Html, maar wanneer Html tekort schiet, met XML zelf nieuwe tags maken: dat is de toekomst. Doordat zowel de DTD als de CSS op internet zelf kunnen staan, is het heel goed mogelijk dat allerlei populaire uitbreidingen in XML gebruikt zullen worden door heel veel webpagina-ontwerpers. Zo is het bijvoorbeeld mogelijk dat commerciële aanbieders op het web als Amazon, CDnow en E-Bay gebruik gaan maken van een gestandaardiseerde factuur. XML biedt de mogelijkheid tags te maken die specifiek zijn voor een factuur, zoals tags voor afnemer, leverancier, geleverd item, aantal geleverd, stuksprijs, korting en totaalprijs. Met Html is dit alleen maar als ‘gewone tekst’ op een webpagina te zetten. Met XML is het mogelijk deze factuur van specifieke tags te voorzien, zodat er ‘kennis’ over de inhoud van de webpagina opgenomen wordt. Door deze ‘kennis’ is opeens veel meer mogelijk, daar waar Html alleen maar platte tekst kent. Zo wordt het mogelijk dat het elektronisch-bankierpakket van de websurfer de XML-factuur inleest en de bijbehorende betaling klaarzet, waarna de websurfer alleen nog maar de betaling hoeft te autoriseren en te verzenden. XML maakt op deze wijze elektronische handel veel makkelijker.
XSL
Binnen de XML-stroming werd al snel opgemerkt, dat wanneer XML zo goed is in het beschrijven van documenten, hij te gebruiken is om de structuur van XML te beschrijven. Dat betekent dat er geen DTD meer nodig is (met de eigen syntax), maar dat een XML-specificatie voor het maken van XML volstaat. Er zijn volop initiatieven in die richting gaande. Het W3C werkt nu aan een standaard die XML Schema zal gaan heten. Naar verwachting zal XML Schema de DTD geheel gaan vervangen als standaard voor het beschrijven en valideren van XML-bestanden. XML Schema kent meer mogelijkheden dan een DTD. Zo kan in XML Schema betere validatie en controle plaatsvinden, en is XML Schema voorzien van een overervingsmechanisme.
Het gaat nog verder: de Extensible Stylesheet Language (XSL) wordt al voorgesteld als alternatief voor de CSS. Een XSL-document is een XML-document dat beschrijft hoe een ander XML-document in een browser getoond moet worden. XSL is zelfs nog krachtiger. Het kan uitvoer genereren voor een browser, maar kan ook gebruikt worden voor de transformatie van een XML-document in een ander XML-document, of de transformatie naar Html, een Ascii-bestand of Edifact-bestand. Zo biedt XSL ook de mogelijkheid om aan te sluiten bij reeds bestaande digitale interfaces van applicaties. Met XSL wordt het dan mogelijk XML-berichten te verzenden die door een applicatie gelezen kunnen worden (rechtstreeks of middels XSL-transformatie naar ASCII of Edifact), maar ook door mensen verwerkt kunnen worden (via presentatie in een browser). Wanneer een bedrijf XML-facturen stuurt, hoeft het dus niet meer te weten of de afnemers mensen of applicaties zijn. Een afnemend bedrijf dat honderden facturen per maand ontvangt, zal al snel kiezen voor geautomatiseerd inlezen van de XML-facturen in bijvoorbeeld een boekhoudpakket. Een kleiner bedrijf, dat maar een paar facturen per maand krijgt, kan de facturen met een XSL-transformatie in een browser bekijken, eventueel afdrukken en voldoen.
Naast de visuele toegang via een webbrowser, is er ook nog een geheel andere toegang mogelijk: via het Document Object Model (DOM). Het DOM is een programmatische interface tot een XML-document. Een applicatie die het DOM ondersteunt, bouwt een XML-document op als een boomstructuur. Via DOM-functies kan een programmeur dan via bijvoorbeeld Java, Javascript, Visual Basic of C++ de XML-boom aflopen, individuele ‘nodes’ benaderen en de waarden daarvan bekijken of wijzigen.
Achilleshiel
Met de beschrijvende kracht van XML Schema, de transformatiemogelijkheden van XSL en de programmatische toegang van het DOM is XML geworden tot een zeer krachtige oplossing voor gegevensuitwisseling tussen applicaties. Gebruikmakend van XML Schema is het mogelijk uit te wisselen gegevens te beschrijven en te valideren met een taal die krachtig genoeg is om gegevens uit relationele database te beschrijven met datatypes, validaties en afhankelijkheden. Met XSL wordt het mogelijk aan te sluiten bij allerlei reeds bestaande interfaces die applicaties hebben, met bijvoorbeeld ASCII-bestanden of Edifact. Met het DOM is een maatwerkinterface aan een applicatie te bouwen. Hierbij is XML de natuurlijke interface en bestaan er zeer krachtige mogelijkheden om deze XML-gegevens te benaderen en te bewerken. Op deze wijze is XML geworden tot de meest krachtige voorhanden zijnde oplossing voor gegevensuitwisseling tussen applicaties onderling. De browser en het Web kunnen hier – desgewenst – helemaal verdwijnen. Http is dan slechts een mogelijk transportprotocol voor XML-documenten, die ook verzonden kunnen worden met Smtp (e-mail), een ‘remote procedure call’ of ‘brokers’ als IBM MQSeries of Microsoft Message Queue. XML is dan helemaal los gekomen van internet, en alleen nog een taal om gestructureerde documenten te beschrijven. Daarmee is XML de ideale ’taal’ voor business-to-business e-handel. Met XML als ‘lijm’ en internet als ‘medium’ wordt echte ‘veel-op-veel communicatie’ tussen bedrijven mogelijk (zie kader: Typen van gegevensuitwisseling).
De vele nieuwe ontwikkelingen als XML Schema en XSL leggen meteen de achilleshiel van XML bloot: de XML-wereld is nog veel te veel in beweging om echt vaste grond onder de voeten te bieden. XML zelf, het DOM en een paar gerelateerde zaken zijn al echte standaarden (een ‘Recommendation’ van W3C). Maar andere zaken, als XML Schema en XSL zijn nog in ontwikkeling. Verder bestaan er al wel veel (voorstellen tot) standaarden, maar is er nog niet veel inhoud (DTD’s of XML Schema’s voor concrete XML-berichten). Verschillende bedrijven werken al aan repositories met standaardberichten zoals orderformulieren en facturen. Microsoft heeft de Biztalk-repository opgezet waarin standaardberichten ingebracht worden door derden en Commerce One heeft een library geschreven met een aantal berichten. In tal van gebieden worden ook XML-standaarden voor een bepaald vakgebied ontworpen (zoals wiskunde of chemie).
Hoewel XML dus nog wacht op een paar hoognodige uitbreidingen, is het nu al een krachtige technologie voor ‘b-to-b’ elektronische communicatie. Voor edi is het (heel binnenkort) de beste oplossing die voorhanden is. XML biedt voor edi en e-handel een paar voordelen die ‘klassiek’ edi (X12, Edifact) nooit heeft kunnen bieden. In tegenstelling tot klassiek edi is er een toevloed van goedkope applicaties op gang gekomen die e-handel op basis van XML mogelijk maken zonder een grote buidel geld gereed te hebben. Verder is de XML-standaard op een aantal punten verder ontwikkeld dan klassieke edi-standaarden. XML biedt een standaard Api (het DOM), XML Schema kent objectgeoriënteerde overervingsprincipes waardoor het aanpassen van een bestaand XML-bericht aan de eigen behoeften van een bedrijf eenvoudiger wordt. Met XSL kent XML een transformatie- en presentatietaal waarmee het mogelijk wordt XML-berichten te maken die eenvoudig aansluiten op bestaande applicaties maar ook door mensen gelezen en verwerkt kunnen worden. En tot slot sluit XML direct aan bij internet en is het al voor een groot deel geïmplementeerd in Internet Explorer 5. Ook Netscape zal XML gaan ondersteunen. Zo kan in de nabije toekomst iedereen met een modem en een browser ontvanger van XML-berichten worden. Hierdoor ontstaat voor XML in een klap een gigantisch speelveld wat ‘klassiek’ edi nooit heeft kunnen bieden. Op het gedecentraliseerde Internet gelden andere regels dan in de beschermde klassieke edi-wereld (zie voorbeeld: Typen van gegevensuitwisseling). Door de integratie met Internet is XML dé taal voor deze ‘nieuwe edi-wereld’.
Iedere organisatie die e-handel serieus neemt, en klaar wil zijn voor de toekomst, doet er dus verstandig aan nu al met de oriëntatie op XML te beginnen, en alvast te proeven van wat de volgende gang in internet-diner gaat worden. edi is springlevend, en de toekomst van edi is XML!
Marc de Graauw, zelfstandig IT-consultant
Een voorbeeld van XML
Informatie over XML
http://www.w3.org/
Dé bron voor materiaal over XML is het World Wide Web Consortium. De site van het W3C heeft de Recommendations voor XML 1.0, DOM, Namespaces en Associating Stylesheets, en de Working Drafts voor onder andere XML Schema en XSL. Diepgaand, niet als inleiding bedoeld.
http://www.xml.com/
Een online magazine, met boeiende inleidende artikelen van autoriteiten en veel verwijzingen naar materiaal over XML. De moeite waard als uitgebreide inleiding.
http://www.xmlsoftware.com/
Een overzicht van beschikbare software op het gebied van XML. Vooral de gigantische groei van beschikbare software wordt duidelijk. Veel producten zijn trouwens vrij verkrijgbaar.
http://msdn.microsoft.com/xml/default.asp
Microsoft heeft een aantal goede online cursussen over XML, XSL en XML Schema. Uitstekende inleiding voor wie de basis wil weten over de technieken.
http://biztalk.org/BizTalk/default.asp”>http://biztalk.org/BizTalk/default.asp
Het Biz Talk-initiatief van Microsoft is een poging om een bibliotheek van XML-standaarden op te bouwen. Biz Talk is ook de naam van een set applicaties voor XML en e-handel die Microsoft aangekondigd heeft.
http://www.marketsite.net/
Een van de twee homepages van Commerce One – een van de leidende partijen in de XML-ontwikkelingen, die met CBL 2.0 een vrij beschikbare XML-bibliotheek gepubliceerd heeft.
http://www.sgml-ug.nl/
De homepage van de Nederlandse Sgml-XML User Group, met onder andere een agenda met Nederlandse en internationale activiteiten op het gebied van XML.