JAXB Unmarshall exception des élément
J'ai utilisé une .fichier xsd pour générer des classes Java, et avec un fichier XML, j'ai besoin de unmarshall.
Je suis en utilisant ce code :
JAXBContext objJAXBContext = JAXBContext.newInstance("my.test");
//create an Unmarshaller
Unmarshaller objUnmarshaller = objJAXBContext.createUnmarshaller();
FileInputStream fis = new FileInputStream("test.xml");
JAXBElement<Root> objMyRoot = (JAXBElement<Root>) objUnmarshaller.unmarshal(fis);
Root mRoot = objMyRoot.getValue();
et j'obtiens cette erreur:
javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"Root"). Expected elements are (none)
J'ai vu beaucoup de solutions mais rien ne fonctionne dans mon projet.
Ce que je peux essayer de faire?
Vous pouvez commencer par nous montrer le contenu de
Et le fichier xsd.
test.xml
.Et le fichier xsd.
OriginalL'auteur Vítor Nóbrega | 2012-03-02
Vous devez vous connecter pour publier un commentaire.
Votre xml racine est absent de l'espace de noms (uri) de l'attribut.
Vous êtes mieux de l'essayer sur la
XMLRootElement
...tu veux dire changer d'auto-généré classe Java et ajouter cette annotation?
Si il faut changer le code généré, pourquoi pas.. je veux dire qu'il peut être buggé...
OriginalL'auteur Waqas Memon
Essayer
StreamSource accepte uniquement InputStream, le Lecteur et le Fichier sources. Mais vous pouvez utiliser un
StringReader
de brancher votre chaîne XML.StreamSource streamSource = new StreamSource(new StringReader(xmlText));
OriginalL'auteur Stroboskop