Espressioni XPath di base

Le espressioni XPath sono utilizzate in orchestrazioni e definizioni di schema di file flat, quando diventa necessario identificare uno o più nodi in un messaggio o in una variabile al fine di accedere ai dati o stabilire se una condizione è stata soddisfatta.

XPath è uno standard XML che definisce una grammatica per l'identificazione di nodi o insiemi di nodi nei documenti XML.

È possibile modificare le espressioni XPath base, generate nei seguenti pannelli:

XPath 2.0 è supportato.

Selezione dei nodi in base al percorso

XPath descrive l'ubicazione degli attributi e degli elementi XML come un percorso simile agli URL o alle directory nel file system locale. Ogni elemento o attributo rappresenta un nodo in una struttura ad albero che inizia con il nodo root. Il nodo root contiene l'intera struttura ad albero, quindi ogni nodo nella struttura ad albero può essere raggiunto seguendo un percorso lungo i rami.

La sintassi di base è:

/root-node/child-node/.../final-element-node

/root-node/child-node/.../final-element-node/@attribute-node

Questo percorso viene determinato in base allo schema XML che descrive i messaggi.

XPath utilizza il simbolo @ come sintassi abbreviata per l'identificazione degli attributi. I percorsi senza @ o senza il prefisso attribute::, identificano, per impostazione predefinita, gli elementi. Ad esempio:

 /PackingSlip/PONumber/Item

identifica l'elemento Item contenuto in PONumber nel nodo root PackingSlip.

Nomi dei nodi e spazi dei nomi XML

I nomi dei nodi possono essere visualizzati anche con gli spazi dei nomi, ad esempio, tns:OrderNumber o *:Item. La parte di nome fino ai due punti è un prefisso che identifica uno spazio dei nomi, mentre i due punti sono il delimitatore tra lo spazio dei nomi ed il nome locale del nodo.

Gli spazi dei nomi sono uno standard XML utilizzato per identificare in modo univoco elementi o attributi, quando i documenti condividono contenuto proveniente da vari schemi. WebSphere Cast Iron Studio assegna e gestisce automaticamente gli spazi dei nomi per gli schemi XML utilizzati nei documenti della configurazione.  

Nota: ogni schema in una definizione WSDL può essere definito mediante uno spazio dei nomi.

Selezione condizionata dei nodi con i predicati

Talvolta, potrebbe essere utile selezionare un nodo solo se vengono soddisfatte alcune condizioni. Queste condizioni di selezione sono note come predicati.

I predicati si definiscono tra parentesi quadre, ad esempio:

/PV1/PatientDepartment[text()='Nursery']

Questa espressione seleziona il nodo PatientDepartment solo se i dati nel nodo sono Nursery.

/Order/OrderDetail/Item[5]

Questa espressione seleziona il quinto nodo Item in OrderDetail.

Operatori validi per le condizioni

Le espressioni XPath possono anche essere condizioni booleane con valore true o false. Queste espressioni si possono utilizzare per selezionare nodi specifici o semplicemente identificare una condizione che va soddisfatta. È possibile utilizzare il builder espressione per facilitare la definizione di condizioni. Gli operatori XPath che possono comparire nelle espressioni includono:

Funzioni nelle espressioni XPath

XPath contiene anche funzioni che consentono di intervenire sui dati dai nodi. Questo può rivelarsi utile nella creazione di righe di oggetto che contengono del testo costante più dati dinamici provenienti da messaggi. Le funzioni XPath possono essere utilizzate anche per gestire requisiti quali la rimozione dello spazio o la verifica che una chiave del lavoro sia un tipo di dati stringa. Alcune delle funzioni XPath comuni includono:
concat()
è possibile combinare un numero qualsiasi di stringhe e i dati dai nodi nell'ordine in cui vengono specificati i parametri. È possibile specificare percorsi XPath come parametri. Specificare le stringhe di testo costanti tra apici. Ad esempio:

concat('New Order # ',/Orders/Order/OrdNumber)

count()
è possibile contare il numero di nodi nel parametro specificato dall'utente. In genere, il parametro è un'espressione di percorso XPath che identifica vari nodi, ad esempio tutti i nodi Item che sono elementi child di PODetail. Ad esempio:

count(/Orders/Order)

normalize-space()
rimuove tutti i caratteri spazio iniziali e finali dal parametro di input e adegua tutto lo spazio nell'input a singoli caratteri spazio e singoli avanzamenti riga. Ad esempio:

normalize-space(/Job/Address/Line1)

string()
converte il parametro in un tipo di dati stringa. È possibile utilizzare questa funzione per garantire che nodi numerici o di data vengano considerati come stringhe. Ad esempio:

string(/PurchaseOrder/VendorID)

translate()
sostituisce singoli caratteri con altri caratteri nel primo parametro specificato dall'utente. Il secondo parametro rappresenta il carattere o i caratteri da sostituire ed il terzo parametro quelli di sostituzione. Questa funzione può rivelarsi utile per garantire che le chiavi lavoro siano tutte in lettere maiuscole, ad esempio.

translate(/Issue/ShortDescr,

'abcdefghijklmnopqrstuvwxyz',

'ABCDEFGHIJKLMNOPQRSTUVWXYZ')

Per un elenco completo delle funzioni XPath, consultare la specifica XPath ( http://www.w3.org/TR/xpath).

Verifica delle espressioni XPath

È possibile eseguire una verifica delle espressioni XPath rispetto ai dati della verifica XML utilizzando la Valutazione XPath.