XQuery

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

XQuery (ang. XML Query Language, w tłumaczeniu Język Zapytań XML, Język Zapytań Rozszerzalnego Języka Znaczników) – język zapytań (jednakże posiadający pewne cechy języka programowania) służący do przeszukiwania dokumentów XML. Język XPath od wersji 2.0 uznawany jest za pewien podzbiór XQuery. Typ MIME języka XQuery to application/xquery.

Historia[edytuj | edytuj kod]

Początki języka XQuery sięgają grudnia 1998 roku, a konkretnie zorganizowanych przez konsorcjum W3C warsztatów QL'98[1] poświęconych językom przeszukiwania dokumentów XML. Rezultatem dużego zainteresowania wokół tematu XML-a było utworzenie grupy XML Query[2]. Pierwszy dokument wymagań został opublikowany w styczniu 2000 roku, zaś pierwszy szkic języka XQuery pojawił się w lutym 2001 r. W sierpniu 2004 roku grupa podjęła równoległe prace nad rozwojem XPath 2.0 (wspólnie z grupą W3C XSL). W styczniu 2007 roku XQuery 1.0 (oraz XPath 2.0) dostało oficjalną rekomendację W3C.

Konstrukcja języka[edytuj | edytuj kod]

XQuery czerpał inspiracje z wielu języków, takich jak m.in. Quilt, XPath w wersji 1.0, XQL, SQL (wyrażenia FLWOR), czy Lorel. Jest to statycznie typowany język deklaratywny oparty na wyrażeniach ścieżkowych.

Korzeń dokumentu oznaczany jest przez document node.

FLWOR[edytuj | edytuj kod]

Wyrażenia FLWOR (czyt. flower - ˈflaʊə) wzorowane są na zapytaniach SQL SELECT-FROM-WHERE. Składają się z 5 klauzul: for, let, where, order by, return.

Przykładowe wyrażenie FLWOR:

   for $d in doc("dzialy.xml")//nrdzialu
   let $p := doc("pracownicy.xml")//pracownik[nrdzialu = $d]
   where count($p) >= 10
   order by avg($p/pensja) descending
   return
     <ZbiorczoDzial>
        { $d,
           <zatrudnionych>{count($p)}</zatrudnionych>,
           <sredniapensja>{avg($p/salary)}</sredniapensja>
        }
     </ZbiorczoDzial>

Zobacz też[edytuj | edytuj kod]

Przypisy

  1. Strona warsztatów QL'98. [dostęp 2009-12-06].
  2. Strona główna grupy W3C XML Query. [dostęp 2009-12-06].

Bibliografia[edytuj | edytuj kod]

  • Ling Liu, M.Tamer Özsu (Edyt.): Encyclopedia of Database Systems. T. 5. Springer, 2009. ISBN 978-0-387-35544-3.

Linki zewnętrzne[edytuj | edytuj kod]