CS206 --- Electronic Commerce

CS206 --- Electronic Commerce

XML lekrdeznyelvek XPath XQuery 1 Az XPath/XQuery adatmodell A relcik megfelelje ebben a krnyezetben a ttelek (item) listja (sequence). Ez azt jelenti, hogy a bemenetet, a kztes lpsek eredmnyeit s a

vgeredmnyt is ttelek listjaknt kezeljk. Egy ttel lehet: 1. egyszer rtk, pl.: egsz vagy sztring. 2. Csompont. 2 A csompontok f tpusai 1. A dokumentum csompontok a teljes dokumentumot reprezentljk. 2. Elem csompontok: a tagek (jellk) s a kzttk lv

dokumentumrszlet. 3. Attribtumok: a nyit tagekben szerepelnek s ott kapnak rtket. 3 Dokumentum csompont A doc(URL) vagy document(URL) parancs hatsra jn ltre. Plda: doc(http://abc.com/sales.xml) Minden XPath (s XQuery) lekrdezs hivatkozik egy dokumentum csompontra. Plda: az XML Smban szerepl XPath

kifejezsek arra a dokumentumra hivatkoznak, amelyre a sma ppen vonatkozik. 4 A hasznlt plda DTD-je

]> 5 Plda dokumentum Elem csompont. 2.50 3.00

Attribtum csompont A dokumentum csompont mindez, plusz 6 az

kocsma Joe brja r 2.50 melyikSr = Bud kocsma r 3.00

melyikSr = Miller nv = Bud rulja = rzsaszn = dokumentum zld = elem nsrga =

attribtum lila = atom rtk 7 Utak az XML dokumentumban Az XPath segtsgvel az XML dokumentumokat jrhatjuk be. Ms szval utakat adhatunk meg. Az utak mindig ttelek egy listjt vlasztjk ki. 8

t kifejezsek Egyszer formjban az utak perjel s jellk (tagek) sorozatbl llnak. A kifejezs perjellel kezddik. Plda: /kocsmk/kocsma/r Informlis jelents: a dokumentum csompontbl kiindulva balrljobbra haladva kvessk a jellket sorra. 9

tkifejezsek kirtkelse Tegyk fel, hogy az els jell a gykr. Ennek a jellnek a feldolgozsa a gykr pontot tartalmaz, azaz egyelem, sorozatot eredmnyezi. Tegyk fel, hogy rendelkezsnkre ll ttelek egy sorozata s a kvetkez jell X. Minden elempontot helyettestsnk az X jellj alelemeivel a listban. 10

Plda: /kocsmk 2.50 3.00 A kocsmk elem 11

Plda: /kocsmk/kocsma 2.50 3.00 A kocsma elem, amit ms kocsma elemek is kvethetnek. 12

Plda: /kocsmk/kocsma/r 2.50 3.00 r elemek, melyeket ms kocsmk r elemei kvethetnek.

13 Attribtumok az utakban Az attribtumokat a @ jel jelli, ez utn kvetkezik az attribtum neve. 14 Plda: /kocsmk/kocsma/r/@melyikS r

2.50 3.00 A Bud Miller rtkek belekerlnek az eredmnybe. 15 Ne felejtsk: ttelek listja Eddig a ttelek mindig elemek

voltak. Ha egy tkifejezs attribtummal vgzdik, akkor a lista atomi tpus elemekbl ll (az elz pldban sztringekbl). 16 Utak, melyek akrhol kezddhetnek Ha az t a dokumentum pontbl indul s //X-szel indul, akkor az els lps vagy a gykrbl indul

vagy brmely olyan rszelembl, aminek a jellje X. 17 Plda: //r 2.50 3.00

Ezek az r elemek s brmely msik r eleme a dokumentumnak. 18 Jolly-joker: * A csillag (*) tetszleges jell nevet helyettest. Plda: /*/*/r az sszes ddunoka (harmadik szinten lv) r elemet adja vissza.

