Talvez você tenha se preocupado com o fato de não poder usar os caracteres "<" e "&" em
XML. Pois bem, a boa notícia é que eles podem ser usados sim, mas só por meio das entidades. Entidades são uma maneira de representar um caractere (ou uma sequência de caracteres) com outros caracteres.
A estrutura de uma entidade é muito simples: começa com o "e comercial" (&), seguido do nome da entidade e termina com o caractere de ponto e vírgula (;). Existem 5 entidades pré-definidas em XML:
- < - Sinal de menor (<)
- > - Sinal de maior (>)
- & - "E comercial" (&)
- ' - Apóstrofo (')
- " - Aspas (")
Embora somente o sinal de menor e o "e comercial" sejam caracteres reservados para a linguagem, é boa prática representar os outros três caracteres também por meio de entidades. Não há segredos para seu uso, veja:
<texto>O sinal "e comercial" deve ser usado com cuidado.</texto>
É possível também definir novas entidades, de forma que sirvam de "atalhos" no documento para textos utilizados com frequência. Mas a explicação disso terá de esperar por um artigo posterior.
XML x HTML
A linguagem HTML (que também é uma linguagem de marcação) apresenta muitas semelhanças com a linguagem XML. Normalmente quem já conhece uma das linguagens não tem grandes dificuldades para aprender a outra. Mas existem também algumas diferenças que devem ser conhecidas para evitar confusões.
Começando pelo propósito das linguagens, enquanto HTML é uma linguagem apropriada para a apresentação dos dados, XML é uma linguagem apropriada para armazenar e/ou transportar dados.
Quanto às diferenças técnicas, uma delas é o fato de a linguagem HTML já ter elementos pré-definidos (h1, div, span, p, br, entre outros). Em XML todos os elementos são definidos pelo próprio autor do documento (por isso mesmo é que é uma linguagem extensível).
Elementos vazios em HTML não precisam de uma barra no fim da tag. Em XML, essa barra não pode ser omitida. Além disso, a linguagem XML diferencia caracteres maiúsculos e minúsculos na definição dos elementos. Portanto, os nomes nas tags de abertura e fechamento devem ser idênticos.
Atributos em XML obrigatoriamente devem ter seus valores declarados (em HTML alguns valores podem ser omitidos porque são inferidos pelo agente de usuário) e devem estar sempre entre aspas (em HTML as aspas podem ser omitidas, caso não haja espaços no valor do atributo).
Entidades são declaradas da mesma forma em HTML e XML, porém a linguagem XML tem apenas 5 entidades pré-definidas, enquanto a linguagem HTML tem muitas mais. Além disso, seu uso não é obrigatório para os caracteres "<" e "&" em HTML.
Outra grande diferença é que a linguagem HTML é tolerante a falhas (o navegador ou outro agente de usuário vai tentar interpretar o documento mesmo que ele tenha sido projetado com erros). A linguagem XML, por outro lado, não tolera falhas. Qualquer que seja seu interpretador, ele deverá interromper a interpretação do documento caso haja falhas, e apresentar uma mensagem de erro. Isso ajuda a garantir que os documentos tenham uma estrutura consistente.
Conclusão
Se a linguagem XML ainda é uma novidade para você, ou ainda, se o conceito de linguagem de marcação é uma novidade para você, saiba que não há maneira melhor de entender a linguagem do que praticando. Escreva seus próprios documentos XML. Se necessário, releia o artigo para fixar melhor o conteúdo. Para se aprofundar no assunto, consulte as referências.
Recapitulando: a linguagem XML estrutura os valores dos dados sobre os nomes dos dados; documentos XML tem uma estrutura de árvore, com um nó principal (raiz), que pode se ramificar indefinidamente; diferente da linguagem HTML, feita para apresentar dados, a linguagem XML foi feita para transporte e/ou armazenamento dos dados (e por isso não pode tolerar falhas).
Para concluir, vou colocar um exemplo de um documento XML que poderia representar este artigo:
<?xml version="1.0" encoding="UTF-8"?>
<artigo idioma="pt_br">
<!-- Informações sobre o artigo -->
<titulo>Entenda o XML</titulo>
<autor>Hugo Cerqueira</autor>
<dataPublicacao>11/10/2015</dataPublicacao>
<!-- Conteúdo do artigo -->
<conteudo>
<paragrafo titulo="Introdução">
XML é uma linguagem de marcação...
</paragrafo>
</conteudo>
</artigo>
Referências