TOML naar XML omzetten

Hier zet je TOML naar XML om, gratis en zonder account: sleep het bestand hierboven erin en binnen een paar seconden staat het resultaat klaar om te downloaden. De omzetting gebeurt binnen je eigen browser, dus het bestand wordt nooit geüpload. Het werkt hetzelfde op Windows, macOS en Linux als op iPhone en Android, en het blijft werken als je de verbinding verbreekt.

  • Waar het draait In je browser. Het bestand wordt nooit geüpload.
  • Zonder verlies Er gaat niets weg. XML bewaart precies wat TOML bewaarde.
  • Maximale grootte Tot 100 MB per bestand, gratis en zonder account.

Tot 100 bestanden tegelijk. Verschillende formaten door elkaar is prima.

Een TOML-manifest ontmoet een intake die altijd XML gebruikte

De interessante versie van deze omzetting is geen configuratiemigratie. Het is een rapportage- of indieningsstap: de feiten over een project staan in een TOML-manifest omdat Cargo, pip en Hugo daarvoor kozen, en het systeem dat die feiten wil — een licentieregister, een leveranciersportaal, een interne compliance-importer — leest al sinds 2004 XML.

Je zoekt dus geen getrouwe weergave van TOML in XML, want niemand aan de andere kant geeft om TOML. Je zoekt hoe dicht de uitvoer bij een documentvorm komt die iemand anders heeft gedefinieerd, en welke hiaten je zelf moet dichten.

Welke TOML-tabel het hoofdelement wordt

XML heeft precies één hoofdelement nodig, en een TOML-document is een tabel met willekeurig veel sleutels, dus wordt een regel toegepast. Heeft het bestand precies één sleutel op het hoogste niveau en bevat die een tabel, dan wordt die sleutel het hoofdelement — een bestand met alleen een [tool]-sectie levert een <tool>-document op. Zijn er meerdere sleutels op het hoogste niveau, dan wordt alles verpakt in een generiek <root>.

Dat hernoemen is bijna altijd de eerste bewerking. Wordt de omzetting herhaald, dan is het netter om de TOML zelf te herstructureren: nest het hele manifest onder één tabel met de naam die het schema wil.

Arrays van tabellen zijn waar TOML en XML het eens zijn

Een [[bin]]-blok dat driemaal herhaald wordt, is TOML’s manier om een lijst records te schrijven, en dat wordt drie naast elkaar staande <bin>-elementen, elk met eigen kinderen — precies hoe XML een lijst weergeeft, zonder wrapper-element.

Een gewone array van losse waarden gedraagt zich hetzelfde: tags = ["a", "b"] wordt twee <tags>-elementen met tekstinhoud in plaats van één element met een kommagescheiden string.

TOML’s vier datumtypen komen op drie XSD-typen terecht

TOML heeft ongewoon genoeg vier temporele typen in plaats van één, en de omzetting houdt ze uit elkaar in plaats van ze samen te voegen tot één UTC-tijdstip. Een offset-datumtijd en een lokale datumtijd worden allebei geldige xs:dateTime; een lokale datum wordt xs:date; een lokale tijd wordt xs:time.

Elke waarde krijgt er wel een millisecondencomponent bij die de manifest niet had — 08:00:00 wordt 08:00:00.000. Alle drie XSD-typen accepteren fracties van seconden, dus validatie blijft in orde, maar een vergelijking tegen een letterlijk geschreven kortere waarde matcht niet meer.

Wat de offset zegt, en wat een lokale tijd weglaat

De offset wordt precies zoals geschreven overgenomen in plaats van genormaliseerd: 2026-03-01T08:00:00+02:00 komt aan als 2026-03-01T08:00:00.000+02:00, niet als 06:00:00.000Z. Dat is de betere keuze voor een document dat iemand leest.

Een lokale tijd zonder datum — at = 08:00:00 — heeft geen datum, dus een element dat het schema als xs:dateTime declareert, weigert de waarde. Declareer dat element dan als xs:time, of voeg de datum toe in de TOML waar hij thuishoort.

TOML-sleutels die geen geldige XML-elementnamen zijn

TOML staat bijna elke sleutel toe als hij tussen aanhalingstekens staat: "2024 report", "line-length", "x:y". XML-elementnamen mogen niet met een cijfer beginnen en geen spatie of, zonder gedeclareerde namespace, een dubbele punt bevatten.

De schrijver herschrijft in plaats van te weigeren: alles buiten letters, cijfers, underscore, streepje en punt wordt een underscore. Zo wordt "2024 report" <_2024_report> en "x:y" <x_y> — die laatste is de belangrijkste om op te letten.

XML-attributen produceren vanuit een TOML-tabel

Standaard wordt elke TOML-sleutel een kind-element. De conventie voor attributen is een apenstaartje vóór de sleutelnaam: binnen een tabel geeft "@id" = 42 id="42" op dat element in plaats van een <id>-kind.

Teksteninhoud naast attributen gebruikt de sleutel "#text" op dezelfde manier. Beide zijn de moeite waard, want ze maken van een tweeledige klus één stap.

