Configuração XML (.xml)

W3C Padrão

Extensible Markup Language (XML) é uma linguagem de marcação versátil que define um conjunto de regras para codificar documentos em um formato legível tanto por humanos quanto por máquinas.

Comprimir XML online

Privado - os arquivos nunca saem do seu dispositivo

Inspeção e metadados

Sistemas operacionais e analisadores de arquivos identificam arquivos XML pela sequência inicial de bytes:

Selecione ou solte os arquivos aqui

Privado - os arquivos nunca saem do seu dispositivo

ou colar Ctrl+V
Garantia de privacidade sem transmissão pela rede 0 bytes enviados a servidores externos. Todo o processamento ocorreu localmente no ambiente isolado do navegador.

Assinatura do arquivo em bytes (magic bytes)

Sistemas operacionais e analisadores de arquivos identificam arquivos XML pela sequência inicial de bytes:

ASSINATURA HEXADECIMAL (DESLOCAMENTO 0):

3C 3F 78 6D

REPRESENTAÇÃO ASCII: <?xm

Padronização: W3C Recommendation (XML 1.0 Fifth Edition)

Especificações técnicas

Estrutura do contêinerLinguagem de marcação de texto hierárquica com tags semânticas e atributos personalizados
CompressãoGzip / Deflate reduzem em 85% a 92% o tamanho de arquivos com tags de fechamento verbosas
Ordem dos bytes (endianness)Fluxo de caracteres UTF-8 / UTF-16 determinado pelo atributo de codificação da declaração XML
Espaços de corNão aplicável
Canais e EstruturaElementos (<tag>), atributos (attr="val"), blocos CDATA e instruções de processamento
Dimensões MáximasEstrutura de árvore hierárquica ilimitada
TransparênciaNão aplicável
Streaming e ProgressivoAnalisadores SAX (Simple API for XML) e StAX permitem ler fluxos de dados com baixo consumo de memória

Matriz de comparação técnica: XML e formatos concorrentes

Atributo técnicoXML (Atual)JSONYAMLProtocol Buffers
VerbosidadeAlta (tags de fechamento e sintaxe de atributos)Baixa (formato chave-valor compacto)Baixa (baseada em indentação)Muito baixa (serialização binária)
Validação de esquemaPadrões XSD e DTD maduros, com validação pelo compiladorJSON Schema (opcional)JSON Schema / esquemas YAMLDefinições rígidas de esquema .proto
NamespacesSuporte nativo a namespaces XML (xmlns)Sem mecanismo nativo de namespaceSem mecanismo nativo de namespaceDeclarações de pacotes
TransformaçõesPipelines declarativos de transformação XSLTCódigo personalizado / scripts jqCódigo personalizadoCódigo personalizado

Modos comuns de corrupção e guia de recuperação com editor hexadecimal

Erro de análise XML: etiqueta não correspondente ou entidade não definida.

Causa principal: Caracteres reservados sem escape (como &, < ou >) ou diferença entre maiúsculas e minúsculas nas tags de abertura e fechamento.

Recuperação: Substitua & por &amp;, < por &lt; e > por &gt;, ou envolva o texto livre em um bloco <![CDATA[ ... ]]>.

Análise de segurança e vetores de ataque a analisadores

Analisadores XML são há muito tempo alguns dos componentes mais atacados em sistemas corporativos, devido aos recursos avançados de DTD e expansão de entidades.

Vetores de ataque conhecidos

  • Entidade externa XML (XXE): DOCTYPE malicioso que faz referência a arquivos locais do servidor (file:///etc/passwd) ou a endpoints da rede interna.
  • Ataque Billion Laughs (bomba XML): declarações de entidades aninhadas que se expandem exponencialmente na memória e causam negação de serviço.
  • Injeção de XPath: entradas de usuários não sanitizadas permitem consultas não autorizadas a bancos de dados XML.

Melhores práticas defensivas: Sempre desative a resolução de DTDs externos e o processamento de entidades externas nos analisadores XML (configure disallow-doctype-decl como true).

Origens históricas e marcos

2008O W3C publica a quinta edição do XML 1.0, padronizando o suporte moderno a caracteres internacionais.
2000O W3C publica o XML Schema 1.0 (XSD) e o DOM Level 2, estabelecendo tipagem estruturada e arquiteturas baseadas em eventos.
1998O W3C publica a recomendação XML 1.0, um subconjunto simplificado do SGML, adequado à web.

Principais vantagens

  • A validação rigorosa de esquemas com XSD (XML Schema Definition) ou DTD garante a integridade dos dados.
  • Os namespaces (xmlns) evitam colisões de nomes de elementos em documentos complexos de múltiplas fontes.
  • Ferramentas poderosas para consulta e transformação (XPath, XSLT, XQuery).

Limitações técnicas e desvantagens

  • Extremamente verboso: tags de fechamento repetem os nomes dos elementos, aumentando o tamanho dos arquivos e o consumo de banda.
  • A análise com DOM cria grandes árvores de objetos que consomem muita memória.
  • Vulnerável a ataques de entidade externa XML (XXE) e de expansão de entidades.

Curiosidades técnicas

  • XML é um subconjunto simplificado do SGML (Standard Generalized Markup Language), criado para funcionar na World Wide Web.
  • Documentos de escritório modernos (.docx, .xlsx), imagens vetoriais (.svg) e feeds RSS são dialetos XML especializados.
  • O clássico ataque de negação de serviço Billion Laughs usa apenas 1 quilobyte de entidades XML aninhadas (lol1 referencia dez lol0s, até lol9) para consumir exponencialmente até 3 gigabytes de memória durante a análise.

Perguntas técnicas frequentes

Qual é a diferença entre XML bem formado e XML válido?

Um XML bem formado segue as regras básicas de sintaxe (tags correspondentes, aspas em torno dos atributos e um único elemento raiz). Um XML válido, além disso, respeita uma definição de esquema externo (XSD ou DTD).

Por que o JSON substituiu o XML na maioria das APIs web?

JSON corresponde diretamente às estruturas de dados nativas do JavaScript e de outras linguagens (mapas hash e arrays), exige menos código auxiliar, é analisado mais rapidamente e gera cargas de rede menores.

O que é uma vulnerabilidade de Entidade Externa XML (XXE)?

Uma vulnerabilidade XXE ocorre quando um analisador XML processa um documento não confiável com uma definição de tipo de documento (DTD) externa habilitada. Atacantes podem definir entidades que apontam para arquivos locais do servidor (como arquivos de configuração do sistema) ou URLs da rede interna, fazendo com que o servidor leia e divulgue dados confidenciais.