Tema XSL

Se considera sistemul electronic de control al lifturilor unei cladiri, ce salveaza comenzile intr-un fisier XML descris
prin urmatorul DTD:

<!ELEMENT jurnal (lift+) >
<!ATTLIST lift
nume CDATA #REQUIRED
timp CDATA #REQUIRED>
<!ELEMENT lift (pozitie_etaj, comanda)>
<!ELEMENT comanda (dela_etaj, la_etaj?)>
<!ELEMENT dela_etaj (#PCDATA)>
<!ELEMENT la_etaj (#PCDATA)>

De exemplu:

<jurnal>
<lift nume="L01" timp="22.01.2011 18:00:15">
<pozitie_etaj>2</pozitie_etaj>
<comanda>
<dela_etaj>3</dela_etaj>
</comanda>
</lift> <!-- la 15 secunde dupa ora 6, liftul L01 a fost chemat de la etajul 3 la etajul 2 -->
<lift nume="L02" timp="22.01.2011 18:01:01">
<pozitie_etaj>3</pozitie_etaj>
<comanda>
<dela_etaj>3</dela_etaj>
<la_etaj>P</la_etaj>
</comanda>
</lift> <!-- la 61 de secunde dupa ora 6, liftul L02 a fost comandat sa mearga de la etajul 3 la parter -->
...
</jurnal>

Datele despre lifturi sunt inregistrate intr-un fisier XML descris prin urmatorul DTD:

<!ELEMENT lifturi (lift+) >
<!ATTLIST lift
nume CDATA #REQUIRED
pozitie_cladire CDATA #REQUIRED>
<!ELEMENT lift (deserveste_etaj+)>

De exemplu:

<lifturi>
<lift nume="L01" pozitie_cladire="interior">
<deserveste_etaj>P</deserveste_etaj>
<deserveste_etaj>1</deserveste_etaj>
<deserveste_etaj>2</deserveste_etaj>
<deserveste_etaj>3</deserveste_etaj>
</lift> <!-- liftul L01 poate fi accesat doar din interiorul cladirii si comandat doar (de) la etajele 1, 2, 3 si parter -->
<lift nume="L02" pozitie_cladire="exterior">
<deserveste_etaj>P</deserveste_etaj>
<deserveste_etaj>3</deserveste_etaj>
</lift><!-- liftul L02 poate fi accesat doar din exteriorul cladirii si comandat doar (de) la etajul 3 si parter -->
...
</lifturi>


CERINTE

Se cere sa se afiseze, folosind un singur document XSL:
- numarul total de lifturi instalate;
- cate lifturi au acces la etajul 1, dar nu au acces la parter;
- in ordine cronologica, toate comenzile din ziua de 22 ianuarie 2011: numar curent, etaj pornire, etaj sosire, nume lift
(cu rosu daca este lift exterior, cu albastru pentru cele interioare);
- numele liftului care a primit ieri ultimul comanda pentru a merge la etajul 5;
- intr-un tabel, lifturile care au fost la etajele potrivite pentru a prelua comenzi, azi, intre orele 10 si 12
(nume lift, pozitia in cladire, ora raportului), cu rosu;
- in acelasi tabel, lifturile care nu au fost la etajele potrivite pentru a prelua comenzi, azi, intre orele 10 si 12
(nume lift, pozitia in cladire, ora raportului), cu albastru.


ċ
lift.zip
(2k)
Dan Alexandru,
19 mar. 2012, 01:48