Como criar um documento XML – Introdução ao XML: Parte III

2 de March de 2009 | By | 14 Comments

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:

<?xml version="1.0" encoding="UTF-8"?>
<mensagem>Olá!</mensagem>

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:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

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.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Aqui começa o email -->
<mensagem>
	<!-- quem enviou a mensagem -->
	<de>alguém</de>
	<para>outra pessoa</para>
	<!-- tag assunto foi comentada -->
	<!--
	<assunto>digite o assunto</assunto>
	-->
	<texto>abcdefghijk</texto>
</mensagem>

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.

<?cocoon-process type="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>).

<?xml version="1.0" encoding="UTF-8"?>
<!-- comentário -->
<?comando tipo="simples" ?>
<!DOCTYPE mensagem SYSTEM "prologo.dtd">
<mensagem>mensagem</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:

<!ENTITY legal " XML é legal ">

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:

<formula>x < y</formula>

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:

<formula>x &lt y</formula>

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:

<PI>&#227;</PI>

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:

<?xml version="1.0" encoding="UTF-8"?>
<documentoXML>
	<titulo>Este é o conteúdo do XML de exemplo</titulo>
	<conteudo>
		<![CDATA[<contato>
			<nome>Maria</nome>
			<telefone>99999999</telefone>
		</contato>
		]]>
	</conteudo>
</documentoXML>

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>
<_documento>
<documento01>
<documento-01>

Algumas tags que são ilegais:

<2documento>
<.documento>
<numero documento>
<numero*documento>
<DOCUMENTO(ID)>
< 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!

Posts Similares

Filed in: Tutoriais, XML | Tags: ,

Comments (14)

Links to this Post

  1. Lucino Oliveira - Desenvolvimento: introdução a XML | 30 de April de 2012
  1. Esta série está ficando show de bola, Loiane. Parabéns!

    Depois que terminar poderia juntar tudo num artigo e fazer um PDF, um tutorial ;-)

  2. Olá menina, tudo bem?

    Legal a iniciativa, pois o XML é uma ferramenta poderosíssima, que como você disse, é livre e pode ser adequada a qualquer tipo de situação. Muitas pessoas acabam subestimando a tecnologia por não saber aplicá-la e essa série, muito boa por sinal, transmite essa aplicabilidade.

    Abraços

  3. Obrigada Paulo!
    A idéia é essa mesma! à medida que vou escrevendo, publico aqui no blog e no disponibilizo todo o conteúdo!

  4. Parabéns Loiane! simplesmente, maravilhoso!!!

  5. Rafael

    Loiane, to começando agora mais achei muito interessante seu documento parabens.

    Se tiver como mandar no meu email mais documentos sobre XML e suas funcionalidade irei agradeçer muito..
    rafa_steves@hotmail.com

    Grato

    Rafael Esteves

  6. alvaro

    onde esta a continuaçao ??
    me manda o link por e-mail se puder
    lek-97@hotmail.com
    vlw

  7. Olá Alvaro,
    Por enquanto não tenho a continuação desses posts.

  8. Muito bom post!! Me ajudou!!!

  9. Alex

    Cara, muito útil para quem como eu, não sabia por onde começar a montar um arquivo desse tipo.

  10. Edvaldo de Melo

    Loiane, por gentileza, através dos seus conhecimentos, você poderia informar como gerar uma árvore através de informações de banco de dados mysql ?

  11. Parabéns! Sua iniciativa de orientar leigos no assunto é 10.
    Sou muito leigo neste assunto. Mas, estou precisando de orientações de como fazer um arquivo XLM com letras de músicas, para serem exibidas no projetor da minha igreja, usando o programa EASISLIDES.
    Se vc tiver um TUTORIAL para leigo, que é o meu caso, vou ficar muito agradecido.
    Pois, qro aprender o basico, para preparar de forma rapida varios canticos, para serem cantados na minha igreja e nas igrejas que visito levando meu notebook, para ficar melhor o momento dos canticos entre outros momentos.

    Muito obrigado!

  12. Oi Edvaldo,
    Você pode usar o XStream para ajudar a facilitar esse processo, pois vc pode mapear a tabela do bando em um objeto Java, e aí o XStream faz o parser para XML para você. Ou você pode fazer manualmente como mostrei nos exemplos aqui do blog.
    []‘s

  13. Olá Jackson,
    os tutoriais que se encontram aqui no blog são para iniciantes. Tente pegar desde o início e faça alguns exemplos passo a passo.
    É preciso também saber como esse software easislides funciona.
    []‘s

Leave a Reply

Trackback URL | RSS Feed for This Entry