Wat het XML-document niet meekrijgt van de TOML

Er wordt geen XML-declaratie geschreven, dus het document begint bij het hoofdelement. Er wordt geen namespace gedeclareerd en geen schemalocatie verwezen. De uitvoer springt twee spaties per niveau in.

Een lege TOML-array is een ander stil geval: tags = [] levert geen element op, alleen een lege regel. Dat is verdedigbaar, maar verrast een schema dat het element met minOccurs="1" declareert.

De commentaren zijn waarom de TOML de bron blijft

Beide formaten ondersteunen commentaar, en geen van beide kanten neemt het over, dus elke #-regel die uitlegt waarom een afhankelijkheid vastgezet is, ontbreekt in de XML.

Behandel de XML als een gegenereerd artefact, niet als een kopie. Regenereer het telkens wanneer het manifest wijzigt, en houd het buiten de repository tenzij het indieningsproces een gecommit exemplaar vereist.

Valideer de XML tegen het schema vóór het versturen

Alles hierboven is een reden waarom de eerste poging niet zal valideren: het hoofdelement heeft de verkeerde naam, een lokale tijd voldoet niet aan een element gedeclareerd als xs:dateTime, sommige waarden zijn kind-elementen waar het schema attributen wil.

xmllint --schema contract.xsd out.xml --noout geeft de volledige lijst met klachten en regelnummers. Werk die door met aanpassingen aan de TOML in plaats van aan de XML, zodat de volgende run vanaf een betere plek begint.

Zo zet je TOML naar XML om

  1. Sleep je TOML-bestand op deze pagina, of klik om er een te kiezen.
  2. Kies XML als doel. De omzetting gebeurt in je browser en het bestand wordt niet geüpload.
  3. Download het klare XML-bestand.

TOML of XML: wat er verandert

TOML vergeleken met XML
TOMLXML
Volledige naamTom's Obvious Minimal LanguageExtensible Markup Language
Bestandsextensie.toml.xml
Mediatypeapplication/tomlapplication/xml
Voor het eerst gepubliceerd20131998
Uitgegeven doorW3C
SpecificatieTOML 1.0XML 1.0
LicentieOpen standaardOpen standaard
Stand van zakenActueelActueel
Opent in een browserGeen browserElke browser
In plaats daarvan overwogenYAML, JSON, INIJSON, YAML

Wat behouden blijft

Er gaat niets verloren. TOML en XML bewaren hun inhoud verliesvrij: de omzetting wisselt de verpakking, niet de kwaliteit, en je kunt haar herhalen zonder dat schade zich opstapelt.

Opmerkingen gaan mee. TOML en XML hebben allebei een syntaxis voor commentaar, dus notities voor wie het bestand daarna beheert verdwijnen niet stilletjes.

Het resultaat openen

XML opent in elke actuele browser. TOML komt nog minder ver. Gaat het bestand naar een webpagina of een formulier, dan is dat meestal de hele reden voor de omzetting.

Visual Studio Code leest zowel TOML als XML, dus je kunt het resultaat naast het origineel leggen zonder een tweede programma.

Waarvoor elk formaat bedoeld is

De twee mikken op ander werk: TOML op bewerken, XML op gegevens tussen programma’s verplaatsen. Dat is het afwegen waard, want de reden dat het ene bestaat is meestal de reden dat het andere onhandig is.

TOML verscheen in 2013. Het is vastgelegd in TOML 1.0, en dat is de moeite waard als het bestand het gereedschap moet overleven dat het schreef.

XML komt van W3C en stamt uit 1998, vastgelegd in XML 1.0. Visual Studio Code en oXygen XML Editor lezen het formaat.

XML verscheen in 1998 en TOML in 2013. Het oudste is doorgaans het veiligste bestand om te overhandigen; het nieuwste doet hetzelfde werk met minder bytes.

Van TOML naar XML: veelgestelde vragen

Wordt mijn TOML-bestand ergens heen geüpload?

Nee. Deze omzetting gebeurt volledig in je browser, dus het bestand verlaat je apparaat niet. Je kunt het zelf nagaan: open het netwerktabblad van de ontwikkelaarshulpmiddelen en zet iets om. Je ziet de pagina zelf en de verzoeken voor statistiek en advertenties waarmee deze dienst betaald wordt, en geen enkel verzoek dat je bestand meeneemt.

Is TOML naar XML omzetten gratis?

Ja. Geen account, geen watermerk en geen dagtegoed dat opraakt: het draait op je eigen machine, dus je mag zo vaak terugkomen als je wilt. De browser verwerkt bestanden tot 100 MB, 100 tegelijk.

Gaat er kwaliteit verloren bij het omzetten van TOML naar XML?

Nee. XML bewaart dezelfde inhoud zonder iets weg te gooien: het resultaat is in kwaliteit identiek aan het origineel.

Is TOML naar XML verliesvrij?

Er gaat niets verloren. TOML en XML bewaren hun inhoud verliesvrij: de omzetting wisselt de verpakking, niet de kwaliteit, en je kunt haar herhalen zonder dat schade zich opstapelt.

Meer over deze formaten