Sintaxe XQuery
XQuery faz distinção entre maiúsculas e minúsculas e os elementos, atributos e variáveis XQuery devem ser nomes XML válidos.
Regras básicas de sintaxe XQuery
Algumas regras básicas de sintaxe:
- XQuery diferencia maiúsculas de minúsculas
- Elementos, atributos e variáveis XQuery devem ser nomes XML válidos
- Um valor de string XQuery pode estar entre aspas simples ou duplas
- Uma variável XQuery é definida com um $ seguido por um nome, por exemplo, $bookstore
- Os comentários XQuery são delimitados por (: e :), por exemplo (: Comentário XQuery :)
O documento de exemplo XML
Usaremos o documento "books.xml" nos exemplos abaixo (mesmo arquivo XML dos capítulos anteriores).
Visualize o arquivo "books.xml" em seu navegador .
Expressões condicionais XQuery
Expressões "If-Then-Else" são permitidas em XQuery.
Observe o seguinte exemplo:
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>
Notas sobre a sintaxe "if-then-else": parênteses ao redor da expressão if são obrigatórios. else é necessário, mas pode ser apenas else ().
O resultado do exemplo acima será:
<adult>Everyday Italian</adult>
<child>Harry Potter</child>
<adult>XQuery Kick Start</adult>
<adult>Learning XML</adult>
Comparações XQuery
Em XQuery existem duas maneiras de comparar valores.
1. Comparações gerais: =, !=, <, <=, >, >=
2. Comparações de valores: eq, ne, lt, le, gt, ge
A diferença entre os dois métodos de comparação é mostrada abaixo.
A seguinte expressão retornará true se algum atributo q tiver um valor maior que 10:
$bookstore//book/@q > 10
A expressão a seguir retorna true se houver apenas um atributo q retornado pela expressão e seu valor for maior que 10. Se mais de um q for retornado, ocorrerá um erro:
$bookstore//book/@q gt 10