2014-06-17 7 views
-2

Je voudrais créer une méthode dans un webservice qui peut recevoir un objet d'une classe Java qui a été créé avec JAXB et générer un objet d'une autre classe Java (créé avec JAXB aussi) en utilisant un fichier XSL qui définit la relation entre les fichiers XML que j'ai utilisés avec JAXB.transformation java-to-java en utilisant XSLT

Une aide?

Merci beaucoup

+0

Veuillez lire l'aide en posant une question - http://stackoverflow.com/help/on-topic –

+0

Avez-vous essayé d'utiliser le XSLT Transformer? – Priyesh

+0

Salut Priyesh, oui, je l'ai considéré. Mais j'ai seulement trouvé l'exemple et les guides pour le faire à partir d'un fichier XML ou d'un fichier XML mais pas d'une instance d'une classe Java vers une nouvelle instance d'une autre classe Java. Des idées? – user2417250

Répondre

1

Vous êtes sur la bonne voie en regardant les javax.xml.transform API. Une Transformer prend son entrée à partir d'un objet qui implémente Source et envoie sa sortie à un objet qui implémente Result, et il y a JAXBSource et JAXBResult classes qui soutiendront le cas d'utilisation que vous êtes après

MySourceJaxbClass sourceObject = // ... 
Transformer transformer = transformerFactory.newTransformer(xsltSource); 
JAXBContext context = // however you need to create your context 
Source src = new JAXBSource(context, sourceObject); 
JAXBResult res = new JAXBResult(context); 
transformer.transform(src, res); 

MyTargetJaxbClass resultObject = (MyTargetJaxbClass)res.getResult(); 

Bien sûr, vous don Il n'est pas nécessaire d'utiliser le même JAXBContext à la fois pour la source et le résultat - s'il s'agit de hiérarchies de classes sans rapport, il peut être plus judicieux d'utiliser un contexte distinct pour chacune.