O que significa XML
XML é a sigla de Extensible Markup Language (linguagem de marcação extensível). Tornou-se uma Recomendação do W3C em 1998 e descreve dados com tags que você mesmo nomeia – é isso que “extensível” quer dizer. Ao contrário do HTML, o XML não tem tags predefinidas: um catálogo pode usar <product> e <price>, uma nota fiscal <item> e <total>.
Um documento XML mínimo tem esta cara: <book id="1"><title>XML Basics</title><year>2026</year></book>. XML é texto puro, então pessoas conseguem lê-lo e qualquer linguagem de programação consegue processá-lo. Ele apenas armazena e estrutura dados – não faz nada sozinho. São os programas que decidem o que os dados significam e como exibi-los.
Regras de sintaxe do XML
Todo documento XML precisa seguir algumas regras rígidas. Um documento que as segue é chamado de bem formado:
- Existe exatamente um elemento raiz que contém todos os outros elementos.
- Todo elemento é fechado:
<name>…</name>, ou autofechado, como<br/>. - Os elementos são aninhados corretamente:
<b><i>…</i></b>, nunca<b><i>…</b></i>. - Os nomes diferenciam maiúsculas de minúsculas:
<Item>e<item>são elementos diferentes. - Valores de atributos ficam sempre entre aspas simples ou duplas.
&e<no texto são escapados como&e<.- A declaração opcional
<?xml version="1.0" encoding="UTF-8"?>precisa estar logo no início.
Comentários são escritos como <!-- … -->. Um validador de XML verifica todas essas regras em um segundo e aponta a linha de qualquer erro.
Elementos e atributos
Um elemento é uma tag de abertura, seu conteúdo e uma tag de fechamento: <price>19.90</price>. Elementos podem conter texto, outros elementos ou ambos. Um atributo é um par nome–valor dentro da tag de abertura: <price currency="EUR">.
| Elemento | Atributo | |
|---|---|---|
| Exemplo | <color>red</color> | color="red" |
| Pode se repetir | Sim | Não, uma vez por elemento |
| Pode conter elementos filhos | Sim | Não, só texto |
| A ordem importa | Sim | Não |
Uma convenção comum: use elementos para os próprios dados e para tudo o que pode se repetir ou ter estrutura, e atributos para metadados como IDs, unidades ou tipos.
XML bem formado vs. XML válido
Um XML bem formado segue as regras de sintaxe; os parsers recusam qualquer outra coisa. Um XML válido é bem formado e também corresponde a um schema que define quais elementos e atributos são permitidos, em que ordem e com quais tipos de dados.
- DTD (Document Type Definition) é a linguagem de schema original, embutida no XML 1.0. Ela também pode declarar entidades como
. - XSD (XML Schema Definition) é escrita no próprio XML e suporta tipos de dados como datas e decimais. Formatos de nota fiscal eletrônica como CFDI, NF-e e UBL publicam schemas XSD.
Namespaces XML
Como qualquer pessoa pode inventar nomes de tags, dois vocabulários podem usar o mesmo nome – o <title> de um livro e o <title> de uma pessoa. Os namespaces os mantêm separados ao vincular os nomes a uma URI. xmlns:cfdi="http://www.sat.gob.mx/cfd/4" declara o prefixo cfdi, então <cfdi:Comprobante> pertence ao vocabulário mexicano do CFDI 4.0. Um namespace padrão, xmlns="…" sem prefixo, vale para todos os elementos sem prefixo dentro dele. A URI é apenas um identificador; nada é baixado dela.
XML vs. JSON vs. HTML
| XML | JSON | HTML | |
|---|---|---|---|
| Finalidade | Armazenar e trocar dados estruturados e documentos | Trocar dados, principalmente em APIs web | Exibir páginas web |
| Nomes de tags ou chaves | Definidos por você | Definidos por você | Fixados pelo padrão HTML |
| Tipos de dados | Texto, a menos que um schema defina tipos | String, número, booleano, null, array, objeto | Texto |
| Atributos | Sim | Não | Sim |
| Comentários | Sim | Não | Sim |
| Schemas | DTD, XSD | JSON Schema | – |
| Erros de sintaxe | Rejeitados pelos parsers | Rejeitados pelos parsers | Corrigidos pelos navegadores |
O JSON é mais curto e corresponde diretamente a objetos em JavaScript, por isso a maioria das APIs web migrou para ele. O XML continua forte onde documentos misturam texto e marcação, precisam de namespaces ou devem ser validados rigorosamente contra schemas – é por isso que autoridades fiscais, editoras e formatos de escritório ainda dependem dele.
O que é um arquivo .xml e como abrir?
Um arquivo .xml é um arquivo de texto puro que contém um documento XML, normalmente codificado em UTF-8. Por ser texto, qualquer editor de texto consegue abri-lo – o Bloco de Notas no Windows, o TextEdit no Mac ou um editor de código como o VS Code. O Chrome e o Firefox exibem arquivos XML como uma árvore quando você os arrasta para uma janela do navegador, e o Excel consegue importar dados XML para uma planilha.
Muitos arquivos usam XML sem a extensão .xml: imagens .svg, feeds .rss, schemas .xsd, folhas de estilo .xsl, arquivos .config no .NET e arquivos .plist no macOS, que podem ser salvos como XML. Arquivos do Word, Excel e PowerPoint (.docx, .xlsx, .pptx) são pacotes ZIP cheios de arquivos XML.
Onde o XML é usado
- Sitemaps: o
sitemap.xmlinforma aos mecanismos de busca quais páginas um site tem. - Feeds RSS e Atom: sites de notícias, blogs e podcasts publicam suas atualizações em XML.
- SVG: os gráficos vetoriais da web são documentos XML.
- Arquivos do Office: Office Open XML (DOCX, XLSX, PPTX) e OpenDocument (ODT, ODS) são pacotes ZIP de XML.
- Notas fiscais eletrônicas: o CFDI no México e a NF-e no Brasil são arquivos XML que precisam ser assinados digitalmente e autorizados antes de terem validade jurídica; o UBL é o formato XML por trás da fatura eletrônica Peppol na Europa e em outros lugares.
- Web services SOAP: bancos, provedores de pagamento e sistemas do governo trocam mensagens XML descritas por arquivos WSDL.
- Apps Android: layouts, recursos de strings e o
AndroidManifest.xmlsão escritos em XML. - Configuração: o
pom.xmldo Maven, oweb.configdo .NET e muitas outras configurações de build e de servidor.
Perguntas frequentes
O que significa a sigla XML?
Extensible Markup Language (linguagem de marcação extensível). “Extensível” significa que você define suas próprias tags, e “marcação” significa que a estrutura é escrita como tags em volta dos dados.
XML é uma linguagem de programação?
Não. XML é um formato de dados: descreve e estrutura informações, mas não consegue calcular nada. Tecnologias relacionadas, como XPath e XSLT, consultam e transformam XML.
O XML ainda é usado hoje?
Sim. O JSON substituiu o XML em muitas APIs web, mas o XML continua sendo o padrão para sitemaps, feeds RSS, SVG, documentos de escritório, layouts Android, serviços SOAP e notas fiscais eletrônicas em muitos países.
Última atualização: