मैं एक XML स्कीमा बनाया है (foo.xsd) मार्शल और xjc
इस्तेमाल किया JAXB के लिए मेरे बाध्यकारी कक्षाएं बनाने के लिए करने के लिए। आइए मान लें कि मूल तत्व collection
है और मैं एन document
ऑब्जेक्ट्स लिख रहा हूं, जो कि जटिल प्रकार हैं।मान्यता JAXB और StAX का उपयोग कर XML दस्तावेज़
क्योंकि मैं बड़ी एक्सएमएल फाइलें लिखने की योजना बना रहा हूं, मैं collection
रूट तत्व लिखने के लिए स्टैक्स का उपयोग कर रहा हूं, और Marshaller.marshal(JAXBElement, XMLEventWriter)
का उपयोग कर मार्शल दस्तावेज़ सबट्रीज़ में जेएक्सबी। यह दृष्टिकोण jaxb's unofficial user's guide द्वारा अनुशंसित किया गया है।
मेरे सवाल है, मैं कैसे एक्सएमएल मान्य कर सकते हैं, जबकि यह मार्शल किया जा रहा है? अगर मैं JAXB marshaller (Marshaller.setSchema()
का प्रयोग करके) के लिए एक स्कीमा बाँध, मैं सत्यापन त्रुटियों मिलता है क्योंकि मैं केवल एक सबट्री वास्ते हूँ (यह है कि यह collection
मूल तत्व "नहीं देख रहा है शिकायत है)। मुझे लगता है कि क्या मैं वास्तव में करने के लिए एक बाँध है चाहता हूँ Stax XMLEventWriter
या ऐसा ही कुछ करने के लिए स्कीमा।
इस समग्र दृष्टिकोण पर किसी भी टिप्पणी उपयोगी होगा। असल में मैं JAXB
उपयोग करने के लिए स्मृति से बाहर चलने के बिना unmarshal बड़े XML दस्तावेज़ों मार्शल और करने के लिए सक्षम होना चाहते हैं, तो अगर वहाँ एक बेहतर ऐसा करने का तरीका मुझे बताएं।
+1 अच्छा प्रश्न है। – skaffman