1 PRG036 – Technologie XML Přednáší: Irena Mlýnková Martin Nečaský

Slides:



Advertisements
Podobné prezentace
DOTAZOVACÍ JAZYKY slajdy přednášce DBI006
Advertisements

J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK
Překlad Bath profilu 2.0 Martin Vojnar
ŘÍDÍCÍ STRUKTURY - PODMÍNKY
CXPath Dotazování nad heterogenními XML zdroji s pomocí konceptuálního schéma Jan Vávra, 21. dubna 2004
<. DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4
A5M33IZS – Informační a znalostní systémy Dotazovací jazyk SQL - I.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
David Pejčoch XML (Extensible Markup Language) Semistrukturovaná data Obecný značkovací jazyk Vyvinut a standardizován konzorciem W3C Zjednodušená.
Aplikační a programové vybavení
Selektory 1 1. Selektor elementu Deklarované styly budou použité při každém vyskytování elementu v dokumentu. Selektor elementu se obvykle používá pro.
Výpočetní technika Akademický rok 2006/2007 Letní semestr Mgr. Petr Novák Katedra informatiky a geoinformatiky FŽP UJEP
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy 1 Cvičení č. 4 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
T OOL FOR C OLLABORATIVE XML S CHEMA I NTEGRATION Jiří Meluzín.
PHP – vkládání souborů a html 5
Programování v C++ Cvičení.
Práce s Xml ● Základní moduly pro práci s XML: – Xml.dom – Document Object Model API – Xml.dom.minidom ● Základní objekt je Dokument – stromová struktura.
Programování PA - 2.
Generování mezikódu Jakub Yaghob
ADT Strom.
Analýza informačního systému
KONCEPTUÁLNÍ MODELOVÁNÍ
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
1 5. přednáška XML Slajdy převzaty z Mlýnková, Nečaský : Technologie XML (DBI026, MFF UK) Úvod do databázových systémů B RNDr. Jan Lánský, Ph.D.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Databázové systémy Přednáška č. 7 Uživatelské rozhraní.
Informatika pro ekonomy II přednáška 10
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
1 PRG036 – Technologie XML Přednáší: Irena Mlýnková Martin Nečaský
Návrh a tvorba WWW Cvičení 4
XML Schema Irena Mlýnková. Obsah XML – úvod, příklad, základní pojmy DTD – přehled XML Schema – podrobně.
Jazyk XML Jazyk pro tvorbu strukturovaných dokumentů Syntaxí velmi podobný HTML Hlavní cíle návrhu: Snadná editace - jazyk je textový Snadné strojové zpracování.
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Internetové publikování Doc. Ing. Petr Zámostný, Ph.D. místnost: A-72a tel.: 4222, 4167 (sekretariát ústavu 111)
Návrh a tvorba WWW Přednáška 8
XML na papír Dušan Fencl
Databázové modelování
Využití XML v DB aplikacích Michal Kopecký Výběr ze slajdů k 7. přednášce předmětu Databázové Aplikace (DBI026) na MFF UK.
RDF a RQL Roman Krejčík. RDF a RQL RDF – Resource Description Framework –Jazyk pro ukládání informací v XML –RDF Schema RQL – RDF Query Language –Dotazování.
Databázové systémy Informatika pro ekonomy, př. 18.
Import záznamů diplomových prací nové řešení Antonín Vaishar, SUAleph, 26. –
Automatizovaná podpora výběru nástroje pro dobývání znalostí Jakub Štochl.
XQuery Dotazovací jazyk XML Daniel Privalenkov. O čem bude prezentace Nutnost dotazovacího jazyku v XML Rychlý přehled XQuery Několik příkladů.
Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce
XML data na disku jako databáze Kamil Toman
JUI přednáška Vstup a výstup, cykly RNDr. Jiří Dvořák, CSc.
1 PRG036 – Technologie XML Přednáší: Irena Mlýnková Martin Nečaský
Vícerozměrný přístup pro indexování XML dat
Jazyk XML v geoinformatice
Lišta nástrojů Standard otevření, uložení a další manipulace se soubory (tj. projekty) načítání dat (mapových vrstev) „žluté plus“ změna měřítka odkaz.
Lišta nástrojů Standard otevření, uložení a další manipulace se soubory (tj. projekty) načítání dat (mapových vrstev) „žluté plus“ odkaz na další lišty.
Petr Šmíd Obsah prezentace Co je to XML ?
Univerzita třetího věku kurz Znalci Databáze 1.
Úvod do XML 2. část Zdeněk Žabokrtský (s využitím materiálů z
Úvod do XML S využitím materiálů z Zdeněk Žabokrtský.
XSLT překladač Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
JavaScript úvod. Jazyky webového vývojáře Dynamická stránka  aktivně mění svůj obsah v reakci na činnost uživatele  zpracování na straně serveru (PHP,
Perzistence XML dat Kamil Toman
Základy XML – struktura dokumentu (včetně testových otázek) Otakar Čerba Oddělení geomatiky Katedra matematiky Fakulta aplikovaných věd Západočeská univerzita.
XML a datový standard Zdeněk Jirkovec Softwarové Aplikace a systémy.
Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J
XML Validace.
Databázové systémy a SQL
Výpočetní technika Akademický rok 2008/2009 Letní semestr
TNPW1 JavaScript Ing. Jiří Štěpánek.
Informatika pro ekonomy přednáška 8
Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J
Analýza informačního systému
Transkript prezentace:

1 PRG036 – Technologie XML Přednáší: Irena Mlýnková Martin Nečaský LS 2010 Stránka přednášky: prg036 /

2 Osnova předmětu  Úvod do principů formátu XML, přehled XML technologií, jazyk DTD  Datové modely XML, rozhraní DOM a SAX  Úvod do jazyka XPath  Úvod do jazyka XSLT  XPath 2.0, XSLT 2.0  Úvod do jazyka XML Schema  Pokročilé rysy jazyka XML Schema  Přehled standardních XML formátů  Úvod do jazyka XQuery  Pokročilé rysy jazyka XQuery, XQuery Update  Úvod do XML databází, nativní XML databáze, číslovací schémata, structural join  Relační databáze s XML rozšířením, SQL/XML

3 Dotazovací jazyky nad XML daty  Cíle: dotazování, pohledy, transformace, případně aktualizace XML dat Od r XML-QL, XQL, … Vývoj v konsorciu W3C se ustálil/pokračuje v jazycích XSLT 1.0, XSLT 2.0, XPath 1.0, XPath 2.0, XQuery 1.0  XSLT je jazyk pro transformace, využívá XPath, zápis transformací hodně využívá XML  XQuery vhodnější pro dotazování – uživatelsky orientováná syntaxe  Pz.: XPath 2.0  XQuery

4 Co je XPath?  XPath je základní jazyk pro dotazování nad XML dokumenty Výběr částí XML dokumentů  Základní myšlenka se podobá navigaci v systému souborů  Notace XPath není vyjádřena v XML  Na XPath je založen XSLT, XPointer, XQuery

5 Model XML dat v XPath Martin Nečaský modra

6 Martin Nečaský modra Model XML dat v XPath document

7 Martin Nečaský modra Model XML dat v XPath document

8 Martin Nečaský modra Model XML dat v XPath document

9 Martin Nečaský modra Model XML dat v XPath objednavka document

10 Martin Nečaský modra Model XML dat v XPath objednavka document datum "10/10/2008" stav "expedovana"

11 Martin Nečaský modra Model XML dat v XPath objednavka document datum "10/10/2008" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský"

Model XML dat v XPath objednavka document datum "10/10/2008" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvicena text() "1""1""91934" barva text() "modra"

13 Model XML dat v XPath  Typy uzlů v modelu kořenový uzel uzly elementů textové uzly atributové uzly uzly pro komentáře uzly proveditelných instrukcí uzly jmenných prostorů  Co tam není: sekce CDATA, odkazy na entity a DTD

14 Model XML dat v XPath  Specifika Atributy nejsou zařazeny do seznamu dětí a potomků daného uzlu Atributy ze jmenného prostoru xmlns jsou chápány jako speciální uzly Kořenový uzel nereprezentuje kořenový element ale celý XML dokument  Kořenový element je reprezentován jako dítě kořenového uzlu

15 Výrazy v XPath  Výrazem v jazyce XPath je cesta  Cesta se skládá z kroků Absolutní cesta:  /Krok1/Krok2/…/KrokN Relativní cesta:  Krok1/Krok2/…/KrokN

Výrazy v XPath - Příklady objednavka document datum stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvicena text() "1""1""91934" barva text() "modra" /

Výrazy v XPath - Příklady objednavka document datum stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvicena text() "1""1""91934" barva text() "modra" /objednavka

Výrazy v XPath - Příklady objednavka document datum stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvicena text() "1""1""91934" barva text() "modra" /objednavka/polozky/polozka

Výrazy v XPath - Příklady objednavka document datum stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvicena text() "1""1""91934" barva text() "modra"

Výrazy v XPath - Příklady objednavka document datum stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvicena text() "1""1""91934" barva text() "modra" /objednavka/polozky/polozka/cena/text()

Výrazy v XPath - Příklady objednavka document datum stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvicena text() "1""1""91934" barva text() "modra" /objednavka/polozky/polozka/barva

Výrazy v XPath - Příklady objednavka document datum stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvicena text() "1""1""91934" barva text() "modra" /objednavka/zakaznik/jmeno

Výrazy v XPath - Příklady objednavka document datum stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvicena text() "1""1""91934" barva text() "modra" /objednavka/seznam-polozek/polozka

24 Výrazy v XPath - Příklady  Relativní cesta sama o sobě nemůže být vyhodnocena Nemá to žádný smysl, protože nevíme odkud máme začít Vstupem musí být kromě samotné cesty také jeden a více uzlů v XML dokumentu, ze kterých máme vyhodnocení začít tzv. Kontextová množina cena/text()

Výrazy v XPath - Příklady objednavka document datum "10/10/2008" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" cena/text()

Výrazy v XPath - Příklady objednavka document datum "10/10/2008" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" cena/text()

Výrazy v XPath - Příklady objednavka document datum "10/10/2008" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" cena/text()

Výrazy v XPath - Příklady objednavka document datum "10/10/2008" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" cena/text()

29 Vyhodnocení XPath výrazu  Nechť P je XPath cesta, kde S je její první krok a P’ je zbytek cesty  Nechť C značí kontextovou množinu uzlů pro vyhodnocení P Pokud je P absolutní, pak C obsahuje pouze a jen kořenový uzel dokumentu Pokud je P relativní, musí být C specifikována explicitně  Pokud je P prázdná, pak výsledkem vyhodnocení je C Prázdná = 0 kroků  Jinak je P vyhodnocena vzhledem k C následovně: C’ = {} Pro každý uzel u z C vyhodnoť S a výsledek přidej do C’ Vyhodnoť P’ vzhledem k C’

30 Vyhodnocení XPath výrazu  Pozor, návratová hodnota cesty je množina uzlů Množina je neuspořádaná Tedy ani výsledek nelze očekávat uspořádaný (např. v pořadí, ve kterém se vyskytují uzly v XML dokumentu, viz. dále)

31 XPath cesty formálně  XPath krok je formálně následující výraz  Osa, test uzlu a seznam predikáty  Osa a predikáty jsou nepovinné  Zatím jsme viděli pouze použití test-uzlu Seznam predikátů byl prázdný Osa byla defaultní osa::test-uzlu predikát1... predikátN

32 XPath osy  Osa specifikuje, v jaké relaci mají být uzly vybrané v tomto kroku vzhledem k uzlu u z kontextové množiny Vybrané uzly jsou děti (přímí potomci) uzlu u Defaultní osa osa::test-uzlu predikát1... predikátN child /objednavka/zakaznik  /child::objednavka/child::zakaznik

33 XPath osa self Vybraný uzel je samotný uzel u objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra"

34 XPath osa parent Je vybrán rodič uzlu u objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra"

35 XPath osa ancestor Jsou vybrány všichni předci uzlu u Tj. uzly ležící na cestě od u ke kořenovému uzlu objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra"

36 XPath osa ancestor-or-self Jsou vybrány všichni předci uzlu u včetně uzlu u objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra"

37 XPath osa child Jsou vybráni přímí potomci (děti) uzlu u objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra"

38 XPath osa descendant Jsou vybráni potomci uzlu u objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra"

39 XPath osa descendant Jsou vybráni potomci uzlu u objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra"

40 XPath osa descendant-or-self Jsou vybráni potomci a samotný uzel u objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra"

41 Průchod stromu do hloubky objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra"

42 XPath osa preceding-sibling Jsou vybráni sourozenci uzlu u, které mu předcházejí v průchodu do hloubky objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra"

43 XPath osa preceding Jsou vybráni všechny uzly, které předcházejí uzlu u v průchodu do hloubky (kromě předků) objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra"

44 XPath osa following-sibling Jsou vybráni sourozenci uzlu u, které ho následují v průchodu do hloubky objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra"

45 XPath osa following Jsou vybráni všechny uzly, které následují uzel u v průchodu do hloubky (kromě potomků) objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" kod " " mnozstvibarva text() "1""1" "modra" polozka

46 XPath osa attribute Vybere atributy uzlu u objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra"

47 XPath osa namespace Vybere atributy ze jmenného prostoru xmlns uzlu u

XPath - osy ancestor descendant following preceding following-siblingpreceding-sibling child attribute namespace self parent

49 XPath test uzlu Testuje uzly vybrané osou Typ uzlu a případně název osa::test-uzlu predikát1... predikátN

50 XPath test uzlu Testem projde jakýkoliv uzel vybraný osou osa::node() predikát1... predikátN

51 XPath test uzlu objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" descendant::node()

52 XPath test uzlu Testem projde textový uzel vybraný osou osa::text() predikát1... predikátN

53 XPath test uzlu objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" descendant::text()

54 XPath test uzlu Testem projde jakýkoliv uzel vybraný osou, který má jméno jméno má každý element a atribut Ale pozor: neexistuje osa, která najednou vybere elementy i atributy osa::* predikát1... predikátN

55 XPath test uzlu objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" descendant::*

56 XPath test uzlu  osa:: comment()  osa:: processing-instruction()  osa:: processing-instruction(“php”)

57 XPath osy a testy uzlů - zkratky Pro nejpoužívanější osy a testy uzlů jsou zavedeny zkratky //zakaznik vybere všechny elementy zakaznik v XML dokumentu P/zakaznik  P/child::zakaznik  P/attribute::kod P/../zakaznik  P/parent::*/zakaznik P//zakaznik  P/descendant-or-self::node()/zakaznik

58 XPath predikáty Predikát umožňuje specifikovat pokročilejší podmínky na uzly, které byly vybrány osou a prošly testem uzlu Pro kontextový uzel u jsou nalezeny všechny uzly ležící na dané ose z uzlu u, na výstup jdou ale pouze ty, které splňují test-uzlu a všechny predikáty osa::test-uzlu predikát1... predikátN predikát ::= ‘[‘ podmínka ‘]‘ podmínka ::= ‘not(‘ podmínka ‘)‘ | podmínka ‘and‘ podmínka | podmínka ‘or‘ podmínka

59 Testování existence uzlu Podmínkou může být relativní XPath cesta P Pro daný uzel u se vyhodnotí true, pokud množina uzlů zacílená cestou P z u je neprázdná

60 Testování existence uzlu objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra"

61 Testování existence uzlu objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" //polozka[cena]

62 Testování existence uzlu objednavka document stavpolozky polozka objednavky... objednavka polozky polozka

63 Testování existence uzlu objednavka document stavpolozky polozka objednavky... objednavka polozky polozka

64 Testování existence uzlu objednavka document stavpolozky polozka objednavky... objednavka polozky polozka

65 Testování hodnoty Podmínkou může být porovnání dvou operandů Operandy jsou XPath výrazy Cesta, hodnota... Operátor je = != = &eq; ≠ < > ≤ ≥

66 Testování hodnoty objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" //polozka[barva = "modra"]

67 Testování hodnoty objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" //polozka[cena > 30]

68 Testování hodnoty objednavka document stavpolozky polozka objednavky... objednavka polozky polozka "expedovana" = "expedovana"]//polozka

69 Testování hodnoty Operátory = !=... Operandy jsou množiny hodnot/uzlů Vyhodnotí se jako true pokud existuje hodnota/uzel v levém a hodnota/uzel v pravém operandu, pro něž je operátor true Operátory &eq; &neq;... Operandy nesmějí být množiny Pokud je operandem uzel/množina uzlů, je/jsou převeden(y) na textovou hodnotu atomizace

70 Testování hodnoty objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" barva text() "zluta" //polozka[barva = "modra"]

71 Testování hodnoty objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" barva text() "zluta" //polozka[barva != "modra"]

72 Testování hodnoty CHYBA! objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" barva text() "zluta" //polozka[barva &eq; "modra"]

73 Vestavěné funkce Testování pozice každý uzel v kontextové množině má přiřazenu pozici (určena pozicí v dokumentu a směrem osy) position() Vrací pozici uzlu v kontextové množině last() Vrací počet uzlů v kontextové množině

74 Vestavěné funkce objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" barva text() "zluta" //polozky/polozka[position() = 1]

75 Vestavěné funkce objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" barva text() "zluta" //polozky/polozka[position() = last()]

76 Vestavěné funkce objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" barva text() "zluta" //polozky/polozka[1]

77 Vestavěné funkce objednavka document datum "10/10/200 8" stav "expedovana" zakaznik cislo "C992" text() "Martin Nečaský" polozky polozka kod " " mnozstvicena text() "5""5""22" polozka kod " " mnozstvibarva text() "1""1" "modra" barva text() "zluta" //polozky/polozka[last()]

78 Vrací počet uzlů vrácených XPath výrazem expression Vestavěné funkce count(expression)

79 objednavka document stav polozky polozka objednavky... objednavka polozky polozka "expedovana" polozka Vestavěné funkce //polozky[count(polozka) > 2]

80 id(value) Vrátí element s value jako id concat, starts-with, contains, substring-after, substring- before, substring(value),... sum, floor, ceiling,... Vestavěné funkce

81 Konec