J'ai une structure assez simple, mais potentiellement grande pour sérialiser. Fondamentalement, la structure du XML sera:Est-ce que JAXB peut incrémenter Marshall un objet?
<simple_wrapper>
<main_object_type>
<sub_objects>
</main_object_type>
... main_object_type repeats up to 5,000 times
</simple_wrapper>
Le main_object_type
peut avoir une quantité importante de données. Sur mon premier extrait d'enregistrement de 3500, j'ai dû donner à la JVM plus de mémoire que nécessaire. Donc, je voudrais écrire sur le disque après chaque (ou un groupe de) main_object_type
.
Je sais que le réglage Marshaller.JAXB_FRAGMENT
permettrait de le fragmenter, mais je perds les étiquettes de document xml externes et le <simple_wrapper>
.
Des suggestions?
Si j'utilise un flux, ne sera pas la méthode standard de création d'un '' JAXBElement > pour le '' encore besoin tous les objets contenus à garder en mémoire? Ce que je cherche, c'est comment le décomposer sans avoir à faire beaucoup de travail manuel en écrivant les en-têtes '', etc. Je veux ouvrir '' et écrire chaque '' ils sont récupérés à partir de la BD, sans trop de travail de singe. –
Essayez d'utiliser @XmlID avec un IDResolver personnalisé: http://weblogs.java.net/blog/2005/08/15/pluggable-ididref-handling-jaxb-20 Votre simple enveloppe ne conserverons les ids de objets et récupérer des instances d'objet via le résolveur id. – lexicore