2013-05-11 5 views
5

मैं जावा भाषा में एक प्रोग्राम लिख रहा हूं जो जावा स्रोत कोड को इनपुट के रूप में लेता है और आउटपुट xmi फ़ाइल है जिसमें स्रोत कोड का वर्ग आरेख होता है।जावा स्रोत कोड के लिए एक्सएमआई फ़ाइल कैसे उत्पन्न करें?

मैंने एक्सएमआई संरचना के लिए शोध किया है लेकिन मुझे पर्याप्त संसाधन नहीं मिला जो टैग की संरचना और क्रम की व्याख्या करता है।

पहला सवाल यह है कि मुझे पता कैसे लगाया जा सकता है कि प्रत्येक टैग की टैग और परिभाषा का क्रम क्या है? उदाहरण के लिए, "isActive = false" आदि का अर्थ क्या है?

दूसरा, क्या जावा भाषा में पुस्तकालयों या कुछ भी कोई सुझाव है जो इस परियोजना को समाप्त करने में मेरी मदद कर सकता है?

+0

आप अपनी आवश्यकता के अनुसार एक्सएमएल संरचना को परिभाषित कर सकते हैं। –

+0

यदि आप टैग, विशेषताओं, नामस्थान जैसे एक्सएमएल मूल के बारे में जानने के लिए पहले कुछ बुनियादी एक्सएमएल ट्यूटोरियल से गुज़रेंगे तो बेहतर होगा ... –

+0

http://www.vogella.com/articles/JAXB/article.html –

उत्तर

3

मुझे लगता है कि टैग आदेश XMI में कोई फर्क नहीं पड़ता। आम तौर पर, एक्सएमआई सिर्फ एमओएफ को एक्सएमएल में मैप करने के तरीके को परिभाषित करता है। तो मूल रूप से आप जावा से एम 2 मॉडल (= यूएमएल) का निर्माण करते हैं और फिर इसे एक्सएमआई के साथ एक्सएमएल में मैप करते हैं यदि मैं इसे सही ढंग से समझता हूं (और मुझे लगता है कि डबल इंडिकेशन यह है कि आपको यूएमएल से एक्सएमआई तक मैपिंग के लिए अच्छे संसाधन क्यों नहीं मिलते हैं सीधे)।

कई लोगों के लिए, विभिन्न ओएमजी मानकों द्वारा परिभाषित परिवर्तन नियमों की श्रृंखला से उदाहरण अधिक सुलभ हो सकते हैं। इसलिए मैं अपने पसंदीदा यूएमएल टूल में एक न्यूनतम यूएमएल उदाहरण आरेख तैयार करता हूं जिसमें निर्यात पहलू के लिए दिलचस्पी है और निर्यात किए गए एक्सएमआई को देखता हूं। फिर आवश्यकतानुसार सुविधाओं को जोड़ें ...

पीएस: आप जावा स्रोत को पार्स करने के बजाय जावा प्रतिबिंब कक्षाओं (पैकेज java.lang.reflect) का उपयोग करना चाह सकते हैं (यदि आपको आवश्यकता नहीं है विधि तर्क नामों को संरक्षित करें)।

+2

प्रतिबिंब का उपयोग विधियों के पैरामीटर नामों को फेंकता है। यह _might_ चिंता का विषय है या नहीं - वाईएमएमवी। –

+0

@ स्टेफन हौस्टन, मैं आपके जवाब की सराहना करता हूं लेकिन मैं आपको स्पष्ट रूप से समझ नहीं पाया। मैं एक्सएमआई फाइल जेनरेट करने के लिए जावा कोड को बिल्कुल पार्स कर रहा हूं। मैंने मैक पर विंडोज़ या अरगोयूएमएल पर स्टारयूएमएल द्वारा निर्मित उदाहरण देखा है। मुझे कक्षाओं और उनकी सामग्री के बीच संबंध मिलते हैं और यूएमएल क्लास आरेख उत्पन्न करते हैं। मैं जावा प्रतिबिंब से प्रभावित हूं लेकिन क्या मैं इसे किसी भी स्रोत के वर्ग आरेख को निर्धारित करने के लिए अपने प्रोग्राम के लिए उपयोग कर सकता हूं। (कार्यक्रम का इनपुट कोई स्रोत कोड है) – Bernard

+0

@ एएच। धन्यवाद, तय –

संबंधित मुद्दे