Estou começando um curso rápido de XML com base em algumas ideias sugeridas no site americano http://www.w3schools.com, que por sinal é uma excelente fonte. Também adicionei algumas informações que são importantes para o aprendizado.
Pretendo de forma bem simples mostrar o que é, como funciona e como implementar XML em suas páginas (ou aplicações). Depois deste, partimos para um tópico mais avançado.
Introdução
Levo em consideração que o leitor já tenha certo conhecimento em HTML.
XML significa EXtensible Markup Language
O foco do XML é o armazenamento de dados e a informação do que se trata esses dados. O XML não se preocupa em como mostrar essas informações, mas somente em o que mostrar.
Pelo que você já tem visto por aí, suas marcações são parecidas com HTML, porém sua função é completamente diferente. Aqui trago essa diferença entre HTML e XML.
Veja que interessante, como foi visto, XML se concentra nos dados e o que exibir, enquanto que HTML se concentra em como exibir esses dados e onde exibir. Por enquanto, pense em XML como uma fonte de dados.
As tags do XML não são pré-definidas como em HTML, ou seja, as tags são criadas pelo autor do documento para nomear uma informação em seu conteúdo. XML são documentos auto-descritivos, ao abri-lo em um editor de texto seu entendimento é imediato. E o mais importante, XML é recomendado pelo W3C e possui alguns padrões já estabelecidos.
Resumindo em miúdos e de uma forma bem simples, XML consegue armazenar os dados fora do HTML e podem ser lidos independente de plataforma ou browser.
Seu uso se estende a muitas finalidades, como armazenamento de dados (como dito acima) e compartilhamento de dados; por exemplo, você possui um comércio eletrônico voltado a informática e deseja disponibilizar somente algumas informações de seus produtos da categoria “memórias”, cria-se então um XML como base nesse filtro, então é compartilhado com seu representante. Esse documento poderá ser aberto tanto por outros sites como por aplicativos desktop.
Sintaxe
Veja um exemplo:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don’t forget me this weekend!</body>
</note>
A primeira linha é a declaração: versão do XML e o tipo de codificação do caractere. Nesse caso usamos a versão 1.0 com ISO-8859-1 (Latin-1/West European).
A segunda linha é o nó raiz do documento, informa que teremos informações referentes a uma “nota” (note). As 4 linhas seguintes nos indica os nós filhos: to, from, heading and body. E por fim, fechamos o nó raiz com a tag “</note>”. É aí que nosso documento XML acaba, não há mais informações.
Pontos importantes:
– Ao escrever documentos XML, é obrigatório o fechamento das tags. Em HTML podemos deixar algumas tags em aberto, muitas vezes o navegador “entende” sua intenção. Mas em XML isso não é possível.
– XML é sensível ao caso. A tag <Mensagem> é diferente de <mensagem>.
– Cuidado com as inconsistências de tags. Exemplo:
Certo: <b><i>Texto documento</i></b>
Errado: <b><i>Texto documento</b></i>
– É obrigatório um nó (elemento) raiz, como o exemplo acima. Todos os dados são inseridos em elementos filhos.
– Os atributos (veremos a seguir) devem estar entre aspas:
Errado: <note date=12/11/2002>
Certo: <note date=”12/11/2002″>
– Os espaços em branco no XML são preservados. Exemplo:
Olá meu nome é Daniel.
– Os comentários devem ser escritos como em HTML: <!– comentário –>
Você percebe que não há nada de especial em documentos XML? São arquivos texto comuns com formatações de fácil compreensão. Seu entendimento é obtido através das próprias tags criadas pelo autor (para isso existem as boas práticas de desenvolvimento).
Elementos
Elementos em XML são as tags que armazenam as informações. Veja o exemplo abaixo:
<note>
<to>Tove</to>
<from>Jani</from>
<body>Don’t forget me this weekend!</body>
</note>
Quais são nossos elementos de armazenamento de informações?
<to>, <from> e <body>
O que esse documento parece para você? Uma mensagem ou um e-mail, certo? Veja como é fácil sua compreensão.
Se o autor resolve adicionar mais informações no futuro:
<note>
<date>2002-08-01</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don’t forget me this weekend!</body>
</note>
Isso não gera erro, pois XML pode ser alterado ou expandido.
Vários elementos ou hierarquia
Veja um exemplo abaixo de vários registros de livros em um XML:
<book>
<title>My First XML</title>
<prod id=”33-657″ media=”paper”></prod>
<chapter>Introduction to XML
<para>What is HTML</para>
<para>What is XML</para>
</chapter>
<chapter>XML Syntax
<para>Elements must have a closing tag</para>
<para>Elements must be properly nested</para>
</chapter>
</book>
Saída:
My First XML
Introduction to XML
• What is HTML
• What is XML
XML Syntax
• Elements must have a closing tag
• Elements must be properly nested
Aprendemos que nesse caso, o que faz a separação de registros é o elemento <chapter>, por sua repetição. Podemos chamar também de agrupamento, veja os detalhes:
Book é o elemento raiz; Title, prod e chapter são elementos filhos de book. Book é o elemento pai (parent element); Title, prod e chapter são elementos irmãs, pois estão debaixo de um mesmo pai.
Tipos diferentes
Cada elemento XML pode armazenar tipos diferentes de informações. O exemplo acima mostra que title está armazenando somente texto (element content), o elemento prod está vazio (empty content), o elemento chapter está armazenando tanto uma informação como outros elementos (mixed content).
Nomes dos elementos
Devemos seguir as seguintes regras para garantir a sintaxe correta na definição dos nomes dos elementos em XML:
– Podem conter letras, números e outros caracteres;
– Não podem começar com números ou qualquer tipo de pontuação;
– Não podem começar com a palavra “xml”;
– Não podem conter espaços.
Qualquer nome pode ser criado, em XML não há palavra reservadas, mas tente sempre usar o bom senso e lembre-se que outros desenvolvedores poder dar continuidade em seu trabalho.
Os nomes podem ser do tamanho que quiser, não há um limite de caracteres, mas não exagere, sugiro ter um tamanho suficiente para o entendimento do documento, exemplo: <titulo_livro> ao invés de <o_titulo_do_livro>.
Documentos XML são geralmente uma conseqüência de uma estrutura de banco de dados (SQL, MySQL, Oracle, Access), dessa forma, tente nomear seus elementos acompanhando seu banco. Procure não utilizar qualquer tipo de acentuação.
O único caractere reservado em XML é o “:”, este é usado para namespaces (veremos mais pra frente).
Por enquanto ficamos por aqui, estarei continuando.
Postem seu comentários. Qualquer dúvida estamos aí.