19 Plda: /kocsmk/* Ez a kocsma elem s esetleg ms kocsma elemek, plusz ez a sr elem s esetleg ms sr elemek. 2.50 3.00

20 Szrsi felttel A jellket felttelek [] kvethetik. Ilyenkor csak azok az tkifejezsre illeszked utak kerlnek be az eredmnybe, melyek a felttelt is

kielgtik. 21 Plda: szrsi felttel /kocsmk/kocsma/r[. < 2.75] Az aktulis elem. 2.50

3.00 Csak ez az r elem kerl be az eredmnybe a lthatk kzl. 22 Plda: szrs attribtummal /kocsmk/kocsma/r[@melyikSr = Miller] 2.50 3.00

23 Tengelyek ltalnosan: az tkifejezsekben minden egyes lpsnl tengelyekkel (axes) adhatjuk meg a kvetkez lpsnl feldolgozand pontok listjt. A default tengely a child:: --- ami az sszes gyermekt veszi az aktulis pontoknak. 24

Plda: tengelyek /kocsmk/sr valjban a /child::kocsmk/child::sr rvidtse. @ pedig az attribute:: tengely rvidtse. gy a, /kocsmk/sr[@nv = Bud ] jelentse /kocsmk/sr[attribute::nv = Bud] 25 Tovbbi tengelyek

Nhny tovbbi hasznos tengely: 1. parent:: = az aktulis pont(ok) szlje (szlei). 2. descendant-or-self:: = az aktulis pont(ok) s az sszes leszrmazott. // valjban ennek a rvidtse (ez majdnem igaz). 3. ancestor::, ancestor-or-self t. 4. self (ennek rvidtse: .) 26

XQuery Az XQuery egy SQL-hez hasonl lekrdeznyelv, ami XPath kifejezseket hasznl. Ugyangy a ttelek listja adatmodellt hasznlja. Az XQuery egy funkcionlis nyelv. Ez azt jelenti, hogy ahol kifejezs szerepelhet, ott tetszleges XQuery kifejezs szerepelhet. Ez eltrs az SQL-tl. Az SQL-ben a SELECT-nl nem szerepelhetett SQL alkrds pldul. 27

Ttelek listja (rszletesebben) Az XQuery-ben elfordulhat, hogy listk listja generldik. Az ilyen listkat a rendszer sima listv alaktja t. Plda: (1 2 () (3 4)) = (1 2 3 4). res lista. 28 FLWR kifejezsek (flower)

1. Egy vagy tbb for s/vagy let zradk. 2. Ezek utn opcionlisan egy where zradk. 3. Vgl egy return zradk. 29 Az FLWR kifejezsek szemantikja Mindegyik for egy ciklust generl. a let a cikluson belli hozzrendelseket adja meg.

Minden itercijnl a begyazott ciklusnak, ha van ilyen, ki kell rtkelni a where zradkot. Ha a where zradk IGAZ, a return zradknak megfelel rtket a vgeredmnyhez kapcsoljuk. 30 FOR zradk for in , . . . A vltozk $ jellel kezddnek. A for vltozja egy ciklusban sorra

bejrja a kifejezs eredmnynek sszes ttelt. A for utn megadott rszek teht minden egyes ttelre vgrehajtdnak egyszer. 31 A {} jelek kztti kifejezst mindig kirtkeli A korbbi pldkban a rendszer, ha a is hasznlt

return zradk dokumentum. vgrehajtsra kerl a sor a for $sor in document(kocsmak.xml)/kocsmk/ ciklusban. Plda: FOR sr/@nv return {$sor} $sor a plda dokumentum sr elemeinek nv

attribtumn fut vgig. Az eredmny srNv elemek listja: Bud Miller . . . 32 Kapcsos zrjelek Ha azt szeretnnk, hogy egy vltoz nevet, pl. $x, ne sima szvegknt kezeljen a rendszer kapcsos zrjelek kz kell tennnk. Plda: $x egy A elem lesz $x rtkkel ugyangy, mint a

foo is egy A elem foo rtkkel. 33 Kapcsos zrjelek --- (2) De return $x rtke egyrtelm. Jellk vagy idzjelek nlkli sima sztringet nem adhat vissza a lekrdezs, azaz, ha $x-t sima sztringknt szeretnnk visszaadni, nem pedig a $x vltoz rtkre vagyunk kvncsiak, akkor az eredmnynek return $x

vagy return $x alaknak kell lennie. 34 LET zradk let := , . . . A vltoz rtke ttelek listja lesz, ez a lista a kifejezs eredmnye. A let zradk hatsra nem indul el egy ciklus; a for zradk hatsra igen. 35

Plda: LET let $d := document(kocsmk.xml) let $sor := $d/kocsmk/sr/@nv return {$sor} Az eredmny egyetlen elembl ll az sszes srnvvel: Bud Miller 36 Order-By zradk Az FLWR valjban FLWOR, ahol egy

order-by zradk elzheti meg a return zradkot. Alakja: order by Opcionlis ascending vagy descending. A kifejezs a vltozk minden hozzrendelsre kirtkeldik. A vgeredmny listjnak sorrendjn vltoztat. 37 Plda: Order-By A Bud sszes rt kilistzzuk, a

legalacsonyabb legelszr. let $d := document(kocsmak.xml) for $p in $d/kocsmk/kocsma/r[@melyikSr= Bud] Rendezi a $p-hez a megfelel hozzrendels r elemeket rendeli. order by $p rtkeit. Az eredmny r

return $p elemeknek egy listja. 38 sszehasonlts: SQL ORDER BY Az SQL ugyanezen az elven mkdik; a FROM s WHERE zradkok eredmnye rendezdik, nem a vgeredmny. Plda: R(a,b) relcira: Aztn, a mr rendezett sorokbl vesszk a

SELECT b FROM R b rtkeket. WHERE b > 10 ORDER BY a; R sorai, ahol b>10 az a rtkek szerint rendezdnek. 39 Felttelek (predicates) A felttelekben a ltezst kveteljk meg. Plda: /kocsmk/kocsma[@nv]

jelentse az sszes olyan kocsma, aminek ltezik neve. Plda: /kocsmk/sr[@rulja = Joe brja] azon srk listjt adja vissza, melyeket Joe brjban megkaphatunk. 40 Plda: sszehasonltsok Az sszes srre, amit Joe brjban rulnak, adjuk vissza az r elemeket az sszes kocsmt

figyelembe vve. Az eredmny BBP elemekbl ll majd, melynek attribtuma a kocsma s a sr nevt adjk majd meg, egy aleleme pedig az rat. 41 Stratgia 1. Ksztsnk egy tripla for ciklust, ahol vesszk az sszes sr elemet, aztn az sszes kocsma elemet, majd minden egyes kocsmra a hozz tartoz r elemeket.

2. Ellenrizzk, hogy a sr kaphat-e Joe brjban, s hogy a sr neve s az aktulis r elemben a melyikSr attribtum rtke egyezik-e. 3. A kvnt alak eredmny megadsa. 42 A lekrdezs let $bars = doc(kocsmak.xml)/kocsmk for $beer in $bars/sr Ez nem for $bar in $bars/kocsma igazn hatkony.

for $price in $bar/r where $beer/@rulja = Joe brja and $price/@melyikSr = $beer/@nv return {$price} 43 Szigor sszehasonltsok Ha meg szeretnnk kvetelni, hogy az sszehasonltott listk egyetlen elemet tartalmazzanak az albbi

sszehasonltsokat kell alkalmaznunk: eq, ne, lt, le, gt, ge. Plda: $beer/@rulja eq Joe brja igaz, ha a beer vltozhoz egyetlen elem lett hozzrendelve, melynek rulja attribtuma Joe brja. 44 Elemek s rtkek sszehasonltsa Ha egy elemet hasonltunk ssze

egy rtkkel, akkor az elemnek a hozztartoz rtkt vesszk, ha az az rtk atomi. Plda: /kocsmk/kocsma[@nv=Joe brja]/r[@melyikSr=Bud] eq 2.50 45 Elemek sszehasonltsa Nem elegend, ha kt elem ugyanolyannak tnik. Plda: /kocsmk/kocsma[@nv=Joe

brja]/ r[@melyikSr=Bud] eq /kocsmk/ kocsma[@nv=Sue brja]/ r[@melyikSr=Bud] hamis, mg akkor is ha Joe s Sue ugyanannyit krnek a Bud srrt. 46 Elemek sszehasonltsa (2) Egy elem csak nmagval tud egyenl lenni. Tudniillik: az elemek valjban mutatk, amelyek a dokumentum

megfelel helyre mutatnak, azaz nem azonosak a szveges tartalmukkal. 47 Az elemek adatainak kinyerse Tegyk fel, hogy elemek rtkeit szeretnnk sszehasonltani nem pedig az elhelyezkedsket az adott dokumentumban. Az E elem rtkt a data fggvny hasznlatval kaphatjuk meg:

data(E ). 48 Plda: data() Tegyk fel, hogy az elbbi lekrdezsnkben mdostjuk a return zradkot: return 49

Ismtldsek kiszrse Hasznljuk a distinct-values fggvnyt, aminek a paramtere: elemek listja. Finomsg: a fggvny a jellk nlkl veszi az rtkeket s ezek szveges rtkt hasonltja ssze. Az eredmnyben nem rja vissza a jellket. 50 Plda: az sszes klnbz r return distinct-values(

let $bars = doc(kocsmk.xml) return $bars/kocsmk/kocsma/r ) Emlkezznk vissza: az XQuery funkcionlis nyelv, azaz ahol rtk jelenhet meg, oda tetszleges XQuery kifejezst is rhatunk. 51 Logikai rtk (Boolean) Egy-egy kifejezs logikai rtke a kvetkez:

1. ha a kifejezs logikai tpus, akkor az aktulis rtk. 2. FALSE ha a kifejezs kirtkelsnek eredmnye: 0, [az res sztring] vagy () [az res lista]. 3. TRUE klnben. 52 Plda: logikai rtkek 1. @nv=Joe brja TRUE, ha nv attribtum rtke Joe brja. 2. /kocsmk/ kocsma[@nv=Lrgs] TRUE,

ha ltezik olyan kocsma, amely nv attribtumnak Lrgs az rtke. 53 Logikai mveletek E1 and E2, E1 or E2, not(E ) teht minden kifejezsre alkalmazhat. Plda: not(3 eq 5 or 0) az rtke TRUE. A true() s false() fggvnyek (paramterek nlkl) TRUE s FALSE rtket adnak vissza. A konstansok

kirsa helyett ezt hasznljk. 54 Elgaz kifejezsek if (E1) then E2 else E3 is rtelmezhet. Plda: if($kocsma/@nv eq Joe brja) Az res lista. () then $kocsma/r else

55 Kvantifikls some $x in E1 satisfies E2 1. E1 -t ki kell rtkelni. 2. $x vegye fel sor E1 eredmnynek rtkeit, s rtkeljk ki ezzel az rtkkel E2 -t. 3. Az eredmny IGAZ, ha $x legalbb egy rtkre E2 igaz. Hasonlan: every $x in E1 satisfies E2 56

Plda: Some for $bar in doc(kocsmak.xml)/kocsmk/kocsma where some $p in $bar/r satisfies $p < 2.00 return $bar/@nv Vegyk szre: a where $bar/r < 2.00 ugyanezt a hatst ri el. 57 Plda: Every for $bar in

doc(kocsmak.xml)/kocsmk/kocsma where every $p in $bar/r satisfies $p <= 5.00 return $bar/@nv 58 Dokumentum sorrend A dokumentum sorrend szerinti sszehasonlts mveletei: << s >>. Plda: $d/kocsmk/sr[@nv=Bud] << $d/kocsmk/sr[@nv=Miller]

igaz, ha a bal oldali sr elem megelzi a jobb oldalit. 59 Halmazmveletek A union, intersect, except itt is alkalmazhatak pontok listjra. A jelents hasonl SQL-beli jelentshez. Az ismtldsek itt is trldnek. Az eredmny elemei dokumentum sorrendben jelennek meg.

60

Recently Viewed Presentations

  • Tools & Tips for Headache Management in Special

    Tools & Tips for Headache Management in Special

    Migraine, acute, With or without aura: age 6 to 17 years, less than 40 kg (88 pounds), 5 mg ORALLY; MAX 1 dose/24 hour . Migraine, acute, With or without aura: age 6 to 17 years, 40 kg (88 pounds)...
  • Table of Contents

    Table of Contents

    Before Israel adopted a monarchy and Saul was appointed to be their king, they experienced an era of time called the period of the Judges. It was a season when pure leadership was required. Every judge that led was a...
  • Financial Regulation Ontology

    Financial Regulation Ontology

    An inference engine is a software able to infer new facts from a set of asserted facts and rules. Non-ontology Inference engines are also to derive decision based on business rules (rules engine). The reasoner generalizes the concept with a...
  • Earth&#x27;s Crust Changes - Central Islip Public Schools

    Earth's Crust Changes - Central Islip Public Schools

    Earth's Crust Changes ... Trenches Mountain ranges Island arcs Continental collisions Creates mountain ranges with intense deformation many metamorphic rocks Earth's Crust Changes Original Horizontality Sediments are deposited in horizontal layers in shallow water - usually If sedimentary ...
  • Diapositiva 1

    Diapositiva 1

    La costruzione regolare del grado comparativo degli aggettivi di prima e seconda classe si forma prendendo il tema dell'aggettivo al grado positivo (il tema del genitivo maschile singolare) e aggiungendo -ior per il maschile e il femminile e -ius al...
  • Welcome to New Hire Orientation  Intranet Tools  How

    Welcome to New Hire Orientation Intranet Tools How

    Aligns other HR Partners to meet your goals. The HRBP is your consultant and the primary point of contact most times in HR. We offer you recommendations that have an individual and global perspective that supports the organization. BP's are...
  • Harvard Referencing References What is Referencing? Referencing is

    Harvard Referencing References What is Referencing? Referencing is

    References How to use the citation in the text: In words of Koste, Kruger, David and Dickson (2001), it happened because it was being an important effort of the governments of third world countries. {it is wrong style} In words...
  • Chapter 17 Hairstyling Learning Objectives  Execute finger waving,

    Chapter 17 Hairstyling Learning Objectives Execute finger waving,

    The art of hairstyling or dressing the hair has always changed in direct relation to the fashion, art, and life of the times. ... Rectangular base: Recommended at side front hairline for a smooth upsweep effect; avoid splits in comb-out...