XML teknologiat

XQuery harjoitus (9): tutustuminen kyselykieleen

Työkalujen asennus: Saxon

Mene Saxonin sivuille
http://saxon.sourceforge.net/
ja lataa Saxon 9.4 HE Java file (2.8 Mbytes) SaxonHE9-4-0-3J.zip
Pura tiedostot hakemistoon C:\Temp\Saxon9 (omalla koneella voit valita vapaasti paikan)

Avaa Control Panel ja
System, Advanced, Environment variables
Muokkaa CLASSPATH lisäämällä
;C:\Temp\Saxon9\saxon9he.jar

Tallenna muutokset.

Luokkatiloissa et voi muokata "environment variables" eli joudut joka session alussa muuttamaan classpathin. Kun olet avannut komentoikkunan, kirjoita
set CLASSPATH=%classpath%;C:\Temp\Saxon9\saxon9he.jar

Javan lisääminen polkuun (jos se ei ole siellä)
set path=%path%;C:\Win\Java\bin
tai mahdollisesti (tarkista omalta työasemalta)
set path=%path%;C:\Program Files (x86)\Java\jre7\bin

Vaihtoehtoinen prosessori on BaseX osoitteessa basex.org.

Kopioi students.xml Saxon9 hakemistoon. Tiedosto löytyy tämän hakemiston alihakemistosta "aineisto".
Tee ensimmäinen kyselysi, luo XQuery tiedosto Saxon9 hakemistoon. Se on yhden rivin pituinen:

doc("students.xml")/students/student/results

Tallenna se nimellä student.xquery. Muista että Java ja Saxon ovat kirjainkokokranttuja.

Avaa komentoikkuna Command prompt. Syötä:

C:>cd \Temp
C:\Temp>cd Saxon9
C:\Temp\Saxon9>java net.sf.saxon.Query student.xquery

Jos olet tehnyt kaiken oikein, näet kyselyn tuloksen näytöllä.
Tulostus tiedostoon tapahtuu seuraavasti

java net.sf.saxon.Query -o:resultout.xml student.xquery

Yritä avata tulostiedosto selaimessa. Siinä on rakenneongelma, jonka voit korjata seuraavasti:

<grades>
{doc("students.xml")/students/student/results}
</grades>

Lopuksi teit tulostiedostosta hyvinmuodostunutta XML:ää lisäämällä uloimman elementin (grades). Aja muunnos uudelleen.

XQueryn ominaisuuksien opiskelua (englanniksi)

Learn the basics of XQuery from the tutorial at:

http://www.w3schools.com/xquery/xquery_intro.asp

as instructed below. First, save yourself the example file books.xml.

1) See the example:
http://www.w3schools.com/xquery/xquery_example.asp

Run the example using Saxon.
Create a conditional query accordingly to the students.xml -file that you tried first (select course results that have a grade of 3 or more). Save all your queries and results.

2) Proceed to next page. Do the tasks about Flwor expressions.
http://www.w3schools.com/xquery/xquery_flwor.asp
Apply similar queries to the students.xml, such as sorting students by name or age.

3) Next page: creating an HTML list: create a list of majors in the students.xml.

4) Next page: Familiarize yourself with tree axis references.
Xpath axis order can be tested with the following transformation: save the file students.xsl to the same directory as students.xml. Run them either from a browser or from Saxon:

java -jar saxon9he.jar -o:resultout.xml students.xml students.xsl

If you want to get more interesting looking results, try the same kind following axis printing with another XML-file.

5) Conditional expressions. Do the example on w3schools and then create a query to choose all Web programming course results from the students.xml.

6) Study the last remaining pages of the w3schools tutorial: explanation of clauses and how to apply XQuery functions.

7) Jatka harjoittelua tiedostolla recipes.xml. Kopioi se omaan hakemistoosi tämän hakemiston alihakemistosta aineisto, ja suunnittele kysely, joka poimii kaikki ohjeet, joissa on voita (butter as ingredient), ja lajittele ohjeet nimen mukaan (title). Voit myös tutkia esimerkkejä: fridge.xml, fridge.xq, insideout.xq ja floury.xq.

Toinen hyödyllinen ja nopea tutorial on Michael Kayn: http://www.xquery.com/tutorials/learn-xquery/

| KOTISIVU | KURSSIKUVAUS | OHJELMA JA HARJOITUKSET |
Päivittänyt: Jaana Holvikivi
Muutettu 23.4.2015