2010-08-16 9 views
5

मैं अपने जावा एप्लिकेशन में एक्सएमएल फाइलों का आयात फ़ंक्शन लिख रहा हूं। मैं XML फ़ाइलों को पार्स करने के लिए XOM का उपयोग कर रहा हूं। एक्सएमएल को पार्स करने के लिए कोड को समझना आसान नहीं है, यह कुछ हार्डकोडेड .getChild(3) और इसी तरह है। घोषणात्मक XML दस्तावेज़ की तुलना में कोड का पालन करना मुश्किल है।जावा ऑब्जेक्ट्स को XML को पार्स करने का कोई घोषणात्मक तरीका है?

क्या जावा ऑब्जेक्ट्स पर XML दस्तावेज़ों का विश्लेषण करने के लिए कोई और अधिक रखरखाव तरीका नहीं है? मैं इसे एक और घोषणात्मक तरीके से रखना चाहता हूं, जहां मैं निर्दिष्ट कर सकता हूं कि कौन से टैग जावा कक्षाओं के अनुरूप हैं।

उत्तर

0

मुझे अंततः XStream मिला जो कि उपयोग करने में आसान था और एक्सएमएल को घोषणात्मक तरीके से पारदर्शी करता था।

+0

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

1

Apache Commons Digester पर एक नज़र डालें।

+1

क्या डायजेस्टर अभी भी एक सक्रिय परियोजना है? मुझे जनवरी 200 9 से उनकी साइट पर अपडेट नहीं किया गया है। –

+0

डायजेस्टर स्थिर, कम सक्रिय है लेकिन अभी भी बनाए रखा है। –

3

जेएक्स/बी - काफी सरल एनोटेशन-आधारित दृष्टिकोण पर एक नज़र डालें। यह एक मानक जावा एपीआई है।

एक्सएसडी या नमूना एक्सएमएल फाइलों से एनोटेटेड जावा कक्षाएं उत्पन्न करने के लिए टूल हैं। मैं इसके उपयोग का वर्णन my blog

+0

धन्यवाद, मैंने आपके ब्लॉग पोस्ट को पढ़ा है। जब आप एक्सएमएल फ़ाइल पर राइट क्लिक कर सकते हैं और फिर एक्सएसडी उत्पन्न कर सकते हैं तो आपके पास एक महान आईडीई होना चाहिए। मुझे ग्रहण में यह विकल्प नहीं मिला है जिसका मैं उपयोग कर रहा हूं।मुझे जेएक्सबी के बारे में पढ़ना है। – Jonas

+0

ग्रहण दली परियोजना में जोड़ा जा रहा JAXB समर्थन देखें: http://www.eclipse.org/webtools/releases/3.2.0/NewAndNoteworthy/jpa.php –

1

सहमत JAXB (JSR-222) सबसे अच्छा समाधान है। ध्यान दें कि JAXB एक कल्पना जिसका अर्थ है आप कार्यान्वयन का एक विकल्प है:

स्टैंडर्ड JAXB आप एनोटेशन के माध्यम से मैपिंग निर्दिष्ट करने के लिए अनुमति देता है, MOXy JAXB भी आप XML के माध्यम से अपने मेटाडाटा निर्दिष्ट कर सकते हैं :

  • http://bdoughan.blogspot.com/2010/07/xpath-based-mapping.html
  • parse google geocode with xstream
  • : 510,403,210 आप एक पोषणीय समाधान चाहते हैं तो आप MOXY में इस्तेमाल किया आधारित मैपिंग XPath लगभग सभी एक्सएमएल बाध्यकारी समाधान में पाया XML तत्वों के बीच एक-से-एक रिश्ता तोड़ने, और उपयोग करने की आवश्यकता
2

मुझे वास्तव में XML से जावा में कनवर्ट करने के लिए Simple पसंद है।

+0

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

1

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