Introdução Ao XML

Introdução Ao XML

A característica principal do XML é a extrema organização do conteúdo com a liberdade da definição de tags personalizadas. Essa é a frase que você vai usar para explicar ao seus amigos a vantagem de utilizar o XML, mas primeiro é preciso entender o seu funcionamento.

xml

O Que É XML?

Começamos pelo nome, XML vem de eXtensible Markup Language, linguagem de marcação extensível. Por linguagem de programação você entende que ele é responsável pela estrutura das informações. Uma analogia é com o HTML que engloba o texto que aparecerá em negrito com as tags:


<strong></strong>

No XML também você utiliza tags para delimitar a informação, mas ao invés da formatação, a tag é responsável por descrever o dado. E neste ponto entra o ‘extensível’ do nome, pois você pode criar suas próprias tags, como veremos adiante.

Primeira definição importante, o XML foi desenvolvido com o único propósito de carregar a informação, nada mais. Ao visualizar um arquivo XML no navegador você verá a estrutura da maneira que foi escrita, ele não é interpretado.

Apesar das possibilidades de personalização, o XML possui diretrizes com entidades e esquemas padrão. Nada de misturar apresentação com formatação. Por isso, mesmo sem saber muito sobre o conteúdo do arquivo, você consegue criar um script para trabalhar com ele.

A portabilidade intrínseca ao XML permite que possamos utilizar qualquer linguagem para ler o conteúdo de um arquivo neste formato. Esse é outro grande trunfo do XML e o responsável pela sua adoção em diferentes projetos.

Por Que Utilizar O XML?

Sendo que você pode organizar o arquivo XML da maneira que quiser, pode criar um arquivo com o retorno de uma consulta ao banco de dados. O conteúdo deste arquivo pode ser manipulado e editado o quanto for preciso evitando que você faça repetidas requisições ao banco de dados. Resultado em aumento do desempenho e redução da sobrecarga no servidor.

O XML também é muito utilizado em conjunto com o Flash que lê o conteúdo do arquivo e basta uma alteração neste para que o conteúdo da animação mude. Um ganho de tempo valioso.

Existem outros tantos exemplos de ganho na utilização do XML e a prova maior é a massiva utilização deste formato de intercambio de dados. O RSS é um bom exemplo disso.

Estrutura Do Documento

Conhecimento prévio do DOM facilita o aprendizado. Mas se você não conhece, o resumo é o seguinte: o documento possui uma estrutura de árvore onde existe uma relação de parentesco entre os elementos. Mais adiante veremos um exemplo disso. Outro ponto importante é que as tags precisam estar em dupla, uma abre e a outra fecha:


<nomedatag></nomedatag>

A primeira linha de um documento XML inicia informando a versão do XML e a codificação dos caracteres contidos.


<?xml version="1.0" encoding="utf-8"?>

Todo documento precisa ter esta linha inicial.

Em seguida é criada uma tag que engloba todo o documento, como se fosse a tag body do HTML.


<comentariosblog>
  
</comentariosblog>

Já começamos a criar nossas tags personalizadas. Veja que ela é bastante descritiva nos informa o que esta englobando. Este elemento raiz é uma das poucas partes obrigatórias em um documento XML.

A criação dos outros elementos segue as mesmas diretrizes, abre a tag insere o conteúdo e fecha a tag, tendo cuidado para manter a estrutura. Vejamos dois exemplos, um do que deve ser feito e outro que retorna erro por mal formação da estrutura:



<!-- exemplo do que deve ser feito -->
<elementopai>
  <elementofilho>Informação</elementofilho>
</elementopai>

<!-- exemplo do que deve ser evitado -->
<elementopai>
  <elementofilho>Informação</elementopai>
</elementofilho>

O XML é sensível a caixa o que significa que se você escreveu a tag de abertura em minúsculas, a de fechamento também precisa ser em minúsculas. Ao definir o nome não inicie com número, espaço em branco, sinal de pontuação ou ‘xml’.

Se houver a necessidade do espaço no nome do elemento, utilize para ligar as duas palavras o underline (_).



<?xml version="1.0" encoding="utf-8"?>

