Como criar um documento XML - Introdução ao XML: Parte III
O objetivo deste post é apresentar os elementos/partes de um documento XML.
Até agora, os XMLs apresentados como exemplos tinham uma estrutura parecida com essa:
Olá!
O XML acima possui apenas uma declaração e os elementos que compõem a árvore XML. Porém, um XML também pode conter outros elementos. Segue a listagem das partes de um XML:
- Declaração XML
- Prólogo
- Instruções de processamento
- Elementos e atributos
- Comentários
- Entidades
- Seções CDATA
Declarações do XML
A maiora dos documentos XML começam com uma declaração XML que fornece informações básicas sobre o documento para o parser. É recomendado que um XML comece com uma declaração, mas não é obrigatório. Caso a declaração exista, deve ser a primeira coisa do documento. Eis um exemplo de declaração xml:
A declaração XML utiliza o elemento <?xml?>. Se utilizar <?XML?> terá um erro de validação.
Existem três atributos que podem ser usados na declaração:
- Version – é a versão do XML, que pode ser 1.0 ou 1.1. Este atributo é obrigatório se você usar a declaração XML;
- Enconding – é a linguagem de codificação do documento. O padrão é UTF-8. Este atributo é opcional.
- Standalone – os valores possíveis são “yes” ou “no”. Use “yes” se o documento não faz referência a documentos externos ou entidades. Use “no” caso contrário. Este atributo é opcional.
Comentários
Você pode incluir comentários em um documento XML para incluir notas explicatórias e/ou descritivas. Os comentários são ignorados por um parser, assim como também são ignorados por um compilador. É possível incluir um comentário em qualquer lugar do XML, exceto nas tags (“dentro” das tags) e antes da declaração XML.
alguém
outra pessoa
abcdefghijk
Instruções de Processamento
O XML permite que você utilize instruções especiais para passar informação para os programas que possam ler o documento XML. Uma instrução de processamento comença com "<?" e termina com "?>". A única restrição é que você não pode usar <?xml?> ou <?XML?> (que também é reservado).
No exemplo abaixo, a instrução de processamento é para o Cocoon, um framework da Apache que é focado em publicação XML. Quando o Cocoon está processando um XML, procura por instruções que comecem com cocoon-process, então processa o XML de acordo com esta instrução. O atributo type=”sql” indica que o documento XML contém uma instrução SQL.
Prólogo
O prólogo aparece no início de um documetno XML, e contém informações sobre o restante do documento. Um prólogo pode conter uma declaração XML, comentários (que descreve o documento), instruções de processamento, e declarações de tipo de documento (DTD).
O XML abaixo exemplifica um prólogo contendo uma declaração XML, comentário, uma instrução de processamento e um DTD (no elemento <!DOCTYPE>).
mensagem
Entidades
As entidades são constantes associadas a um valor de texto. São substituídas durante o processamento do documento XML. Por exemplo, se o texto “XML é legal” for aparecer em várias partes do documento podemos criar uma entidade assim:
Após a criação desta entidade, se quiser usar essa frase no documento XML, basta substituir por &legal.
Também existem algumas entidades pré-definidas. O XML possui alguns caracteres especiais, que podem até gerar conflito com o conteúdo do documento. Por exemplo, suponha que você queria utilizar a fórmula “x < y”. No XML, a fórmula ficaria assim:
x < y
Observe que a leitura não ficou muito legível. O que está confundindo a leitura é o carácter “<”, já que as tags são identificadas por este também. Para evitar essa confusão, podemos utilizar uma entidade pré-definida. O XML escrito corretamente com a entidade fica assim:
x < y
A listagem abaixo contém as entidades pré-definidas:
- < que corresponde a <
- > que corresponde a >
- & que corresponde a &
- " que corresponde a "
- ' que corresponde a '
Alguns documentos XML possuem caracteres não usuais, especialmente os documentos que possuem conteúdo científico ou matemático. Se quisermos inserir o símbolo Π (pi), devemos fazer referência ao seu código no Unicode, como abaixo:
ã
CDATA
A seção CDATA serve para prevenir o processamento de uma porção de conteúdo. Tudo o que está nessa seção não será processado pelo parser.
Exemplo:
Este é o conteúdo do XML de exemplo
Maria
99999999
]]>
Se visualizarmos o XML acima, teremos:
Note que as tags <contato>, <nome> e <telefone> não foram reconhecidas como tags do documento, mas sim como conteúdo da tag <conteudo>.
Definindo Tags e Atributos
No XML, você é quem define o nome das tags e dos elementos que o documento XML vai ter. A pesar de você poder escolher o nome que quiser para suas tags, existem algumas regras para a formação dos nomes.
A especificação XML é bem específica em relação ao nome das tags. Você pode começar uma tag com uma letra, underscore (_) ou dois pontos (:). Os próximos caracteres podem ser letras, dígitos, underscore, hífen, e dois pontos. Espaço não é permitido. Exemplo de tags que são permitidas:
<_documento>
Algumas tags que são ilegais:
<2documento>
<.documento>
< 2009>
Os nomes de atributos seguem as mesmas regras que as tags.
Obs.: Embora seja permitido o uso de dois pontos (:), não é aconselhável usar. O caracter ":" é utilizado por prefixos do namespace (um dos assuntos do próximo post).
Conclusão
Este post abordou as partes de um XML. Sabendo agora o que podemos ter em um XML, vamos falar sobre como criar um documento XML bem formado no próximo post.
O assunto de DTD vai ser abordado em um post futuro.
Até a próxima!