XML - Extensible Markup Language
Documentos com DTDs
 

Definição

No XML as regras que definem um documento são ditadas por DTDs (Document Type Definitions), as quais ajudam a validar os dados quando a aplicação que os recebe não possui internamente uma descrição do dado que está recebendo. Mas os DTDs são opcionais e os dados enviados com um DTD são conhecidos como dados XML válidos. Um analisador de documentos pode checar os dados que chegam analisando as regras contidas no DTD para ter certeza de que o dado foi estruturado corretamente. Os dados enviados sem DTD são conhecidos como dados bem formatados. Nesse caso, o documento pode ser usado para implicitamente se auto-descrever, como no caso da coleção de receitas em XML de um exemplo desse tutorial.

Com os dados XML válidos e com os bem-formatados, o documento XML se torna auto-descritivo porque as tags dão idéia de conteúdo e estão misturadas com os dados. Devido ao formato do documento ser aberto e flexível, ele pode ser usado em qualquer lugar onde a troca ou transferência de informação é necessária. Desta forma, podemos usar o XML para descrever informações sobre páginas HTML, ou descrever dados contidos em objetos ou regras de negócios, ou transações eletrônicas comerciais. O XML pode ser inserido dentro de documentos HTML, o que foi definido pelo W3C como "data-islands". Esse recurso permite que um documento HTML possa ter múltiplas formas de visualização quando se faz uso da informação de semântica contida no XML.

O que define formalmente quais elementos e quais combinações possíveis são permitidas dentro de um documento XML é o "schema", ou seja, esquema. Existem novos esquemas propostos ao W3C, dentre eles estando o DCD (Document Content Description), que provêm a mesma funcionalidade dos DTDs, e que, pelo fato de linguagens esquema serem extensíveis, os desenvolvedores podem aumentá-los com informações adicionais, tais como regras de apresentação, tornando essas novas linguagens esquema mais poderosas que os DTDs.

 

Resumo

As DTDs são formas de se descrever classes de documentos XML (como gramáticas para outras linguagens).

Problemas com DTDs:

· se muito simples não tem poder expressivo de descrição.

· se for muito complexa terá uma sintaxe horrível.

Um exemplo de DTD:

<!DOCTYPE recipecollection [
...
<!ELEMENT recipe 
(title,author?,date?,description,ingredients,preparation,related)>
<!ATTLIST recipe id ID 
#REQUIRED
category (breakfast|lunch|dinner|dessert|unknown) 
#IMPLIED>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author ANY>
...
]>

A solução para as DTDs: usar linguagens de esquemas (schema languages) tais como DSD,XML Schema, etc…

Os documentos, para serem validados, tem que ser bem formados e também estarem em conformidade com a DTD dada

 

 

 Seção anterior
 Próxima seção
 Volta para a página inicial