2010-11-16 4 views
2

J'utilise mon propresiterable structures - divers BinaryTrees. Puis-je simplement les rassembler? Il est assez facile de rassembler f.e. java.util.List implémentations, mais dans mon cas, c'est absolument inacceptable. Je dois utiliser mes propres structures, sans conteneurs internes que ce soit - que les chaînes de mémoire (root.leftson.rightson etc.)Puis-je rassembler mes propres structures de données avec JAXB?

En d'autres termes, est-il possible de la structure marshall comme:

class BinaryTree<T> implements Iterable<T>?

Edit: structure est censé ressembler (pour BinaryTree<Person>):

<persons> 
<person> 
    <name>John</name> 
    <surname>Black</name> 
</person> 
<person> 
    <name>Joe</name> 
    <surname>Blue</name> 
</person> 
</persons> 

Alors, quand j'ajouter une annotation à ma structure comme:

@XmlElement 
private BinaryTree<Person> persons = new BinaryTree<Person>(); 
public BinaryTree<Person> getPersons() { return persons; } 

, il crée simplement élément vide comme <persons />. J'ai également essayé les annotations @XmlElementWrapper, mais cela ne prendra pas de structure personnalisée (doit être une collection ou quelque chose de similaire). Il serait agréable d'avoir comme @IterableElement ou quoi :)

+0

Vous devez vous demander "comment cette structure serait-elle représentée en XML?". – skaffman

+0

Je le sais très bien, vérifiez l'édition. – Xorty

+0

Quelle édition? Je ne vois rien concernant votre structure XML souhaitée. – skaffman

Répondre

2

Il existe un guide sur la façon de faire vos propres méthodes de triage dans le javadoc de XMLAdapter. De cette façon, en utilisant l'annotation @XMLJavaAdapter, vous pouvez définir exactement comment vous voulez organiser votre classe.

+0

Il y a aussi un exemple sur mon blog d'utiliser XML Adapter: http://bdoughan.blogspot.com/2010/07/xmladapter-jaxbs-secret-weapon.html –

+0

Ça me va, je Je vais regarder ça de plus près. Mais je suis pressé, donc j'ai choisi DOM cette fois. – Xorty

Questions connexes