Proiect XML si informatie structurata
Raducanu Andrada Maria-Magdalena
343A3
Partea I: Analiza domeniului
Domeniul ales se numeste: Campionat Mondial de fotbal/baschet/handbal.
Avand in vedere ca domeniul tratat este unul de tip competitie, am ales urmatoarea structura: analiza se
face la nivel de meciuri ce se desfasoara in cadrul competitiei. Tipul competitiei este de single
elimination, asadar, odata ce un meci este jucat, una dintre echipe trece in etapa urmatoare, iar echipa
care a pierdut paraseste campionatul.
Constrangerile intalnite au vizat modul in care pot organiza informatia: ce caracteristici sunt necesare
pentru fiecare echipa si care sunt considerate optionale, ce informatii trebuie precizate pentru a
caracteriza succinct meciul.
Am ales in final definirea urmatoarelor tag-uri, avand copii aferenti:
tag-ul parinte: campionat. Acesta este radacina XML-ului bine format
tag-ul meci: acesta reprezinta urmatorul nivel in care am ales sa organizez informatia
tag-ul echipa: acest tag caracterizeaza cu informatiile esentiale, cele 2 echipe (distincte) care joaca
intr-un meci. In interior exista urmatoarele:
- nume: numele echipei care joaca in meciul respective
- regiune: regiunea (judetul) din care provine
- antrenor: numele antrenorului echipei
tag-ul categorieMeci: fiind o competitie single elimination cu un numar limitat de echipe, acest tag
poate avea urmatoarele valori: sferturi, semifinala si finala
tag-ul eveniment: contine informatiile despre data si ora la care se va juca meciul. In interior se
gasesc:
- data: data la care se joaca meciul
- ora: ora la care se joaca meciul
tag-ul locatia: contine informatii despre locatia unde se va juca meciul.
DTD-ul asociat XML-ului este unul extern si contine metadatele despre structura “arborelui” XML. Sunt
definite 11 elemente, pentru fiecare tag in parte care contin majoritar text (date caracter):
<!ELEMENT campionat (meci+)>
<!ELEMENT meci (echipa+,categorieMeci,eveniment+,locatia)>
<!ELEMENT echipa (nume,regiune,antrenor)>
<!ELEMENT nume (#PCDATA)>
<!ELEMENT regiune (#PCDATA)>
<!ELEMENT antrenor (#PCDATA)>
<!ELEMENT categorieMeci (#PCDATA)>
<!ELEMENT eveniment (data,ora)>
<!ELEMENT data (#PCDATA)>
<!ELEMENT ora (#PCDATA)>
<!ELEMENT locatia (#PCDATA)>
Partea a II-a: Implementarea aplicatiei
XML Schema a fost proiectat fiind completat fata de DTD cu niste reguli mai complexe decat cele oferite
de formatul anterior mentionat.
Numai atributele si elementele globale trebuie sa aiba un spatiu de nume.
In interiorul structurii <schema>, elementul radacina este campionat. In continuare, elementele care
urmeaza sunt complexType deoarece acesta contine si alte elemente, care sunt reprezentate in mod
sequencial.
Pentru elemental aferent tag-ului echipa am impus restrictia de aparitii maxime egale cu 2. Elementele
din interior sunt tratate la fel ca cele din elemental radacine: complexType si sequence. Toate acestea
sunt de tipul string.
Pentru elemental categoriMeci am impus restrictia de enumaratie: acesta poate avea doar urmatoarele
valori: sferturi, seminifinala, finala. Acestea au fost trate de data aceasta ca fiind simpleType.
Inca o restrictie a fost adaugata pentru elemental locatia, anume acela de a pastra spatiile albe din
textul aferent: whitespace value=”preserve”.
Pe langa toate acestea, am adaugat si o extensie, de la elementul eveniment, anume, evenimentExtins:
acesta imi adaga la elementele deja existente din eveniment si elemental locatia. Am realizat acest lucru
in urmatorul mod: extensia este de tipul complexType si are in interiorul sau complexContent, deoarece
trebuie sa specific si elemental de baza de la care fac exensia. In cazul meu, acesta este eveniment. In
mod secvential se specifica elementele in plus.
Foile de stiluri au fost definite in fisierul XSL. Pentru acestea am definit o structura de tip tabel in HTML
si am iterat pe rand fiecare element din XML, folosind structuri de tipul xsl:for-each si xsl:value-of pentru
a putea accesa toate tagurile cu informatiile aferente structurii mele.
Interfata vizuala permite incarcarea fisierului XML si al fisierului XSL de pe un mediu extern, parsarea si
transformarea acestora pentru vizualizarea ca si tabel.