Sintassi XQuery
XQuery fa distinzione tra maiuscole e minuscole e gli elementi, gli attributi e le variabili di XQuery devono essere nomi XML validi.
Regole di sintassi di base di XQuery
Alcune regole di sintassi di base:
- XQuery fa distinzione tra maiuscole e minuscole
- Gli elementi, gli attributi e le variabili di XQuery devono essere nomi XML validi
- Un valore di stringa XQuery può essere racchiuso tra virgolette singole o doppie
- Una variabile XQuery è definita con un $ seguito da un nome, ad esempio $bookstore
- I commenti di XQuery sono delimitati da (: e :), ad esempio (: Commento XQuery :)
Il documento di esempio XML
Utilizzeremo il documento "books.xml" negli esempi seguenti (stesso file XML dei capitoli precedenti).
Visualizza il file "books.xml" nel tuo browser .
Espressioni condizionali XQuery
Le espressioni "If-Then-Else" sono consentite in XQuery.
Guarda il seguente esempio:
for $x in doc("books.xml")/bookstore/book
return if ($x/@category="children")
then <child>{data($x/title)}</child>
else <adult>{data($x/title)}</adult>
Note sulla sintassi "if-then-else": sono richieste le parentesi attorno all'espressione if. else è richiesto, ma può essere solo else().
Il risultato dell'esempio sopra sarà:
<adult>Everyday Italian</adult>
<child>Harry Potter</child>
<adult>XQuery Kick Start</adult>
<adult>Learning XML</adult>
Confronti XQuery
In XQuery ci sono due modi per confrontare i valori.
1. Confronti generali: =, !=, <, <=, >, >=
2. Confronti di valori: eq, ne, lt, le, gt, ge
La differenza tra i due metodi di confronto è mostrata di seguito.
L'espressione seguente restituisce true se qualsiasi attributo q ha un valore maggiore di 10:
$bookstore//book/@q > 10
L'espressione seguente restituisce true se è presente un solo attributo q restituito dall'espressione e il suo valore è maggiore di 10. Se viene restituito più di un q, si verifica un errore:
$bookstore//book/@q gt 10