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

Artigos relacionados