ContentHandler এবং ErrorHandler Interface এর ব্যবহার

SAX (Simple API for XML) প্রসেসিং - অ্যাপাচি জারসেস (Apache Xerces) - Java Technologies

263

অ্যাপাচি জারসেস (Apache Xerces) একটি XML প্রসেসিং লাইব্রেরি যা XML ডকুমেন্ট পার্স, ভ্যালিডেশন, এবং সিরিয়ালাইজেশন সম্পাদন করতে ব্যবহৃত হয়। ContentHandler এবং ErrorHandler ইন্টারফেস দুটি XML ডকুমেন্ট পার্স করার সময় কাস্টম হ্যান্ডলিং এবং ত্রুটি পরিচালনার জন্য ব্যবহৃত হয়।

  • ContentHandler ইন্টারফেস XML ডকুমেন্টের বিভিন্ন উপাদানগুলির জন্য ইভেন্ট হ্যান্ডলিং করতে ব্যবহৃত হয়, যেমন XML ট্যাগের শুরু, শেষ, এবং ট্যাগের মধ্যে থাকা কনটেন্ট।
  • ErrorHandler ইন্টারফেসটি XML পার্সিংয়ের সময় ত্রুটিগুলি (যেমন: পার্সিং ত্রুটি, ভ্যালিডেশন ত্রুটি ইত্যাদি) হ্যান্ডল করতে ব্যবহৃত হয়।

এখানে ContentHandler এবং ErrorHandler ইন্টারফেসের ব্যবহার নিয়ে বিস্তারিত আলোচনা করা হলো।


1. ContentHandler Interface এর ব্যবহার

ContentHandler ইন্টারফেসটি SAX (Simple API for XML) পার্সিং মডেলে ব্যবহৃত হয় এবং XML ডকুমেন্টের উপাদান (tags, attributes, data) হ্যান্ডল করতে ব্যবহৃত হয়। এটি XML ডকুমেন্টের start element, characters, এবং end element ইভেন্টগুলির জন্য মেথড সরবরাহ করে। এই ইন্টারফেসটি SAXParser এর সাহায্যে XML ডকুমেন্ট পার্স করার সময় ইভেন্ট হ্যান্ডলিং করতে ব্যবহৃত হয়।

ContentHandler ইন্টারফেসের মেথডসমূহ:

  1. startDocument(): ডকুমেন্টের শুরুতে কল হয়।
  2. endDocument(): ডকুমেন্টের শেষে কল হয়।
  3. startElement(): XML ট্যাগের শুরুতে কল হয়।
  4. endElement(): XML ট্যাগের শেষে কল হয়।
  5. characters(): XML ট্যাগের মধ্যে থাকা কনটেন্টকে প্রসেস করে।

ContentHandler উদাহরণ:

import org.xml.sax.*;
import org.xml.sax.helpers.*;

public class ContentHandlerExample {
    public static void main(String[] args) throws Exception {
        // SAXParserFactory এবং SAXParser তৈরি করা
        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser saxParser = factory.newSAXParser();
        
        // XML ফাইল পার্স করার জন্য হ্যান্ডলার তৈরি করা
        DefaultHandler handler = new DefaultHandler() {
            // XML ডকুমেন্টের শুরু
            public void startDocument() {
                System.out.println("Document starts.");
            }

            // XML ডকুমেন্টের শেষে
            public void endDocument() {
                System.out.println("Document ends.");
            }

            // XML এলিমেন্টের শুরু
            public void startElement(String uri, String localName, String qName, Attributes attributes) {
                System.out.println("Start Element: " + qName);
            }

            // XML এলিমেন্টের শেষে
            public void endElement(String uri, String localName, String qName) {
                System.out.println("End Element: " + qName);
            }

            // XML ট্যাগের মধ্যে কনটেন্ট
            public void characters(char[] ch, int start, int length) {
                System.out.println("Content: " + new String(ch, start, length));
            }
        };
        
        // XML ফাইল পার্স করা
        saxParser.parse("person.xml", handler);
    }
}

আউটপুট (SAX Content Handler):

Document starts.
Start Element: person
Start Element: name
Content: John Doe
End Element: name
Start Element: age
Content: 30
End Element: age
End Element: person
Document ends.

এখানে, ContentHandler ব্যবহার করে XML ডকুমেন্টের উপাদানগুলির শুরু, সমাপ্তি এবং কনটেন্ট সঠিকভাবে প্রক্রিয়া করা হয়েছে।


2. ErrorHandler Interface এর ব্যবহার

ErrorHandler ইন্টারফেসটি XML পার্সিং এবং ভ্যালিডেশন সময় ত্রুটিগুলির জন্য ব্যবহৃত হয়। এটি XML ডকুমেন্ট পার্স করার সময় যে কোনো warning, error, বা fatal error এর জন্য কাস্টম হ্যান্ডলিং প্রদান করে। এটি SAXParser বা Validator এর সাথে ব্যবহৃত হয়।

ErrorHandler ইন্টারফেসের মেথডসমূহ:

  1. warning(SAXParseException exception): কোন ওয়ানিং ত্রুটি থাকলে এটি কল হয়।
  2. error(SAXParseException exception): কোনো সাধারণ ত্রুটি থাকলে এটি কল হয়।
  3. fatalError(SAXParseException exception): যদি পার্সিংয়ে মারাত্মক ত্রুটি ঘটে, তবে এটি কল হয়।

ErrorHandler উদাহরণ:

import org.xml.sax.*;
import org.xml.sax.helpers.*;

public class ErrorHandlerExample {
    public static void main(String[] args) throws Exception {
        // SAXParserFactory এবং SAXParser তৈরি করা
        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser saxParser = factory.newSAXParser();
        
        // XML ফাইল পার্স করার জন্য ErrorHandler হ্যান্ডলার তৈরি করা
        DefaultHandler handler = new DefaultHandler() {
            // Warning ত্রুটি হ্যান্ডলিং
            public void warning(SAXParseException exception) {
                System.out.println("Warning: " + exception.getMessage());
            }

            // Error ত্রুটি হ্যান্ডলিং
            public void error(SAXParseException exception) {
                System.out.println("Error: " + exception.getMessage());
            }

            // Fatal Error ত্রুটি হ্যান্ডলিং
            public void fatalError(SAXParseException exception) {
                System.out.println("Fatal Error: " + exception.getMessage());
            }
        };

        // XML ফাইল পার্স করা
        saxParser.parse("invalid_person.xml", handler);
    }
}

আউটপুট (ErrorHandler):

Fatal Error: The element type "name" must be terminated by the matching end-tag "</name>".

এখানে, ErrorHandler ব্যবহার করে SAXParseException এর মাধ্যমে XML ডকুমেন্টের ত্রুটি সনাক্ত এবং হ্যান্ডল করা হয়েছে।


সারাংশ

  • ContentHandler ইন্টারফেস SAXParser এর অংশ যা XML ডকুমেন্টের বিভিন্ন উপাদানের জন্য ইভেন্ট হ্যান্ডলিং করে, যেমন XML ট্যাগের শুরু, শেষে, এবং কনটেন্ট।
  • ErrorHandler ইন্টারফেস XML পার্সিং বা ভ্যালিডেশন সময় যে কোনো ত্রুটি (warning, error, fatal error) হ্যান্ডল করার জন্য ব্যবহৃত হয়।
  • এই ইন্টারফেসগুলো SAXParser এর মাধ্যমে XML ডেটাকে কার্যকরভাবে প্রসেস এবং ত্রুটি পরিচালনা করতে সহায়তা করে।

Xerces ব্যবহার করার মাধ্যমে আপনি ContentHandler এবং ErrorHandler ইন্টারফেসগুলির মাধ্যমে XML ডেটার প্রসেসিং এবং ত্রুটি হ্যান্ডলিং খুবই সোজা এবং কার্যকরীভাবে করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...