Ficha Nº7
Exercício Nº2
2003.11.05

Processando XML Schemas


Numa das primeiras aulas teóricas foram introduzidos os XML Schemas. Um XML Schema é um documento XML e como tal pode ser processado por uma stylesheet XSL.

Faça o download do Schema da Agenda de Contactos. Depois de o analisar tente desenvolver as alíneas seguintes.

(a)Especifique uma stylesheet XSL que faça uma lista dos elementos especificados no XML Schema.

(b)Especifique uma stylesheet que calcula o grafo de dependências entre os elemntos definidos. O grafo gerado deverá ser representado por um documento XML do tipo:

<grafo>
<elemento nome="nome-do-elemento">
  <composicao>
    <elemento nome="..."/>
    <elemento nome="..."/>
    ...
  </composicao>
</elemento>
...
</grafo>

(c)Tente, iterativamente, especificar uma stylesheet que gera automaticamente um DTD para o XML Schema processado. O DTD para o Schema apresentado poderia ser:

<!ELEMENT agenda (entrada | grupo)+>
<!ELEMENT entrada (nome, email, telefone)>
<!ATTLIST entrada
  id ID #REQUIRED
>
<!ELEMENT grupo (entrada | grupo | referencia)+>
<!ATTLIST grupo
  gid ID #REQUIRED
>
<!ELEMENT nome (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT telefone (#PCDATA)>
 
<!ELEMENT referencia EMPTY>
<!ATTLIST referencia
  entref IDREF #REQUIRED
>