MystiqueXML Manuale di realizzazione dei modelli di documento
Indice 1 Le tabelle...5 1.1 Tabelle condizionali...5 1.2 Tabelle Multiple - un solo livello...5 1.3 Tabelle Multiple - a più livelli...5 2 I segnalibri...6 2.1 Segnalibri avanzati: tag...6 2.2 Segnalibri avanzati: i comandi di campo...7
Il documento descrive lo stato dei lavori di MystiqueXML e di X-Select e fornisce una descrizione delle tecniche da utilizzare per la creazione dei modelli di documento che il motore è in grado di riconoscere. 1 Le tabelle L'inserimento di una tabella in un template avviene tramite il menù di Writer Inserisci->Tabella. Il nome della tabella deve essere formato da due parti: la prima identifica il tipo di tabella che si vuole inserire: è un "codice" che verrà interpretato da MystiqueXML in fase di generazione del documento; la seconda deve corrispondere all'xpath di un nodo padre all'interno del documento XML. 1.1 Tabelle condizionali Sono tabelle la cui presenza dipende dal verificarsi di una condizione specificata attraverso il nome della tabella stessa. La prima parte del nome in questo caso può essere di due tipi: #c-! #c-= MystiqueXML interpreta il nome della tabella e verifica la condizione rappresentata dalla seconda parte del nome stesso: se il nome inizia con #c-! e la condizione è vera, allora la tabella viene cancellata altrimenti viene inserita; al contrario, se il nome inizia con #c-=, la tabella viene inserita se la condizione è vera, cancellata altrimenti. 1.2 Tabelle Multiple - un solo livello Sono tabelle che vengono replicate in base al numero di occorrenze di un nodo padre all'interno dell'albero XML. Anche in questo caso il nodo è identificato dalla seconda parte del nome della tabella. Affinché MystiqueXML identifichi questo tipo di tabella la prima parte del nome dovrà essere #n-. 1.3 Tabelle Multiple - a più livelli Con questa tecnica è possibile creare una struttura a più livelli (header, body, footer). Ogni livello è rappresentato da una tabella che viene raggruppata, ordinata e replicata in base al numero di occorrenze di un nodo padre all'interno dell'albero XML. L'XPath relativo al nodo è ricavato dalla seconda parte del nome della tabella. La prima parte, invece, dovrà valere: #noh-, se si vuole inserire una tabella header; #nob-, se si vuole inserire una tabella body;
#nof-, se si vuole inserire una tabella footer. Nel caso di header o footer, la seconda parte del nome, ovvero quella relativa al nodo del sotto albero XML, indicherà la condizione che MystiqueXML controllerà per sapere quante volte quella particolare tabella dovrà essere replicata. Nel caso di tabelle body, invece, il nome dovrà contenere un'ulteriore condizione che il software controllerà per raggruppare e ordinare tutta la struttura. Da notare inoltre che la struttura "multi livello" non necessita di tutte e tre le parti: ad esempio è possibile creare un blocco formato solo da header e body o solo da body e footer. 2 I segnalibri Il segnalibro o bookmark E' il componente di OpenOffice.org che consente di inserire nel template un dato contenuto in un documento XML. Affinché MystiqueXML inserisca correttamente il dato occorre seguire alcune semplici regole: inserire un'etichetta terminata dal carattere > nel punto in cui si vuole che il dato venga immesso; inserire, attraverso il menù Inserisci -> Segnalibro..., il segnalibro (o bookmark) fra il primo e il secondo carattere dell'etichetta; il nome del bookmark deve essere l'xpath di un nodo foglia all'interno del documento XML con le seguenti sostituzioni: il carattere al posto di ' / '; il carattere + al posto di ' @ ' per gli eventuali attributi del tag XML; il carattere al posto di '. '; il carattere ^ al posto di ' '; il carattere $ al posto di ', '. MystiqueXML supporta a pieno tutte le funzionalità degli XPath come, ad esempio, l'individuazione degli attributi, la specifica di condizioni o l'utilizzo delle funzioni. 2.1 Segnalibri avanzati: tag MystiqueXML supporta la possibilità di specificare dei tag alla fine del nome del segnalibro racchiusi fra parentesi quadre [...]. Qui di seguito verrà spiegato il significato di ogni tag. f: il dato contenuto nel documento XML verrà formattato; una data nel formato 2004-05-25 diventerà 25/05/2004, una valuta nel formato 1010.1 diventerà 1.010,1. z: forza la concatenazione delle stringhe mediante uno spazio e concatena le parole divise dal segno di a capo -. d: con questo tag MystiqueXML scarterà eventuali valori uguali presenti nei nodi individuati dall'xpath, analogamente al DISTINCT dell'sql.
h: MystiqueXML interpreterà questo bookmark come se fosse contenuto in una tabella header o footer; cancellerà la riga della tabella che lo contiene se l'xpath corrispondente non esiste nel documento XML. c se l'xpath non esiste MystiqueXML non cancellerà la riga della tabella che contiene il bookmark; naturalmente dovrà essere preceduto dal flag h o dovrà essere contenuto in una tabella header o footer. r: rappresenta una condizione per l'eventuale cancellazione di una riga. Se l'xpath individua un valore nell'xml viene soltanto cancellata l'etichetta, altrimenti la riga che contiene questo bookmark viene cancellata. imllxhh (immagine): consente l'inserimento di un'immagine nel documento, purché sia stato specificato a linea di comando il PATH appropriato tramite l'opzione "-i". Sostituendo i valori in millimetri della larghezza e altezza dell'immagine ad LL ed HH rispettivamente, è possibile scalare a piacimento l'immagine. I tag qui sopra possono essere combinati opportunamente in modo che MystiqueXML esegua più azioni sullo stesso XPath. indice: consente a MystiqueXML di selezionare, fra i nodi trovati mediante l'xpath, quello identificato dal numero specificato fra le parentesi quadre. 2.2 Segnalibri avanzati: i comandi di campo MystiqueXML supporta i Comandi di Campo, ossia delle variabili che vengono usate a run-time come un dizionario: ad ogni codice è assegnato un valore. L'inserimento di un Comando di Campo avviene attraverso i seguenti passi: seguire il menù Inserisci -> Comando di Campo -> Altro...; selezionare la scheda Variabili; selezionare come Tipo di campo Campo utente; inserire nella casella Nome il nome del Text Field; inserire nella casella Valore il valore del Text Field secondo la regola codice::valore[;;codice::valore...] A questo punto è possibile specificare un comando di campo insieme ad un bookmark semplicemente postponendo al nome del bookmark il nome del Textfield racchiuso da parentesi tonde. In tal caso, l'etichetta del documento verrà sostituita con il valore del Textfield e non con il dato contenuto nell'xml. MystiqueXML supporta due codici fissi DEFAULT e NULL: se non sono stati specificati valori per un determinato codice l'etichetta nel documento verrà sostituita con la stringa vuota usando il codice NULL; il codice DEFAULT viene utilizzato quando si vuole ottenere un certo valore per dei codici non specificati. I campi utente vengono altresì utilizzati per la generazione dei barcode: il dato necessario per le immagini del codice a barre può essere infatti composto da più valori presenti nel flusso XML. Il bookmark del barcode avrà quindi questa forma
costante(campo UTENTE)[ costante(campo UTENTE)...][bcWWXHH] dove costante è un codice fisso che rispetta gli standard e CAMPO UTENTE è il nome del campo che conterrà l'xpath (inserito secondo le regole già dette) vero e proprio per ricercare il dato all'interno del flusso XML.