Processamento e Representação de Informação (MIEI)
O objectivo principal desta ficha é praticar um pouco a criação de estruturas de dados em JSON.
Recursos: |
|
Recursos disponíveis para a realização da ficha:
|
|
Exercícios: |
|
Numa banda filarmónica o problema da gestão de partituras é um problema complexo. Há várias obras pertencentes ao reportório e novas sempre a surgir para serem acrescentadas. Cada obra para além da sua metainformação tem a ela associada uma série de partituras: normalemente uma para o maestro e outra para cada naipe de instrumentos que compoem a banda. Para cada instrumento poderá haver mais de uma partitura em clave ou afinação diferente.
No intuito de operacionalizar esta gestão criou-se uma base de dados em XML da qual se apresenta a seguir um excerto:
<?xml version="1.0" encoding="UTF-8"?> <arquivo-musical> <obras> <obra id="m1"> <titulo>Homenagem a J. Serra</titulo> <tipo>Marcha de Desfile</tipo> <compositor>Ilídio Costa</compositor> </obra> <obra id="m2"> <titulo>Armindo Alves</titulo> <tipo>Marcha de Procissão</tipo> <compositor>Ilídio Costa</compositor> <instrumentos> <instrumento> <designacao>Sax Barítono</designacao> <partitura type="TIF" path="ArmindoAlves-saxB.tif"/> </instrumento> </instrumentos> </obra> ... <obra id="m27"> <titulo>Canções da Tradição</titulo> <tipo>Rapsódia</tipo> <compositor>Luís Cardoso</compositor> <instrumentos> <instrumento> <designacao>Sax Alto I</designacao> <partitura type="PDF" path="CancoesTrad-saxA1.pdf"/> </instrumento> <instrumento> <designacao>Clarinete I</designacao> <partitura type="PDF" path="CancoesTrad-clari1.pdf"/> </instrumento> <instrumento> <designacao>Clarinete II</designacao> <partitura type="PDF" path="CancoesTrad-clari2.pdf"/> </instrumento> ... </instrumentos> </obra> ... <obra id="m46"> <titulo>Santana</titulo> <tipo>Medley</tipo> <compositor>Santana</compositor> <arranjo>Giancarlo Gazzani</arranjo> <instrumentos> <instrumento> <designacao>All</designacao> <partitura type="PDF" path="Santana-all.pdf"/> </instrumento> </instrumentos> </obra> </obras> </arquivo-musical>
Pretende-se extrair informação desta base de dados para estruturas de dados em JSON. Nesse sentido são-te propostas as seguintes alíneas às quais deverás responder com a especificação de uma stylesheet XSLT.