Introdução a XML - Regras de sintaxe
Veja neste artigo as regras básicas de sintaxe para criação de documentos XML.
1. As Regras de Sintaxe da 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:
- Um documento XML deve possuir raiz única.
- Todas as tags devem ser fechadas (elementos devem possuir tag inicial e tag final)
- Os nomes de elementos (tags) e atributos são sensíveis à caracteres maiúsculos e minúsculos.
- Os elementos devem ser bem-aninhados (tags fecham em ordem oposta a que foram abertas).
- Atributos não se repetem em um mesmo elemento.
- Todo atributo deve possuir algum valor e este valor deve ser especificado entre aspas.
- Alguns caracteres especiais, como “ < ”, “ & ” e “ > ” devem ser especificados com o uso de entidades pré-definidas (no caso & lt; , & amp; e & gt; , respectivamente).
- 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).
2. Exemplos
Apresentamos agora 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
Listagem 1: Documento com erro - não possui raiz única
<?xml version="1.0"?> <pais> <nome>Brasil</nome> <moeda>Real</moeda> </pais> <pais> <nome>Argentina</nome> <moeda>Peso argentino</moeda> </pais>
Listagem 2: Documento correto - possui “nacoes” como 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>
Regra 2: Todas as tags devem ser fechadas
Listagem 3: Documento com erro - as tags “nome” e “populacao” não foram fechadas
<?xml version="1.0"?> <pais> <nome>Brasil <populacao>196.655.014 </pais>
Listagem 4: Documento correto - todas as tags foram fechadas
<?xml version="1.0"?> <pais> <nome>Brasil</nome> <populacao>196.655.014</populacao> </pais>
Regra 3: Nomes de elementos e atributos são sensíveis à caracteres maiúsculos e minúsculos
Listagem 5: Documento com erro - a tag “nome” é diferente de “Nome”
<?xml version="1.0"?> <pais> <nome>Uruguai</Nome> </pais>
Listagem 6: Documento corrigido
<?xml version="1.0"?> <pais> <nome>Uruguai</nome> </pais>
Regra 4: Os elementos devem ser bem-aninhados (tags fecham em ordem oposta a que foram abertas)
Listagem 7: Documento com erro - tags fechadas na ordem errada
<?xml version="1.0"?> <informacao> <texto>A capital do <pais>Chile eh <capital>Santiago</texto></capital></pais> </informacao>
Listagem 8: Documento corrigido
<?xml version="1.0"?> <informacao> <texto>A capital do <pais>Chile</pais> eh <capital>Santiago</capital></texto> </informacao>
Regra 5: Atributos não se repetem em um mesmo elemento
Listagem 9: Documento com erro - dois atributos chamados “cidade”
<?xml version="1.0"?> <pais cidade="Rio de Janeiro" cidade="Brasília"> Brasil </pais>
Listagem 10: Documento corrigido - um dos atributos foi mudado para “capital”
<?xml version="1.0"?> <pais cidade="Rio de Janeiro" capital="Brasília"> Brasil </pais>
Regra 6: Todo atributo deve possuir algum valor e este deve ser especificado entre aspas
Listagem 11: Documento com erro - o atributo “mercosul” não tem valor
<?xml version="1.0"?> <pais mercosul> Brasil </pais>
Listagem 12: Documento corrigido - “mercosul” tem valor igual a “SIM”
<?xml version="1.0"?> <pais mercosul="SIM"> Brasil </pais>
Regra 7: Alguns caracteres, como “ < ” e “ & ” devem ser especificados com o uso de entidades pré-definidas (no caso, & lt; e & amp;);
Listagem 13: Documento com erro - contém o sinal /p>
<?xml version="1.0"?> <regra_7> Brasil & Chile </regra_7>
Listagem 14: Documento corrigido - usa entidade pré-definida
<?xml version="1.0"?> <regra_7> Brasil & amp; Chile </regra_7>
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).
Listagem 15: Documento com erro - nome da tag começa com número.
<?xml version="1.0"?> <1_pais> Brasil <1_pais>
Listagem 16: Documento corrigido - nome da tag começa com letra
<?xml version="1.0"?> <pais_1> Brasil </pais_1>
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!
Eduardo Corrêa Gonçalves
Doutorando e mestre em Ciência da Computação pelo Instituto de Computação da Universidade Federal Fluminense (IC/UFF). Atua principalmente nas seguintes linhas de pesquisa: Mineração de Dados, Algoritmos, Banco de Dados e XML.



