Exercitii 1

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.2008 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.2008 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

A. 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 1 ianuarie 2008: 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.

B. Creati alte doua documente DTD care sa permita in viitor

- inregistrarea in jurnal si a unui identificator (de ex.: codul cartelei magnetice proprii) pentru persoana care a comandat liftul;

- inregistrarea tuturor persoanelor care pot comanda astfel lifturi in cladire.