Validação de documentos XML – Introdução ao XML - Parte V

13 Mar 2009
3 mins read

Este post tem como objetivo mostrar o que é e por qual motivos devemos utilizar a validação de documentos XML.

Até agora, os posts mostraram como construir um documento XML bem formado. Com essas regras, você pode construir o XML que desejar, já que é você quem define suas próprias tags. Apesar de toda a liberdade, ainda falta uma maneira para restringir o vocabulário dos elementos e atributos que configuram um conjunto de documentos. O processo de definir formalmente a linguagem de um XML denomina-se modelagem de documento.

Mas o que é exatamente modelar um documento XML?

Um modelo de documento determina quais documentos XML estão de acordo com a linguagem definida. Um modelo de documento responde algumas perguntas, tais como: “Um contato precisa ter um telefone celular?”, “Um contato pode ter mais de um endereço?”.

Um modelo é um tipo especial de documento, escrito numa sintaxe própria para descrever uma linguagem de XML. Essa “linguagem de XML” também pode ser chamadade tipo de documento. Com esse modelo de documento, é possível dizer se um documento XML está escrito conforme seu tipo de documento. Em outras palavras, um XML válido é um documento XML que segue as regras de formação definidas em seu tipo de documento.

A figura abaixo ilustra essa situação:

modelo_documento_xml

Como saber se eu preciso criar um documento que especifica o modelo do meu XML?

Você é quem decide se vai usar um modelo de documento ou não. O XML foi projetado para funcionar das duas maneiras.

E se eu não quiser usar um documento que especifique o conteúdo do meu XML?

Se você decidir não usar um modelo de documento XML, você precisa saber como os elementos e os atributos se comportam:

Existem duas formas de criar esses documentos de definição de conteúdo do XML (linguagem XML):

A primeira forma é utilizando um DTD (Document Type Definition). Um DTD define os elementos que podem aparecer no XML, como este elementos devem estar relacionados e outros detalhes básicos da estrutura de um documento XML. Os DTDs fazem parte da especificação original do XML.

A segunda forma é utilizando um XML Schema. Um schema pode definir todas as estruturas do documento que você pode colocar em um DTD, e também pode definir tipos de dados e outras regras mais complicadas do que um DTD. O W3C desenvolveu a especificação do XML Schema apenas um pouco depois da especificação original do XML.

Conclusão

Um documento XML não válido (sem DTD ou Schema associado) é individualista. Quando um DTD ou Schema são definidos, representam um conjunto de documentos XML que poderão existir. Com apenas um documento não válido, é possível fazer muitas coisas, mas fica muito difícil automatizar os processos sem considerar uma classe de documentos.

Mas se você estiver trabalhando com poucos documentos, e estes não tiverem restrições, você não precisa criar um modelo de documento XML. O seu conjunto é pequeno, e se você parar para especificar o documento, pode perder um tempo precioso.

Tudo depende do ambiente em que o contexto está inserido. Você é quem decide se deve usar a validação.