Introduzione al software WLXDB (Warlock Light XML Database)


WLXD è un database XML essenziale e leggero. Originariamente pensato come modulo del programma WPkg, si è progressivamente evoluto verso un utilizzo più generico, fino a divenire un software completamente indipendente.

Come ogni database WLXDB permette di realizzare le seguenti classi di funzioni:
  1. Creare e distruggere un database.
  2. Selezionare uno fra diversi database creati
  3. Creare e rimuovere strutture
  4. Scrivere e leggere dati



Strutture fondamentali
Per memorizzare e indicizzare i dati WLXDB usa una struttura a rete di nodi, organizzata ad albero, ovvero ogni nodo può avere piu' "nodi figli" ma ha un unico "nodo padre". Ogni nodo possiede un identificativo composto da due stringhe di caratteri:
  1. "La chiave"
  2. "Il valore della chiave"
[!] Il "valore della chiave" può essere anche nullo e contenere spazzi, al contrario della chiave, che, deve sempre essere definita e non può contenere ne spazi, ne tab (\t), ne caratteri di fine riga (\n)...
Questa coppia di stringhe e il relativo percorso XML individuano univocamente il dato. Consideriamo il seguente esempio di sintassi XML:

<Agenda>
<LAVORO Silvio> 0212034056 </LAVORO>
<AMICIZIA Luca Bianchi> 0234506078 </AMICIZIA>
<AMICIZIA Sara Connor> 0600330333 </AMICIZIA>
<LAVORO Gino> 0223400955 </LAVORO>
</Agenda>

Nel banale esempio proposto, la chiave XML, comprensiva di percorso assoluto, che identifica il numero telefonico di Sara Connor è .Agenda.AMICIZIA Sara Connor, e relativamente a questo nodo la chiave è "AMICIZIA" e il valore della chiave è "Sara Connor"

Questa soluzione, in cui una coppia di valori è usata come identificativo di un singolo elemento, conferisce maggiore flessibilità. Ad esempio assegnando alla chiave il numero direlease del dato, e utilizzando come identificativo il solo valore della chiave si puo' ottenere facilmente un sistema in grado di garantire la consistenza dei dati.

Comunque, nel caso non fosse necessaria tale flessibilità, è sempre possibile utilizzare solo la chiave come identificativo e dimenticarsi dell'altra stringa.