tak skusim dat dokopy nejaku kostru pisomky.. bola takmer cisto prakticka..
1.
Kód: Vybrat vše
<?xml version="1.0" encoding="windows-1250"?>
<xsl:stylesheet version="1.0">
<xsl:output method="xml" />
<xsl:template match="zamestnanec">
<<xsl:copy-of select="jmeno">
</xsl:template>
</xsl:stylesheet>
tak nejak..
a) je to well-formed xml
b) nejaka blbost
c) transformuje do HTML..
d) transformuje do XML jako zoznam mien - nejak tak, ale bolo to spravne..
2. <element/>: dva sposoby ako zapisat v XML Schema, aby toto tam preslo..
3. skrateny zapis XPath - 6 prikladov typu
a) descendant::autor[position()=1] (.//autor[1])
b) /descendant::autor[position()=1] (//autor[1])
c) descendant::kniha[attribute(jazyk)="angl"] (.//kniha[@jazyk="angl"])
d) descendant::kniha[attribute(jazyk)!="angl"] (.//kniha[@jazyk@!="angl"])
e) (child::bib/descendant::kniha)[position()=1] ((bib//kniha)[1])
f) nejaky strasne dlhy nezrozumitelny dotaz
4. to co uz niekde bolo template ci sa pise s match, if alebo when.. (spravne match)
5. uz tiez bola, xpath dotaz s knihou -> spravny dotaz /kniha/kapitola[1]/nadpis/preceding::* a vyznacit na obrazku
6. XQuery dotazy - jednoduchy -> vybrat knihy z dokumentu a k nim pocet kapitol..
zlozitejsi -> mame druhy subor s recenziami.. na jednu knizku moze byt v 0 az n recenzii a mame vybrat titul, autora knizky a k tomu vsetky texty recenzii cize pre jednu knizku to malo vyzerat
Kód: Vybrat vše
<recenze_knihy>
<titul>Janko Hrasko</titul>
<autor>ludova</autor>
<text>prvej rezencia</text>
<text>druha rezencia</text>
<text>tretia rezencia</text>
</recenze_knihy>
ak recenzia na knizku neexistovala, tak tam element recenze knihy nebol..
DTD suboru recenze.xml
<!ELEMENT recenze (zaznam)*>
<!ELEMENT zaznam (titul, cena, text)>
titul,cena,text - PCDATA
dotaz, ktory mi uznali. neviem, ci je syntakticky spravne:
Kód: Vybrat vše
for $kniha in doc('kniha.xml')
let $nazev := doc('recenze.xml')/recenze/zaznam/titul[.=$kniha/nazev]
if (exists($nazev))
return
{
<rezenze_knihy>
<titul>{$kniha/nazev}</titul>
<autor>{$kniha/autor}</autor>
{
for $zaznam in doc('rezenze.xml')/rezenze/zaznam
where $zaznam/titul = $kniha/nazev
return
{
<text>{$zaznam/text}</text>
}
}
</rezenze_knihy>
}
7. otazka ktora uz bola.. Xpath 2 podmnozinou xquery 1, xquery sa daju vytvarat vlastne funkcie...
tak snad pomoze, kto by mal presnejsie zadania, nech to sem da..
edit: doplneny dotaz v XQuery
tak skusim dat dokopy nejaku kostru pisomky.. bola takmer cisto prakticka..
1.
[code] <?xml version="1.0" encoding="windows-1250"?>
<xsl:stylesheet version="1.0">
<xsl:output method="xml" />
<xsl:template match="zamestnanec">
<<xsl:copy-of select="jmeno">
</xsl:template>
</xsl:stylesheet> [/code]
tak nejak..
a) je to well-formed xml
b) nejaka blbost
c) transformuje do HTML..
d) transformuje do XML jako zoznam mien - nejak tak, ale bolo to spravne..
2. <element/>: dva sposoby ako zapisat v XML Schema, aby toto tam preslo..
3. skrateny zapis XPath - 6 prikladov typu
a) descendant::autor[position()=1] (.//autor[1])
b) /descendant::autor[position()=1] (//autor[1])
c) descendant::kniha[attribute(jazyk)="angl"] (.//kniha[@jazyk="angl"])
d) descendant::kniha[attribute(jazyk)!="angl"] (.//kniha[@jazyk@!="angl"])
e) (child::bib/descendant::kniha)[position()=1] ((bib//kniha)[1])
f) nejaky strasne dlhy nezrozumitelny dotaz
4. to co uz niekde bolo template ci sa pise s match, if alebo when.. (spravne match)
5. uz tiez bola, xpath dotaz s knihou -> spravny dotaz /kniha/kapitola[1]/nadpis/preceding::* a vyznacit na obrazku
6. XQuery dotazy - jednoduchy -> vybrat knihy z dokumentu a k nim pocet kapitol..
zlozitejsi -> mame druhy subor s recenziami.. na jednu knizku moze byt v 0 az n recenzii a mame vybrat titul, autora knizky a k tomu vsetky texty recenzii cize pre jednu knizku to malo vyzerat
[code]<recenze_knihy>
<titul>Janko Hrasko</titul>
<autor>ludova</autor>
<text>prvej rezencia</text>
<text>druha rezencia</text>
<text>tretia rezencia</text>
</recenze_knihy>[/code]
ak recenzia na knizku neexistovala, tak tam element recenze knihy nebol..
DTD suboru recenze.xml
<!ELEMENT recenze (zaznam)*>
<!ELEMENT zaznam (titul, cena, text)>
titul,cena,text - PCDATA
dotaz, ktory mi uznali. neviem, ci je syntakticky spravne:
[code]
for $kniha in doc('kniha.xml')
let $nazev := doc('recenze.xml')/recenze/zaznam/titul[.=$kniha/nazev]
if (exists($nazev))
return
{
<rezenze_knihy>
<titul>{$kniha/nazev}</titul>
<autor>{$kniha/autor}</autor>
{
for $zaznam in doc('rezenze.xml')/rezenze/zaznam
where $zaznam/titul = $kniha/nazev
return
{
<text>{$zaznam/text}</text>
}
}
</rezenze_knihy>
}
[/code]
7. otazka ktora uz bola.. Xpath 2 podmnozinou xquery 1, xquery sa daju vytvarat vlastne funkcie...
tak snad pomoze, kto by mal presnejsie zadania, nech to sem da..
edit: doplneny dotaz v XQuery