स्टैक्स
स्टैक्स एक्सएमएल दस्तावेज़ों को पढ़ने और लिखने के लिए एक एप्लिकेशन प्रोग्रामिंग अंतरफलक (एपीआई) होता है, जो जावा प्रोग्रामिंग भाषा समुदाय से उत्पन्न हुआ है।
परंपरागत रूप से, एक्सएमएल एपीआई है:
- डीओएम आधारित - कॉलिंग उपकरण द्वारा प्रवेश के लिए संपूर्ण दस्तावेज़ को एक्सएमएल के रूप में मेमोरी में पढ़ा जाता है।
- अवसर आधारित - स्रोत दस्तावेज़ के भीतर संस्थाओं का सामना करने के लिए उपकरण अवसरों को प्राप्त करने के लिए पंजीकृत करता है।
दोनों के फायदे है: दस्तावेज़ वस्तु नमूना, उदाहरण के लिए, दस्तावेज़ के लिए यादृच्छिक अभिगम की अनुमति देता है, और अवसर संचालित कलन विधि जैसे एक्सएमएल के लिए सरल एपीआई में एक छोटी मेमोरी फ़ुटप्रिंट होता है जो सामान्यतः बहुत तेज होता है।
इन दो पहुँच रूपकों को ध्रुवीय विपरीत माना जा सकता है। एक ट्री संरचना आधारित एपीआई असीमित, प्रवेश और हेरफेर की अनुमति देता है, जबकि एक अवसर आधारित एपीआई स्रोत दस्तावेज़ के माध्यम से 'एक शॉट' पास होता है।
स्टैक्स को इन दो विपरीतताओं के बीच एक माध्यिका के रूप में डिज़ाइन किया गया था। स्टैक्स रूपक में, प्रोग्रामेटिक प्रवेश बिंदु सूचक होता है जो दस्तावेज़ के भीतर एक बिंदु का प्रतिनिधित्व करता है। उपकरण सूचक को आगे बढ़ाता है, पार्सर से जानकारी को प्राप्त करता है। यह एक अवसर आधारित एपीआई से अलग होता है, जैसे कि एसएएक्स दस्तावेज़ के भीतर आवश्यक अवसरों के बीच स्थिति को बनाए रखने के लिए उपकरण की आवश्यकता होती है।
उत्पत्ति
स्टैक्स का आधार एक्सएमएल का असंगत एपीआई होता है, विशेष रूप से एक्सएमएलपुल, जिसके लेखकों (स्टीफन हौस्टीन और अलेक्जेंडर स्लोमिन्स्की) ने अन्य लोगों के अतिरिक्त, बीईए सिस्टम्स, ओरेकल, सन और जेम्स क्लार्क के साथ सहयोग किया है।
उदाहरण
जेएसआर-173 विशिष्टता से • अंतिम, वी1.0 (उचित उपयोग के अनुसार प्रयुक्त)।
उद्धरण:
- निम्नलिखित जावा एपीआई सूचक दृष्टिकोण में एक्सएमएल पढ़ने के लिए मुख्य विधियों को दिखाता है।
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
}
- एपीआई के लेखन पक्ष में एसी विधियाँ होती है जो "प्रारंभिक तत्व" और "अंतिम तत्व" प्रकारों के पढ़ने वाले पक्ष के अनुरूप होती है।
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 एक्सएमएलस्ट्रीमरीडर
- यह उदाहरण दिखाता है कि इनपुट कैसे किया जाए, रीडर कैसे बनाया जाए और एक्सएमएल दस्तावेज़ के तत्वों पर पुनरावृति कैसे की जाए।
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(...);
while (xmlStreamReader.hasNext()) {
xmlStreamReader.next();
}
यह भी देखें
जावा में एक्सएमएल को संसाधित करने के लिए प्रतिस्पर्धी और पूरक तरीके (आदेश परिचय की प्रारंभिक तिथि पर आधारित है):
- डॉक्यूमेंट ऑब्जेक्ट मॉडल | डॉक्यूमेंट ऑब्जेक्ट मॉडल (डीओएम), पहला मानकीकृत, भाषा/प्लेटफ़ॉर्म-स्वतंत्र वृक्ष-आधारित एक्सएमएल प्रोसेसिंग मॉडल; वैकल्पिक जावा वृक्ष मॉडल में Jडीओएम, डीओएम4j और XOM (एक्सएमएल पार्सर) शामिल है
- एक्सएमएल के लिए सरल एपीआई | एक्सएमएल के लिए सरल एपीआई (एसएएक्स), मानक एक्सएमएल पुश एपीआई
- जेएक्सबी | जावा एक्सएमएल बाइंडिंग एपीआई (जेएक्सबी), एक अन्य पार्सर (आमतौर पर अभिस्रवण पार्सर) के शीर्ष पर काम करता है, जावा ऑब्जेक्ट्स से/से निहित डेटा को बांधता है।
- अभिस्रवण एक्सएमएल
- जावा के लिए XQuery एपीआई
बाहरी संबंध
- Introduction to स्टैक्स एक्सएमएल.com, Harold, Elliotte Rusty
- Java Streaming एपीआई for एक्सएमएल (स्टैक्स) - Tutorial
- एक्सएमएलPull Patterns Article on एक्सएमएल Pull (and स्टैक्स) design patterns by Aleksander Slominski.
- स्टैक्स Parser - Cursor & Iterator एपीआईs Article on Cursor & Iterator एपीआईs by HowToDoInJava.