Post

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:

  • &lt; que corresponde a <
  • &gt; que corresponde a >
  • &amp; que corresponde a &
  • &quot; que corresponde a "
  • &apos; 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:

cdataxml

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!

This post is licensed under CC BY 4.0 by the author.
This site uses cookies. Please choose whether to accept analytics cookies. Privacy Policy