Java zu XML Converter
Füge Java-Klassen oder POJOs ein. Du bekommst sauberes XML zurück.
Was dieses Tool macht
Wer schon mal von Hand ein XML-Payload bauen musste, das zu einer Java-Klasse passt — für einen SOAP-Client, eine Spring-Config, eine Legacy-Banking-Integration oder eine JUnit-Fixture — weiß, wie mühsam das ist. Paste das Java hier rein und du kriegst in einem Rutsch wohlgeformtes XML zurück. Ein einzelnes POJO, eine Datei mit Lombok-annotierten DTOs oder ein tief verschachteltes Modell mit mehreren Klassen — das Ergebnis ist das gleiche: ein vollständiges XML-Dokument, in dem jedes Feld erhalten bleibt.
Das ist kein blindes Templating. Der Converter weiß, wie Java nach XML serialisiert: BigDecimal behält seine exakte Präzision (keine wissenschaftliche Notation), LocalDate und LocalDateTime kommen als ISO-8601 raus, UUID wird zu einem standard 8-4-4-4-12-Hex-String, Instant ist ein Z-suffixierter Timestamp, und geboxte Primitive mit null-Werten werden zu leeren Elementen. List<T> wird zu einem Container-Element — standardmäßig gewrapped, mit einem Child pro Item — so wie Jakarta XML Binding (JAXB) es erzeugen würde.
Annotations werden genauso berücksichtigt, wie Eclipse JAXB RI sie behandelt. @XmlRootElement(name="...") benennt die Root um, @XmlElement(name="...") benennt ein Child um, @XmlAttribute emittiert das Feld als Attribut am Parent, @XmlTransient wirft es komplett raus, und @XmlElementWrapper setzt den äußeren Container um eine Collection. Lombok @Data läuft auch — die generierten Getter und Setter werden als Bean-Properties behandelt. Wenn du lieber das Jackson-XML-Modul magst: @JacksonXmlProperty und @JacksonXmlElementWrapper werden genauso respektiert. Verschachtelte Klassen, vererbte Felder und mehrere Top-Level-Klassen kommen alle sauber durch.
So benutzt du es
Drei Schritte. Egal, ob du ein einzelnes POJO einfügst oder eine Datei mit einem Dutzend Klassen.
Java einfügen (oder Sample ausprobieren)
Wirf dein Java in den linken Editor, so wie es ist. Ein einfaches POJO, eine Lombok @Data-Klasse, ein JAXB-annotierter DTO oder eine Datei mit mehreren Klassen — alles geht. Klick Load Sample, um dir erstmal ein realistisches Beispiel anzuschauen.
Du musst keine Imports rauswerfen, keine Annotations entfernen und die Datei nicht aufräumen. Paste sie so, wie sie im IDE liegt — Kommentare, Package-Statement und alles.
Auf Convert klicken
Klick auf den grünen Convert-Button. Das Tool liest das Java, behält jedes Feld und jede Klasse, berücksichtigt die Annotations und baut das XML in einem Durchgang. Währenddessen siehst du kurz einen Lade-Indikator.
XML kopieren
Das rechte Panel füllt sich mit eingerücktem, wohlgeformtem XML, das jeder standardkonforme XML-Parser akzeptiert. Kopier es in deinen SOAP-Envelope, deine Spring-Boot-Config, deinen Integrationstest oder dein XSD-gestütztes Schema-Beispiel.
Wann das wirklich hilft
SOAP-Fixtures bauen
Du hast einen JAX-WS- oder Apache-CXF-Request-DTO und brauchst einen XML-Body für SoapUI oder Postman. Klasse einfügen, envelope-fertiges XML rausnehmen, weitermachen.
Spring Boot XML-Configs
Eine Spring-@ConfigurationProperties-Klasse mit 30 Feldern wird zu einem editierbaren XML-Template — kein applicationContext.xml-Boilerplate mehr per Hand schreiben.
Doku und Code synchron halten
Generiere XML-Beispiele für ein README, ein internes Wiki oder XSD-basierte Schema-Docs direkt aus deinen echten Entity-Klassen, damit die Beispiele nie vom Code abdriften.
Seed-Daten für Legacy-Integrationstests
Mach aus deinen JUnit-Object-Mothers XML-Seed-Dateien für Mock-Server, IBM-MQ-Fixtures oder Legacy-Enterprise-Systeme, die immer noch XML sprechen.
Häufige Fragen
Kann ich mehrere Klassen auf einmal einfügen?
Ja — paste eine ganze Datei. Jede Top-Level-Klasse kommt mit aufgelösten nested Types und den von Superklassen geerbten Feldern durch. Klassen, die vom Root nicht referenziert werden, kommen als separate XML-Fragmente raus, damit nichts stillschweigend unter den Tisch fällt.
Respektiert es JAXB-Annotations wie @XmlRootElement, @XmlElement, @XmlAttribute und @XmlTransient?
Ja. @XmlRootElement(name="x") benennt die Root um, @XmlElement(name="x") benennt ein Child um, @XmlAttribute(name="x") emittiert das Feld als Attribut am Parent, @XmlTransient wirft es raus, und @XmlElementWrapper setzt den äußeren Container um eine Collection. Das entspricht dem Verhalten, das im JAXB-Tutorial beschrieben wird.
Was ist mit Lombok und Jackson XML?
Lombok @Data, @Getter und @Setter werden behandelt, als wären die Accessors von Hand geschrieben. Jackson-XML-Annotations — @JacksonXmlProperty, @JacksonXmlRootElement, @JacksonXmlElementWrapper, @JacksonXmlText — werden ebenfalls respektiert, also kommen Klassen, die für den XmlMapper von Jackson dataformats-text gebaut wurden, korrekt durch.
Wie werden BigDecimal, LocalDate, UUID und Null-Felder behandelt?
BigDecimal behält die volle Präzision, keine wissenschaftliche Notation. LocalDate, LocalDateTime und ZonedDateTime kommen als ISO-8601-Strings raus. Instant bekommt ein Z-Suffix. UUID ist der standardmäßige 8-4-4-4-12-Hex-String in Kleinbuchstaben. Optional.empty() und geboxte Primitive mit null werden zu leeren Elementen statt unter den Tisch zu fallen, damit die Form des XML über Instanzen hinweg gleich bleibt.
Wird mein Code gespeichert?
Der Code geht ans Backend zur Konvertierung und wird nicht persistiert — wir loggen das Payload nicht. Gleicher Hinweis wie bei jedem Online-Tool: Wenn der Code wirklich sensibel ist, schau ihn vorher nochmal durch.
Was ist, wenn die Klasse etwas Ungewöhnliches enthält — Streams, CompletableFuture oder ein transient-Feld?
Felder mit transient oder den Annotations @XmlTransient / @JsonIgnore werden übersprungen. Typen, für die es im XML-Raum kein direktes Mapping gibt (Streams, CompletableFuture, eigene Functional Interfaces), kommen als leere Elemente raus, statt die ganze Konvertierung abbrechen zu lassen. Wenn das Java selber einen Compile-Error hat, fix erst die offensichtlichen — der Parser ist nachsichtig, aber kein vollwertiger javac.
Andere Tools, die du vielleicht brauchst
Java zu XML ist nur ein Puzzleteil. Diese Tools passen gut dazu: