Jazyky XQuery a XPath 1
|
|
- Romana Kašparová
- před 8 lety
- Počet zobrazení:
Transkript
1 Jazyky XQuery a XPath 1 Karel Richta Katedra počítačů FEL ČVUT Karlovo nám. 13, Praha 2 Tel: richta@fel.cvut.cz www: Klíčová slova: XML, XPath, XPointer, XLink, XQuery, XSLT Abstrakt: Mezi nástroje, pomocí kterých lze zpracovávat XML dokumenty lze zařadit jazyky XPath a XQuery. Jazyk XPath je prostředek pro navigaci v XML dokumentech. Nad jazykem XPath pak lze budovat dotazovací jazyky.zatím nejúspěšnější se zdá jazyk XQuery. Oba jazyky jsou doporučenými standardy konsorcia W3C. 1 Úvod Formát XML [2], [3] byl již široce akceptován jako obecně přijatelný formát pro výměnu dat a dokumentů. Byly navrženy a implementovány nástroje, pomocí kterých lze XML dokumenty analyzovat, rozkládat a zpracovávat. Základem pro takové zpracování je prostředek pro navigaci v XML dokumentech. Potřebujeme např. ukázat na číslo účtu v rámci dokumentu reprezentujícího objednávku. Takovým prostředkem je jazyk XPath. Nad jazykem XPath lze budovat další nástroje. Kolekci XML dokumentů lze považovat za databázi, jejímž obsahem jsou právě tyto dokumenty. Podobně jako u jiných databází, potřebujeme pro práci s databází nějaký jazyk, kterým se můžeme na obsah takové databáze ptát, resp. modifikovat její obsah. Účelem těchto jazyků není pouze dotazování, nýbrž také možnost vytvářet pohledy nad XML daty, možnost transformovat XML data, případně možnost specifikovat množinu XML dat, která má být aktualizována. Existuje mnoho pokusů zformulovat dotazovací jazyk pro XML dokumenty, který by byl jakousi obdobou jazyka SQL pro relační data. Od r se objevila řada jazyků, na kterých se vyvíjely nové konstrukty a koncepce dotazování pro XML dokumenty. Patří sem např. jazyky XML-QL, XQL a mnoho dalších. Zatím nejúspěšnější se zdá jazyk XQuery [1][8]. Jazyk XQuery [1] patří do rodiny jazyků, které pro manipulaci s XML dokumenty specifikovalo konsorcium W3C. Patří sem také jazyk XPath [4], určený pro navigaci v XML dokumentech a jeho doplňky XPointer a XLink, určené pro popis vazeb mezi XML daty, a také jazyk XSLT, který byl vytvořen přímo pro transformace XML dat. Všechny tyto jazyky procházejí dalším vývojem. Jazyk XSLT byl vytvořen přímo pro transformace XML dat. Využívá výrazů v XPath a taktéž samotný jazyk XML. Z jistého hlediska lze XSLT považovat rovněž za dotazovací jazyk předepíšeme jím transformaci stavu XML databáze do výstupu dotazu. Podobně i jazyk XPath můžeme považovat za dotazovací výraz v XPath lze považovat za vzorek, označující dokumenty obsahující podobnou cestu. Vhodnější pro dotazování je ale jazyk XQuery, díky své více uživatelsky orientované syntaxi. 1 Tento text vznikl při práci na výzkumných záměrech MŠMT č. MSM a rovněž byl částečně sponzorován z grantu GAČR č.201/06/
2 Jazyky XPointer a XLink lze rovněž zařadit mezi dotazovací jazyky nad XML daty, byť se poněkud vymykají běžné představě o dotazovacích jazycích. Pomocí jazyka XPointer [5] je možné přiřadit identifikátor k místům v XML dokumentech umístěných ve zdrojích adresovatelných pomocí URI (Uniform Resource Identifier). Jazyk XLink [9] slouží k popisu vazeb mezi XML daty. XLink nabízí obecný mechanismu pro zanoření vazeb mezi XML dokumenty do XML dokumentů samotných. Jde tedy spíše o prostředek modelování vybudovaný nad XML, jehož použití pak ovšem může mít vliv na koncipování dotazovacího jazyka. Vzhledem k jejich důležitosti je tento příspěvek věnován jazykům XQuery a XPath. Verze jazyka XPath označovaná jako XPath 2.0 je koncipována tak, že tvoří vlastní podmnožinu jazyka XQuery. Oba jazyky pak mají společný datový model. Oba jsou doporučenými standardy konsorcia W3C. Vzhledem ke složitosti jazyka XQuery, věnujeme se zejména základním rysům tohoto jazyka. Nejprve ale popíšeme jazyk XPath, který tvoří jeho součást. 2 Jazyk XPath Jazyk XPath [4] je prostředek, který poskytuje možnost alokovat specifické části XML dat. Je charakterizován následujícímu rysy: je jazykem použitelným pro výběr částí XML dokumentu (např. pro označování vzorků v jazyce XSLT), způsob, jakým XPath popisuje cesty k elementům, je podobný způsobu, jakým v rámci systému ovládání souborů popisujeme cesty k souborům, notace jazyka není založena na notaci XML (výraz v jazyce XPath není správný výraz podle XML), na XPath jsou založeny jazyky XSLT, XPointer a XQuery. Jazyk XPath má dvě verze verzi 1.0 (prosinec 1999) a verzi 2.0 (prosinec 2003). Verze 2.0 byla vytvořena proto, aby se rodina XML jazyků harmonizovala okolo stejného datového modelu. Primárně byl navržen tak, aby jej bylo možno využívat jako součást jiných jazyků. Verze 2.0 podporuje definici schémat pomocí jazyka XML-Schema, umí podmíněné výrazy, umožňuje selekci na základě typů a zahrnuje řadu nových funkcí. Poslední modifikace byla v době přípravy tohoto textu z prosince Model XML dat v XPath Pro jakýkoliv dotazovací jazyk je typické, že pracuje s nějakým modelem dat. Tomuto modelu odpovídají zpracovávaná data i výstup dotazů. Model XML dat pro jazyk XPath [6] je stromově orientovaný XML dokument je reprezentován jako strom. Tento strom vždy vyrůstá ze speciálního kořene dokumentu. Z kořene pak vychází další reprezentace XML dokumentu, každý prvek dokumentu je reprezentován uzlem stromu, různé prvky jsou reprezentovány různými typy uzlů.. Existuje sedm typů uzlů (na rozdíl od modelu Infoset [5], kde existuje 11 typů uzlů): kořenový uzel, uzly elementů, textové uzly, atributové uzly, uzly pro komentáře, uzly instrukcí pro zpracování, uzly jmenných prostorů. Vazby mezi prvky jsou ve stromě reprezentovány orientovanými hranami. Všimněme si, že model neobsahuje sekce CDATA a ani odkazy na entity a DTD. Mezi neobvyklé rysy modelu patří fakt, že kořen stromu není stejný jako uzel kořenového elementu. Zkonstruujeme na ukázku model XML dat pro fragment textu: 2
3 <P>Zde je nějaký<hi TYPE= ital >zvýrazněný</hi>text.<p> Odpovídající model je na Obr uzel elementu / P kořenový uzel uzel elementu textový uzel textový uzel Zde je nějaký HI text. atributový uzel TYPE ital zvýrazněný textový uzel Obr. 2.1 Model XML dat v XPath Uzly ve stromu, který reprezentuje XML dokument jsou uspořádány podle tzv. uspořádání dokumentu (dokument order), které z hlediska stromu odpovídá jeho průchodu doleva-do hloubky. Pro práci s modelem XML dat je také důležitý pojem řetězcové hodnoty uzlu (string value). Např. pro atribut je to normalizovaná hodnota atributu, pro element je to zřetězení všech textových uzlů, které jsou jeho potomky, v souladu s upořádáním dokumentu. Pro dokument odpovídající stromu na Obr. 2.1 je řetězcová hodnota uzlu P rovna: Zde je nějakýzvýrazněnýtext Řetězcové hodnoty uzlů jsou využívány při porovnávání s jinými objekty. 2.2 Výrazy jazyka XPath Základním stavebním kamenem výrazů jazyka XPath je tzv. krok (step). Krok je skutečně zamýšlen jako krok v XML dokumentu, přesněji v reprezentaci XML dokumentu. Výraz v jazyce XPath je tvořen posloupností kroků, oddělených znakem /. Interpretace výrazu spočívá v postupné interpretaci jednotlivých kroků. Každý krok je interpretován vzhledem k aktuálnímu kontextu. Kontextem se myslí jednak aktuální poloha v dokumentu, dále pak stav globálních objektů a prostředí. Interpretací kroku se kontext změní, následující krok se interpretuje v novém kontextu. Kontext, do kterého vstoupíme posledním krokem je výstupem vyhodnocení výrazu vzhledem ke vstupnímu kontextu. Význam výrazu je pak sada objektů, nacházejících se v daném kontextu v aktuální poloze. Chceme-li učinit krok, musíme se rozhodnout, kterým směrem půjdeme. v jazyce XPath se těmto směrům říká osy (axis). Můžeme např. kráčet po elementech XML stromu, můžeme zamířit k atributům uzlu, či ke jmennému prostoru. Každý jednotlivý krok je určen osou a testem na uzel v tomto směru. Krok určitým směrem se zapisuje: osa::test-na-uzel kde osa určuje směr, test na uzel specifikuje požadované vlastnosti uzlu. Seznam os XPath podává následující tabulka, jejich význam lze také vyčíst z Obr child:: descendand:: descendand-or-self:: Přímí potomci aktuálního uzlu. Všichni potomci aktuálního uzlu. Aktuální uzel a všichni potomci. 3
4 self:: ancestor-or-self:: ancestor:: parent:: following:: preceding:: following-sibling:: preceding-sibling:: attribute:: namespace:: Aktuální uzel. Aktuální uzel a všichni jeho předci. Všichni předci aktuálního uzlu. Rodič aktuálního uzlu. Všechny uzly, které se v toku XML dokumentu nacházejí za aktuálním uzlem. Všechny uzly, které se v toku XML dokumentu nacházejí před aktuálním uzlem. Všichni následující sourozenci aktuálního uzlu. Všichni předcházející sourozenci aktuálního uzlu. Atributy aktuálního uzlu. Deklarované jmenné prostory. ancestor preceding-sibling following-sibling self child preceding attribute namespace descendant following Obr. 2.2: Osy v modelu XPath Implicitní osou je osa přímých potomků (child). Uvažme jednoduchý XML dokument, reprezentující vydané knihy, uložený v souboru books.xml : <books> <book year= 2003 > <title>java Programming</title> <author><first>jack</first><last>norris</last></author> <author><first>martin</first><last>white</last></author> <ISBN> </ISBN> <price>750</price> </book> <book>...</book> </books> Jednoduchý příklad výrazu v XPath představuje dotaz na tituly knih v tomto dokumentu: doc( books.xml )/descendant::books/descendant::book/child::title 4
5 Počáteční kontext představuje dokument uložený v souboru books.xml. Začneme postupovat od jeho kořene ( / ), vydáme se ve směru následníků nejprve všechny knihy, tj. následníka typu books, pak každou jednotlivou knihu book, a z nich pak vezmeme bezprostřední potomky typu title. Výstupem bude posloupnost všech elementů typu title obsažených v dokumentu: <title>java Programming</title>... Implicitně se postupuje po ose child, atributy se aktuální uzel se zkrátí na., rodič se značí... Výše uvedený dotaz lze pak zkrátit na: doc( books.xml )/books/book/title Výsledek vyhodnocení výrazů jazyka XPath se liší pro verzi 1.0 a 2.0. Ve verzi 1.0 je významem výrazu buď primitivní hodnota (řetězec, číslo nebo logická hodnota), nebo množina uzlů (node-set). Ve verzi 2.0 je výsledkem vyhodnocení výrazu buď primitivní hodnota (řetězec, číslo nebo logická hodnota), nebo posloupnost bere se v úvahu, že výstup dotazu bývá uspořádán. Upřesněme nyní sémantiku dotazu v jazyku XPath. Krok (jednoduchá cesta) je vyhodnocen vždy vzhledem k nějakému kontextu. Krok má obecně syntaxi: osa::test-na-uzel[predikát]* Osa vybírá směr pohybu, testem na uzel se provede základní výběr kandidátů, založený na typu uzlu, které mají být vybírány (obvykle jméno elementu). Predikát slouží k další filtraci uzlů. Všimněme si, že predikáty lze řadit do posloupnosti. To však není obvykle nutné, protože stejného efektu se docílí pomocí logického součinu dílčích predikátů. Uvažme opět jednoduchý příklad výrazu v XPath, který představuje dotaz na tituly knih, tentokrát knih publikovaných v roce 2003: doc( books.xml )/books/book[@year= 2003 ]/title Oproti výše uvedenému příkladu nás zde zajímají pouze knihy, které mají atribut year s hodnotou Z nich pak vezmeme potomky elementy typu title. Predikáty představují logické podmínky, kterými lze omezit specifikovaný výběr uzlů. V jazyce XPath je to Booleovský výraz zapisovaný do hranatých závorek umístěných na konec jednoduché cesty. V predikátech lze využívat porovnání, porovnávají se XPath výrazy. Predikát nemusí být typu Boolean, nicméně je do něho konvertován, např. pomocí: //kapitola[nadpis] se vyberou uzly odpovídající kapitolám, které mají nadpis. K dispozici je také jednoduchá aritmetika, v predikátech lze využívat funkce a agregační funkce jako např. count a sum. Více pozornosti zaslouží porovnávací operátory = a!=. Porovnávat lze totiž množiny uzlů, resp. množinu uzlů s číslem, řetězcem nebo hodnotou typu Boolean. Při porovnání uzlů se porovnává jejich řetězcová hodnota. Někdy může nastat poněkud neintuitivní situace. Např. porovnání: hodnota = množina-uzlů se vyhodnotí jako splněná podmínka, jestliže množina-uzlů obsahuje nějaký uzel řetězcovou hodnotou, která se shoduje s hodnotou hodnota. Naopak: hodnota!= množina-uzlů bude true, jestliže množina-uzlů obsahuje nějaký uzel s řetězcovou hodnotou, která se neshoduje s hodnotou hodnota. Z toho plyne, že oba výrazy mohou být vyhodnoceny současné jako true! Predikáty lze skládat pomocí běžných Booleovských operátorů and, or a not(). Jakékoliv relativní cesty vyskytující se v predikátu jsou uvažovány relativně ke kontextu danému krokem, který předchází predikát: /kniha[@třída="h.3.3" and autor="jiří Kosek"] Každá cesta začíná v nějakém počátečním bodě modelu XML dat. Cesta, která je ve výrazu uvozena znakem /, reprezentuje absolutní cestu, která vždy začíná v kořenovém uzlu. Absolutní cesta může vybrat více než jeden element. Dotaz / zřejmě vybírá celý dokument. Cesta začínající // může vést kdekoliv v dokumentu. Např. výraz: 5
6 //kniha[autor="jiří Kosek"]/titul označuje tituly knih daného autora, umístěné kdekoliv v dokumentu. Jiný příklad: kapitola[sekce]//nadpis označuje nadpisy sekcí všech kapitol. Cesta, která nezačíná /, reprezentuje relativní cestu začínající z běžného (kontextového) uzlu. Flexibilitu vyjadřování v XPath podporuje zástupný znak *. Znamená všechny elementy v daném kroku. Např.: //kniha/descendant::* -- dává všechny potomky každého elementu kniha //parent::* Ne zcela triviální je výraz: -- dává všechny elementy, které jsou rodičem nějakého uzlu (tj., listy stromu nebudou ve výsledku) obrázek/ancestor::kapitola/following-sibling::kapitola Jedná se o kapitolu, která je za nějakou kapitolou obsahující obrázek. V testech a predikátech můžeme používat rozmanité funkce. Jsou to funkce pro práci s primitivními datovými typy, ale i funkce pro práci s kolekcemi např. count() je funkce, vracející počet prvků argumentu, position() hledá prvek na nějaké pozici. Pro práci s řetězci lze využívat např. funkce string(exp), concat(), starts-with(). Uvažme několik příkladů: //book[@year = 2001 ] -- všechny knihy vydané v roce 2001 /books/book/author[position()=1] nebo zkráceně /books/book/author[1] //book[starts-with(title, Java Programming )]/author[1] -- první autor knih (o programování v Javě) self::node() -- jméno kontextového uzlu. Jak jsme se již zmínili dříve, výsledkem vyhodnocení výrazu XPath je číslo, Booleovská hodnota, řetězec, nebo množina či posloupnost uzlů. Pouze výrazy XPath založené na pojmu cesta označují dotazy. Jak již název jazyka napovídá, cesty v XPath mají výsadní postavení. Jde o zásadní konstrukt jazyka, který se objevuje i v dalších dotazovacích jazycích nad XML daty. Jednoduchá cesta specifikuje jeden krok v navigaci v modelu XML dat. Cesta je seznam jednoduchých cest (kroků), přičemž každý její krok je vyhodnocen v rámci nějakého kontextu. Je-li výsledkem kroku množina uzlů, v řeči XPath kontextová množina uzlů, vstupují tyto uzly jako kontext do následujícího kroku. Vznikající množiny uzlů se v každém kroku sjednocují. Např.: /books -- absolutní cesta, která vrací uzel odpovídající elementu books book/title -- relativní cesta, jejímž výsledkem jsou všechny nadpisy kapitol, které jsou dítětem běžného uzlu //title -- vybere každý element title, který se vyskytuje v dokumentu 3 Jazyk XPointer Smyslem jazyka XPointer [7] je možnost označit místo nebo oblast v XML dokumentu. Potřebujeme to např. tehdy, chceme-li se odkázat na nějaký prvek z jiného dokumentu. Pomocí výrazů jazyka XPath umíme označit cestu v XML dokumentu. Zkombinujeme-li toto označení s identifikací XML dokumentu, dostaneme jednoznačný odkaz na pozici v XML dokumentu. Podstatné je zde použití identifikátorů URI (Uniform Resource Identifier), které označují a lokalizují zdroje. XPointer přidává k tomuto označení výrazy jazyka XPath, který označíme pozici v tomto zdroji. Identifikátorem URI lze obecně označit zdroj, aniž by lokalizoval jeho uložení (je to prostě pouhý jednoznačný identifikátor). v případě výrazů jazyka XPointer je samozřejmě omezen pouze na XML zdroje, neboť jenom v tom případě má navigace přes XPath smysl. XPointer lze charakterizovat jako jednoduchý jazyk pro identifikaci fragmentů XML dokumentů. Jde vlastně o relativní adresování, které rozšiřuje možnosti vazby přes návěští známé z HTML. Pomocí výrazů jazyka XPointer lze vazby specifikovat k místům bez návěští a také k podřetězcům a částem XML stromů. 6
7 Obecná syntaxe výrazu v XPointer je velmi jednouchá: výraz_v_xpointer ::= jméno posloupnost_dětí úplný_výraz Nejčastěji používaný tvar výrazu v jazyce XPointer připomíná volání funkce s argumentem typu výraz v jazyce XPath : xpointer( výraz v jazyce XPath ) Ve spojení s konkrétním URL např. můžeme uvažovat výraz: který identifikuje šestou sekci článku umístěného v souboru tam.xml na adrese Části zápisu za znakem # se říká identifikátor fragmentu. Dlužno připomenout, že obecně lze uvést několik takových výrazů za sebou: xpointer( výraz v jazyce XPath ) + Výsledkem jsou pak všechny možné kombinace jednotlivých složek. Místo pseudofunkce xpointer lze použít i jiná rozšíření XPath. Pomocí výrazů XPointer lze lokalizovat např. element s daným ID (pomocí funkce id() z XPath), všechny elementy, které mají jistý atribut, n-tý element jistého typu, pro dané n, m-tého potomka n-tého elementu, pro daná n a m, a řadu dalších kombinací těchto možností. Nejjednodušším výrazem XPointer je pouhé jméno, což představuje zkratku za id(jméno). Výsledkem je element, jehož ID je jméno. Jinou možností je použít navigační posloupnost. Ta vybírá posloupnost uzlů elementů navigací v v modelu XML dokumentu. Jde vlastně o případ cesty v XPath, kdy je využívána pouze osa child. Posloupnost čísel elementů označujících cestu (např. /1/5/2) znamená, že z kořenového elementu se přejde na 5. podelement a z něho na 2. podelement. Následují příklady zahrnující úplné výrazy v XPointer. xpointer(/) -- označuje celý dokument xpointer(/child::lidé/child::osoba[@id= ]) V možných scénářích, jak využít jazyk XPointer, si můžeme např. představit situaci, kdy vybereme myší fragment XML textu a software využívající XPointer vygeneruje odpovídající identifikátor tohoto fragmentu XML dokumentu. 4 Jazyk XLink Jazyk HTML nabízí možnost vkládat do dokumentu hypertextové odkazy. Funkčnost odkazu v HTML má ovšem své hranice. URL většinou ukazují na celý dokument a dostat se k části textu vyžaduje ručně vkládat návěští do místa odkazu v cílovém souboru. Dalším nedostatkem může být fakt, že vazby pomocí HTML jsou pouze jednosměrné. Stopu odkazování lze sice uložit, nicméně zevnitř HTML nelze zjistit, odkud je na dokument odkazováno. Jazyk XLink [9] rozšiřuje netypované href vazby v HTML. Umožňuje vícesměnná spojení mezi zdroji (nejen tam i zpět) a propojení k libovolným pozicím v dokumentu (pomocí URI a XPointer). XLink (XML Linking Language) definuje spojení (vazbu) mezi dvěma nebo více zdroji. Oba jazyky XLink a XPointer se někdy souhrnně označují XLL. Jazyk XLink slouží pro specifikaci typovaných vazeb mezi XML dokumenty. Vazba v XLink je explicitní vztah mezi několika zdroji nebo jejich částmi. Vazba se zapisuje pomocí tzv. vazebního elementu (ve smyslu XML), bližší informace o vazbě se provádí pomocí jistých atributů. Jinými slovy, vazbu do dokumentu přidáme tak, že k některému elementu přidáme speciální atributy, které vazbu popisují. Deklarace vazby vyžaduje především určit její typ atributem type. Ten může nabývat několika hodnot. Pomocí typu simple a extended rozlišujeme vazby jednouché resp. vazby rozšířené. 7
8 Jednoduché vazby jsou podobné vazbám používaným v HTML. Jsou jednosměrné a spojují dva zdroje jeden lokální a jeden vzdálený. Rozšířená vazba může zahrnovat více zdrojů než dva. XML element se nazývá vazební v XLink, jestliže má atribut type a dodržuje jistá omezení daná jazykem XLink (požaduje např. specifikaci prostoru jmen xlink). v jazyce HTML lze lokální odkazy realizovat pomocí elementu <a>. Odkaz má tvar: <a href= #nav >, odkazované návěští je vyznačeno pomocí elementu <a name= nav >. Podobný mechanizmus lze v jazyce XLink realizovat tzv. jednoduchou vazbou. Např. vazebním elementem refr specifikujeme vazbu se dvěma konci, s jedním lokálním (implicitním) a jedním vzdáleným zdrojem. <refr xlink:type= simple xlink:href= >The W3C</refr> V dalším příkladu vazebního elementu ukážeme popis pomocí atributu title, který určuje blíže obsah lokálního zdroje. Tato informace může sloužit aplikaci a nemusí být viditelná uživateli. Atribut role blíže popisuje účel vazby. Je zřejmé, že v případě existence jakéhokoliv schématu pro XML dokument, musí být tyto atributy odpovídajícím způsobem deklarovány. <autor xmlns:xlink:type =... xlink:href= xlink:title= Honzova domácí stránka xlink:role= další informace o autorovi >Honza </autor> Rozšířené vazby mají informace o zdrojích umístěny do podelementů vazebního elementu. Jako příklad složitější vazby v XLink specifikujme vazbu se dvěma konci a se dvěma vzdálenými zdroji: <družba xml:link type= extended > <holandsky xml:link type= locator href= /> <anglicky xml:link type= locator href= /> Dvoujazyčné párování informací na Webu </družba> Lze dokonce vyjádřit více hran (vícesměrnost) v rámci jedné vazby. To souvisí s procházením participujících zdrojů v dané vazbě. U rozšířených vazeb je možné iniciovat procházení z jakéhokoliv participujícího zdroje, zatímco u jednoduché vazby pouze z lokálního. Další možnosti využití jazyka XLink je vnitřní svázání posloupnosti prvků v rámci jednoho lokálního zdroje: <slide> <zpět xlink:type= simple xlink:href= xpointer(ancestor::slide/ preceding-sibling::slide[position()=1]) > na předchozí</zpět> <dopředu xlink:type= simple xlink:href= xpointer(ancestor::slide/ following-sibling::slide[position()=1]) > na další</dopředu> </slide> 5 Dotazovací jazyk XQuery Pro účely dotazování nad XML daty a databázemi vytvořilo konsorcium W3C specifikaci dotazovacího jazyka XQuery [1] (používá se také označení XML Query). První použitelná verze specifikace tohoto jazyka byla uveřejněna v květnu 2003, v době přípravy tohoto příspěvku byla aktuální verze z roku 2005, některé dodatky rozšiřující XQuery o možnost modifikace (XQuery Update Facility) jsou datovány v lednu V současné době zahrnuje specifikace XQuery asi 15 dokumentů, od popisu modelu dat, syntaxe dotazů, až po specifikaci funkcí, operátorů, nebo specifikaci prostředků pro manipulaci s XML daty. 8
9 XQuery je funkcionální jazyk vybudovaný nad jazykem XPath. Výrazy jazyka XPath používáme v XQuery pro dotazy nad XML dokumenty. Výsledkem dotazu je sada nebo posloupnost uzlů, ze kterých budeme chtít zkonstruovat výstup dotazu. Proto potřebujeme v jazyce XQuery konstrukty, které dovolují vytváření elementů, zejména v souvislosti s daty získanými dotazem. Důležitým konstruktem jazyka XQuery jsou proměnné. Označujeme je identifikátory s prefixem $, např. $book. Proměnné nesou hodnoty během zpracování, lze se na ně odkazovat ve výrazech, např. avg($book/price) vypočte průměrnou cenu knihy. 5.1 Struktura dotazu v XQuery Dotaz v jazyce XQuery má dvě části prolog a tělo dotazu (body). Prolog slouží k zavedení jmenných prostorů, pro import modulů, definici schématu a funkcí, deklaraci globálních proměnných. Tělo dotazu je výraz, jehož hodnota v prostředí definovaném prologem představuje výstup dotazu. Uvažme jednoduchý příklad dotazu, kterým chceme nalézt ve vstupním dokumentu knihu (element book) a vytvořit výstupní element (označený značkou result), který bude obsahovat název a autora knihy. Označme si název knihy jako proměnnou $b a autora jako proměnnou $a. Výstup může vypadat např. takto: <result> <book>$b</book> <author>$a</author> </result> Do tohoto výstupu musíme ale dosadit nalezené tituly a autory. Na to slouží v jazyce XQuery konstrukce nazývaná FLWOR (čti flauvr, tedy zvukově stejně jako květina flower ). Tato zkratka znamená For, Let, Where, Order-By, Return a je obdobou příkazu SELECT jazyka SQL. Složky FLWOR jsou ovšem zapsány obráceně. for $b in //book let $a = $b/author return <result> <book>$b</book> <author>$a</author> </result> Výraz //book označuje libovolný element typu book v probíraném XML dokumentu. Pokud potřebujeme, aby se některá část výrazu vyhodnotila, použijeme složené závorky. Např. výraz: <book>{$b/title}</book> označuje element book, jehož obsahem bude potomek title aktuálního obsahu proměnné b. Podobně, následující výraz: <result> <book>$b</book> <author>$a</author> </result> představuje element result, jehož obsahem budou elementy book a author, naplněné obsahem odpovídajících proměnných. Výraz FLWOR má obecně gramatiku: flwor_exp ::= (for_exp let_exp)?... where_exp? order_ by? return_exp kde hlavičkou je některý z následujících výrazů: for_exp ::= FOR var IN exp [, var IN exp] let_exp ::= LET var := exp [, var := exp] Klausule where obsahuje výraz chápaný jako podmínka, která slouží k omezení na případy, kdy aktuální prostředí splňuje tuto podmínku. Klausulí order by lze stanovit uspořádání výstupu 9
10 ( ascending nebo descending ). Konečně klausule return obsahuje výraz, který slouží pro konstrukci výstupu. Klausule let slouží pro navázání hodnoty proměnné. Např. následující konstrukce: let $x := (1 to 5) return <test>{$x}</test> vygeneruje výsledek: <test> </test> 5.2 Příklady dotazů v jazyce XQuery Uvažme jako příklad situaci, kdy potřebujeme nalézt názvy knih vydaných v roce 2003: for $b in doc( books.xml )//book where $b/@year = 2003 return <book>{$b/title}</book> V jazyce XPath by se téhož dosáhlo dotazem: doc( books.xml )//book[@year = 2003 ]/title Jako další příklad uvažme situaci, kdy potřebujeme nalézt názvy všech knih pro každého autora: let $b := doc( books.xml )/books/book for $a in distinct($b/author) return <author name= {$a} > {$b[author = $a]/title} </author> Potřebujeme-li podmínit výstup dotazu, můžeme použít konstrukci if then else. Např. můžeme ohodnotit ceny knih v souboru books.xml dle své představy normální či vysoké ceny: <result> {for $b IN doc( books.xml )//book return <book> <title>{b$/title}</title> {if $b/price > 1500 then <price>high</price> else <price>normal</price>} </book> } </result> Jazyk XQuery obsahuje také kvantifikátory some (existenční) a every (univerzální). Chceme-li např. vybrat tituly knih, které mají více než jednoho autora a jeden z nich se jmenuje Jan, můžeme použít kvantifikovaný výraz: for $b in doc( books.xml )//book where count($b/author) > 1 and some $a in $b/author satisfies $a/first = Jan return $b/title Uvažme ještě příklad, kdy chceme ze vstupního dokumentu vybrat všechny tituly knih a vytvořit z nich seznam v HTML: <html> <body><h1>seznam</h1> <ul>{ for $x in doc("books.xml")/bookstore/book/title order by $x return <li>{data($x)}</li> }</ul> </body> </html> 10
11 6 Závěr Ukázali jsme základní principy dotazovacích jazyků z rodiny XML, které podporuje konsorcium W3C. Tyto jazyky spolu navzájem úzce souvisí, za základ se obvykle považuje jazyk XPath. XPath je deklarativní jazyk sloužící pro alokaci uzlů a fragmentů v XML stromech. K alokaci zdrojů je zaveden jazyk XPointer. Ten využívá univerzální identifikace XML zdrojů pomocí URI, kterou doplňuje o výraz v XPath, popisujícího odkazovaný fragment dokumentu. Vedle zmíněného použití pro adresaci v XPointer se XPath dále používá v XSLT (pro porovnání vzorů), v jazyku XML Schema (pro popis jednoznačnosti a rozsahů) a v jazyku XQuery (pro selekci a iteraci). Jazyk XLink zobecňuje pojem vazby z HTML a zavádí do XML další, vyšší stupeň abstrakce. I když nejde přímo o hypertext, získáváme složitější datové struktury než samotně XML dokumenty. Existují ovšem i jisté problémy odrážející stav vývoje jazyků. v době psaní tohoto textu např. žádný obecný webový prohlížeč ani jiné aplikace nepodporovaly libovolné vazby v XLink, nebo nemusí být vazby implementovány konzistentně. Na závěr byl ilustrován princip jazyka XQuery, který představuje zatím nejucelenější dotazovací jazyk, navrhovaný konsorciem W3C pro dotazování nad XML daty a dokumenty. Literatura [1] Boag, S. et al.: XQuery 1.0: An XML Query Language, W3C Candidate Recommendation, 03 November Dostupné na: [2] Bray, T. et al.: Extensible Markup Language (XML) 1.0 (Third Edition), W3C Recommendation, 04 February Dostupné na: [3] Bray, T. et al.: Extensible Markup Language (XML) 1.1. W3C Recommendation 15 April Dostupné na: [4] Clark, J., DeRose, S.: XML Path Language (XPath) Version 1.0, W3C Recommendation 16 November Dostupné na: [5] Cowan, J., Tobin, R.: XML Information Set (Second Edition). W3C Recommendation 4 February Dostupné na: [6] Fernández, M. et al.: XQuery 1.0 and XPath 2.0 Data Model (XDM). W3C Candidate Recommendation 3 November Dostupné na: [7] Grosso, P. et al.: XPointer xpointer() Scheme. W3C Recommendation 25 March Dostupné na: [8] Mlýnková, I, Pokorný, J., Richta, K., Toman, K, Toman, V.: Technologie XML. In: Europen 2004, Dolní Morava Dostupné na: [9] Walsh, N. et al.: XML Linking Language (XLink) Version 1.0, W3C Recommendation 27 June Dostupné na: Summary This paper briefly describes languages XPath, XPointer, XLink and XQuery. The basic principles of these languages are explained on small examples. Due to the lack of space, the only fundamental constructions are elaborated. 11
PRG036 Technologie XML
PRG036 Technologie XML Přednáší: Irena Mlýnková (mlynkova@ksi.mff.cuni.cz) Martin Nečaský (necasky@ksi.mff.cuni.cz) LS 2010 Stránka přednášky: http://www.ksi.mff.cuni.cz/~mlynkova/prg036/ 1 Osnova předmětu
VícePRG036 Technologie XML
PRG036 Technologie XML Přednáší: Irena Mlýnková (mlynkova@ksi.mff.cuni.cz) Martin Nečaský (necasky@ksi.mff.cuni.cz) LS 2010 Stránka přednášky: http://www.ksi.mff.cuni.cz/~mlynkova/prg036/ 1 Osnova předmětu
VíceAplikace počítačů v provozu vozidel 9
Aplikace počítačů v provozu vozidel 9 2 Databázové systémy Rozvoj IS je spjatý s rozvojem výpočetní techniky, především počítačů. V počátcích se zpracovávaly velké objemy informací na jednom počítači,
VíceBudování aplikačních rozhraní pro obousměrnou komunikaci mezi ERMS a jejich vztah k Národnímu standardu pro komunikaci mezi ERMS.
Budování aplikačních rozhraní pro obousměrnou komunikaci mezi ERMS a jejich vztah k Národnímu standardu pro komunikaci mezi ERMS. Použité zkratky ERMS ESS i AIS ESS elektronická spisová služba AIS agendový
VícePříloha č. 54. Specifikace hromadné aktualizace SMS-KLAS
Název projektu: Redesign Statistického informačního systému v návaznosti na zavádění egovernmentu v ČR Příjemce: Česká republika Český statistický úřad Registrační číslo projektu: CZ.1.06/1.1.00/07.06396
VíceStřední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace
Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Algoritmizace a programování Téma: XML Vyučující: Ing. Milan Káža Třída: EK3 Hodina: 18 Číslo: V/5 Programování
VíceDatabázové a informační systémy
Databázové a informační systémy 1. Teorie normálních forem Pojem normálních forem se používá ve spojitosti s dobře navrženými tabulkami. Správně vytvořené tabulky splňují 4 základní normální formy, které
VíceV této části manuálu bude popsán postup jak vytvářet a modifikovat stránky v publikačním systému Moris a jak plně využít všech možností systému.
V této části manuálu bude popsán postup jak vytvářet a modifikovat stránky v publikačním systému Moris a jak plně využít všech možností systému. MENU Tvorba základního menu Ikona Menu umožňuje vytvořit
VíceČÁST PÁTÁ POZEMKY V KATASTRU NEMOVITOSTÍ
ČÁST PÁTÁ POZEMKY V KATASTRU NEMOVITOSTÍ Pozemkem se podle 2 písm. a) katastrálního zákona rozumí část zemského povrchu, a to část taková, která je od sousedních částí zemského povrchu (sousedních pozemků)
VíceAlgoritmizace a programování
Algoritmizace a programování V algoritmizaci a programování je důležitá schopnost analyzovat a myslet. Všeobecně jsou odrazovým můstkem pro řešení neobvyklých, ale i každodenních problémů. Naučí nás rozdělit
VíceModerní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/07.0018. 3. Reálná čísla
Moderní technologie ve studiu aplikované fyziky CZ..07/..00/07.008 3. Reálná čísla RACIONÁLNÍ A IRACIONÁLNÍ ČÍSLA Význačnými množinami jsou číselné množiny. K nejvýznamnějším patří množina reálných čísel,
Více1.7. Mechanické kmitání
1.7. Mechanické kmitání. 1. Umět vysvětlit princip netlumeného kmitavého pohybu.. Umět srovnat periodický kmitavý pohyb s periodickým pohybem po kružnici. 3. Znát charakteristické veličiny periodického
VíceRegenerace zahrady MŠ Neděliště
1 Výzva k podání nabídek (dále jen zadávací dokumentace ) v souladu se Závaznými pokyny pro žadatele a příjemce podpory v OPŽP (dále jen Pokyny ), účinnými od 20.06.2014 Zadavatel: Název zadavatele: OBEC
VíceAlgoritmizace a programování
Pátek 14. října Algoritmizace a programování V algoritmizaci a programování je důležitá schopnost analyzovat a myslet. Všeobecně jsou odrazovým můstkem pro řešení neobvyklých, ale i každodenních problémů.
Více3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java
3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java Studijní cíl V tomto bloku navážeme na konec předchozího bloku a seznámíme se s vývojovými prostředími, které se nejčastěji používají
VíceBakalářská práce. Vladimír Mareš
Bakalářská práce Vladimír Mareš Pedagogická fakulta Jihočeské univerzity Katedra informatiky Dotazovací jazyky pro XML a nativní XML databáze bakalářská práce Autor: Vladimír Mareš Vedoucí bakalářské práce:
VíceMOBILNÍ KOMUNIKACE STRUKTURA GSM SÍTĚ
MOBILNÍ KOMUNIKACE STRUKTURA GSM SÍTĚ Jiří Čermák Letní semestr 2005/2006 Struktura sítě GSM Mobilní sítě GSM byly původně vyvíjeny za účelem přenosu hlasu. Protože ale fungují na digitálním principu i
VíceCo najdete v ASPI? (pro uživatele SVI FSE UJEP)
Co najdete v ASPI? (pro uživatele SVI FSE UJEP) ASPI = komplexní pokrytí všech předpisů publikovaných na území ČR včetně předpisů měst a obcí a předpisů ES / EU Manuál ASPI: http://www.systemaspi.cz/co_je_system_aspi/co_je_system_aspi.html
Víceúčetních informací státu při přenosu účetního záznamu,
Strana 6230 Sbírka zákonů č. 383 / 2009 Částka 124 383 VYHLÁŠKA ze dne 27. října 2009 o účetních záznamech v technické formě vybraných účetních jednotek a jejich předávání do centrálního systému účetních
Více-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy
-1- I I. N á v r h VYHLÁŠKY ze dne 2009 o účetních záznamech v technické formě vybraných účetních jednotek a jejich předávání do centrálního systému účetních informací státu a o požadavcích na technické
VíceData v počítači EIS MIS TPS. Informační systémy 2. Spojení: e-mail: jan.skrbek@tul.cz tel.: 48 535 2442 Konzultace: úterý 14 20-15 50
Informační systémy 2 Data v počítači EIS MIS TPS strategické řízení taktické řízení operativní řízení a provozu Spojení: e-mail: jan.skrbek@tul.cz tel.: 48 535 2442 Konzultace: úterý 14 20-15 50 18.3.2014
VíceUložené procedury Úvod ulehčit správu zabezpečení rychleji
Uložené procedury Úvod Uložená procedura (rutina) je sada příkazů SQL, které jsou uložené na databázovém serveru a vykonává se tak, že je zavolána prostřednictvím dotazu názvem, který jim byl přiřazen
VíceKótování na strojnických výkresech 1.část
Kótování na strojnických výkresech 1.část Pro čtení výkresů, tj. určení rozměrů nebo polohy předmětu, jsou rozhodující kóty. Z tohoto důvodu je kótování jedna z nejzodpovědnějších prací na technických
VíceSoubory a databáze. Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů
Datový typ soubor Soubory a databáze Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů Záznam soubor se skládá ze záznamů, které popisují
VíceVYR-32 POKYNY PRO SPRÁVNOU VÝROBNÍ PRAXI - DOPLNĚK 6
VYR-32 POKYNY PRO SPRÁVNOU VÝROBNÍ PRAXI - DOPLNĚK 6 Platnost od 1.1.2004 VÝROBA PLYNŮ PRO MEDICINÁLNÍ ÚČELY VYDÁNÍ PROSINEC 2003 1. Zásady Tento doplněk se zabývá průmyslovou výrobou medicinálních plynů,
VíceSeriál: Management projektů 7. rámcového programu
Seriál: Management projektů 7. rámcového programu Část 4 Podpis Konsorciální smlouvy V předchozím čísle seriálu o Managementu projektů 7. rámcového programu pro výzkum, vývoj a demonstrace (7.RP) byl popsán
VíceNÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO 3.5.5 PŘÍRUČKA UŽIVATELE
NÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO 3.5.5 PŘÍRUČKA UŽIVATELE 1. Přehled možností programu 1.1. Hlavní okno Hlavní okno programu se skládá ze čtyř karet : Projekt, Zadání, Výsledky a Návrhový
VíceM. Balíková, R. Záhořík, NK ČR 1
M. Balíková, R. Záhořík, NK ČR 1 Geolink.nkp.cz Prototyp aplikace obohacení geografických autorit o údaje souřadnic s následným zobrazením dané lokality na mapě - kartografické matematické údaje v záznamech
VíceOBEC HORNÍ MĚSTO Spisový řád
OBEC HORNÍ MĚSTO Spisový řád Obsah: 1. Úvodní ustanovení 2. Příjem dokumentů 3. Evidence dokumentů 4. Vyřizování dokumentů 5. Podepisování dokumentů a užití razítek 6. Odesílání dokumentů 7. Ukládání dokumentů
VíceOrientační průvodce mateřstvím a rodičovstvím v zadávacích dokumentacích poskytovatele
Orientační průvodce mateřstvím a rodičovstvím v zadávacích dokumentacích poskytovatele Z důvodu ulehčení, snazší orientace, poskytnutí jednoznačných a široce komunikovatelných pravidel v otázkách mateřství
Více54_2008_Sb 54/2008 VYHLÁŠKA. ze dne 6. února 2008
54/2008 VYHLÁŠKA ze dne 6. února 2008 o způsobu předepisování léčivých přípravků, údajích uváděných na lékařském předpisu a o pravidlech používání lékařských předpisů Změna: 405/2008 Sb. Změna: 177/2010
VíceČl. 3 Poskytnutí finančních prostředků vyčleněných na rozvojový program Čl. 4 Předkládání žádostí, poskytování dotací, časové určení programu
Vyhlášení rozvojového programu na podporu navýšení kapacit ve školských poradenských zařízeních v roce 2016 čj.: MSMT-10938/2016 ze dne 29. března 2016 Ministerstvo školství, mládeže a tělovýchovy (dále
VíceFOND VYSOČINY NÁZEV GP
RF-04-2009-01, př. 1upr1 Počet stran: 6 FOND VYSOČINY Výzva k předkládání projektů vyhlášená v souladu se Statutem účelového Fondu Vysočiny 1) Název programu: NÁZEV GP Grantový program na podporu 2) Celkový
VíceManuál Kentico CMSDesk pro KDU-ČSL
Manuál Kentico CMSDesk pro KDU-ČSL 2011 KDU-ČSL Obsah 1 Obecně... 3 1.1 Přihlašování... 3 1.2 Uživatelské prostředí... 4 2 Stránky... 4 2.1 Vytvoření nové stránky... 4 2.1.1 Texty... 7 2.1.2 Styly textu...
VíceNáležitosti nutné k zahájení znaleckých úkonů
1 Náležitosti nutné k zahájení znaleckých úkonů 1. V písemné podobě dodat žádost o vypracování znaleckého posudku Žádost musí obsahovat: a) Jméno (název firmy), adresu zadavatele posudku b) Spojení na
Více170/2010 Sb. VYHLÁŠKA. ze dne 21. května 2010
170/2010 Sb. VYHLÁŠKA ze dne 21. května 2010 o bateriích a akumulátorech a o změně vyhlášky č. 383/2001 Sb., o podrobnostech nakládání s odpady, ve znění pozdějších předpisů Ministerstvo životního prostředí
VíceS_5_Spisový a skartační řád
Základní škola a mateřská škola Staré Město, okres Frýdek-Místek, příspěvková organizace S_5_Spisový a skartační řád Č.j.:ZS6/2006-3 Účinnost od: 1. 5. 2011 Spisový znak: C19 Skartační znak: S10 Změny:
VíceNeuronová síť. x 2 x 3. σ j. x 4. x 5. Menu: QCExpert Prediktivní metody
Neuronová síť Menu: QCExpert Prediktivní metody Neuronová síť Neuronová síť (Artificial Neural Network, ANN, resp. NN) je velmi populární a výkonná metoda, která se používá k modelování vztahu mezi vícerozměrnou
VíceMatematický model kamery v afinním prostoru
CENTER FOR MACHINE PERCEPTION CZECH TECHNICAL UNIVERSITY Matematický model kamery v afinním prostoru (Verze 1.0.1) Jan Šochman, Tomáš Pajdla sochmj1@cmp.felk.cvut.cz, pajdla@cmp.felk.cvut.cz CTU CMP 2002
Více4.5.1 Magnety, magnetické pole
4.5.1 Magnety, magnetické pole Předpoklady: 4101 Pomůcky: magnety, kancelářské sponky, papír, dřevěná dýha, hliníková kulička, měděná kulička (drát), železné piliny, papír, jehla (špendlík), korek (kus
VíceKRAJSKÝ ÚŘAD JIHOMORAVSKÉHO KRAJE Odbor dopravy Žerotínovo náměstí 3/5, 601 82 Brno
KRAJSKÝ ÚŘAD JIHOMORAVSKÉHO KRAJE Odbor dopravy Žerotínovo náměstí 3/5, 601 82 Brno Č. j.: JMK 46925/2013 S. zn.: S - JMK 46925/2013/OD Brno dne 20.06.2013 OP ATŘENÍ OB EC NÉ P OV AH Y Krajský úřad Jihomoravského
VíceVYUŽITÍ NEURONOVÝCH SÍTÍ PROSTŘEDÍ MATLAB K PREDIKCI HODNOT NÁKLADŮ PRO ELEKTRICKÉ OBLOUKOVÉ PECE
VYUŽITÍ NEURONOVÝCH SÍTÍ PROSTŘEDÍ MATLAB K PREDIKCI HODNOT NÁKLADŮ PRO ELEKTRICKÉ OBLOUKOVÉ PECE V. Hon VŠB TU Ostrava, FEI, K455, 17. Listopadu 15, Ostrava Poruba, 70833 Abstrakt Neuronová síť (dále
VíceJazyk S Q L základy, příkazy pro práci s daty
Jazyk S Q L základy, příkazy pro práci s daty Základní pojmy jazyk množina řetězců nad abecedou gramatika popisuje syntaxi výrazů jazyka pravidla, jak vytvářet platné řetězce jazyka. dotazovací jazyk je
Více7. Domy a byty. 7.1. Charakteristika domovního fondu
7. Domy a byty Sčítání lidu, domů a bytů 2011 podléhají všechny domy, které jsou určeny k bydlení (např. rodinné, bytové domy), ubytovací zařízení určená k bydlení (domovy důchodců, penziony pro důchodce,
VícePostup šetření pro rok 2009. Ministerstvo pro místní rozvoj Odbor veřejného investování
Vytvoření adekvátního systému získávání informací o legislativních, zadáváním veřejných zakázek a informací od jednotlivých zadavatelů ohledně přijímání elektronických obchodních praktik Postup šetření
VícePŘÍLOHA 1.6 SMLOUVY O PŘÍSTUPU K VEŘEJNÉ PEVNÉ KOMUNIKAČNÍ SÍTI LOGISTIKA KONCOVÝCH ZAŘÍZENÍ
PŘÍLOHA 1.6 SMLOUVY O PŘÍSTUPU K VEŘEJNÉ PEVNÉ KOMUNIKAČNÍ SÍTI LOGISTIKA KONCOVÝCH ZAŘÍZENÍ Obsah 1 Koncová zařízení... 3 2 Charakteristika typů služeb logistika KZ Dodání KZ, Instalace KZ... 3 3 Další
VíceI. Objemové tíhy, vlastní tíha a užitná zatížení pozemních staveb
I. Objemové tíhy, vlastní tíha a užitná zatížení pozemních staveb 1 VŠEOBECNĚ ČSN EN 1991-1-1 poskytuje pokyny pro stanovení objemové tíhy stavebních a skladovaných materiálů nebo výrobků, pro vlastní
VíceZadávací dokumentace
Zadávací dokumentace Název veřejné zakázky: Fotovoltaická elektrárna Cítov Identifikační údaje zadavatele: Obec Cítov Cítov 203 277 04 Cítov IČ: 00236764 Osoba oprávněná jednat za zadavatele: Ing. Marie
VíceNástroje produktivity
Nástroje produktivity Skupina nástrojů zvyšující produktivitu práce. Automatický update obsahu a vzhledu dokumentu (textů i obrázků, včetně obrázků v galerii) při změně dat. Export 3D obrázků z dokumentu
VíceObjektově orientované databáze
Objektově orientované databáze Miroslav Beneš Obsah přednášky Motivace Vlastnosti databázových systémů Logické datové modely Co potřebujeme modelovat? Identifikace entit v~relačních SŘBD Co je to objektová
VíceSoftware IS Řízení stavebních zakázek
Software IS Řízení stavebních zakázek Stručný popis Informačního systému řízení zakázek Hlavní cíl - sledování zakázky od jejího mapování, získání, realizaci, dokončení a běhu záručních lhůt. Obsah a rozsah
VíceROZDÍLY MEZI RDF MODELEM A TOPIC MAPS DIFFERENCES BETWEEN RDF MODEL AND TOPIC MAPS. Martin Žáček
ROZDÍLY MEZI RDF MODELEM A TOPIC MAPS DIFFERENCES BETWEEN RDF MODEL AND TOPIC MAPS Martin Žáček Katedra informatiky a počítačů, Přírodovědecká fakulta, Ostravská univerzita v Ostravě, 30. Dubna 22, Ostrava,
VíceČíslicová technika 3 učební texty (SPŠ Zlín) str.: - 1 -
Číslicová technika učební texty (SPŠ Zlín) str.: - -.. ČÍTAČE Mnohá logická rozhodnutí jsou založena na vyhodnocení počtu opakujících se jevů. Takovými jevy jsou např. rychlost otáčení nebo cykly stroje,
VíceOBOUSMĚRNÝ PŘEKLAD V ELETRONICKÝCH SLOVNÍCÍCH ZNAKOVÉHO JAZYKA
OBOUSMĚRNÝ PŘEKLAD V ELETRONICKÝCH SLOVNÍCÍCH ZNAKOVÉHO JAZYKA Langer J. Univerzita Palackého v Olomouci Anotace: Cílem příspěvku je přiblížit problematiku lexikografie znakového jazyka i jejích specifik
VíceS t r á n k a 1 I N V E S T I C E D O R O Z V O J E V Z D Ě L Á V Á N Í
S t r á n k a 1 Zadavatel: Centrum pro zjišťování výsledků vzdělávání, příspěvková organizace Jeruzalémská 957/12 110 06 Praha 1 IČ: 72029455 DIČ: CZ72029455 Zastoupený: Mgr. Martinem Machem, ředitelem
VíceNovela zákona o DPH a změny v programu Účtárna k 1.4.2011
Novela zákona o DPH a změny v programu Účtárna k 1.4.2011 Vážení uživatelé programového vybavení firmy VIS, jistě jste z médií zaznamenali informaci, o novelizaci zákona č. 235/2004 Sb., o dani z přidané
VíceVýzva k podání nabídek (zadávací dokumentace)
Výzva k podání nabídek (zadávací dokumentace) 1.Číslo zakázky 2.Název programu: 3.Registrační číslo projektu 4.Název projektu: 5.Název zakázky: Operační program Vzdělání pro konkurenceschopnost CZ.1.07/1.1.07/02.0129
VíceZADÁVACÍ DOKUMENTACE
Příloha č. 7 ZADÁVACÍ DOKUMENTACE pro veřejnou zakázku na stavební práce mimo režim zákona o veřejných zakázkách č. 137/2006 Sb., o veřejných zakázkách v platném znění, a dle Závazných pokynů pro žadatele
VíceDODATEČNÉ INFORMACE Č. 4 K ZADÁVACÍM PODMÍNKÁM VEŘEJNÉ ZAKÁZKY
DODATEČNÉ INFORMACE Č. 4 K ZADÁVACÍM PODMÍNKÁM VEŘEJNÉ ZAKÁZKY Komplexní servis prádla a oděvů pro Nemocnici Jihlava Nadlimitní zakázka na služby zadávaná v otevřeném řízení dle zákona 137/2006 Sb., o
VíceÚstavní sociální služby pro osoby s postižením v Moravskoslezském kraji
, 3P Consulting, s. r. o., Římská 2, 20 00 Praha 2 telefon: (+420) 739 548 469 e-mail: info@trass.cz web: www.trass.cz Ústavní sociální služby pro osoby s v Moravskoslezském kraji Přehled a charakteristika
VíceČeská zemědělská univerzita v Praze Fakulta provozně ekonomická. Obor veřejná správa a regionální rozvoj. Diplomová práce
Česká zemědělská univerzita v Praze Fakulta provozně ekonomická Obor veřejná správa a regionální rozvoj Diplomová práce Problémy obce při zpracování rozpočtu obce TEZE Diplomant: Vedoucí diplomové práce:
VíceMemoria Mundi Series Bohemica z trezoru na Internet
Memoria Mundi Series Bohemica z trezoru na Internet Ing. Stanislav Psohlavec AiP Beroun s.r.o. Pilíře projektu MMSB... 1 Digitalizace, digitální dokumenty, digitální knihovna... 1 MASTER... 1 Využívání
VíceJihočeský vodárenský svaz S. K. Neumanna 19, 370 01 České Budějovice
ZADÁVACÍ DOKUMENTACE : na realizaci veřejné zakázky na stavební práce stavby č. 8514 a 8520 Vodovod průmyslová zóna Sezimovo Ústí a Vodovodní přípojka C Energy Zadavatel: Jihočeský vodárenský svaz S. K.
VíceExponenciála matice a její užití. fundamentálních matic. Užití mocninných řad pro rovnice druhého řádu
1 Tutoriál č. 3 Exponenciála matice a její užití řešení Cauchyovy úlohy pro lineární systémy užitím fundamentálních matic. Užití mocninných řad pro rovnice druhého řádu 0.1 Exponenciála matice a její užití
VícePosouzení stávající soustavy vytápění. Posouzení stávající soustavy vytápění. Semináře JOULE 2012 Ing. Vladimír Galad galad@volny.
Posouzení stávající soustavy vytápění ÚVOD Připomeňme si, že existuje několik typů soustav pro vytápění a s nástupem nových technologií a využívání netradičních a obnovitelných zdrojů tepla přibývá řada
VícePracovní návrh. VYHLÁŠKA Ministerstva práce a sociálních věcí. ze dne.2013. o hygienických požadavcích na prostory a provoz dětské skupiny do 12 dětí
Pracovní návrh VYHLÁŠKA Ministerstva práce a sociálních věcí ze dne.2013 o hygienických požadavcích na prostory a provoz dětské skupiny do 12 dětí Ministerstvo práce a sociálních věcí stanoví podle 26
VíceNa následující stránce je poskytnuta informace o tom, komu je tento produkt určen. Pro vyplnění nového hlášení se klikněte na tlačítko Zadat nové
Pro usnadnění podání Ročního hlášení o produkci a nakládání s odpady může posloužit služba firmy INISOFT, která je zdarma přístupná na WWW stránkách firmy. WWW.INISOFT.CZ Celý proces tvorby formuláře hlášení
VíceDatabáze Caché CSP Custom Tags
CSP custom tags Databáze Caché CSP Custom Tags vlastní značky vývoj vlastních tagů pro CSP stránky možnost přidat novou funkcionalitu, ale zachovat stejnou syntaxi možnost vyvíjet znovupoužitelné komponenty
VíceSKLÁDANÉ OPĚRNÉ STĚNY
Široký sortiment betonových prvků pro vnější architekturu nabízí také prvky, z nichž lze buď suchou montáží anebo kombinací suché montáže a monolitického betonu zhotovit opěrné stěny. Opěrná stěna je velmi
VíceKatedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ
Katedra obecné elektrotechniky Fakulta elektrotechniky a informatiky, VŠB - TU Ostrava 16. ZÁKLADY LOGICKÉHO ŘÍZENÍ Obsah 1. Úvod 2. Kontaktní logické řízení 3. Logické řízení bezkontaktní Leden 2006 Ing.
Více2/3.3 Spis. Správní řád v praxi. 2/3.3 str. 1
Správní orgány str. 1 Spis 17 Na rozdíl od dosavadního zákona, který ponechával vedení spisu pouze na interních předpisech, byla nyní v zájmu právní jistoty jeho úprava zařazena přímo do správního řádu.
Vícetéma: Formuláře v MS Access
DUM 06 téma: Formuláře v MS Access ze sady: 3 tematický okruh sady: Databáze ze šablony: 07 - Kancelářský software určeno pro: 2. ročník vzdělávací obor: vzdělávací oblast: číslo projektu: anotace: metodika:
Více1.2.5 Reálná čísla I. Předpoklady: 010204
.2.5 Reálná čísla I Předpoklady: 00204 Značíme R. Reálná čísla jsou čísla, kterými se vyjadřují délky úseček, čísla jim opačná a 0. Každé reálné číslo je na číselné ose znázorněno právě jedním bodem. Každý
VíceModul Řízení objednávek. www.money.cz
Modul Řízení objednávek www.money.cz 2 Money S5 Řízení objednávek Funkce modulu Obchodní modul Money S5 Řízení objednávek slouží k uskutečnění hromadných akcí s objednávkami, které zajistí dostatečné množství
VícePravidla. používání Národního elektronického nástroje při realizaci zadávacích postupů prostřednictvím národního elektronického nástroje
Příloha usnesení vlády ze dne 18. ledna 2016 č. 25 Pravidla používání Národního elektronického nástroje při realizaci zadávacích postupů prostřednictvím národního elektronického nástroje Preambule V souladu
VíceDotační program města Uherský Brod na podporu kulturních akcí
Dotační program města Uherský Brod na podporu kulturních akcí Článek I. Účel 1) Dotační program města Uherský Brod na podporu kulturních akcí (dále jen Program) je určen k poskytování dotací z rozpočtu
VíceKočí, R.: Účelové pozemní komunikace a jejich právní ochrana Leges Praha, 2011
Kočí, R.: Účelové pozemní komunikace a jejich právní ochrana Leges Praha, 2011 Účelové komunikace jsou důležitou a rozsáhlou částí sítě pozemních komunikací v České republice. Na rozdíl od ostatních kategorií
VíceMěsto Mariánské Lázně
Město Mariánské Lázně Pravidla pro poskytování dotací na sportovní činnost Město Mariánské Lázně rozhodlo dne 11.12.2012 usnesením zastupitelstva města č. ZM/481/12 vydat tato Pravidla pro poskytování
Více3.5.8 Otočení. Předpoklady: 3506
3.5.8 Otočení Předpoklady: 3506 efinice úhlu ze základní školy: Úhel je část roviny ohraničená dvojicí polopřímek se společným počátečním bodem (konvexní a nekonvexní úhel). Nevýhody této definice: Nevíme,
VícePracovní právo seminární práce
Pracovní právo seminární práce 1. Úvod do problematiky Tématem mé seminární práce je problematika pracovního práva a jeho institutů. V několika nadcházejících kapitolách bych se chtěl zabývat obecnou systematikou
VíceVNITŘNÍ NORMA (Směrnice) č. 4/2010
Město Štramberk Náměstí 9, 742 66 VNITŘNÍ NORMA (Směrnice) č. 4/2010 Oběh účetních dokladů Platnost: od roku 2010 Pro účetní případy roku 2010, použití od zahájení účtování účetních případů roku 2010.
VíceVymezení poloz ek způ sobily ch ná kládů meziná rodní ch projektů ná principů LA pro rok 2017
Vymezení poloz ek způ sobily ch ná kládů meziná rodní ch projektů ná principů LA pro rok 2017 1.1. Vymezení způsobilých nákladů obecná část (1) Účelová podpora může být poskytnuta pouze na činnosti definované
VíceMETODICKÝ POKYN NÁRODNÍHO ORGÁNU
Ministerstvo pro místní rozvoj METODICKÝ POKYN NÁRODNÍHO ORGÁNU Program přeshraniční spolupráce Cíl 3 Česká republika Svobodný stát Bavorsko 2007-2013 MP číslo: 2/Příručka pro české žadatele, 5. vydání
VíceEVROPSKÝ PARLAMENT 2014-2019. Výbor pro životní prostředí, veřejné zdraví a bezpečnost potravin NÁVRH STANOVISKA
EVROPSKÝ PARLAMENT 2014-2019 Výbor pro životní prostředí, veřejné zdraví a bezpečnost potravin 4. 3. 2015 2014/0255(COD) NÁVRH STANOVISKA Výboru pro životní prostředí, veřejné zdraví a bezpečnost potravin
Vícec sin Příklad 2 : v trojúhelníku ABC platí : a = 11,6 dm, c = 9 dm, α = 65 0 30. Vypočtěte stranu b a zbývající úhly.
9. Úvod do středoškolského studia - rozšiřující učivo 9.. Další znalosti o trojúhelníku 9... Sinova věta a = sin b = sin c sin Příklad : V trojúhelníku BC platí : c = 0 cm, α = 45 0, β = 05 0. Vypočtěte
VíceZásady pro vypracování disertační práce Fakulty strojní VŠB-TUO
Účinnost dokumentu od: 1. 4. 2014 Fakulty strojní VŠB-TUO Řízená kopie č.: Razítko: Není-li výtisk tohoto dokumentu na první straně opatřen originálem razítka 1/6 Disertační práce je výsledkem řešení konkrétního
VíceMalé vodní elektrárny
Malé vodní elektrárny Malé vodní elektrárny slouží k ekologicky šetrné výrobě elektrické energie. Mohou využívat potenciálu i těch vodních toků, které mají kolísavý průtok vody a jsou silně závislé na
VíceMDT xxx TECHNICKÁ NORMA ŽELEZNIC Schválena: 01.06.1979. Ochrana zabezpečovacích zařízení před požárem
MDT xxx TECHNICKÁ NORMA ŽELEZNIC Schválena: 01.06.1979 TNŽ 34 2612 Generální Ředitelství Českých drah Ochrana zabezpečovacích zařízení před požárem TNŽ 34 2612 Tato oborová norma stanoví základní technické
VícePříprava na 1. čtvrtletní písemku pro třídu 1EB
Variace 1 Příprava na 1. čtvrtletní písemku pro třídu 1EB Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Číselné
VícePodrobný postup pro doplnění Žádosti o dotaci prostřednictvím Portálu Farmáře. 1. kolo příjmu žádostí Programu rozvoje venkova (2014 2020)
Podrobný postup pro doplnění Žádosti o dotaci prostřednictvím Portálu Farmáře 1. kolo příjmu žádostí Programu rozvoje venkova (2014 2020) V tomto dokumentu je uveden podrobný postup doplnění Žádosti o
VíceUložení potrubí. Postupy pro navrhování, provoz, kontrolu a údržbu. Volba a hodnocení rezervy posuvu podpěr potrubí
Uložení potrubí Postupy pro navrhování, provoz, kontrolu a údržbu Volba a hodnocení rezervy posuvu podpěr potrubí Obsah: 1. Definice... 2 2. Rozměrový návrh komponent... 2 3. Podpěra nebo vedení na souosém
VíceMěření změny objemu vody při tuhnutí
Měření změny objemu vody při tuhnutí VÁCLAVA KOPECKÁ Katedra didaktiky fyziky, Matematicko-fyzikální fakulta Univerzity Karlovy v Praze Anotace Od prosince 2012 jsou na webovém portálu Alik.cz publikovány
VíceZadávací dokumentace pro podlimitní veřejnou zakázku na dodávky
Zadávací dokumentace pro podlimitní veřejnou zakázku na dodávky Zjednodušené podlimitní řízení Název zakázky: Pořízení úklidového stroje na snížení prašnosti v obci Hvozdná Zadavatel zakázky: Obec Hvozdná
VíceMĚSTO BENEŠOV. Rada města Benešov. Vnitřní předpis č. 16/2016. Směrnice k zadávání veřejných zakázek malého rozsahu. Čl. 1. Předmět úpravy a působnost
MĚSTO BENEŠOV Rada města Benešov Vnitřní předpis č. 16/2016 Směrnice k zadávání veřejných zakázek malého rozsahu I. Obecná ustanovení Čl. 1 Předmět úpravy a působnost 1) Tato směrnice upravuje závazná
VíceZ A D Á N Í. zmìny è. 2. územního plánu sídelního útvaru MILOVICE. okres Nymburk kraj Středočeský. návrh k projednání únor 2008
Z A D Á N Í zmìny è. 2 územního plánu sídelního útvaru MILOVICE okres Nymburk kraj Středočeský návrh k projednání únor 2008 Předkládá pořizovatel: Městský úřad 5. května 71, 289 23 nad Labem Ing. Boris
VíceŠkola VOŠ a SPŠE Plzeň, IČO 49774301, REDIZO 600009491
Škola VOŠ a SPŠE Plzeň, IČO 49774301, REDIZO 600009491 Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Kód DUMu Název DUMu Autor DUMu Studijní obor Ročník Předmět Anotace CZ.1.07/1.5.00/34.0560
VíceVEŘEJNÁ NABÍDKA POZEMKŮ URČENÝCH K PRODEJI PODLE 7 ZÁKONA
VEŘEJNÁ NABÍDKA POZEMKŮ URČENÝCH K PRODEJI PODLE 7 ZÁKONA č. 95/1999 Sb., O PODMÍNKÁCH PŘEVODU ZEMĚDĚLSKÝCH A LESNÍCH POZEMKŮ Z VLASTNICTVÍ STÁTU NA JINÉ OSOBY, VE ZNĚNÍ POZDĚJŠÍCH PŘEDPISŮ (DÁLE JEN ZÁKON
VíceT A X N E W S NOVELA ZÁKONA O ÚČETNICTVÍ A ZMĚNA PROVÁDĚCÍ VYHLÁŠKY. Obsah čísla. Listopad 2015. Tax l Accounting l Payroll
Listopad 2015 T A X N E W S L E R I K A, D o m a ž l i c k á 1, 1 3 0 0 0, P r a h a 3, w w w. l e r i k a. e u Vážení klienti a obchodní partneři, ústředním tématem listopadového vydání Tax News jsou
VíceZATÍŽENÍ SNĚHEM A VĚTREM
II. ročník celostátní konference SPOLEHLIVOST KONSTRUKCÍ Téma: Cesta k pravděpodobnostnímu posudku bezpečnosti, provozuschopnosti a trvanlivosti konstrukcí 21.3.2001 Dům techniky Ostrava ISBN 80-02-01410-3
Více