<comentariosblog>

  <comentario>
    <autor>Maicon</autor>
    <email>endereco@servidor.com</email>
    <texto>Texto do comentário.</texto>
  </comentario>

  <comentario>
    <autor>Nome</autor>
    <email>endereco@servidor.com</email>
    <texto>Outro texto.</texto>
  </comentario>
  
</comentariosblog>

Temos aqui um documento completo. Mesmo se você nunca trabalhou com XML vai conseguir entender a estrutura e propósito do documento. Você pode salvá-lo e acessar os dados através de javascript, PHP ou qualquer outra linguagem. Inclusive pode inserir mais informações.

Atributos

Dentro das tags é possível inserir informações adicionais, os atributos. Informações que são uteis para o programa, mas não fazem parte dos dados em si. Os atributos não servem para formatação. O funcionamento é semelhante ao do HTML.



<autor localizacao=”Portugal”>Nome</autor>

O nome do atributo também é personalizável. Para evitar problemas com a codificação ele não possui os acentos. O valor do atributo deve sempre estar entre aspas simples ou duplas. Você pode criar quantos forem necessários para cada elemento.

É totalmente facultativo o uso dos atributos. Você poderia perfeitamente criar um elemento chamado ‘localizacao’ e inserir o valor como dado normal. Podemos pensar nos atributos como uma forma de dividir as informações conforme o propósito.

Entidades


Sendo que os sinais de maior e menor do que (< >) são utilizados para criar novas tags, para utilizá-los dentro do conteúdo é preciso substituí-los pelas entidades. Ao invés de “<” você deverá usar “&lt;”, no lugar de “>” use “&gt;”.  A apóstrofe e aspas também se encaixam no caso. Substitua “ ‘ “ por “&apos;” e aspas(“) por “&quot;”, o “&” por “&amp;”.



<comentario>O número 1 é &lt; 100.</comentario>

Para textos mais longos a melhor opção é criar uma seção CDATA. Tudo que estiver dentro dela será ignorado pelo processador XML e você não precisa se preocupar em substituir os caracteres reservados.



<comentario>
<![CDATA
  Comentário com sinais >< & “aspas”
]]>
</comentario>

Validação Da Estrutura

Se um documento XML estiver mal formado, na hora da leitura dos dados o programa pode travar

As regras para ter um documento XML bem formado são poucas: é preciso tag de abertura e fechamento, valor do atributo entre aspas, símbolos reservados com suas respectivas entidades, nome dos elementos respeitando as diretrizes e um elemento raiz.

Agora se você quer um documento válido, entra em cena o DTD (Document Type Definition). Ele define qual deve ser a estrutura do documento. Para o documento criado acima, o DTD é:


<!DOCTYPE comentariosblog
[
<!ELEMENT comentariosblog (comentario)>
<!ELEMENT comentario (autor, email,texto)>
<!ELEMENT autor (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT texto (#PCDATA)>
]>

<?code>

Na primeira linha é definido que o elemento raiz é o ‘<strong>comentariosblog</strong>’. Mais abaixo é definido que este elemento contém o ‘comentario’. A linha seguinte informa que o elemento ‘<strong>comentario</strong>’ deve conter três ‘<strong>autor,email,texto</strong>’. Nas três linhas seguintes é informado que cada um dos três elementos é do tipo <strong>‘#PCDATA</strong>’, pois são preenchidos com informações diversas.

É possível criar um documento somente com as linhas acima, e importa-lo no arquivo XML.

<code>

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE comentariosblog SYSTEM "estrutura.dtd">

<comentariosblog>

</comentariosblog>

Duas observações: veja que na linha da importação já é informado o elemento raiz, então o arquivo importado somente possui as linhas com “!ELEMENT”; o arquivo importado possui a extensão ‘dtd’ que informa conter dados de estrutura.

No final do tutorial você terá os dois arquivos para importação.

Conclusão

Sem dúvida o XML é muito simples. Tanto, que após ler este tutorial você já sabe como criar um arquivo. Mas é justamente esta simplicidade o grande diferencial do XML. O que permite que ele seja utilizado entre diversos programas e facilite a vida de nós, programadores.

Download do código usado neste tutorial: Introdução Ao XML

Be Sociable, Share!

Participa! Comenta...