Lucrarea 6

Se consideră sistemul electronic de control al calității aerului, ce salvează înregistrările într-un fișier XML descris prin următorul DTD:

<!ELEMENT jurnal (senzor+) >

<!ATTLIST senzor

nume CDATA #REQUIRED

timp CDATA #REQUIRED>

<!ELEMENT senzor (indice+)>

<!ELEMENT indice (#PCDATA)>

<!ATTLIST indice id CDATA #REQUIRED>

De exemplu:

<jurnal>

<senzor nume="L01" timp="18:00:15 22.01.2012">

<indice id="SO2">2</indice>

<indice id="CO">3.5</indice>

<indice id="PM10">1000</indice>

</senzor>

<senzor nume="L02" timp="18:00:35 22.01.2012">

<indice id="O3">2.9</indice>

<indice id="PM10">1010</indice>

</senzor>

<senzor nume="L01" timp="18:01:15 22.01.2012">

<indice id="SO2">2.5</indice>

<indice id="PM10">1200</indice>

</senzor>

...

</jurnal>

Datele despre senzori sunt înregistrate într-un fișier XML descris prin următorul DTD:

<!ELEMENT senzori (senzor+) >

<!ELEMENT senzor EMPTY>

<!ATTLIST senzor

nume CDATA #REQUIRED

locatie CDATA #REQUIRED>

De exemplu:

<senzori>

<senzor nume="L01" locatie="Unirii nr. 17"/>

<senzor nume="L02" locatie="Republicii nr. 100"/>

...

</senzori>

CERINȚE

Se cere sa se afiseze, folosind un singur document XSL:

- numarul total de senzori instalati;

- de cate ori s-a inregistrat la o raportare nivelul de ozon "O3", dar nu si cel de pulberi in suspensie "PM10";

- in ordine cronologica, toate inregistrarile din ziua de 1 ianuarie 2012: numar curent, valoare si nume indice de forma "SO2: 2.5, CO: 3.5, NO2: 100.", nume senzor (cu rosu daca este situat pe Republicii sau Victoriei, cu albastru altfel);

- numele senzorului care a raportat ieri ultimul nivelul de dioxid de sulf "SO2";

- intr-un tabel, pentru fiecare senzor, valorile minime, maxime, si medii inregistrate in perioada 1 ian - 1 apr 2012 pentru poluantii: dioxid de sulf (SO2), dioxid de azot (NO2), ozon (O3), monoxid de carbon (CO), pulberi in suspensie (PM10).

<xsl:variable name="name" select="expression">

<!-- Content:template -->

</xsl:variable>