Web-teknologiat. XML-datan kysely Topi Sarkkinen

Samankaltaiset tiedostot
XML-datan kysely. Topi Sarkkinen. Seminaarityö. Helsinki HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

XQuery tietokannan kyselykielenä

Hohde Consulting 2004

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Digitaalisen median tekniikat. JSP ja XML

Extensible Stylesheet Language (XSL)

Luento 4: XPath ja XLink

XHTML - harjoitus. Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa. Tiedoston tallennus notepad (muistio) ohjelmassa:

W3C, Web-teknologiat ja XML

5 XML Query Language. Skeemojen opiskelun myötä olemme polulla joka luontevasti johtaa ajatukseen XMLdokumenteista

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

Hohde Consulting 2004

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

5 XML Query Language. Skeemojen opiskelun myötä olemme polulla joka luontevasti johtaa ajatukseen XMLdokumenteista

Hohde Consulting 2004

StanForD-XML. Juha-Antti Sorsa, Tapio Räsänen, Vesa Imponen

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

Johdatus XML teknologioihin

HELIA 1 (14) Outi Virkki Tiedonhallinta

Ehto- ja toistolauseet

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu.

Helsingin yliopisto/tktl XML-metakieli XPath

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Makrojen mystinen maailma lyhyt oppimäärä

Luento 5. Timo Savola. 28. huhtikuuta 2006

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

PHP tehtävä 3 Atte Pekarinen TIKT13A

Ohjelmoinnin peruskurssi Y1

CSE-A1200 Tietokannat

Interfacing Product Data Management System

Kyselyn yleisrakenne:

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

SELECT-lauseen perusmuoto

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Sosiaalihuollon asiakirjastandardi kehittyy. Konstantin Hyppönen Erikoissuunnittelija Tietojenkäsittelytieteen laitos Kuopion yliopisto

1. a) Laadi suoraviivaisesti kyselyä vastaava optimoimaton kyselypuu.

SQL - STRUCTURED QUERY LANGUAGE

CSE-A1200 Tietokannat

Kennet Tast XML-TIETOKANTASOVELLUS

811120P Diskreetit rakenteet

SQL:N PERUSTEET MARKKU SUNI

Ohjelmoinnin perusteet Y Python

Ensimmäiset XPath-lausekkeet

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

XSLT - ohjelmoinnin perusteet. Jaana Holvikivi Metropolia


Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tutoriaaliläsnäoloista

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Tutkija Mikko Salmenperä. huone: sd109. TTY / Systeemitekniikan laitos. puh: mikko.salmenpera@tut.fi

811120P Diskreetit rakenteet

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Tietotyypit ja operaattorit

Lisää segmenttipuusta

Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä

Ohjelmointiharjoituksia Arduino-ympäristössä

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Esimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Luku 3. Listankäsittelyä. 3.1 Listat

Johdatus rakenteisiin dokumentteihin

Natiivit XML-tietokannat

Tiedon esitys tietokoneessa. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2010

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

XML, XHTML ja CSS. T Hypermediadokumentin laatiminen. Mikko Pohja

6 XML-työkalut 1. 6 XML-työkalut

OHJ-1151 Ohjelmointi IIe

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

TIEA341 Funktio-ohjelmointi 1, kevät 2008

9.16 XSLT ja nimiavaruudet (1/3): literaali oletusnimiavaruus

ELEC-C1220 Automaatio 2 - XML

Ohjelmoinnin peruskurssi Y1

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

Alkuun HTML5 peliohjelmoinnissa

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

Yhteenvetoa XML:n sovellusalueista

Sosiaalihuollon asiakastiedon arkiston validointipalvelu. Käyttöohje

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä.

8 XSLT-muunnoskieli XSLT-muunnoskieli

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

Racket ohjelmointia. Tiina Partanen 2014

Tietorakenteet ja algoritmit

Digitaalisen median tekniikat. Luento 4: JavaScript

KOOSTEFUNKTIOT. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

SPARQL(SPARQL Protocol and RDF Query Language)

Transkriptio:

Web-teknologiat XML-datan kysely Topi Sarkkinen

Sisältö XML (lyhyesti) XPath XQuery XSLT

XML Extensible Markup Language Ihmisten ja koneiden luettava metakieli, jolla voidaan määritellä muitakin kieliä Dokumentit, tiedon esittäminen, tiedon välitys Koostuu tekstipohjaisista elementeistä <esim>tämä on XML-elementti</esim>

XML - Esimerkki <?xml version="1.0" encoding="utf-8" standalone="yes"?> <tietojenkäsittelytiede> <kurssit> <kurssi id="123">ohjelmoinnin perusteet</kurssi> <kurssi id="432">ohjelmoinnin jatkokurssi</kurssi> <kurssi id="876">tietokantojen perusteet</kurssi> <kurssi id="967">rinnakkaisohjelmointi</kurssi> </kurssit> <henkilöstö> <henkilö tyyppi="opettaja">olli Opettaja</henkilö> <henkilö tyyppi="hallinto">ella Esimies</henkilö> <henkilö tyyppi="hallinto">jorma Johtaja</henkilö> </henkilöstö> </tietojenkäsittelytiede>

