Matukio ya XQuery

Muhimu wa XQuery 1.0, XPath 2.0 na XSLT 2.0 ni wakati wa kusababisha kwa maktaba ya kigeni ya kufikiria.

Matukio ya XQuery

XQuery ina muhimu wa kigeni wa kufikiria zaidi ya 100. Hizi muhimu zinaweza kutumika kwa thamani za string, thamani za namba, siku na wakati wa kugawanyika, kusababisha kwa vigezo na kufikiria kwa QNAME, kusababisha kwa mawili, kusababisha kwa uadilifu na uharibifu. Pia unaweza kusoma muhimu wako wa kigeni.

Muhimu wa kigeni wa XQuery

URI ya eneo la jina wa kigeni wa muhimu wa XQuery:

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

Mifano wa eneo la jina wa kigeni wa muhimu ni fn:.

Msaada:Muhimu wa kigeni wa kufikiria inaweza kufanywa kwa mifano wa fn: kama fn:string(). Kwa sababu fn: ni mifano wa eneo la jina wa kigeni wa msingi, jina la muhimu hauweza kutumika kama mifano kwenye kwa kufikiria.

Unaweza kufikiria ujumbe wa maelezo wa mifano wa XPath tu katika mafunzo yetu ya XPath:Maelezo ya muhimu ya kigeni ya XQuery》。

Mfano wa kikao cha muhimu

Tumia kikao cha muhimu kwa kufikiria na kufikiria kwa kusababisha. Tazama mafano ya hivi karibuni:

Mfano 1: katika kiwango

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

Mfano 2: katika kifupi cha nafasi ya ujumbe

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

Mfano 3: katika ujumbe let

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

Muhimu wa kigeni wa XQuery

Ikiwa hatutafika muhimu wa kigeni wa ujumbe unaofikia, unaweza kusoma maelezo wako wa kigeni.

Inaweza kufanywa katika ujumbe au kama maktaba ya kigeni ya kufikiria.

Inayofanywa

declare function mifano:jinia($ thamani AS aina ya data)
  AS aina ya data ya matokeo
{}}
(: ...mbaa wa muhimu... :)
;

Vifaa vya kufikiria kuhusu muhimu wa kigeni:

  • Tumia nafasi ya kichwako declare function
  • Jina la muhimu lazima liwe na mifano
  • Aina ya data ya thamani inayofanana na aina ya data iliyochukuliwa katika XML Schema
  • Ubatili wa muhimu inahatarisha kufungua na mabatili

Mfano wa mtaalamu wa kuchukua kwenye msingi ya ujumbe:

declare function local:minPrice(
  $price as xs:decimal?,
  $discount as xs:decimal?)
  AS xs:decimal?
{}}
let $disc := ($price * $discount) div 100
return ($price - $disc)
;
(: Mifano ya kutumia maelezo ya juu :)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>