2009-08-27 9 views
6

मैं लंबे समय तक सामान्य एक्सएमएल पार्सिंग के लिए जेडीओएम का उपयोग कर रहा हूं, लेकिन यह महसूस कर रहा हूं कि जावा 5 या 6 के लिए कुछ बेहतर, या कम से कम हल्का होना चाहिए।क्या मुझे अभी भी जावा 5 या 6 के साथ जेडीओएम का उपयोग करना चाहिए?

जेडॉम के साथ कुछ भी गलत नहीं है एपीआई, लेकिन मुझे अपने तैनाती के साथ ज़ेरेस शामिल करना पसंद नहीं है। क्या कोई हल्का विकल्प है, अगर मैं बस एक एक्सएमएल फ़ाइल में पढ़ना चाहता हूं या एक लिखना चाहता हूं?

उत्तर

6

मेरी राय में सबसे अच्छा हल्का विकल्प है, एक्सओएम, लेकिन जेडीओएम अभी भी एक बहुत अच्छा एपीआई है, और मुझे इसे बदलने का कोई कारण नहीं दिखता है।

यह ज़ीरिस पर निर्भरता नहीं है, हालांकि (कम से कम, इसे अपाचे जेरस डिस्ट्रो की आवश्यकता नहीं है, यह जेआरई में पैक किए गए जेरस के साथ काम करता है)।

2

हम JAXB का उपयोग करते हैं - यह स्कीमा के आधार पर कक्षाएं उत्पन्न करता है। आप स्कीमा के बिना अपनी फाइलें जेनरेट कर सकते हैं, और केवल एनोटेट करें कि आप एक्सएमएल कैसे बनना चाहते हैं।

+0

मैं जेएडीबी को जेडीओएम के प्रतिस्थापन नहीं कहूंगा, हालांकि, यह अलग-अलग समस्याएं हल करता है। – skaffman

+1

प्रश्न से मैं समझ गया कि एक विशिष्ट एक्सएमएल को पढ़ने और लिखे जाने की आवश्यकता है। यदि हां, तो स्कीमा को परिभाषित न करें और सभी थकाऊ पार्सिंग को क्यों न सहेजें। यदि एक मनमाने ढंग से एक्सएमएल लिखा जाना है तो मैं सहमत हूं (मुझे विश्वास है कि यह एक दुर्लभ मामला है) –

+0

+1 मैं पूरी तरह से अपने डोमेन/कॉन्फ़िगरेशन ऑब्जेक्ट्स को पहले सहमत हूं, फिर एक्सएमएल के बारे में चिंता करें। –

0

आपको Commons Digester देखें (देखें कि मैंने here दिया है) देखें। यह XML को पार्स करने के लिए बहुत हल्का तंत्र प्रदान करता है।

3

मैंने xml pull/push तकनीकों का उपयोग करके XML को पढ़ने और लिखने के लिए javax.xml.stream पैकेज (XMLStreamReader/XMLStreamWriter) का उपयोग किया है। यह अब तक मेरे लिए काम किया है।

+0

+1 नोट के साथ कि javax.xml.stream पैकेज केवल जावा 6 में उपलब्ध है। –

+1

यदि आपके पास जावा 6 नहीं है लेकिन अभी भी xmlpp का उपयोग करना चाहते हैं तो आप http://www.xmlpull.org/ देख सकते हैं । Javax.stream पैकेज एक xmlpull.org संगत पुल पार्सर नहीं है (यह एपीआई थोड़ा अलग है) लेकिन वे बहुत करीब हैं। – KitsuneYMG

+0

क्या आप * लेखन * एक्सएमएल के लिए उपयुक्त किसी भी तृतीय पक्ष स्ट्रीमिंग एपीआई के बारे में जानते हैं? –

0

जेडीओएम बहुत अच्छा और सरल है। जेडीओएम के रिलीज के बाद एक्सएमएल का विश्लेषण करने के कई नए तरीके रहे हैं, लेकिन उनके पास सादगी से अलग फोकस है। जेएक्सबी कुछ मामलों में चीजों को सरल बनाता है जब आपके पास अच्छी तरह से ज्ञात XML दस्तावेज़ है, तो आपकी स्कीमा दैनिक आधार पर अपडेट नहीं होती है। नए पुश पार्सर बहुत बड़ी हैं और बहुत बड़ी एक्सएमएल फाइलों (सैकड़ों एमबी) के लिए भी अनिवार्य हैं। SAX पार्सर के लिए स्पीड लाभ दस गुना हो सकता है।

0

जावा के साथ मानक आने वाले एक्सएमएल एपीआई में से एक का उपयोग करें, ताकि आपको किसी तीसरे पक्ष के पुस्तकालयों को शामिल करने की आवश्यकता न हो।

XML in the Java Platform Standard Edition (Java SE) 6

0

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

2

हाल ही में जावा 5 के लिए जेडीओएम का एक कांटा coffeeDOM कहा गया था। आपको इसे देखना चाहिए।

+0

+1 से फेंक दिया: कॉफीडॉम वास्तव में एक बहुत ही आसान कांटा है और एपीआई के साथ काम करना अधिक सुविधाजनक और मजेदार बनाता है – ngeek

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

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