Featured Posts

Carreira em TI: Currículo em Inglês Uma das grandes dificuldades para as pessoas da área de TI é, muitas vezes, escrever um bom currículo em inglês. E ter um currículo em inglês, é essencial, já que inglês é tão importante quanto...

Readmore

Entrevista para o Jornal A Tribuna Jan/2010: Profissões... Na última de semana de janeiro tive a honra de conceder mais uma entrevista para o jornal A Tribuna - vendido no Espírito Santo, meu estado natal - sobre mercado de trabalho na área de TI. A reportagem...

Readmore

Manipulando arquivos XML em Java com a API SAX - Parte... O padrão SAX cresceu a partir do método DOM, que era muito complexo e inadequado para várias aplicações. Além disso, até então, cada parser XML para Java tinha seu próprio padrão de interface....

Readmore

Manipulando arquivos XML em Java com a API DOM - Parte... A interface DOM DOM é uma interface de programação, baseada no modelo de objetos, que permite a manipulação e transformação de documentos em XML. A interface DOM manipula documentos XML na forma...

Readmore

Como construir um grid dinâmico utilizando Ext JS É muito simples criar um grid/tabela estático usando o widget grid da biblioteca Ext JS. O problema começa quando você quer criar um grid totalmente dinâmico. Mas, em primeiro lugar, o que quero...

Readmore

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

Posted by Loiane | Posted in XML, tutorial | Posted on 02-03-2009

4

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!

  • Share/Bookmark