SQL til XML-konverter
Lim inn SQL. Få ren XML tilbake — rader, kolonner, NULL, datoer, alt sammen.
Hva verktøyet gjør
Har du noen gang måttet dumpe en haug med databaserader til en XML-fil for en leverandør, et legacy SOAP-endepunkt eller en gammel ETL-jobb som fortsatt forventer XML, så kjenner du rutinen — åpne et spørringsverktøy, kjør SELECT, eksporter, fiks utdataen for hånd, slåss med datoformater. Lim inn SQL-koden din her i stedet, og du får velformet XML tilbake i ett jafs. Flerrads INSERT-setninger, bare CREATE TABLE for skjema, eller en blanding — samme resultat.
Konverteren leser SQL slik en database ville ha gjort det. Hver rad i et flerrads INSERT blir ett element, og hver kolonne blir et barneelement oppkalt etter kolonnen. NULL-verdier blir tomme elementer (så formen på hver rad holder seg lik). Datolignende literaler — '2024-01-15 10:30:00', DATE '2024-01-15' eller rå timestamps — skrives ut som ISO-8601-strenger, slik at parsere i Java, .NET, Python eller hvor som helst ellers leser dem tilbake uten bry. Numeriske typer beholder presisjonen; boolske verdier kommer ut som true/false.
Skjemakvalifiserte navn som public.orders eller dbo.Orders kuttes ned til bare orders eller Orders i elementnavnet, fordi XML-elementnavn ikke kan inneholde punktum. Siterte identifikatorer, backticks fra MySQL og doble anførselstegn-navn fra PostgreSQL håndteres på samme måte. Slipp inn et CREATE TABLE og du får et XML-skjelett for det skjemaet — ett tomt element per kolonne, nyttig som utgangspunkt for en XSD eller en eksempel-payload. Flere tabeller i samme spørring? Hver havner i utdataen som en egen seksjon, i rekkefølge.
Slik bruker du det
Tre steg. Funker likt enten du limer inn én rad eller tusen.
Lim inn SQL-koden din (eller prøv eksempelet)
Slipp SQL-en som den er inn i editoren til venstre. INSERT-setninger med én eller mange rader, CREATE TABLE-definisjoner, eller en blanding — alt går bra. Klikk på Last eksempel hvis du vil se hvordan en realistisk dump med flere ordretabeller ser ut.
Kommentarer (-- og /* ... */), skjemaprefikser, dialektspesifikk sitering (MySQL-backticks, SQLite-doble anførselstegn, SQL Server-hakeparenteser) og avsluttende semikolon funker alle uten problemer — du trenger ikke å rydde opp i noe på forhånd.
Trykk på Konverter
Klikk på den grønne Konverter-knappen. Verktøyet parser SQL-en, pakker ut hver rad i et flerrads-insert, normaliserer datoer og boolske verdier og bygger XML-en i én runde. En kort lasteindikator vises mens det jobber.
Kopier XML-en
Høyre panel fylles med innrykket, velformet XML som enhver standardtro XML-parser vil akseptere. Kopier det rett inn i en SOAP-body, en testfixture, en ETL drop-mappe eller dit du nå trenger det.
Når det faktisk kommer til nytte
Seed-fixtures for databasen
Du har en haug med <code>INSERT</code>s fra et seed-skript og trenger de samme dataene som XML til en integrasjonstest eller en mock-server. Lim inn insert-ene, ta med deg XML-en, ferdig — ingen manuell redigering rad for rad.
SOAP og legacy enterprise-integrasjon
Et eldre partnersystem forventer en XML-body som speiler et sett med databaserader. Hopp over mellomlagskoden som stringifiserer rader én etter én; lim inn INSERT-en direkte og kopier XML-en inn i SOAP-forespørselen din.
Audit- og compliance-eksporter
Regulatorer og revisorer elsker fortsatt XML. Gjør radene du nettopp INSERT-et (eller de du fanget fra en log-spørring) om til et signerbart, arkiverbart XML-dokument uten å sette opp en eksportpipeline.
XML-baserte ETL-pipelines
Mater du et ETL-verktøy som SSIS, Informatica eller en egen XSLT-pipeline? Konverter SQL-eksempelet oppstrøms til XML for å prototype transformasjonen før den virkelige batch-jobben er koblet på.
Vanlige spørsmål
Hvordan håndteres flerrads INSERT-setninger?
Et flerrads INSERT INTO orders (...) VALUES (...), (...), (...); blir ett containerelement for tabellen, med ett barneelement per rad — hvert barn oppkalt etter entallsformen av tabellen (så rader fra orders blir <order>-elementer inne i en <orders>-wrapper). Hver rad har de samme kolonnebarna, i samme rekkefølge som kolonnelisten, slik at utdataen forblir forutsigbar selv med hundrevis av rader.
Hva skjer med NULL-verdier?
En NULL i verdilisten blir et tomt element (f.eks. <middle_name/>) i stedet for å droppes. Det holder formen på hver rad identisk, noe som betyr noe for nedstrømskonsumenter som itererer kolonner posisjonelt eller bygger en XSD ut fra prøven. Hvis du i stedet trenger xsi:nil="true", pakk utdataen inn i en liten XSLT eller etterbehandl den — konverteren holder seg til enkle tomme elementer for portabilitetens skyld.
Kommer datoer og timestamps ut som ISO-8601?
Ja. SQL-literaler som '2024-01-15 10:30:00', DATE '2024-01-15', TIMESTAMP '2024-01-15 10:30:00+00' og MySQL-varianten '2024-01-15T10:30:00' kommer alle ut som ISO-8601-strenger (2024-01-15T10:30:00Z når en tidssone er til stede, ellers bare 2024-01-15T10:30:00). Det er formatet som XML-stacken i ethvert større språk parser uten trøbbel.
Kan jeg lime inn bare et CREATE TABLE — uten rader?
Ja. Et CREATE TABLE med bare skjema produserer et XML-skjelett: ett element per kolonne, tomt, i den rekkefølgen kolonnene ble deklarert. Et bra utgangspunkt for en eksempel-payload, et XSD-utkast eller en testfixture du fyller ut for hånd. Datatypene i CREATE TABLE leses som hint (datoer forblir datoer, numeriske forblir numeriske), men de tomme elementene bærer ikke typeinfo i utdataen.
Hva om spørringen min inneholder flere tabeller?
Hver INSERT- eller CREATE TABLE-setning produserer sin egen toppseksjon i utdataen, i den rekkefølgen du skrev dem. Et blandet skript som oppretter orders, setter inn tre ordrer og deretter setter inn seks order_items, blir et dokument med tre tabellseksjoner, hver pakket inn i et containerelement. Parseren prøver ikke å joine eller relatere dem — den bevarer bare strukturen du limte inn.
Fjerner den skjemaprefikser som public.orders eller dbo.Orders?
Ja. XML-elementnavn kan ikke inneholde punktum, så public.orders blir <orders>, dbo.Orders blir <Orders>, og my_schema."User Table" blir <User_Table> (mellomrom blir understrek fordi XML-navn heller ikke kan inneholde mellomrom). MySQL-backticks, doble anførselstegn fra PostgreSQL og hakeparenteser fra SQL Server fjernes på samme måte.
Andre verktøy du kan trenge
SQL til XML er bare én bit av puslespillet. Disse passer godt sammen med det: