स्टैक्स
XML के लिए स्वृक्षमिंग API (StAX) XML दस्तावेज़ों को पढ़ने और लिखने के लिए एक एप्लिकेशन प्रोग्रामिंग अंतरफलक (API) होता है, जो जावा प्रोग्रामिंग भाषा समुदाय से उत्पन्न हुआ है।
परंपरागत रूप से, XML API है:
- DOM आधारित - कॉलिंग एप्लिकेशन द्वारा रैंडम एक्सेस के लिए संपूर्ण दस्तावेज़ को XML के रूप में मेमोरी में पढ़ा जाता है।
- अवसर आधारित - स्रोत दस्तावेज़ के भीतर संस्थाओं का सामना करने के लिए एप्लिकेशन अवसरों को प्राप्त करने के लिए पंजीकृत करता है।
दोनों के फायदे है: दस्तावेज़ वस्तु नमूना, उदाहरण के लिए, दस्तावेज़ के लिए यादृच्छिक अभिगम की अनुमति देता है, और अवसर संचालित कलन विधि जैसे XML के लिए सरल API में एक छोटी मेमोरी फ़ुटप्रिंट होता है जो सामान्यतः बहुत तेज होता है।
इन दो पहुँच रूपकों को ध्रुवीय विपरीत माना जा सकता है। एक वृक्ष संरचना आधारित API असीमित, रैंडम एक्सेस और हेरफेर की अनुमति देता है, जबकि एक अवसर आधारित API स्रोत दस्तावेज़ के माध्यम से 'एक शॉट' पास होता है।
StAX को इन दो विपरीतताओं के बीच एक माध्यिका के रूप में डिज़ाइन किया गया था। StAX रूपक में, प्रोग्रामेटिक प्रवेश बिंदु सूचक होता है जो दस्तावेज़ के भीतर एक बिंदु का प्रतिनिधित्व करता है। एप्लिकेशन सूचक को आगे बढ़ाता है, पार्सर से जानकारी को प्राप्त करता है। यह एक अवसर आधारित API से अलग होता है, जैसे कि SAX दस्तावेज़ के भीतर आवश्यक अवसरों के बीच स्थिति को बनाए रखने के लिए एप्लिकेशन की आवश्यकता होती है।
उत्पत्ति
StAX का आधार XML का असंगत API होता है, विशेष रूप से XMLPULL, जिसके लेखकों (स्टीफन हौस्टीन और अलेक्जेंडर स्लोमिन्स्की) ने अन्य लोगों के अतिरिक्त, BEA सिस्टम्स, ओरेकल, सन और जेम्स क्लार्क के साथ सहयोग किया है।
उदाहरण
JSR-173 विशिष्टता से • अंतिम, V1.0 (उचित उपयोग के अनुसार प्रयुक्त)।
उद्धरण:
- निम्नलिखित जावा API सूचक दृष्टिकोण में XML पढ़ने के लिए मुख्य विधियों को दिखाता है।
public interface XMLStreamReader {
public int next() throws XMLStreamException;
public boolean hasNext() throws XMLStreamException;
public String getText();
public String getLocalName();
public String getNamespaceURI();
// ...other methods not shown
}
- API के लेखन पक्ष में एसी विधियाँ होती है जो "प्रारंभिक तत्व" और "अंतिम तत्व" प्रकारों के पढ़ने वाले पक्ष के अनुरूप होते है।
public interface XMLStreamWriter {
public void writeStartElement(String localName) throws XMLStreamException;
public void writeEndElement() throws XMLStreamException;
public void writeCharacters(String text) throws XMLStreamException;
// ...other methods not shown
}
- 5.3.1 XMLस्ट्रीमरीडर
- यह उदाहरण दिखाता है कि इनपुट कैसे किया जाए, रीडर कैसे बनाया जाए और XML दस्तावेज़ के तत्वों पर पुनरावृति कैसे की जाए।
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(...);
while (xmlStreamReader.hasNext()) {
xmlStreamReader.next();
}
यह भी देखें
जावा में XML को संसाधित करने के लिए प्रतिस्पर्धी और पूरक तरीके (आदेश परिचय की प्रारंभिक तिथि पर आधारित है):
- डॉक्यूमेंट ऑब्जेक्ट मॉडल | डॉक्यूमेंट ऑब्जेक्ट मॉडल (DOM), पहला मानकीकृत, भाषा/प्लेटफ़ॉर्म-स्वतंत्र वृक्ष-आधारित XML प्रोसेसिंग मॉडल; वैकल्पिक जावा वृक्ष मॉडल में JDOM, DOM4j और XOM (XML पार्सर) शामिल है
- एक्सएमएल के लिए सरल एपीआई | एक्सएमएल के लिए सरल एपीआई (एसएएक्स), मानक एक्सएमएल पुश एपीआई
- जेएक्सबी | जावा एक्सएमएल बाइंडिंग एपीआई (जेएक्सबी), एक अन्य पार्सर (आमतौर पर स्वृक्षमिंग पार्सर) के शीर्ष पर काम करता है, जावा ऑब्जेक्ट्स से/से निहित डेटा को बांधता है।
- स्वृक्षमिंग एक्सएमएल
- जावा के लिए XQuery एपीआई
बाहरी संबंध
- Introduction to StAX XML.com, Harold, Elliotte Rusty
- Java Streaming API for XML (Stax) - Tutorial
- XMLPull Patterns Article on XML Pull (and StAX) design patterns by Aleksander Slominski.
- StAX Parser - Cursor & Iterator APIs Article on Cursor & Iterator APIs by HowToDoInJava.