Sintassi di XQuery

XQuery è sensibile alle maiuscole e minuscole, gli elementi, gli attributi e le variabili di XQuery devono essere nomi XML validi

Regole di sintassi di base di XQuery:

Alcuni regole di sintassi di base:

  • XQuery è sensibile alle maiuscole e minuscole
  • Gli elementi, gli attributi e le variabili di XQuery devono essere nomi XML validi
  • I valori di stringa di XQuery possono essere utilizzati con virgolette singole o doppie
  • Le variabili di XQuery sono definite con un "$" seguiti da un nome, ad esempio, $bookstore
  • I commenti in XQuery sono separati da (: e :), ad esempio, (: commento XQuery :)

Espressioni condizionali di XQuery

"If-Then-Else" può essere utilizzato in XQuery.

Vediamo l'esempio seguente:

per $x in doc("books.xml")/bookstore/book
return	if ($x/@category="CHILDREN")
	then <child>{data($x/title)}</child>
	else <adult>{data($x/title)}</adult>

Si prega di notare la sintassi di "If-Then-Else": i parentesi tonde dopo l'espressione if sono obbligatori. else è anche obbligatorio, ma è possibile scrivere anche "else ()".

Il risultato degli esempi di sopra:

<adult>Everyday Italian</adult>
<child>Harry Potter</child>
<adult>Learning XML</adult>
<adult>XQuery Kick Start</adult>

Confronto XQuery

In XQuery ci sono due metodi per confrontare i valori.

  1. Confronto universale: =, !=, <, <=, >, >=
  2. Confronto dei valori: eq, ne, lt, le, gt, ge

La differenza tra questi due metodi di confronto è la seguente:

Vediamo l'espressione XQuery di seguito:

$bookstore//book/@q > 10

Se il valore dell'attributo q è maggiore di 10, il valore di ritorno dell'espressione superiore è true.

$bookstore//book/@q gt 10

Se viene restituito solo un q e il suo valore è maggiore di 10, l'espressione restituisce true. Se vengono restituiti più di un q, si verifica un errore.