Latest web development tutorials

Funções XQuery

XQuery 1.0, XPath 2.0 e XSLT 2.0 compartilham a mesma biblioteca.


Funções XQuery

XQuery contém mais de 100 funções embutidas. Estas funções podem ser utilizadas para valores string, numérico, data e comparação do tempo, nó e manipulação QName, manipulação seqüência, valores booleanos, e assim por diante. Você também pode definir suas próprias funções em XQuery.


XQuery funções embutidas

XQuery função namespace URI:

http://www.w3.org/2005/02/xpath-functions

O namespace prefix função padrão é fn:.

Dica: chamar prefixo, como fn :: função muitas vezes através de seqüência fn (). No entanto, desde fn: é o prefixo padrão do espaço de nomes, os nomes das funções não é necessário utilizar o prefixo quando chamado.

Você pode encontrar a completa "em nosso tutorial XPath built-in funções XQuery manual de referência ."


Exemplos de chamadas de função

As chamadas de função pode ser usado com uma expressão. Considere o seguinte exemplo:

Exemplo 1: O elemento

<name>{upper-case($booktitle)}</name>

Exemplo 2: Na expressão de caminho no predicado

doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']

Exemplo 3: deixe declaração

let $name := (substring($booktitle,1,4))


funções definidas pelo usuário XQuery

Se você não consegue encontrar a função XQuery necessário, você pode escrever suas próprias funções.

Ou os usuários podem definir função personalizada de consulta de banco de dados separado.

gramática

declare function前缀:函数名($参数 AS 数据类型)
AS返回的数据类型
{
...函数代码...
}

Sobre funções Notes definidos pelo usuário:

  • Utilize a palavra-chave função declare
  • Nomes de funções deve usar o prefixo
  • parâmetro tipo de dados é geralmente consistente com os dados definidos no tipo de esquema XML
  • corpo da função deve ser cercada por chaves

Em uma instrução de consulta exemplos de funções definidas pelo usuário:

declare function local:minPrice($p as xs:decimal?,$d as xs:decimal?)
AS xs:decimal?
{
let $disc := ($p * $d) div 100
return ($p - $disc)
}

Below is an example of how to call the function above:

<minPrice>{local:minPrice($book/price,$book/discount)}</minPrice>