Actuellement, je suis en utilisant le framework Castor pour Marshall l'objet dans le fichier xml grands noms du travail de ceCastor et JAXB Marshaller
Writer writer = new FileWriter("D:/out.xml");
Marshaller.marshal(test, writer);
Mais maintenant, je me sers javax.xml.bind à faire la même chose.
Writer writer = new FileWriter("D:/out.xml");
JAXBContext context =
JAXBContext.newInstance(test.getClass());
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(test, writer);
Alors je frappe ce message d'erreur:
incapable de maréchal de type "package1.Testing" comme un élément car il manque une annotation @XmlRootElement]
Merci pour votre réponse pouvez-vous m'expliquer grossièrement pourquoi utiliser castor est correct, mais jaxb besoin d'ajouter XmlRootElement – user236501
C'est juste de la sémantique. Les API Castor et JAXB sont différentes et JAXB requiert l'annotation, contrairement à Castor. –
Cela signifie-t-il que JAXB a besoin de savoir quelle classe regarder, alors dans mon fichier de test je dois mettre @XmlRootElement? – user236501