1 / 16

Technol ógie XML

Technol ógie XML. XQuery ( XML Query Language ) September , 2011. Vznik X Query. Vznikol ako dopytovací jazyk pre extrakciu XML dát Možné použitie: extrakcia dát z XML dokumentu extrakcia dát z XML databáz generovanie XML dát transformácia XML súborov

sook
Download Presentation

Technol ógie XML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Technológie XML XQuery (XML Query Language) September, 2011 Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  2. Vznik XQuery • Vznikol ako dopytovací jazyk pre extrakciu XML dát • Možné použitie: • extrakcia dát z XML dokumentu • extrakcia dát z XML databáz • generovanie XML dát • transformácia XML súborov • XQuery je pre svet XML tým, čím je SQL pre relačné databázy Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  3. Vlastnosti XQuery • Nie je XML aplikáciou – má vlastnú syntax • XQueryX – XML syntax pre XQuery • Založený na • XPath – adresovanie častí dokumentu • XML Schema – dátové typy • Otázka – výraz, ktorý vracia sekvenciu XML fragmentov alebo atomických hodnôt • Používa logickú štruktúru XML dokumentov ako stromu uzlov • sedem typov uzlov: element, atribút, text, menný priestor, komentár, inštrukcia pre spracovanie, dokumentový uzol Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  4. Stav XQuery • Spravovaný W3C (http://www.w3.org) • XML Query Language 1.0 (štandard v 2.edícii) • W3C working draft – máj 2003 • W3C recommendation – január 2007 • W3C recommendation – 2.edícia – december 2010 • XML Syntax for XQuery 1.0 (štandard v 2. edícii) • W3C working draft – september 2005 • W3C recommendation – január 2007 • W3C recommendation – 2.edícia – december 2010 Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  5. Syntax • XPath syntax doc("kniznica.xml")//kniha[rok="2010"]/nazov • FLWOR výrazy for $x in doc("kniznica.xml")//kniha where $x/rok = "2010" order by $/autor return $x/nazov <nazov alt="Kubko a Maťko">Pásli ovce valasi</nazov> <nazov>Slovenské rozprávky</nazov> <nazov>Hlava 22</nazov> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  6. FLWOR • FLWOR je akronym (FLW a O sú voliteľné): • For – viaže premennú na každý z vybraných prvkov • Let – viaže premennú na vybrané prvky • Where – špecifikuje výberové kritériá pre filtráciu vyberaných uzlov • Order by – určuje spôsob zotriedenia výstupu • Return – špecifikuje čo má byť vrátené vrátane výplňových textov • Používa premenné • premenná je daná ako znak $ nasledovaný menom • meno premennej by malo byť prípustným XML menom Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  7. FLWOR - for • Klauzula vedie na iteráciu pre každý jeden z vybraných prvkov for $x at $i in doc("kniznica.xml")//kniha/autor return <spisovatel>{$i}. {$x}</spisovatel> • Alternatívy: • for$x in (1 to 3) • for $x in (100, 200) • for $x in (1 to 3), $y in (100, 200), $z in doc(…)/… <spisovatel>1. <autor>Pavol Dobšinský</autor></spisovatel> <spisovatel>2. <autor>Elena Čepčeková</autor></spisovatel> <spisovatel>3. <autor>Jozef C. Hronský</autor></spisovatel> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  8. FLWOR - let • Klauzula nevedie na iteráciu, je to jednorázové naviazanie všetkých vybraných prvkov naraz let $x := (1 to 5) return <cislo>{$x}</cislo> • Alternatívy: • let $x := document(…)/… • let $x := count(…) • let $x := …, $y := … <cislo>1 2 3 4 5</cislo> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  9. FLWOR - where • Klauzula poskytuje filter založený na jednej alebo viacerých podmienkach for $x in (1 to 5) where $x > 3 return <cislo>{$x}</cislo> • Alternatívy: • where $x/cena > 10 and $x/cena < 40 • where not($x/cena > 100) <cislo>4</cislo> <cislo>5</cislo> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  10. FLWOR – order by • Zotriedenie hodnôt priradzovaných premenným klauzulou for for $x in (1 to 2) order by $x descending return <cislo>{$x}</cislo> • Alternatívy: • order by $x/@typ ascending • order by $x/rok descending, $x/autor • order by $x/cena ascending empty least (greatest) <cislo>2</cislo> <cislo>1</cislo> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  11. FLWOR – produkovaný výstup • Výstup zostavený z vrátených uzlov dokumentu a výplňového textu definovaný klauzulou return • FLWOR môže byť vnorený do textu <ul> { for $x in doc("kniznica.xml")//kniha/autor return <li>{data($x)}</li> } </ul> <ul> <li>Pavol Dobšinský</li> <li>Elena Čepčeková</li> <li>Jozef C. Hronský</li> </ul> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  12. Príklady – podmienené výrazy • Pri vytváraní výstupu je možný alternatívny výstup podľa podmienok • Je možné aj vnáranie podmienených výrazov for $x in doc("kniznica.xml")/kniznica/kniha return if ($x/@typ="rozpravka") then <rozpravka>{data($x/nazov)}</rozpravka> else <ine>{data($x/nazov)}</ine> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  13. Príklady – kvantifikované výrazy • Aspoň jeden prvok spĺňa podmienky for $x in doc("kniznica.xml")/kniznica/kniha where some $c in $x/obsah/cast satisfies contains($c,"O ") return <o-rozpravka>{data($x/nazov)}</o-rozpravka> Alternatívy: some $c in …, $x in … satisfies $c = $x • Všetky prvky spĺňajú podmienky for $x in doc("kniznica.xml")/kniznica/kniha where every $c in $x/obsah/cast satisfies contains($c,"O ") return <o-rozpravka>{data($x/nazov)}</o-rozpravka> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  14. Príklady – viacnásobné použitie for • Vnorenie for $x in (1995 to 2011) return <rok>{$x} -- {count(for $y in doc("kniznica.xml")//kniha where $y/rok=$x return $y)}</rok> • Reťazenie for $s in doc(“spisovatelia.xml")//osoba[rodisko="Košice"] for $k in doc("kniznica.xml")//kniha[autor=$s/meno] where $s/meno = $k/autor return <kniha>{data($k/nazov)}</kniha> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  15. Príklady – viacnásobné použitie let • Statické / dynamické let $zdroj := doc("kniznica.xml") for $k in $zdroj//kniha let$s := doc(“spisovatelia.xml")//osoba[meno=$k/autor] where $k/rok - $s/rok-narodenia < 20 return <mlady-spisovatel>{$k/autor}</mlady-spisovatel> • Dynamické for $k in doc("kniznica.xml") //kniha let $a := $k/autor let $n := $k/nazov return <kniha autor="{data($a)}" nazov="{data($n)}"/> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

  16. Príklady – použitie funkcií • Top pozícia avg( for $y in doc("kniznica.xml")//kniha where $y/rozsah/@jednotka="strana" return $y/rozsah ) • Vnútri FLWOR výrazu for $y in doc("kniznica.xml")//kniha let $c := avg(doc("kniznica.xml")//kniha[autor=$y/autor]/cena) where $y/cena > $c and $y/cena mod 10 = 0 order by count($y/cast) descending return <kniha>{upper-case($y/nazov/text())}</kniha> Katedra kybernetiky a umelej inteligencie FEI, TU v Košiciach

More Related