StAX
এক্স. এম. এল-এর জন্য স্ট্রিমিং এপিআই (স্ট্যাক্স) হল জাভা প্রোগ্রামিং ভাষা সম্প্রদায় থেকে উদ্ভূত এক্স. এম. এল নথি পড়তে এবং লিখতে একটি অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই)। ঐতিহ্যগতভাবে, এক্সএমএল এপিআইগুলি হয়ঃ ডিওএম ভিত্তিক-কলিং অ্যাপ্লিকেশন ইভেন্ট ভিত্তিক র্যান্ডম অ্যাক্সেসের জন্য পুরো নথিটি একটি ট্রি স্ট্রাকচার হিসাবে মেমরিতে পড়া হয়-অ্যাপ্লিকেশনটি ইভেন্টগুলি গ্রহণ করার জন্য নিবন্ধিত হয় কারণ উত্স নথির মধ্যে সত্তার মুখোমুখি হয়। উভয়েরই সুবিধা রয়েছেঃ উদাহরণস্বরূপ, ডিওএম নথিতে এলোমেলো প্রবেশাধিকারের অনুমতি দেয় এবং এসএএক্স-এর মতো ইভেন্ট চালিত অ্যালগরিদমের একটি ছোট মেমরি পদচিহ্ন রয়েছে এবং এটি সাধারণত অনেক দ্রুত হয়। এই দুটি প্রবেশ রূপককে মেরু বিপরীত হিসাবে ভাবা যেতে পারে। একটি ট্রি ভিত্তিক এপিআই সীমাহীন, এলোমেলো প্রবেশাধিকার এবং কারসাজির অনুমতি দেয়, যখন একটি ইভেন্ট ভিত্তিক এপিআই উৎস নথির মধ্য দিয়ে 'ওয়ান শট' পাস হয়। স্ট্যাক্স এই দুটি বিপরীতের মধ্যে একটি মধ্যমা হিসাবে ডিজাইন করা হয়েছিল। স্ট্যাক্স রূপকটিতে, প্রোগ্রাম্যাটিক এন্ট্রি পয়েন্ট হল একটি কার্সার যা নথির মধ্যে একটি বিন্দুর প্রতিনিধিত্ব করে। অ্যাপ্লিকেশনটি কার্সারটিকে এগিয়ে নিয়ে যায়-পার্সার থেকে প্রয়োজনীয় তথ্য 'টানতে'। এটি একটি ইভেন্ট ভিত্তিক এপিআই থেকে আলাদা-যেমন এসএএক্স-যা অ্যাপ্লিকেশনটিতে ডেটা 'ধাক্কা' দেয়-নথির মধ্যে অবস্থানের উপর নজর রাখার জন্য অ্যাপ্লিকেশনটিকে প্রয়োজনীয় ঘটনাগুলির মধ্যে অবস্থা বজায় রাখতে হয়। অরিজিন্স স্ট্যাক্সের শিকড় এক্সএমএল-এর জন্য বেশ কয়েকটি অসঙ্গতিপূর্ণ পুল এপিআই-এর মধ্যে রয়েছে, বিশেষত এক্সএমএলপিইউএলএল, যার লেখকরা (স্টেফান হাউস্টিন এবং আলেকজান্ডার স্লোমিনস্কি) অন্যদের মধ্যে বিইএ সিস্টেমস, ওরাকল, সান এবং জেমস ক্লার্কের সাথে সহযোগিতা করেছেন। JSR-173 নির্দিষ্টকরণ থেকে উদাহরণ চূড়ান্ত, V1.0 (ন্যায্য ব্যবহারের অধীনে ব্যবহৃত)। উদ্ধৃতিঃ নিম্নলিখিত জাভা এপিআই কার্সার পদ্ধতিতে এক্সএমএল পড়ার প্রধান পদ্ধতিগুলি দেখায়। পাবলিক ইন্টারফেস এক্স. এম. এল. স্ট্রিম রিডার {পাবলিক ইন্ট নেক্সট () থ্রো এক্স. এম. এল. স্ট্রিম এক্সসেপশন; পাবলিক বুলিয়ানের নেক্সট () থ্রো এক্স. এম. এল. স্ট্রিম এক্সসেপশন; পাবলিক স্ট্রিং গেটটেক্সট (); পাবলিক স্ট্রিং গেটলোকাল নেম (); পাবলিক স্ট্রিং গেটনেমেস্পেসইউআরআই ();// অন্যান্য পদ্ধতি দেখানো হয়নি। পাবলিক ইন্টারফেস এক্স. এম. এল. স্ট্রিম রাইটার {পাবলিক অকার্যকর রাইটস্টার্টইলিমেন্ট (স্ট্রিং লোকালনেম) থ্রো এক্স. এম. এল. স্ট্রিমইক্সেপশন; পাবলিক অকার্যকর রাইটইন্ডইলিমেন্ট () থ্রো এক্স. এম. এল. স্ট্রিমইক্সেপশন; পাবলিক অকার্যকর রাইটইরেক্টস (স্ট্রিং টেক্সট) থ্রো এক্স. এম. এল. স্ট্রিমইক্সেপশন;// অন্যান্য পদ্ধতি দেখানো হয়নি। এক্স. এম. এল. ইনপুটফ্যাক্টরি এক্স. এম. এল. ইনপুটফ্যাক্টরি = <আই. ডি. 2> (); এক্স. এম. এল. স্ট্রিমরিডার এক্স. এম. এল. স্ট্রিমরিডার = <আই. ডি. 1> (.); যখন (<আই. ডি. 3> ()) {<আই. ডি. 4> ();} জাভাতে এক্স. এম. এল প্রক্রিয়া করার প্রতিযোগিতামূলক এবং পরিপূরক উপায়গুলিও দেখুন (ক্রমটি শিথিলভাবে পরিচয়ের প্রাথমিক তারিখের উপর ভিত্তি করে): ডকুমেন্ট অবজেক্ট মডেল (ডি. ও. এম), প্রথম প্রমিত, ভাষা/প্ল্যাটফর্ম-স্বাধীন ট্রি-ভিত্তিক এক্স. এম. এল প্রক্রিয়াকরণ মডেল; বিকল্প জাভা ট্রি মডেলগুলির মধ্যে এক্স. এম. এল-এর জন্য জে. ডি. ও. এম, ডম4জে এবং এক্স. ও. এম সিম্পল এপিআই (এস. এ. এক্স), জাভার জন্য স্ট্রিমিং এক্সএমএল এক্সকুয়েরি এপিআই এক্সটার্নাল লিঙ্ক স্ট্যাক্স XML.com, হ্যারল্ড, এলিয়ট রাস্টি জাভা স্ট্রিমিং এপিআই এক্সএমএল (স্ট্যাক্স)-টিউটোরিয়াল এক্সএমএলপুল প্যাটার্নস আর্টিকেল অন এক্সএমএল পুল (এবং স্ট্যাক্স) ডিজাইন প্যাটার্ন আলেকজান্ডার স্লোমিনস্কির। স্ট্যাক্স পার্সার-কার্সার এবং ইটারেটর এপিআই নিবন্ধ হাউটুডুইন জাভা দ্বারা কার্সার এবং ইটারেটর এপিআই সম্পর্কে। জাভা প্ল্যাটফর্ম অ্যাপ্লিকেশন প্রোগ্রামিং এক্স. এম. এল পার্সারের ইন্টারফেস জাভা কোডের উদাহরণ সহ নিবন্ধ