XML

Maandag, 27 september 1999
XML (www.gca.org/whats_xml/...) is een nieuw formaat waarmee computers gestructureerde informatie uitwisselen. De structuur van die informatie kan behoorlijk complex zijn.

Many to many relatie tussen uitgever en lezer via abonnement XML werkt top down, prima zolang het onderwerp een simpele hiërarchische structuur heeft. Helaas zit de werkelijkheid ingewikkelder in elkaar, vol met many-to-many structuren zoals een tussen uitgevers en lezers.

Elke hiërarchie is een versimpeling die leidt tot problemen, zo las u in de Noot van vorige week. Die stelling blijkt opnieuw toepasbaar. In welke hiërarchie hoort een abonnement? Bij de uitgever of bij de lezer?

<XML>
. <Uitgever>
. . <Naam>ten Hagen en Stam</Naam>
. . <Abonnement>
. . . <Blad>de Automatisering Gids</Blad>
. . </Abonnement>
. </Uitgever>
<XML>

Probleem: abonnement heeft geen lezer

<XML>
. <Lezer>
. . <Naam>Henk Jan Nootenboom</Naam>
. . <Abonnement>
. . . <Blad>de Automatisering Gids</Blad>
. . </Abonnement>
. </Lezer>
<XML>

Probleem: abonnement heeft geen uitgever

Een abonnement hoort zowel bij de uitgever als bij de lezer. Precies in dat schizofrene karakter loopt de hiërarchische XML structuur vast.

Er is een beproefd alternatief voor een top down benadering: de bottom up aanpak. Een relationele database-ontwerper zou elk abonnement naar zowel de uitgever als de lezer laten verwijzen met foreign keys. In XML is de zelfde aanpak mogelijk (w3.org/XML/Datamodel...).

<XML>
. <Uitgever>
. . <id>hagenStam</id>
. . <Naam>ten Hagen en Stam</Naam>
. </Uitgever>
. <Lezer>
. . <id>HenkJan</id>
. . <Naam>Henk Jan Nootenboom</Naam>
. </Lezer>
. <Abonnement>
. . <Blad>de Automatisering Gids</Blad>
. . <Uitgever> <href>hagstam</href> </Uitgever>
. . <Lezer> <href>HenkJan</href> </Lezer>
. </Abonnement>
<XML>
Complexe structuren laten zich opeens verbazend makkelijk in XML formaat gieten.

Krijgt u een Déjà vu gevoel? Tja, het is ook oude wijn in nieuwe zakken. De meeste goede ideeën zijn niet nieuw en de meeste nieuwe ook niet.

Tot de volgende week!
Henk Jan Nootenboom

PS: U lezer hoeft zich trouwens niet te abonneren op de Wekelijkse Noot. Deze uitgever brengt u elke maandag een verse aflevering, zonder abonnement. De werkelijkheid is tenslotte al complex genoeg.