XML hoe gebruiken?

Moeilijkheden onderweg

Door de vele positieve geluiden die je hoort over XML kun je gaan denken dat het gebruik XML makkelijk is. En dat als je er moeite mee hebt, dat je wat fout doet. Wees gerust, het ligt meestal aan XML zelf, niet aan je vaardigheden, intelligentie of kennis.

XML is niet makkelijk leesbaar
Als je XML eigenlijk onleesbaar vindt, wees dan gerust. Zelfs de meest doorgewinterde XML experts vinden het geen pretje om eens lekker een paar pagina's XML te gaan lezen. Een C++ programma leest echt veel makkelijker weg dan een XML schema. Niet voor niets zijn er  honderden tools op de markt om XML files te kunnen lezen.

Entiteiten en attributen
Een vraag waar we lang mee geworsteld hebben is, wanneer moet je nu iets als entiteit of attribuut opnemen?  
Wij waren geneigd attributen te reserveren voor metadata, en de content voor de data. Maar daarna lukte het niet om de metadata te structuren. Het alternatief is de attributen maar te vergeten, en alles als content op te nemen.  Maar wij vonden het dan wel gek, dat we nergens die attributen voor gebruikten. Waar zijn dan die attributen dan voor?
Wij zijn na veel interne verhitte discussies en wat literatuur onderzoek achter de simpele waarheid gekomen. Het is gewoon een structuurfout in XML. Er is gewoon niet goed over nagedacht. Er is dus ook geen oplossing voor dit probleemm denk er dus niet lang over na: kies maar wat.

DOM is niet altijd slim
Het gebruik van DOM heeft ook zo zijn nadelen. Het belangrijkste probleem is dat de combinatie van DOM en XPath of XQuery niet erg snel is. Het achterliggende datamodel is namelijk niet consistent. Om Microsoft te citeren "The DOM API is now no longer suitable, certainly for high-performance enterprise sacle applications. The W3C DOM specification continues to be patched up and to play catch-up in the world of XML processing". Microsoft stelt het XPathDocument voor als een betere DOM. Het is echter ook niet slim nu voor deze technologie te kiezen, je kan beter de kat uit de boom te kijken, tot Microsoft over een paar jaar met versie 2 of 3 uit komt; hopelijk met (zoals Microsoft gelukkig zo vaak doet) met nog iets veel beters.

Document Type Definition  en XLST
En wat is DTD (Document Type Definition), nu precies? Promotors van XML houden soms lyrische verhalen over DTD, een methode om XML documenten via een soort meta definitie te standaardiseren. Vermijdt DTDGek genoeg is een DTD document geen XML document, ook bevat DTD onbegrijpelijke methoden voor validatie, en tot overmaat van ramp kan je er eigenlijk weinig mee. De mogelijke constraints zijn veel te beperkt. Ons advies is dan ook het gewoon te negeren. En als je geforceerd wordt het te gebruiken beperk je dan tot W3C validatie.

XSLT alleen voor klusjesJe hebt natuurlijk gehoord dat je externe XML bestanden het beste met XSLT kan maken. Maar in de praktijk valt dat best tegen. Waarom is dit zoveel werk, waarom is dit zo moeilijk?
Heel simpel, XSLT is prima voor eenvoudige klusjes, en gebruik het daar ook voor. Wordt het wat ingewikkelder gebruik dan je eigen programmeertaal, in combinatie met DOM. Dat is een stuk eenvoudiger, beter leesbaar, betrouwbaarder en kost minder onderhoud. Je eigen programmeertaal leest een stuk makkelijker dan een XSLT definitie. 

Als je alleen leest, en gebruik maakt van .Net, overweeg dan XMLReader.

Wat te doen als XML te langzaam is?
En tot slot: onderzoek goed welke parser je gebruikt, test op mogelijke afwijkingen van de standaard, en test vooral ook de performance bij grote XML bestanden. XML is nu eenmaal niet zo snelEn als je tot de conclusie komt dat XML te langzaam is voor je toepassing, dan moet je niet verbaasd zijn. Vele anderen hebben dit ook geconstateerd.

In de XML standaardisatie organen wordt dan ook hard gewerkt aan niet XML toevoegingen als DIME of SOAP with attachments.

Als het mogelijk is, vergeet dan XML, ga gewoon over op een binaire opslag methode.

En als je het gevoel hebt dat er een leegte is in je wereld, dat er iets in je leven mist, treedt dan toe tot de Church of XML, die als geloofsartikelen onder andere heeft: "XML is Female", en "The true power of XML centers around the opening left bracket"

XML wordt ook nog gebruikt als de basis voor Web Services. Na het voorgaande ben je mischien bang dat we daar ook bezwaren tegen hebben. Het antwoord hierop is: lees meer..

©1996-2008 Lizatec
<  XML als database Web Services   >