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