2009-09-14 13 views
6

मैं एक्सजेसी कमांड लाइन टूल का उपयोग कर अपने एक्सएसडी स्कीमा फ़ाइल से जावा क्लासेस जेनरेट करता हूं। ऑब्जेक्ट फैक्ट्री क्लास अपूर्ण सामग्री उत्पन्न करती है। यह JAXBElement<Type> createType सजावट के बिना निर्माण विधियों को उत्पन्न करता है।जेएक्सबी एक्सजेसी कोड जनरेशन - ऑब्जेक्ट फैक्ट्री क्लास अधूरा

इसका कारण क्या हो सकता है? सम्मान डोमिनिक

उत्तर

3

जेएक्सबी 2 एक्सजेसी-जेनरेट बाध्यकारी में केवल कुछ प्रकार JAXBElement रैपर की आवश्यकता है। @XMLRootElement एनोटेशन वाले उन प्रकारों को रैपर की आवश्यकता नहीं है, और इसलिए ऑब्जेक्ट फैक्ट्री एक उत्पन्न नहीं करती है। इस में

<complexType name="my-type"> 
    ... 
</complexType> 

<element name="my-type" type="tns:my-type"/> 

:

0

क्या आपके पास अपनी स्कीमा या केवल प्रकार के तत्व हैं? यह आमतौर पर कारण है।

0

JAXB कारखाने तरीकों कि एक वस्तु उदाहरण केवल यदि आपका XSD दोनों एक complexType परिभाषा और एक अलग तत्व परिभाषा ही नाम के साथ कि complexType का उपयोग कर उदाहरण के लिए, शामिल है से एक JAXBElement बनाने उत्पन्न करता है मामला, जेएक्सबी जेनरेट क्लास को @XmlRootElement एनोटेशन के साथ एनोटेट नहीं करेगा, लेकिन ऑब्जेक्ट इंस्टेंस से JAXBElement बनाने के लिए आपको आवश्यक फैक्ट्री विधियों को प्रदान करेगा। इस तरह, आप रूट तत्वों के रूप में आसानी से गैर-रूट-तत्व प्रकारों के उदाहरणों को क्रमबद्ध कर सकते हैं।

तो, आपको किसी भी जटिल टाइप टाइप परिभाषा के अलावा एक ही तत्व के साथ एक "तत्व" - घोषणा जोड़नी चाहिए, जिसे आप शीर्ष-स्तर तत्व के रूप में उपयोग करना चाहते हैं, और ऑब्जेक्ट फैक्ट्री अपेक्षित फैक्ट्री विधियों को उत्पन्न करेगी।