J'essaie de comprendre le moyen le plus simple de mapper un fichier XML à un objet de Java uni.
Remarque: que dans mon exemple, le XML ne correspond pas tout à fait avec mon pojo prévu. P>
///////// THE XML
<?xml version="1.0" encoding="UTF-8"?>
<Animal>
<standardName>
<Name>Cat</Name>
</standardName>
<standardVersion>
<VersionIdentifier>V02.00</VersionIdentifier>
</standardVersion>
</Animal>
////// THE INTENDED POJO
class Animal
{
private String name;
private String versionIdentifier;
}
4 Réponses :
Je considère JibX le meilleur du groupe (Jaxb, Castor, Xmlbeans, etc.), en particulier parce que je privilégie les fichiers de mappage sur les annotations. Certes, il a une courbe d'apprentissage décente, mais le site Web a beaucoup de bons exemples. Vous devez avoir manqué le Tutoriel . P>
Si vous ne faites qu'un seul moyen (XML -> POJO), vous pouvez utiliser Digester . p>
Commentaire côté: je préfère la cartographie des fichiers sur les annotations car les annotations: p>
Je lis le tutoriel, mais à moins que j'ai manqué quelque chose .. Il semble y avoir quelques étapes supplémentaires requises (comparées à Castro), c'est-à-dire les exigences relatives à l'exécution de lingeggen. (Ce qui n'est pas vraiment expliqué trop facilement sur le site Web). Il semble que la surclinisation doit exécuter BindGen sur vos fichiers de mappage avant de pouvoir les utiliser. Existe-t-il de simples tutoriels / extraits disponibles? I.E. Compte tenu de ce fichier XML, ce fichier de mappage XML et cette pièce de code, vous obtiendrez cette instance Pojo.
Eclipselink Jaxb (Moxy) propose également un fichier de mappage. Cela vous donne la liberté d'utiliser des annotations (standard Jaxb Plus Extensions) ou un fichier de mappage.
Cet article peut vous aider ... cela ne nécessite que de savoir XPath http: //onjava.com/onjava/2007/09/07/schema-less-java-xml-data-binding-with-vtd-xml.html P>
On dirait que cela nous fera probablement le meilleur choix, (ne pas avoir de mappage de fichiers ou d'annotations), mais il suffit d'avoir une forme de méthodes de traducteurs utilisant XPath, et éventuellement VTDXML, ou DOM.
Soyez prudent avec le digesteur, ce n'est pas un analyseur complet et peut être très lent pour les grandes documents XML
Jakarta Commons Digester devrait faire ce que vous voulez. P>
Alternativement, je vous recommanderais d'écrire une classe de transformation qui utilise XPath pour récupérer des éléments du XML. P>
Eclipselink Jaxb (Moxy) vous permet de faire la cartographie basée sur le chemin que vous êtes Recherche: Pour plus d'informations, voir: P> Eclipselink permet également de spécifier les métadonnées à l'aide d'un fichier de configuration externe: p>
Eclipselink Jaxb (Moxy) Code> Link redirige vers 404 i>
Voici un lien de travail: Eclipse.org/eclipselink
En tant que note supplémentaire, la cartographie / la liaison devrait fonctionner à la fois.