Uche Ogbuji, gastspreker op XML Europe 2004, geeft
enkele basisprincipes om XML documenten op te bouwen. Het belangrijkste principe dat in zijn artikel naar voren komt is dat je attributen in XML documenten enkel gebruikt om machine-gegevens op te slaan, en elementen om leesbare gegevens weer te geven.
Atributen zoals een ID, zijn referentiepunten voor programma’s. Ze worden gebruikt bij het transformeren van documenten d.m.v. XSLT en komen zelden voor in de output van een transformatie. De inhoud van een element daarentegen bevat leesbare gegevens zoals een naam, de titel van een boek
enz., die getoond worden aan de gebruiker.
Een ID kan soms rare vormen aannemen, bvb. “sessionid{az12sqdb54qdg54qfb}”, waardoor de leesbaarheid van het document vermindert. Zet je de ID in een attribuut, dan wordt het duidelijk dat dit gegeven niet relevant is voor de lezer.
Machine-gegevens in een attribuut plaatsen heeft nog meer voordelen. XSLT heeft bvb. meer mogelijkheden om attributen te bewerken. Een element uit de tree halen is veel eenvoudiger als je een attribuut-waarde hebt omdat je een ID rechtstreeks in een XPath expression kan plaatsen.
Onderstaande XSL voorbeeld heeft de variabele “username” ingesteld en gaat op zoek naar de auteur met de username waarde “jpeters”.
<xsl :variable name="username">jpeters</xsl>
<xsl :value-of select="//name[@username = $username]">
</xsl>
Het XML document gaat als volgt:
< ?xml version="1.0"?>
<authors>
<author>
<name username="jpeters" pw="myPWencrypted">
JanPeters
</name>
</author>
</authors>
Het resultaat is de inhoud van het element “name” waarmee de usernaam “jpeters” overeenkomt. Nu nog het wachtwoord opnemen als attribuut en je hebt zo een authenticatie systeem.