Questa lezione esamina ulteriormente il modello di input JET, descrive come utilizzare le espressioni XPath
per spostarsi nel modello di input e in che modo le azioni JET sono correlate al
modello di input.
Modello di input JET I modelli di input prodotti creando le trasformazioni
JET hanno le seguenti caratteristiche:
- Il modello è gerarchico e ha un singolo elemento root
- Ogni tipo di elemento del modello può contenere attributi che hanno valori di stringa
- Il contenimento degli elementi specifica sempre una cardinalità uguale a zero o maggiore di zero
Le funzionalità del
modello sono deliberatamente limitate in modo da semplificare la creazione rapida delle trasformazioni
modello a testo senza la necessità di dover conoscere in modo approfondito la progettazione dei metamodelli.
Elaborazione del modello mediante trasformazioni JET e il richiamo di azioni
L'editor di creazione JET
genera il codice per elaborare il modello di input. Tale codice si trova nel template
main.jet ed ha le seguenti caratteristiche:
- Il codice generato esegue un primo attraversamento in profondità del modello.
- Il codice elabora il modello due volte: la prima iterazione valuta le espressioni
di attributi derivati. La seconda iterazione richiama le azioni JET che creano i progetti, le cartelle
ed i file. Le azioni JET che creano i file sono chiamate Azioni file JET e richiamano template JET.
- Durante l'elaborazione, ogni elemento di modello viene assegnato a una variabile XPath.
Il nome di questa variabile è definito nella vista Proprietà del tipo di elemento visibile nell'area dell'editor. Per impostazione predefinita, il nome della variabile è lo stesso nome dell'elemento di modello. È possibile distinguere la variabile dal nome elemento in quanto le variabili XPath hanno sempre il segno del dollaro ($) come prefisso in un'espressione XPath.
- Durante l'elaborazione di un elemento, la prima iterazione calcola gli attributi derivati;
la seconda iterazione esegue le azioni JET ed elabora gli elementi figlio del modello.
- Le variabili XPath associate all'elemento correte e a tutti i relativi elementi padre
sono disponibili durante il calcolo degli attributi derivati e durante il richiamo dell'azione JET. Di conseguenza, qualsiasi calcolo di attributo derivato, azione JET o
template JET richiamato da un'azione file JET può far riferimento all'elemento attualmente
elaborato o a uno dei relativi elementi padre utilizzando una variabile XPath.
Come esempio, considerare il modello incluso in questo modulo. La seguente immagine mostra
il contenuto del pannello "Schema di input e azioni di output".
L'azione denominata
Crea file: letter.html e il template JET associato (templates/letter.html.jet)
vengono richiamati ogni volta che viene rilevato un elemento mailing nell'elemento root.
Sia l'azione che il template hanno accesso a due variabili XPath: $mailing
e $root. I parametri dell'azione e le sostituzioni del testo possono utilizzare qualsiasi attributo
appartenga ai tipi di elemento denominati mailing e root.
Espressioni XPath
e ridenominazione degli elementi di modello
Le espressioni XPath create dalla funzione di creazione
JET hanno sempre il formato $variable/@attribute. La funzione di creazione JET
organizza di nuovo in fattori tali espressioni, se il nome della variabile o il tipo di elemento
vengono ridenominati. Tuttavia, questa riorganizzazione in fattori
non si estende ai template JET.
Ovvero, ridenominando una variabile o un tipo di elemento nell'editor di creazione
JET, verranno interrotte tutte le espressioni XPath nei template JET
che utilizzano il vecchio nome di variabile.