So ändern Sie programmgesteuert die Standard JAXB Datum Serialisierung?
Gibt es eine Möglichkeit zum ändern der Standard-Weg, jaxb serialisieren/Deserialisieren von Typen, Daten, in meinem Fall, ohne dass es durch annotation und/oder durch xml-jaxb-Bindung, wie Sie hier erwähnt
http://jaxb.java.net/guide/Using_different_datatypes.html
Ich würde grundsätzlich gerne etwas machen wie:
JAXBContext jaxbContext = ...;
Marshaller marshaller = jaxbContext.createMarshaller().setAdapter(new DateAdapter(dateFormat));
Haben eine vorkonfigurierte JaxBContext oder Marshaller/Unmarshaller das serialisieren/Deserialisieren von Daten in einem benutzerdefinierten Weise..
Konnte nicht finden, dass jede Ressource, die zeigt, wie zu erwarten, durch Anmerkungen oder statisch mit der xml binding-Datei..
Danke!
tut
Nein ist es nicht.. 🙁
Die Tatsache, dass die
javax.xml.bind.Marshaller.setAdapter(XmlAdapter)
nicht für Sie arbeiten?Nein ist es nicht.. 🙁
javax.xml.bind.Marshaller.setAdapter(XmlAdapter)
ist für das bestehen in einem initialisierten XmlAdapter
wenn das Modell bereits so konfiguriert, dass ein XmlAdapter
- und nicht die Einführung einer XmlAdapter
. Für ein Beispiel siehe: stackoverflow.com/questions/5319024/...Die Tatsache, dass die
@XmlJavaTypeAdapter(s)
Anmerkungen sind unvermeidlich, sind ein großer Schmerz für frameworks. Für XStream, können wir register a-Wandler für alle Foo-Felder, aber für jaxb wir nicht, weil es erwartet, dass wir uns ändern Sie die Domäne des Benutzers package-info.java Datei...InformationsquelleAutor zhk | 2011-06-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist nicht genau das, was Sie suchen, aber es schlägt Kommentierung jedes Datenfeld individuell. Sie können XmlJavaTypeAdapter auf Paket-Ebene, so dass jede Referenz, Datum in Ihrem Paket. Wenn Ihr Objekte in der com.Beispiel-Paket, sollten Sie einen package-info.java die Datei mit dem folgenden Inhalt:
Wird diese auch behandeln die sub-packages com.Beispiel wie com.Beispiel.foo und com.Beispiel.bar?
Dies ist nicht programmatisch: es funktioniert nicht für frameworks 🙁
Das ist Magie! Danke.
InformationsquelleAutor Patrick Marchwiak
Versuchen Sie dies:
Diese produziert:
Seien Sie sich bewusst, dass die " = SimpleDateFormat "dd_mm_yyyy" zeigt Tage, MINUTEN und Jahre. Wahrscheinlich "dd_MM_yyyy" ist die bessere Wahl.
Ist es möglich zu tun, der Marschall mit Validierung ?
InformationsquelleAutor chahuistle
Suche nach ganzen jaxb Dokumentation und viele tutorials, ich fand keine Antwort, die können konfigurieren, dass Daten abgesehen von dem, was wir hart-code in XMLAdapter.
Ich habe eine property-Datei in die classpath-mit Datum-Formate, wie zum Beispiel:
dateFormat=mm-dd-YYYY
Nun Ihre XMLAdapter Umsetzung geht wie folgt:
Nun können Sie mit @XmlJavaTypeAdapter(ConfigurableAdapterForDate.class)für date-Objekte, die Sie wollen, zu serialisieren/Deserialisieren.
Man ist frei zu verwenden Frühling auch Last-property-Datei. Obigen code konfigurieren Ihren Termin entsprechend.
InformationsquelleAutor puppyDomminatedWorld