Lorsque vous unmarshal XML entier avec JAXB, vous pouvez définir le schéma XML pour permettre la validation lors de l'analyse syntaxique:JAXB validation de schéma lorsque unmarshalling élément non-root
//javax.xml.validation.Schema schema = ...
jaxbUnmarshaller = JAXBContext.newInstance(SomeRootType.class).createUnmarshaller();
jaxbUnmarshaller.setSchema(schema);
D'autre part, lorsque vous liste unmarshal de NestedObjest
s à partir de XML, un par un (. par exemple, pour diminuer l'utilisation de la mémoire), cette méthode échoue (comme le schéma accepte uniquement la racine) avec une exception:
org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 22; cvc-elt.1: Cannot find the declaration of element 'NestedObject'
Il échoue même si NestedObjectType
est bien défini dans le XSD. Existe-t-il une option pour activer la validation d'objet imbriqué? S'il vous plaît noter que la définition de nouveau schéma est une option misérable que le XSD est externe pour mon application maintenue par quelqu'un d'autre.
pourriez-vous fournir un exemple d'entrée, où cette erreur se produit? –