java - गैर-रूट तत्वों को बेमेल न होने पर JAXB स्कीमा सत्यापन



xml xsd (1)

जब आप पूरी XML को JAXB के साथ जोड़ते हैं, तो आप पार्सिंग के दौरान सत्यापन को सक्षम करने के लिए एक्सएमएल स्कीमा सेट कर सकते हैं:

//javax.xml.validation.Schema schema = ...
jaxbUnmarshaller = JAXBContext.newInstance(SomeRootType.class).createUnmarshaller();
jaxbUnmarshaller.setSchema(schema);

दूसरी ओर, जब आप XML से NestedObjest s की एक सूची NestedObjest , तो एक एक करके (मेमोरी उपयोग को कम करने के लिए) इस विधि में विफल रहता है (स्कीमा केवल रूट स्वीकार करता है) एक अपवाद के साथ:

org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 22; cvc-elt.1: Cannot find the declaration of element 'NestedObject'

यह विफल हो जाता है भले ही NestedObjectType में अच्छी तरह से परिभाषित हो। नेस्टेड ऑब्जेक्ट सत्यापन सक्षम करने के लिए कोई विकल्प है? कृपया ध्यान दें कि नई स्कीमा को परिभाषित करना एक दुखी विकल्प है क्योंकि एक्सएसडी मेरे किसी अन्य व्यक्ति द्वारा अनुरक्षित आवेदन के लिए बाहरी है