[JAVA] So machen Sie den Einzug zu zwei Einzelbyte-Leerzeichen in der JAXB-Implementierung des JDK

Wenn Sie versuchen, eingerücktes XML mithilfe der JAXB-Implementierung des JDK auszugeben (in das JDK integrierte Implementierung bis JDK 10 = com.sun.xml.bind: jaxb-impl), ist der Einzug standardmäßig ein Leerzeichen mit halber Breite. Es werden 4 Zeichen sein.

Modell-


@XmlRootElement
public class User {
  private String id;
  private String name;
  public void setId(String id) {
    this.id = id;
  }
  public String getId() {
    return id;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getName() {
    return name;
  }
}

XML-Ausgabeverarbeitung mit JAXB


User user = new User();
user.setId("001");
user.setName("Kazuki");

Marshaller marshaller = JAXBContext.newInstance(User.class).createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
StringWriter writer = new StringWriter();
marshaller.marshal(user, writer);
System.out.println(writer.toString());

XML ausgeben


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<user>
    <id>001</id>
    <name>Kazuki</name>
</user>

Geben Sie die Einrückungszeichenfolge mithilfe der JAXB-Implementierung des JDK an

Wenn Sie die JAXB-Implementierung des JDK verwenden, können Sie in der Eigenschaft com.sun.xml.internal.bind.indentString eine Einrückungszeichenfolge angeben.

Beispiel für die Angabe einer Zeichenfolge


User user = new User();
user.setId("001");
user.setName("Kazuki");

Marshaller marshaller = JAXBContext.newInstance(User.class).createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty("com.sun.xml.internal.bind.indentString", "  "); //2 Einzelbyte-Leerzeichen
StringWriter writer = new StringWriter();
marshaller.marshal(user, writer);
System.out.println(writer.toString());

XML ausgeben


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<user>
  <id>001</id>
  <name>Kazuki</name>
</user>

Zusammenfassung

Mit der JAXB-Implementierung des JDK war es möglich, die Anzahl der eingerückten Zeichen einfach zu ändern. Was ist mit anderen Implementierungen! ??

Recommended Posts

So machen Sie den Einzug zu zwei Einzelbyte-Leerzeichen in der JAXB-Implementierung des JDK
So legen Sie Umgebungsvariablen in der Eigenschaftendatei der Spring-Boot-Anwendung fest
Organisierte schrittweise Interaktion mit dem JDK
Offline-Echtzeit-Schreibweise Implementierungsbeispiel für das Problem in E05 (Ruby, C11)
So legen Sie die Protokollstufe fest, die in der Release-Version von orhanobut / logger angezeigt werden soll
Zusammenfassung der Verwendung des im IE festgelegten Proxy-Sets bei der Verbindung mit Java
So stellen Sie die Chronik ein, wenn sich die Zeit in CentOS7 verschiebt
So leiten Sie den letzten Tag des Monats in Java ab
So setzen Sie Lombok in Eclipse
So legen Sie die IP-Adresse und den Hostnamen von CentOS8 fest
Korrigieren Sie den Namen der Kriegsdatei auf den in Maven festgelegten
So erhalten Sie die ID des automatisch inkrementierten PRIMAY-Schlüssels in MyBatis
Die in /lib/calendars.properties von Java jre festgelegte Millisekunde ist UTC
So ermitteln Sie die Länge einer Audiodatei mit Java
So erhöhen Sie den Wert von Map in einer Zeile in Java
So bestimmen Sie die Anzahl der Parallelen
[Java] So stellen Sie die Datums- und Uhrzeit auf 00:00:00 ein
So sortieren Sie eine Liste von SelectItems
So erhalten Sie das Datum mit Java
So ändern Sie die maximale und maximale Anzahl von POST-Daten in Spark
So ermitteln Sie die Gesamtzahl der Seiten beim Paging in Java
So beschränken Sie die Aktion des Übergangsziels, wenn Sie nicht angemeldet sind
So ändern Sie den Wert einer Variablen an einem Haltepunkt in IntelliJ
So ermitteln Sie den absoluten Pfad eines in Java ausgeführten Verzeichnisses
Android-Entwicklung, wie man den Wert des JSON-Objekts auf null überprüft
So stellen Sie das Bild mithilfe der Symbolschriftart (Symbole) links / rechts von der Schaltfläche auf zeichnbar ein
Java-Datenbankverbindung Java-MySQL-Verbindung ③-2: So setzen Sie CLASSPATH auf Eclipse (Pleiades All in One) Build Bus / September 2017
[Swift] So ermitteln Sie die Anzahl der Elemente in einem Array (Super Basic)
Zusammenfassung der Auswahl von Elementen in Selen
[Bestellmethode] Legen Sie die Reihenfolge der Daten in Rails fest
So finden Sie die Ursache des Ruby-Fehlers
graphql-ruby: So erhalten Sie den Namen der Abfrage oder Mutation im Controller Hinweis
So überprüfen Sie das Protokoll im Docker-Container
Passen Sie an, wie der Inhalt von Recyclerview aufgeteilt wird
So legen Sie fest, dass Tabulatoren und Leerzeichen sichtbar sind, indem Sie mit der Tabulatortaste Leerzeichen in Java-Dateien in Eclipse einfügen
So erhalten Sie die ID eines Benutzers, der sich in Swift bei Firebase authentifiziert hat
So überprüfen Sie die neueste Version von io.spring.platform für das Schreiben in pom.xml von Spring (STS)
Stellen Sie die Zeit von LocalDateTime auf eine bestimmte Zeit ein
Wie komme ich zum heutigen Tag?
[Swift] So ändern Sie die Reihenfolge der Balkenelemente in Tab Bar Controller [Anfänger]
Ausgabe der Verwendung der Slice-Methode
[Java] (für MacOS) Methode zur Einstellung des Klassenpfads
[Java] Ist es nicht erforderlich, "Identität" bei der Implementierung der equals () -Methode zu überprüfen?
Verwendung von JQuery in Rails 6 js.erb
Wie installiere ich Oracle JDK 1.8 in Ubuntu 18.04 LTS?
So zeigen Sie das Ergebnis des Ausfüllens des Formulars an
So erstellen Sie eine eindeutige Datenkombination in der Schienen-Zwischentabelle
Festlegen, wann in junit "Der Konstruktor Empty () ist nicht sichtbar" auftritt
So erstellen Sie die einfachste Blockchain in Ruby
So überprüfen Sie Rails-Befehle im Terminal
So installieren Sie Docker in der lokalen Umgebung einer vorhandenen Rails-App [Rails 6 / MySQL 8]
[Java] Implementierungsmethoden-Memo zum Festlegen des WS-Security-Benutzernamens-Tokens im SOAP-Stub von axis2
Verwendung von UsageStatsManager in Android Studio (Überprüfen der Startzeit anderer Apps)
So erhalten Sie den Klassennamen des Arguments von LoggerFactory.getLogger, wenn Sie SLF4J in Java verwenden
Verwendung von git mit der Leistung von jgit in einer Umgebung ohne git-Befehle
So legen Sie ein Wiederholungslimit für Sidekiq fest und benachrichtigen tote Warteschlangen mit Slack
[Java] Anzeigen der von LocalDate und DateTimeformatter erfassten Tage auf Japanisch
[Rails] So zeigen Sie die Wettervorhersage der registrierten Adresse auf Japanisch mit OpenWeatherMap an