Development / Achtergrond
XML alom aanwezig
Ontwikkelaars kunnen niet meer zonder
Het gebruik van XML is net als het gebruik van objecten niet meer weg te denken in moderne softwareontwikkelplatformen. Ontwikkelaars komen XML tegenwoordig in vele verschijningsvormen tegen.
XML is een de facto standaard voor allerlei soorten configuratiebestanden en veel data wordt in de vorm van XML aangeboden. Ook webservices gebruiken het XML-formaat in de vorm van SOAP voor de berichtuitwisseling. Deze toepassingen zijn echter nog maar het topje van de ijsberg. In dit artikel staan we stil bij de verschillende gereedschappen die softwareontwikkelaars ter beschikking hebben voor het gebruik van XML-data bij het programmeren. In het kader ‘Meta-opmaaktaal’ wordt ingegaan op de basissyntax van XML-documenten voor de belangrijkste XML-standaarden van het W3C (World Wide Web Consortium).Koppelformaat
Een van de redenen voor de groei van het aantal XML-toepassingen de afgelopen jaren is dat het formaat bij uitstek geschikt is om gestructureerde data te beschrijven. XML-data is zelfbeschrijvend. Aan de naamgeving van de elementen kun je aflezen wat de betekenis is van hun inhoud. Dat betekent wel dat de programmeur moet zorgen voor logische naamgeving. Verder heeft de data een logische en hierarchische structuur die zowel voor mensen als software leesbaar is. Aan zo’n formaat bestaat veel behoefte. XML-data bestaat uit tekst en alle computersystemen en programmeertalen zijn in staat dat soort data in te lezen en weg te schrijven. Daardoor is het een uitstekend formaat om heterogene systemen te koppelen en informatie te laten uitwisselen. Een nadeel van XML is dat het vrij breedsprakig is. Er zijn veel karakters nodig voor het beschrijven van de data. Dit nadeel weegt echter over het algemeen echter niet op tegen de voordelen van het gebruik.Parsers
XML-data moet eerst worden ingelezen, voordat een applicatie ermee aan de gang kan gaan. Dit gebeurt door een softwarecomponent die de ‘XML parser’ wordt genoemd. Bij het inlezen kan de parser controleren of de data wel het juiste formaat heeft. Het benaderen van XML-data voor het programmeren kan op drie manieren. Oorspronkelijk werd de data door de parser ingelezen en omgezet in een hierarchische boomstructuur in het geheugen. Uit onvrede met dit model kwamen ontwikkelaars met een alternatief: het ‘push parser model’. Onlangs deed ook de ‘pull parser’ zijn intrede (hier wordt later op ingegaan).Sinds de publicatie van de XML-standaard wordt er gebruik gemaakt van de DOM API (Document Object Model Application Programming Interface). Bij het DOM wordt een XML-document eerst in zijn geheel in het geheugen geladen en kan het daarna met behulp van de functies van de DOM API gelezen en bewerkt worden. Dit is een uitermate flexibele manier en is in veel programmeeromgevingen geïmplementeerd. Het is echter tijdrovend en vereist veel code. Ook is het laden van een document voor sommige toepassingen een vrij zinloze actie. Als je alleen maar wilt weten welke waarde het eerste element in het XML-document heeft is het jammer dat je daarvoor het hele document moet laden.
Push en pull parsers
Een oplossing hiervoor kwam tot stand via een nieuwsgroep waar softwareontwikkelaars die met XML werkten elkaar ontmoetten. Zij waren ontevreden met het DOM en zochten een oplossing. De Simple API for XML (SAX) was geboren. In SAX genereert de XML-parser events richting de applicatie bij het lezen van de verschillende onderdelen van een XML-document. De applicatie moet er dan voor zorgen dat zij functies klaar heeft staan om deze gebeurtenissen van de parser op te vangen. SAX is voor bepaalde toepassingen veel beter geschikt en sneller dan DOM. Een nadeel is echter dat de controle niet bij de applicatie, maar bij de parser ligt. Applicaties moeten bij SAX klaarstaan om te reageren, maar ze kunnen niet initiëren. Het SAX-model werd al spoedig aanvaard door alle belangrijke spelers in de markt en is inmiddels wijdverspreid. De meeste parsers hebben zowel DOM- als SAX-ondersteuning.
Microsoft introduceerde met .NET een nieuw model voor het benaderen van XML-data. Met de ‘XmlReader class’ kunnen applicaties gericht vragen om bepaalde data uit XML-documenten zonder deze eerst in het geheugen te laden (zoals bij DOM) of klaar te staan om events van de parser op te vangen (zoals bij SAX). Met XMLReader hebben de applicaties de controle. Het duurde niet lang of Sun Microsystems kwam met de StAX-specificatie (Streaming API for XML), ook een pull parser. Ook in StAX krijgt de applicatie de controle over de gang van zaken. Welke API in een bepaalde applicatie het meest geschikt is, hangt sterk af van de gewenste functionaliteit. Bij alleen ‘lees’-acties liggen de push- en pull-modellen het meest voor de hand, waarbij het pull-model leidt tot eenvoudiger applicaties. In deze varianten is het echter niet mogelijk XML-documenten of delen daarvan aan te maken. Als dat gewenst is ben je aangewezen op de DOM,
Willem Koppenol
SOAP = Simple Object Access Protocol is een computerprotocol dat wordt gebruikt voor communicatie tussen verschillende componenten.
Syntax = grammatica van een programmeertaal.
Parser = een parser is een computerprogramma of een component van een programma dat de grammaticale structuur van een invoer volgens een vastgelegde grammatica analyseert (parseert). Een parser zet ingevoerde tekst om in een datastructuur.
DOM = het Document Object Model is een objectgeoriënteerde benadering van html- en xhtml-bestanden.
API = een Application Programming Interface biedt een programmeur een verzameling definities op basis waarvan een computerprogramma kan communiceren met een ander programma of onderdeel.
Event = situatie of conditie waarvan het optreden wordt gebruikt als aanzet (trigger) of initiator (event-driven) van bijvoorbeeld een proces of onderdeel van een werkstroom.
Class = een class is in objectgeoriënteerde terminologie de logische definitie van een object en een verzameling objecten met veel gelijke kenmerken.
Tag = een commando in een document dat duidelijk maakt hoe het document of dat deel van het document moet worden gezien.
In XML Schema leg je de structuur en naamgeving van andere XML-documenten vast: zogenoemde vocabulaires. Door XML-documenten te baseren op een schema kunnen ze gevalideerd worden. De naamgeving en plaats van de tags is in dergelijke documenten strikt omschreven. Een document dat voldoet aan een XML Schema wordt een ‘valid’ XML-document genoemd.
XSLT (XML Stylesheet and Transformation Language) is een vocabulaire die vooral gebruikt wordt om documenten op te maken voor een bepaald outputmedium, zoals een browser, printer of een mobiele telefoon. Deze documenten bevatten regels die aangeven hoe elementen uit het brondocument moeten worden getransformeerd. Veel softwareontwikkelaars ervaren XSLT in het begin als lastig, omdat het op regels gebaseerde programmeermodel nogal afwijkt van wat gebruikelijk is.
XPath is een specificatie die erop is gericht door XML-documenten te navigeren en er waarden uit op te vragen. Het navigeren met XPath kun je tot op zekere hoogte vergelijken met de manier waarop je door een mappenstructuur navigeert. XPath wordt gebruikt in XSLT, DOM en XQuery.
XQuery is de nieuwste loot aan de XML-standaardenboom. Zoals de naam al suggereert is XQuery een vraagtaal voor XML-data. Nu steeds meer data in de vorm van XML beschikbaar komt wordt het belang van een krachtige vraagtaal steeds groter. XPath laat het bij ingewikkelder queries afweten. Qua syntax lijkt XQuery op de welbekende SQL-vraagtaal voor relationele data, maar dan met een XML-sausje. De verwachting is dat XQuery de komende jaren een steeds belangrijker rol zal spelen.
- 16:53 ATG introduceert ATG Commerce Suite 9
- 16:51 SAP en BO komen met SAP Data Migration
- 16:48 uniPaaS versie 1.5 met .NET Rich Internet Client
- 14:47 Omzetcontrole bij e-commerce
- 08:09 De kijk van Van Eijk: Technisch leiderschap
- 12:27 Alcatel-Lucent Corporate Communications
- 12:07 SonicWALL beveiliging voor EBS en SBS
- 14:34 Nieuwe release van Diskeeper 2009
- 14:32 SPSS mrDialer met VoIP
- 14:23 QuestControl Nova Slider X 600 muis
Vendor lock-in behoort tot het verleden met open standaarden
Open standaarden en open software maken het mogelijk om IT weer te zien als opportunity en niet als een beperkende factor. Inhaken op trends en ontwikkelingen gaat sneller met open standaarden en open source software, zo wordt betoogd in deze whitepaper.... Download nu
Meerwaarde Agile in kaart gebracht
Wat is Agile Development. Hoe werkt het? Wat is de meerwaarde ten opzichte traditionele ontwikkelmethoden en welke veranderingen zijn noodzakelijk om goed gebruik te maken van Agile. Deze en meer antwoorden leest u in deze whitepaper.... Download nu
Meer Development whitepapersSAP-maatwerk, duur beheer
Als er veel wordt gesleuteld aan een SAP-applicatie, zorgt dat voor hogere beheerkosten na het project. Maar het is lastig aan de organisatie duidelijk te maken dat maatwerk niet altijd de beste oplossing is.
Meer maatwerk bij SAP maakt beheer duurderATG introduceert ATG Commerce Suite 9
01-12 16:53 Art Technology Group (ATG), aanbieder van software voor e-handel die beschikbaar is als platform van optimaliseringdiensten voor uitbreiding, presenteert ATG Commerce Suite 9. Met...
Meer development productenBooking.com zweert bij open source
10-03 14:24 De capaciteit van de infrastructuur van reserveringswebsite Booking.com is de afgelopen jaren vertienvoudigd. Dat levert niet alleen hoofdbrekens op over onder andere...
Meer development praktijkOude bugs blijven bijten
12-11 10:19 Oude bugs in software hebben nog een flinke nasleep. Soms worden oude fouten simpelweg niet hersteld, soms gebeurt het afdekken van gaten niet goed, en ook blijken ze in meer...
Meer development achtergrondOmzetcontrole bij e-commerce
01-12 14:47 Laatst sloot mijn buurman, een niet-ict’er, een doorlopende reisverzekering af via internet. De website van de verzekeringsmaatschappij waar hij de verzekering in eerste instantie...
Meer development opinieBekijk de leveranciers op het gebied van Development.

