Umgang mit XML-Escape-Zeichen (z. B. Anführungszeichen) mit JAXB Marshaller

8

Ich muss ein XML-Java-Objekt mit dem JAXB Marshaller (JAXB Version 2.2) in eine XML-Datei serialisieren. Jetzt habe ich im XML-Objekt ein Tag, das String-Wert enthält, so dass:

%Vor%

Nun können Sie sehen, dass dieser String-Wert wieder Tags enthält. Ich möchte, dass dies in der XML-Datei auf die gleiche Weise geschrieben wird.

Aber JAXB Marshaller konvertiert diese Werte wie:

"&"lt;YYYYY"&"gt;"&"#xD;done ... & amp; so weiter

Ich kann diese Escape-Zeichen nicht separat mit JAXB 2.2 behandeln Ist das überhaupt möglich?

Jede Hilfe in dieser Hinsicht wird großartig sein.

Vielen Dank im Voraus, Abhinav Mishra

    
javdev 14.12.2010, 04:39
quelle

5 Antworten

7

Fertig, indem Sie die folgende Eigenschaft für den JAXB Marshaller festlegen:

%Vor%     
javdev 16.12.2010, 04:56
quelle
6

Es gibt einen einfacheren Weg. Verwenden Sie zuerst benutzerdefinierte Escape-Sequenz:

%Vor%

Ordne es dann zu einem String wie unten erwähnt

%Vor%

und erstellen Sie dann ein Dokumentobjekt aus dem unten genannten Writer

%Vor% Das

Escape-Zeichen-Problem wird behoben

    
preetham 25.04.2012 08:57
quelle
2

Sie können die CDATA-Struktur nutzen. Standard JAXB deckt diese Struktur nicht ab. Es gibt eine Erweiterung in EclipseLink JAXB (MOXy) dafür (ich bin der Tech-Lead). Überprüfen Sie meine Antwort auf eine verwandte Frage:

Er beschreibt die @ XmlCDATA Annotation in MOXy:

%Vor%

Weitere Informationen finden Sie unter

Blaise Doughan 14.12.2010 10:51
quelle
1

Abhängig davon, wonach Sie genau suchen, können Sie entweder:

  • deaktivieren Sie das Ausbrechen von Zeichen
  • oder verwenden Sie CDATA string welche Unterstützung kann in JAXB mit nur ein wenig Konfiguration
  • hinzugefügt werden
fred 03.08.2011 22:14
quelle
0

Mit JAXB Marshaller, wenn Sie vollständige Kontrolle darüber haben wollen, welche Zeichen zu entkommen sind (z. B. "\ '"), müssen Sie Eigenschaft hinzufügen:

%Vor%

und erstellen Sie eine neue CustomCharacterEscapeHandler-Klasse

%Vor%

Ich hoffe, das hilft.

    
Patrik Bego 30.01.2018 10:21
quelle