XPath XML Path Language W3C Recommendation 1999 XML-dokumentin osien valitsemisen perusta Melko yksinkertainen Useat muut teknologiat pohjautuvat XPathiin XQuery, XSLT...

XPath - Elementtien valinta Perustuu XML-dokumentin puumaiseen rakenteeseen, jota pitkin liikutaan XPath-lauseke koostuu peräkkäisistä askeleista, joilla päästään haluttuihin elementteihin Lauseke koostuu kolmesta osasta Akselimäärittely, solmutesti, ehtolause

XPath - Akselimäärittely Liikkumissuunta XML-dokumentissa Lapset (/), jälkeläiset (//), attribuutit (@) ym. Elementtien A lapset B: A/B Elementtien A jälkeläiset B: A//B Määritellään joka askeleen välissä

XPath - Solmutesti Mitä kyseisellä askeleella valitaan Yleensä vain solmun nimi Esim. A/B: A ja B ovat solmutestit

XPath - Ehtolause Ei pakollinen, mutta voidaan myös määrittää jokaiselle askeleelle useitakin Ehtoja löytyneiden elementtien valitsemiseen Askeleen lopussa hakasulkujen sisällä A/B[@nimi = Topi ] A:n lapset B, joilla attribuutti nimi arvolla Topi

XPath - Funktiot ja operaattorit XPath-haun tuloksia voi myös käsitellä erilaisilla funktioilla ja operaattoreilla Merkkijonofunktiot concat, substring, contains... Aritmeettiset operaatiot +, -, sum...

XPath - Esimerkki /tietojenkäsittelytiede <tietojenkäsittelytiede> <kurssit> <kurssi id="123">ohjelmoinnin perusteet</kurssi> <kurssi id="432">ohjelmoinnin jatkokurssi</kurssi> <kurssi id="876">tietokantojen perusteet</kurssi> <kurssi id="967">rinnakkaisohjelmointi</kurssi> </kurssit> <henkilöstö> <henkilö tyyppi="opettaja">olli Opettaja</henkilö> <henkilö tyyppi="hallinto">ella Esimies</henkilö> <henkilö tyyppi="hallinto">jorma Johtaja</henkilö> </henkilöstö> </tietojenkäsittelytiede>

XPath - Esimerkki /tietojenkäsittelytiede/henkilöstö/ <tietojenkäsittelytiede> <kurssit> <kurssi id="123">ohjelmoinnin perusteet</kurssi> <kurssi id="432">ohjelmoinnin jatkokurssi</kurssi> <kurssi id="876">tietokantojen perusteet</kurssi> <kurssi id="967">rinnakkaisohjelmointi</kurssi> </kurssit> <henkilöstö> <henkilö tyyppi="opettaja">olli Opettaja</henkilö> <henkilö tyyppi="hallinto">ella Esimies</henkilö> <henkilö tyyppi="hallinto">jorma Johtaja</henkilö> </henkilöstö> </tietojenkäsittelytiede>

XPath - Esimerkki /tietojenkäsittelytiede/henkilöstö/henkilö <tietojenkäsittelytiede> <kurssit> <kurssi id="123">ohjelmoinnin perusteet</kurssi> <kurssi id="432">ohjelmoinnin jatkokurssi</kurssi> <kurssi id="876">tietokantojen perusteet</kurssi> <kurssi id="967">rinnakkaisohjelmointi</kurssi> </kurssit> <henkilöstö> <henkilö tyyppi="opettaja">olli Opettaja</henkilö> <henkilö tyyppi="hallinto">ella Esimies</henkilö> <henkilö tyyppi="hallinto">jorma Johtaja</henkilö> </henkilöstö> </tietojenkäsittelytiede>

XPath - Esimerkki /tietojenkäsittelytiede/henkilöstö/henkilö[@tyyppi="hallinto"] <tietojenkäsittelytiede> <kurssit> <kurssi id="123">ohjelmoinnin perusteet</kurssi> <kurssi id="432">ohjelmoinnin jatkokurssi</kurssi> <kurssi id="876">tietokantojen perusteet</kurssi> <kurssi id="967">rinnakkaisohjelmointi</kurssi> </kurssit> <henkilöstö> <henkilö tyyppi="opettaja">olli Opettaja</henkilö> <henkilö tyyppi="hallinto">ella Esimies</henkilö> <henkilö tyyppi="hallinto">jorma Johtaja</henkilö> </henkilöstö> </tietojenkäsittelytiede>

XPath - Esimerkki /tietojenkäsittelytiede/henkilöstö/henkilö[@tyyppi="hallinto"][1] <tietojenkäsittelytiede> <kurssit> <kurssi id="123">ohjelmoinnin perusteet</kurssi> <kurssi id="432">ohjelmoinnin jatkokurssi</kurssi> <kurssi id="876">tietokantojen perusteet</kurssi> <kurssi id="967">rinnakkaisohjelmointi</kurssi> </kurssit> <henkilöstö> <henkilö tyyppi="opettaja">olli Opettaja</henkilö> <henkilö tyyppi="hallinto">ella Esimies</henkilö> <henkilö tyyppi="hallinto">jorma Johtaja</henkilö> </henkilöstö> </tietojenkäsittelytiede>

XQuery XML Query W3C Recommendation 2002 Kysely- ja ohjelmointikieli Datan kyselyyn ja muuntamiseen Voi käyttää myös esim. HTML-dokumenttien kanssa

XQuery Rakennettu XPathin pohjalta Voi käyttää suoraan XPath-lausekkeita Mutta myös: XQuery on XML-dokumenteille kuten SQL on tietokannoille Etsitään XML-dokumenteista tietoa SQL-tyylinen syntaksi Where, order by, join

XQuery - FLWOR For, Let, Where, Order by, Return SQL-tyylinen syntaksi

XQuery - FLWOR - FOR Mihin dokumenttiin tai kokoelmaan kysely tehdään Määritellään XPath-lausekkeella Asettaa löydetyt elementit määriteltyyn muuttujaan ja aloittaa niiden iteroinnin for $x in doc("tktl.xml")/tietojenkäsittelytiede/kurssit/kurssi

XQuery - FLWOR - FOR Mihin dokumenttiin tai kokoelmaan kysely tehdään Määritellään XPath-lausekkeella Asettaa löydetyt elementit määriteltyyn muuttujaan ja aloittaa niiden iteroinnin for $x in doc("tktl.xml")/tietojenkäsittelytiede/kurssit/kurssi

XQuery - FLWOR - LET Mahdollista määritellä muuttujia let $viisi := 5

XQuery - FLWOR - WHERE Haulle SQL-tyylisiä ehtoja Suodatetaan siis mukaan vain tietyt ehdot täyttävät Ehdot voivat kohdistua: Elementtiin itseensä Elementin jälkeläiseen Kumman tahansa attribuuttiin where $x/nimi = 'Tietokantojen perusteet'

XQuery - FLWOR - ORDER BY Palautettavien tietojen järjestys order by $x/id

XQuery - FLWOR - RETURN Mitä palautetaan Voidaan koko elementin sijaan palauttaa esim. tietty osa, lapsi tai attribuutti return $x/nimi

XQuery - Ehtolauseet If - Then - Else Voidaan käyttää hyödyksi esim. tiedon muuntamisessa return if ($x/@tyyppi= opettaja ) then <professori>{data($x)}</professori> else <hallinto>{data($x)}</hallinto>

XQuery - Funktiot Käytössä yhteinen funktiokirjasto XPathin kanssa Merkkijonojen käsittely Matemaattiset funktiot Ym...

XQuery - Funktiot Voi kuitenkin myös määritellä omia funktioita Alkaa declare function -käskyllä Määritellään parametrit ja palautettavan datan tyyppi declare function local:alennettuhinta($hinta as xs:decimal, $alennusprosentti as xs:decimal) as xs:decimal { let $alennus := ($hinta * $alennusprosentti) div 100 return $hinta - $alennus }

XSLT Extensible Stylesheet Language Transformations W3C Recommendation 1999 XML-dokumenttien muuntaminen toisiksi dokumenteiksi Elementtien valinta perustuu taas XPathiin

XSLT CSS & HTML = XSLT & XML? XSLT-prosessorille annetaan lähdedokumentti ja XSL-tyylitiedosto Tekee uuden dokumentin tyylitiedoston määrityksien mukaisesti

XSLT - Syntaksi <xsl-template match= / > Pohjia muunnoksille Matchiin XPathilla alkuperäisen dokumentin osa, jota käytetään <xsl:value-of select= > Valitaan alkuperäisestä dokumentista elementtejä/attribuutteja XPathilla <xsl:for-each select=""> Iteroidaan kokoelmia

XSLT - Esimerkki <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <html> <body> <h2>laitoksen kurssit</h2> <ul> <xsl:for-each select="tietojenkäsittelytiede/kurssit/kurssi"> <li><xsl:value-of select="kurssi"/></li> </xsl:for-each> </ul> </body> </html> </xsl:template> </xsl:stylesheet>

Yhteenveto XML Haastajia kuten JSON, mutta vielä hyvin suosittu XPath Yksinkertainen, mutta luo pohjan XML-kyselyille XQuery Voimakkaampi, SQL-tyylinen XSLT Dokumenttien muunto

Kiitos!