Introdução a XML - Regras de sintaxe

Veja neste artigo as regras básicas de sintaxe para criação de documentos XML.

Um documento XML é considerado bem-formado quando respeita o conjunto de regras de sintaxe estabelecidas na especificação da linguagem. É importante conhecer essas regras, pois a maioria das bibliotecas utilizadas para consulta e atualização de documentos XML requer a utilização de documentos bem-formados.

No site da W3C (órgão responsável pela definição da linguagem XML e pela padronização de outras iniciativas ligadas à Web), existe um documento que contendo toda essa especificação. Porém, como quase sempre acontece com as especificações da W3C, o documento é extremamente grande e de leitura bastante “pesada”. Para facilitar a nossa vida, a seguir apresentamos uma lista contendo as mais importantes regras de sintaxe da XML:

  1. Um documento XML deve possuir raiz única.
  2. Todas as tags devem ser fechadas (elementos devem possuir tag inicial e tag final)
  3. Os nomes de elementos (tags) e atributos são sensíveis à caracteres maiúsculos e minúsculos.
  4. Os elementos devem ser bem-aninhados (tags fecham em ordem oposta a que foram abertas).
  5. Atributos não se repetem em um mesmo elemento.
  6. Todo atributo deve possuir algum valor e este valor deve ser especificado entre aspas.
  7. Alguns caracteres especiais, como “ < ”, “ & ” e “ > ” devem ser especificados com o uso de entidades pré-definidas (no caso & lt; , & amp; e & gt; , respectivamente).
  8. Nomes de tags não podem conter espaços em branco nem os caracteres !"#$%&'()*+,/;<=>?@[\]^`{|}~. Além disso, não podem começar com um número, “ . ” (ponto) ou “ - " (traço).

Exemplos

A seguir temos exemplos práticos envolvendo as regras recém-apresentadas. Para cada regra, primeiro apresentamos um documento contendo um erro de sintaxe e depois a correção do mesmo.

Regra 1: Um Documento XML deve possuir raiz única

<?xml version="1.0"?> <pais> <nome>Brasil</nome> <moeda>Real</moeda> </pais> <pais> <nome>Argentina</nome> <moeda>Peso argentino</moeda> </pais>
Listagem 1. Documento com erro - não possui raiz única
<?xml version="1.0"?> <nacoes> <pais> <nome>Brasil</nome> <moeda>Real</moeda> </pais> <pais> <nome>Argentina</nome> <moeda>Peso argentino</moeda> </pais> </nacoes>
Listagem 2. Documento correto - possui “nacoes” como raiz única

Regra 2: Todas as tags devem ser fechadas

<?xml version="1.0"?> <pais> <nome>Brasil <populacao>196.655.014 </pais>
Listagem 3. Documento com erro - as tags “nome” e “populacao” não foram fechadas
<?xml version="1.0"?> <pais> <nome>Brasil</nome> <populacao>196.655.014</populacao> </pais>
Listagem 4. Documento correto - todas as tags foram fechadas

Regra 3: Nomes de elementos e atributos são sensíveis à caracteres maiúsculos e minúsculos

<?xml version="1.0"?> <pais> <nome>Uruguai</Nome> </pais>
Listagem 5. Documento com erro - a tag “nome” é diferente de “Nome”
<?xml version="1.0"?> <pais> <nome>Uruguai</nome> </pais>
Listagem 6. Documento corrigido

Regra 4: Os elementos devem ser bem-aninhados (tags fecham em ordem oposta a que foram abertas)

<?xml version="1.0"?> <informacao> <texto>A capital do <pais>Chile eh <capital>Santiago</texto></capital></pais> </informacao>
Listagem 7. Documento com erro - tags fechadas na ordem errada
<?xml version="1.0"?> <informacao> <texto>A capital do <pais>Chile</pais> eh <capital>Santiago</capital></texto> </informacao>
Listagem 8.Documento corrigido

Regra 5: Atributos não se repetem em um mesmo elemento

<?xml version="1.0"?> <pais cidade="Rio de Janeiro" cidade="Brasília"> Brasil </pais>
Listagem 9. Documento com erro - dois atributos chamados “cidade”
<?xml version="1.0"?> <pais cidade="Rio de Janeiro" capital="Brasília"> Brasil </pais>
Listagem 10. Documento corrigido - um dos atributos foi mudado para “capital”

Regra 6: Todo atributo deve possuir algum valor e este deve ser especificado entre aspas

<?xml version="1.0"?> <pais mercosul> Brasil </pais>
Listagem 11. Documento com erro - o atributo “mercosul” não tem valor
<?xml version="1.0"?> <pais mercosul="SIM"> Brasil </pais>
Listagem 12. Documento corrigido - “mercosul” tem valor igual a “SIM”

Regra 7: Alguns caracteres, como “ < ” e “ & ” devem ser especificados com o uso de entidades pré-definidas (no caso, & lt; e & amp;);

<?xml version="1.0"?> <regra_7> Brasil & Chile </regra_7>
Listagem 13. Documento com erro - contém o sinal
<?xml version="1.0"?> <regra_7> Brasil & amp; Chile </regra_7>
Listagem 14. Documento corrigido - usa entidade pré-definida

Regra 8: Nomes de tags não podem conter espaços em branco nem os caracteres !"#$%&'()*+,/;<=>?@[\]^`{|}~. Além disso, não podem começar com um número, “ . ” (ponto) ou “ - " (traço).

<?xml version="1.0"?> <1_pais> Brasil <1_pais>
Listagem 15. Documento com erro - nome da tag começa com número
<?xml version="1.0"?> <pais_1> Brasil </pais_1>
Listagem 16. Documento corrigido - nome da tag começa com letra

Assim finalizamos o artigo. Não apresentamos todas as regras de sintaxe da XML, porém mostramos as mais importantes, ou seja, aquelas que precisam ser conhecidas por qualquer desenvolvedor!

Confira também

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados