2009-04-15 9 views
15

मैंने जावा में कुछ एक्सएमएल एपीआई के साथ निपटाया है, लेकिन मुझे किसी भी उद्देश्य के लिए एक्सएमएल से निपटने के लिए जावा में उपलब्ध सभी ढांचे की अच्छी समझ नहीं है (जैसे जेएक्सबी, जेएक्सपी, जेरसेस, स्टैक्स , कास्टर, आदि)। क्या कोई सबसे लोकप्रिय जावा एक्सएमएल एपीआई को हाइलाइट कर सकता है और इसके बारे में त्वरित विवरण दे सकता है कि उनका क्या उपयोग किया जा रहा है? मुझे दिलचस्पी होगी कि आजकल कौन सी एपीआई का उपयोग किया जाता है, और जिसे बहिष्कृत माना जा सकता है।जावा एक्सएमएल एपीआई

+0

क्या आपने vtd-xml देखा है? –

+0

आपके ज्यादातर प्रश्नों का उत्तर दिया गया है, मुझे लगता है, पहले स्टैक ओवरफ्लो प्रश्नों में: - [एक्सएमएल के लिए जावा एपीआई] (http://stackoverflow.com/questions/678894/) - [जावा में एक्सएमएल क्रमबद्धता?] (Http://stackoverflow.com/questions/35785/) - [जावा के लिए सर्वश्रेष्ठ एक्सएमएल पार्सर] (http://stackoverflow.com/questions/373833/) - [जावा में एक्सएमएल करने का सरल तरीका] (http: // stackoverflow .com/प्रश्न/528664 /) इस प्रकार की खोज Google Eddie

उत्तर

16
  • JAXP एक "प्लगेबल एपीआई", "संदर्भ कार्यान्वयन" सूर्य से साथ इंटरफेस और अमूर्त कक्षाओं का एक सेट है, लेकिन यह आप एक अलग कार्यान्वयन के लिए बाहर स्वैप करने के लिए अनुमति देने के लिए कारखाने दृष्टिकोण का उपयोग करता है (जैसे एक यह कुछ प्रकार के उपयोगों में तेज़ी से हो सकता है) बिना किसी कोड को बदलने के, बस changing a system property द्वारा। इसमें डोम, सैक्स, स्टैक्स और एक्सएसएलटी शामिल है। सूर्य के पास डीओएम/एसएएक्स/स्टैक्स के लिए comparison page अच्छा है। मैं O'Reilly book on Java XML की अनुशंसा करता हूं, आप इसे एक सभ्य मूल्य पर उपयोग कर सकते हैं लेकिन केवल यह सुनिश्चित कर लें कि आपके पास नवीनतम (3) संस्करण है।

  • JAXB एक्सएमएल स्कीमा का उपयोग करते हुए जावा फाइलों को जावा फाइलों को बाध्य करने का एक तरीका है। (आप एक स्कीमा का उपयोग कर जावा कक्षाओं को स्वत: उत्पन्न कर सकते हैं, या आप जावा कक्षाओं का उपयोग करके स्कीमा को स्वत: उत्पन्न कर सकते हैं। मैंने पूर्व का उपयोग किया है लेकिन बाद वाला नहीं।) यह उपयोगी हो सकता है यदि आपकी एक्सएमएल फाइलों के पास एक प्रसिद्ध स्कीमा है, और आप किसी XML फ़ाइल में डेटा का इलाज करना चाहते हैं जैसे कि यह जावा क्लास में ऑब्जेक्ट्स था। आप बहुत कम एपीआई कॉल करते हैं, जावा से एक्सएमएल के डेटा को मार्शल करने के लिए केवल एक या दो, या एक्सएमएल से जावा तक डेटा को अनारर्शल करते हैं। यदि आपकी एक्सएमएल फाइलें अधिक फ्रीफॉर्म हैं और/या आप चीजों को खोजने के लिए XPATH का उपयोग करना चाहते हैं, तो आप शायद JAXP API में से किसी एक का उपयोग कर बेहतर कर सकते हैं।

  • कास्टर जेएक्सबी का विकल्प है; मैंने इसका उपयोग नहीं किया है लेकिन comparison page on IBM's website है।

  • Xerces अपाचे का एक्सएमएल-हैंडलिंग पैकेज का परिवार है। इसमें जावा के लिए एक भी शामिल है, जिनमें से अधिकांश का उपयोग सूर्य के संदर्भ कार्यान्वयन के लिए वैकल्पिक कार्यान्वयन के रूप में जेएक्सपी के माध्यम से किया जा सकता है। इसमें सी ++ और पर्ल के लिए पुस्तकालय भी शामिल हैं।

+7

से कर्नेल आसान करना आसान है जावा एक्सएमएल एपीआई सबकुछ जो मैं बेकार वास्तुकला के बारे में नफरत करता हूं। मैं एक "प्लग करने योग्य वास्तुकला" नहीं चाहता हूं: मैं सिर्फ बॉक्स के बाहर एक मानक, तेज़, सही पार्सिंग लाइब्रेरी चाहता हूं ... कल्पना करें कि स्ट्रिंग एक "प्लग करने योग्य वास्तुकला" थी! –

+1

@NeilCoffey मुझे लगता है कि एक्सएमएल हैंडलिंग वर्णों की एक आदेशित सूची से निपटने से थोड़ा अधिक जटिल कार्य है। – vbence

+1

यह अधिक जटिल है ... लेकिन एपीआई का उद्देश्य एप्लिकेशन प्रोग्रामर को ऐसी जटिलता का खुलासा नहीं करना है (या कम से कम, जटिलता के केवल आवश्यक स्तर का खुलासा करना)। –

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