2010-05-12 14 views
13

मुझे एक्सएमएल डेटा को जावा ऑब्जेक्ट्स में कनवर्ट करने की आवश्यकता है। इस एक्सएमएल डेटा को ऑब्जेक्ट में बदलने के लिए सबसे अच्छा अभ्यास क्या होगा?एक्सएमएल को जावा ऑब्जेक्ट में परिवर्तित करने में सबसे अच्छा अभ्यास क्या है?

आइडिया वेब सेवा के माध्यम से डेटा लाने के लिए है (यह डब्लूएसडीएल का उपयोग नहीं करता है, केवल HTTP जीईटी प्रश्नों का उपयोग नहीं करता है, इसलिए मैं किसी भी ढांचे का उपयोग नहीं कर सकता) और उत्तर एक्सएमएल में हैं। इस स्थिति को संभालने के लिए सबसे अच्छा अभ्यास क्या होगा? http://java.sun.com/developer/technicalArticles/WebServices/jaxb/

+0

के लिए अपाचे के bitwixt और सरल ढांचे पर विचार कर सकते वहाँ भी स्कीमा-दृष्टिकोण मामले में, यह है कि आप नहीं है यहां तक ​​कि schema..http उपयोग करना चाहते हैं: //onjava.com/pub/ ए/ओन्जावा/2007/09/07/स्कीमा-कम-जावा-एक्सएमएल-डेटा-बाध्यकारी-साथ-vtd-xml.html –

उत्तर

10

XStream पर एक नज़र डालें। यह सबसे तेज़ नहीं हो सकता है, लेकिन यह जावा में सबसे उपयोगकर्ता के अनुकूल और सीधा कन्वर्टर्स में से एक है, खासकर यदि आपका मॉडल जटिल नहीं है।

+0

+1 अच्छा जवाब, यह एक मानक प्रति-सी नहीं है, लेकिन यह JAXB की तुलना में मेरे अनुभव में अधिक रखरखाव योग्य रहा है। – maerics

+2

जांचें: http://bdoughan.blogspot.com/2010/10/how-does-jaxb-compare-to-xstream.html –

+0

क्या इसका उपयोग HTML को पार्स करने के लिए किया जा सकता है? क्या यह गलती सहनशील है? धन्यवाद! – trillions

12

JAXB ऐसा करने के लिए एक मानक एपीआई है। यह प्रक्रियात्मक है - यानी एक आगंतुक पैटर्न - लेकिन यदि एक्सएमएल काफी हल्का है, (और यहां तक ​​कि मध्यम वजन) मैंने इसे इसके लिए बहुत उपयोगी पाया है।

+0

देखें: http://bdoughan.blogspot.com/2010/07/jaxb-xml -बाइंडिंग-मानक.html –

2

एक अन्य विकल्प सैक्स पार्सर है:

4

एक जेएमएस परियोजना के लिए हम marmalling और unmarshalling (जावा से xml और xml से जावा तक जा रहे हैं) XMLM टेक्स्ट (स्ट्रिंग प्रॉपर्टी) में एम्बेडेड एक्सएमएल। हमने जेएक्सबी, Jibx, और XMLBeans की कोशिश की। हमने पाया कि एक्सएमएलबीन ने हमारे लिए सबसे अच्छा काम किया है। तेज़, आसानी से विन्यास योग्य, अच्छा प्रलेखन, और आसान मैवेन एकीकरण।

+0

मैंने जैक्सबी, एक्सस्ट्रीम और एक्सएमएलबीन का उपयोग किया है, वे सभी उनके साथ अच्छे और बुरे हैं।जैक्सब कि प्लेटफार्म का हिस्सा है, एक्सस्ट्रीम कि यह सब खत्म हो गया है, लेकिन यदि आपका एक्सएमएल बहुत जटिल है, तो एक्सएमएलबीन जाने का रास्ता है। – mezmo

3

मैं का इस्तेमाल किया है और JDOM उपयोग करने के लिए जारी रहेगा -> www.jdom.org

0

मैं Xstream का उपयोग किया है और साथ ही, इसका इस्तेमाल करने के लिए आसान और अनुकूलन योग्य है। आप अपने स्वयं के कस्टम कन्वर्टर्स जोड़ सकते हैं और यह मेरे लिए बहुत आसान था ...

1

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

मैंने अन्य एपीआई का उपयोग नहीं किया है। तो मैं दूसरों के साथ तुलना करने की कोशिश नहीं कर रहा हूं। यदि आपने जेआईबीएक्स का उपयोग करने का फैसला किया है, तो मुझे उम्मीद है कि यह सहायक होगा।

अधिक जानकारी, JIBX website

2

JAXB एपीआई जो जावा में आता है (बनाया में) देखें।

+1

मेट्रो कार्यान्वयन जावा एसई 6 के साथ आता है। EclipseLink JAXB (MOXy) और अपाचे जैक्समे भी है। –

0

इसलिए आश्चर्य हुआ कि अधिक लोगों ने जिब्क्स का उल्लेख नहीं किया है। अद्भुत lib और मुझे लगता है कि जैक्सब से उपयोग करने के लिए बहुत आसान है। प्रदर्शन भी fab है!

0

इसके लिए आपको भी एक्सएमएल

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

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