Processamento Estruturado de Documentos
O objectivo principal desta ficha é introduzir ao aluno o desenvolvimento de DTDs.
Por motivos que se prendem com a integração de várias etapas e ferramentas vai-se utilizar o ambiente denominado XMLSpy.
No fim, o aluno deverá estar apto a desenvolver pequenos DTDs com a ferramenta apresentada.
Pretende-se criar um livro de receitas para se irem registando os bons resultados de experiências culinárias. Uma receita tem a constituição mostrada no exemplo seguinte:
<livro-de-receitas> <abertura> <autor>José Carlos Ramalho</autor> <data>17 de Março de 2003</data> <local>Universidade do Minho</local> </abertura> <receitas> <receita língua="pt" classificação="doçaria"> <título>Mousse de chocolate</título> <ingredientes> <ingrediente>200g de chocolate de chocolate de culinária</ingrediente> <ingrediente>50g de margarina</ingrediente> <ingrediente>meia dúzia de ovos</ingrediente> <ingrediente>4 colheres de sopa de açucar</ingrediente> </ingredientes> <preparação> <instrução>Separam-se as gemas das claras.</instrução> <instrução>Derrete-se o chocolate com a margarina.</instrução> <instrução>Adicionam-se as gemas.</instrução> <instrução>Mistura-se o açucar no chocolate.</instrução> <instrução>Batem-se as claras em castelo.</instrução> <instrução>Mistura-se tudo no recipiente final.</instrução> </preparação> </receita> ... </receitas> </livro-de-receitas>
Desenvolva então, cada uma das seguintes alíneas:
Pretende-se criar uma agenda para gerir contactos de pessoas e empresas.
Uma agenda deste tipo é essencialmente constituída por uma lista de entradas.
Uma entrada pode ser simples, correspondendo a uma pessoa ou empresa, ou pode ser composta, neste caso corresponde a uma lista de pessoas e/ou empresas.
A agenda poderá conter um número livre de grupos aninhados.
Um grupo poderá ainda conter referências a entradas definidas noutros pontos da agenda.
Cada entrada é constituída pelos seguintes items de informação:
Nas alíneas que se seguem considere que uma frase concreta desta linguagem tem a seguinte forma:
<?xml version="1.0" encoding="UTF-8"?> <agenda> <entrada ident="e1"> <nome>Pedro Henriques</nome> <email>prh@di.uminho.pt</email> <telefone>253 605555</telefone> </entrada> <entrada ident="e2"> <nome>José Carlos Ramalho</nome> <email>jcr@di.uminho.pt</email> <telefone>253 604444</telefone> </entrada> <grupo ident="gepl"> <ref apontado="e1"/> <ref apontado="e2"/> <entrada ident="e3"> <nome>Mário Martins</nome> <email>fmm@di.uminho.pt</email> <telefone>253 408878</telefone> </entrada> </grupo> </agenda>
Desenvolva então, cada uma das seguintes alíneas:
Desenvolva um DTD para exames atendendo aos seguintes requisitos:
Considere como exemplo esta ficha de trabalho.
Depois de uma análise à sua estrutura, especifique um DTD ou um Schema para este tipo de documentos.