Cole o SQL à esquerda e clique em "Converter" — a gente transforma em XMLCole o SQL

O que esta ferramenta faz

Se você já precisou despejar um monte de linhas do banco num arquivo XML para um fornecedor, um endpoint SOAP legado ou um job de ETL antigo que ainda espera XML, sabe como é — abre a ferramenta de consulta, roda o SELECT, exporta, ajusta a saída na mão, briga com formato de data. Em vez disso, cole seu SQL aqui e recebe um XML bem-formado de uma só vez. Comandos INSERT multi-linha, só o CREATE TABLE com o schema, ou uma mistura dos dois — o resultado é o mesmo.

O conversor lê o SQL do jeito que um banco leria. Cada linha de um INSERT multi-linha vira um elemento e cada coluna vira um elemento filho com o nome da coluna. Valores NULL viram elementos vazios (assim o formato de cada linha continua igual). Literais de data — '2024-01-15 10:30:00', DATE '2024-01-15' ou timestamps crus — saem como strings ISO-8601, então parsers em Java, .NET, Python ou qualquer outro lugar leem de volta sem frescura. Tipos numéricos preservam a precisão; booleanos saem como true/false.

Nomes qualificados por schema como public.orders ou dbo.Orders viram só orders ou Orders no nome do elemento, porque nomes de elementos XML não podem ter pontos. Identificadores entre aspas, crases do MySQL e nomes entre aspas duplas do PostgreSQL são tratados da mesma forma. Cole um CREATE TABLE e receba um esqueleto XML daquele schema — um elemento vazio por coluna, útil para começar um XSD ou um payload de exemplo. Várias tabelas na mesma consulta? Cada uma aparece na saída como sua própria seção, na ordem.

Como usar

Três passos. Funciona igual colando uma linha ou mil.

1

Cole seu SQL (ou teste o exemplo)

Jogue o SQL como está no editor da esquerda. INSERTs com uma ou várias linhas, definições CREATE TABLE, ou uma mistura — tudo certo. Clique em Carregar exemplo se quiser ver como fica um dump realista de pedidos com várias tabelas.

Comentários (-- e /* ... */), prefixos de schema, aspas específicas de dialeto (crases do MySQL, aspas duplas do SQLite, colchetes do SQL Server) e ponto e vírgula no final — tudo passa sem problema. Não precisa limpar nada.

2

Clique em Converter

Clique no botão verde Converter. A ferramenta faz o parse do SQL, expande cada linha do insert multi-linha, normaliza datas e booleanos e monta o XML numa passagem só. Um indicador curto de carregamento aparece enquanto roda.

3

Copie o XML

O painel da direita se preenche com XML indentado e bem-formado, que qualquer parser XML que siga o padrão vai aceitar. Copie direto para um body SOAP, uma fixture de teste, uma pasta de drop de ETL, ou para onde precisar.

Quando isso realmente ajuda

Fixtures de seed do banco

Você tem uma pilha de <code>INSERT</code>s de um script de seed e precisa dos mesmos dados em XML para um teste de integração ou um mock server. Cola os inserts, leva o XML, pronto — sem editar linha por linha.

SOAP e integração legada

Um sistema parceiro mais antigo espera um body XML que espelhe um conjunto de linhas do banco. Pule o código intermediário que serializa as linhas uma a uma; cole o INSERT direto e copie o XML para a requisição SOAP.

Exports de auditoria e compliance

Reguladores e auditores ainda amam XML. Transforme as linhas que acabou de INSERT (ou as que capturou numa consulta de logs) num documento XML assinável e arquivável sem levantar um pipeline de export.

Pipelines de ETL baseados em XML

Vai alimentar uma ferramenta de ETL tipo SSIS, Informatica ou um pipeline XSLT caseiro? Converta a amostra de SQL upstream em XML para prototipar a transformação antes do batch real ser ligado.

Perguntas comuns

Como ele lida com INSERTs multi-linha?

Um INSERT INTO orders (...) VALUES (...), (...), (...); multi-linha vira um elemento contêiner para a tabela, com um elemento filho por linha — cada filho com o nome no singular da tabela (então as linhas de orders viram elementos <order> dentro de um wrapper <orders>). Toda linha tem os mesmos filhos de coluna, na mesma ordem da lista de colunas, para a saída continuar previsível mesmo com centenas de linhas.

O que acontece com valores NULL?

Um NULL na lista de valores vira um elemento vazio (por exemplo <middle_name/>) em vez de ser descartado. Isso mantém o formato de toda linha idêntico, o que importa para consumidores que iteram colunas por posição ou geram um XSD a partir da amostra. Se precisar de xsi:nil="true", envelope a saída com um XSLT pequeno ou faça pós-processamento — o conversor fica com elementos vazios simples por portabilidade.

Datas e timestamps saem em ISO-8601?

Sim. Literais SQL como '2024-01-15 10:30:00', DATE '2024-01-15', TIMESTAMP '2024-01-15 10:30:00+00' e o '2024-01-15T10:30:00' estilo MySQL saem todos como strings ISO-8601 (2024-01-15T10:30:00Z quando há timezone, ou só 2024-01-15T10:30:00 sem ela). É o formato que a stack XML de qualquer linguagem grande parseia sem dor.

Posso colar só um CREATE TABLE, sem linhas?

Pode. Um CREATE TABLE sem dados produz um esqueleto XML: um elemento por coluna, vazio, na ordem em que as colunas foram declaradas. É um bom ponto de partida para um payload de amostra, um rascunho de XSD ou uma fixture de teste que você completa na mão. Os tipos de dado do CREATE TABLE são lidos como dica (datas continuam datas, numéricos continuam numéricos), mas os elementos vazios não carregam info de tipo na saída.

E se minha consulta tiver várias tabelas?

Cada INSERT ou CREATE TABLE gera sua própria seção de topo na saída, na ordem em que você escreveu. Um script misto que cria orders, insere três pedidos e depois insere seis order_items vira um documento com três seções de tabela, cada uma envolvida em um contêiner. O parser não tenta juntar nem relacionar as tabelas — só preserva a estrutura que você colou.

Ele remove prefixos de schema como public.orders ou dbo.Orders?

Sim. Nomes de elemento XML não podem ter pontos, então public.orders vira <orders>, dbo.Orders vira <Orders> e my_schema."User Table" vira <User_Table> (espaços viram underscores porque nomes XML também não aceitam espaços). As crases do MySQL, as aspas duplas do PostgreSQL e os colchetes do SQL Server são removidos da mesma forma.

Outras ferramentas que podem ajudar

SQL para XML é só uma peça do quebra-cabeça. Estas combinam bem: