Apache Xerces একটি শক্তিশালী XML Parser যা XInclude এবং XPointer এর মতো আধুনিক XML প্রসেসিং বৈশিষ্ট্যগুলিকে সমর্থন করে। XInclude XML ডকুমেন্টে একাধিক সেগমেন্টের অন্তর্ভুক্তির জন্য ব্যবহৃত হয়, যখন XPointer XML ডকুমেন্টের মধ্যে নির্দিষ্ট অংশ বা সেগমেন্টের জন্য নির্দেশিকা প্রদান করে।
এখানে XInclude এবং XPointer কনফিগারেশন ব্যবহার করে Apache Xerces এ তাদের কার্যকরী প্রয়োগ দেখানো হবে।
XInclude কনফিগারেশন
XInclude হল একটি XML প্রক্রিয়া যা একাধিক XML ডকুমেন্টের অংশকে একত্রে সংযুক্ত করতে ব্যবহৃত হয়। এটি XML ডকুমেন্টের একটি অংশকে অন্য একটি XML ডকুমেন্টের মধ্যে অন্তর্ভুক্ত করার জন্য একটি শুদ্ধ XML সিঙ্কট্যাক্স ব্যবহার করে। XInclude সাধারণত এক্সটার্নাল XML ডকুমেন্টকে প্রধান XML ডকুমেন্টে অন্তর্ভুক্ত করতে ব্যবহৃত হয়।
Apache Xerces এ XInclude সক্রিয় করা
XInclude ফিচারটি সক্রিয় করতে, আপনাকে Xerces পার্সার কনফিগার করতে হবে। XInclude সঠিকভাবে কাজ করতে Xerces এর XInclude সাপোর্ট সক্ষম করতে হবে।
উদাহরণ: XInclude কনফিগারেশন
Maven Dependency: প্রথমে আপনাকে Xerces লাইব্রেরি আপনার প্রজেক্টে যুক্ত করতে হবে (যদি এটি আগে না থাকে):
<dependency> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> <version>2.12.1</version> <!-- Use the latest version --> </dependency>XML ডকুমেন্ট (Main Document with XInclude): এখানে একটি প্রধান XML ডকুমেন্ট XInclude ফিচার ব্যবহার করে অন্যান্য XML ডকুমেন্টের অংশ অন্তর্ভুক্ত করবে:
<bookstore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xinclude="http://www.w3.org/2001/XInclude"> <book> <title>XML for Beginners</title> <author>John Doe</author> <price>29.99</price> </book> <!-- XInclude directive to include another XML file --> <xinclude:include href="additional-info.xml" xinclude:parse="xml"/> </bookstore>এই ডকুমেন্টে
<xinclude:include>ট্যাগটি additional-info.xml নামক একটি XML ফাইল অন্তর্ভুক্ত করছে।XML পার্সিং কোড (Using XInclude in Xerces):
এবার, Apache Xerces ব্যবহার করে এই XInclude ফিচারটি সক্রিয় করতে হবে এবং পার্সিং করতে হবে।
import org.apache.xerces.parsers.DOMParser; import org.w3c.dom.Document; import org.xml.sax.InputSource; import javax.xml.parsers.DocumentBuilderFactory; import java.io.File; public class XIncludeExample { public static void main(String[] args) { try { // Create a new DOM parser DOMParser parser = new DOMParser(); // Enable XInclude support parser.setFeature("http://apache.org/xml/features/xinclude", true); // Parse the main XML document parser.parse(new InputSource(new File("bookstore.xml").toURI().toString())); // Get the parsed document Document document = parser.getDocument(); // Output the result System.out.println("Root element: " + document.getDocumentElement().getNodeName()); } catch (Exception e) { e.printStackTrace(); } } }
Output:
Root element: bookstore
এই কোডটি XInclude ফিচার সক্রিয় করে এবং মূল XML ডকুমেন্টের মধ্যে অন্তর্ভুক্ত XML ডেটা প্রসেস করে। setFeature("http://apache.org/xml/features/xinclude", true) এর মাধ্যমে XInclude সমর্থন সক্ষম করা হয়।
XPointer কনফিগারেশন
XPointer একটি ভাষা যা XML ডকুমেন্টের নির্দিষ্ট অংশ বা উপাদান খুঁজে বের করতে ব্যবহৃত হয়। এটি XML Fragment Identifier এর মতো কাজ করে এবং ডকুমেন্টের কোনো নির্দিষ্ট এলিমেন্ট বা অংশের জন্য নির্দেশনা প্রদান করে।
Apache Xerces এ XPointer সক্রিয় করা
XPointer এর জন্য Apache Xerces এ কোনো নির্দিষ্ট কনফিগারেশন প্রয়োজন নেই, তবে এটি XML ডকুমেন্টে XPointer নির্দেশ ব্যবহার করার জন্য প্রাসঙ্গিকভাবে পার্স করতে সক্ষম।
উদাহরণ: XPointer কনফিগারেশন
XML ডকুমেন্ট (Using XPointer):
এখানে একটি উদাহরণ XML ডকুমেন্ট দেওয়া হলো যেখানে XPointer নির্দেশ ব্যবহার করা হয়েছে:
<bookstore xmlns:xpointer="http://www.w3.org/2001/XPointer"> <book id="b1"> <title>Learn XML</title> <author>John Smith</author> </book> <book id="b2"> <title>Advanced XML</title> <author>Jane Doe</author> </book> </bookstore>XPointer কোড (Parsing with XPointer): Apache Xerces সাধারণভাবে XPointer সমর্থন করে এবং আপনি XPath এর মতো XPointer ব্যবহার করতে পারেন। Xerces এ XPointer সরাসরি ব্যবহার করার জন্য XPath কনফিগারেশন থাকতে হবে।
Code to Parse XML with XPointer:
import org.apache.xerces.jaxp.DocumentBuilderFactoryImpl; import org.w3c.dom.*; import javax.xml.parsers.DocumentBuilder; import java.io.File; public class XPointerExample { public static void main(String[] args) { try { // Create a DocumentBuilderFactory DocumentBuilderFactoryImpl factory = new DocumentBuilderFactoryImpl(); factory.setNamespaceAware(true); // Parse the XML file DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(new File("bookstore.xml")); // Use XPointer to retrieve specific element by ID Node book = doc.getElementById("b1"); if (book != null) { System.out.println("Book ID: " + book.getAttributes().getNamedItem("id").getTextContent()); System.out.println("Title: " + book.getFirstChild().getTextContent()); } } catch (Exception e) { e.printStackTrace(); } } }
Output:
Book ID: b1
Title: Learn XML
এখানে, XPointer ডকুমেন্টের একটি নির্দিষ্ট উপাদান (যেমন id="b1") কে টার্গেট করে এবং এটি প্রাসঙ্গিক ট্যাগের মান (যেমন title) এক্সট্র্যাক্ট করে।
সারাংশ
XInclude এবং XPointer দুটি শক্তিশালী XML প্রযুক্তি যা Apache Xerces দ্বারা সমর্থিত। XInclude একাধিক XML ডকুমেন্টের অংশ একত্রে অন্তর্ভুক্ত করার জন্য ব্যবহৃত হয়, এবং XPointer XML ডকুমেন্টের নির্দিষ্ট অংশ খুঁজে বের করতে সহায়তা করে। Apache Xerces এ এই বৈশিষ্ট্যগুলো সক্রিয় করতে এবং সঠিকভাবে ব্যবহার করতে setFeature() এবং XPath পদ্ধতি ব্যবহার করা হয়। XInclude এর মাধ্যমে এক্সটার্নাল XML ডেটা অন্তর্ভুক্ত করা যায় এবং XPointer ব্যবহার করে নির্দিষ্ট অংশ এক্সট্র্যাক্ট করা যায়।
Read more