Nous sommes une réponse à une réponse de http://xmlgw.comanieshouse.gov.uk/ . C'est le texte envoyé au Marshall:
@XmlSchema(namespace = "http://xmlgw.companieshouse.gov.uk/v1-0", elementFormDefault = XmlNsForm.QUALIFIED, // xmlns = { @XmlNs(prefix = "xsi", namespaceURI = "http://www.w3.org/2001/XMLSchema-instance") } ) package uk.gov.companieshouse;
3 Réponses :
Vous devez utiliser un niveau de package @xmlschema code> Annotation pour spécifier la qualification d'espace de noms pour votre modèle.
documentBuilderFactory.setNamespaceAware(true);
Merci de me faire remarquer l'annotation de schéma de paquet :) Il s'avère que ce n'était pas le bon.
Java a changé autour de 1,8.0_100 qui répond à cette réponse le seul moyen de définir le schéma pour tous les champs. Avant que cette version @xmlrootelement fonctionnait également.
J'ai compris la bonne réponse grâce à @ Blaise DUMM . Après avoir examiné la qualification de l'espace de nom d'emballage, j'ai constaté qu'il était dirigé vers: et il aurait dû être dirigé vers: p> pas sûr de savoir comment cela a été égaré. p> p>
Cela le ferait. Ce qui se passait était que Jaxb pensait que chacun des annotations @xmlelement code> était dans le mauvais espace de noms, de sorte qu'ils ne correspondaient pas lors de la désérialisation et que les données étaient donc chutées sur le sol. (Jaxb ignore les éléments inconnus par défaut.)
J'ai résolu ceci en faisant ollementformDefault = "non qualifié" code> dans le XSD avant de générer des talons, sinon fait le changement manuellement dans le paquet-info.java p>
Ce une> aide?
Cela pointe vers le @xmlschema comme Blaise a fait, alors en quelque sorte. J'ai découvert la question après avoir réalisé la qualification de l'espace de noms incorrect.