| Anotação Estrutural de Documentos e sua Semântica | ||
|---|---|---|
| Prev | Apêndice C. Conversão de DTDs para Gramáticas | Next |
No capítulo onde se discutiu a semântica dinâmica (Capítulo 6), foi introduzido um documento SGML que continha o seguinte DTD.
<!DOCTYPE RECEITAS [
<!ELEMENT RECEITAS (TITULO,RECEITA*)>
<!ELEMENT TITULO (#PCDATA)>
<!ELEMENT RECEITA (TITULO,INGREDIENTE+)>
<!ELEMENT INGREDIENTE (#PCDATA)>
<!ATTLIST RECEITA
ORIGEM CDATA #IMPLIED>
]>Agora, apresenta-se a sua conversão numa gramática de atributos, passo a passo, através da aplicação sistemática das regras definidas ao DTD:
Exemplo C-6. Uma conversão: DTD → GA
Para cada declaração do DTD apresentam-se as produções geradas sistematicamente:
Receitas → ReceitasAttList ReceitasContent
ReceitasAttList → &egr;
ReceitasContent → Grupo1
Grupo1 → Titulo Grupo2_0n
Grupo2_0n → &egr;
| Grupo2 Grupo2_0n
Grupo2 → ReceitaTitulo → TituloAttList TituloContent
TituloAttList → &egr;
TituloContent → textList
textList → text textList
| &egr;
text → strReceita → ReceitaAttList ReceitaContent
ReceitaAttList → &egr;
ReceitaContent → Titulo Grupo3_1n
Grupo3_1n → Grupo3
| Grupo3 Grupo3_1n
Grupo3 → IngredienteIngrediente → IngredienteAttList IngredienteContent IngredienteAttList → &egr; IngredienteContent → textList
ReceitaAttList → Origem
Origem → str
| &egr;Com este exemplo, fica concluído este apêndice sobre a conversão de DTDs em Gramáticas de Atributos.