CSE 444 Homework 3

Objectives:
To be able to manipulate XML: query it with XQuery.
Reading Assignments:
Lecture notes on XML and XQuery.
Number of points:
100, 10 for each sub-question.
Due date:
Wednesday, Feb. 15th
---Printed version 12:20pm at class
---Electronic version 23:59 pm.
Turn in format:
For the printed version . For each problem, print out the XQuery, and the first 3 items it returned(if total num is less than 3, list them all). For example, the first question is:
(1) Retrieve all the names of all cities located in Peru, sorted alphabetically.
----XQuery:
(Print out your XQuery:)
......

----Resutls:
(Then print out the first 3 items the XQuery returns. They may look like this:)
<city> abc </city>
<city> def </city>
<city> ghi </city>

For the electronic version, just email TA(wufei AT cs DOT washington DOT edu) your XQuery file. The file name should be your uw email login name + ".xq". For example, if the uw email login name is "cse444@u.washington.edu", the file name should be "cse444.xq".
Assignment Tools:
XQuery (Galax)

Problems:

[100 points, 10 for each sub-question] Consider the XML data instance Mondial, avaialable here. Write XQueries to answer the following questions. In formulating your questions, you need to understand how various elements are nested: e.g. what is under a country, under which element is a city etc. For that it helps if you inspect the DTD (ignore the warning that the data is not valid), or inspect the data directly.

1. Retrieve all the names of all cities located in Peru, sorted alphabetically.
2. For each province of China, return its capital. Order the result by province name.
3. Find all countries with more than 20 provinces.
4. For each province(state) in the United States, compute the ratio of its population to area, and return each province's name, its computed ratio, and order them by ratio.
5. Find all ethnic groups that live in more than more than 10 countries.
6. Find the countries adjacent to the 'Pacific Ocean' sea.
7. Find all the provinces(states) of  the United States with population more than 11,000,000. Compute the ratio of each qualified state's population to the whole popolution of the country. Return each state's name and the ratio. Order by the ratio in descending order.
8. For each river which crosses at least 2 countries, return its name, and the names of the countries it crosses. Order by the numbers of countries crossed.
9. Find the names of all countries that have at least 3 mountains over 2000m high, and list the names and heights of all mountains in these countries (regardless of their height). Note: the height attribute is in meters, so you don' have to do any conversions.
10. One user is interested in long rivers. Produce the following view of the data, containing only rivers longer than 2000 (all units are in km), in the format described below: