অ্যাপাচি জারসেস (Apache Xerces) একটি শক্তিশালী XML প্রসেসিং লাইব্রেরি যা XML ডকুমেন্ট পার্স, ভ্যালিডেশন এবং সিরিয়ালাইজেশন সমর্থন করে। DTD (Document Type Definition) এবং XML Schema ভ্যালিডেশন Xerces এ গুরুত্বপূর্ণ ফিচার। DTD এবং XML Schema উভয়ই XML ডকুমেন্টের সঠিকতা নিশ্চিত করার জন্য ব্যবহৃত হয়, তবে XML Schema আধুনিক এবং বেশি শক্তিশালী। Xerces ব্যবহার করে আপনি সহজেই XML ডকুমেন্টের জন্য DTD এবং Schema ভ্যালিডেশন সম্পাদন করতে পারেন।
এখানে Xerces দিয়ে DTD এবং XML Schema Validation কিভাবে করা যায়, তা বিস্তারিতভাবে ব্যাখ্যা করা হলো।
1. Xerces দিয়ে DTD Validation
DTD (Document Type Definition) একটি ডকুমেন্টের জন্য একটি স্ট্রাকচার বা কাঠামো নির্ধারণ করে, যা XML ডকুমেন্টের এলিমেন্ট এবং অ্যাট্রিবিউটের নিয়ম নির্ধারণ করে। Xerces এ DTD ভ্যালিডেশন সম্পাদন করার জন্য XML ডকুমেন্টে DTD রেফারেন্স যুক্ত করতে হয় এবং সেই ডকুমেন্টকে DTD ফাইলের বিরুদ্ধে ভ্যালিডেট করা হয়।
DTD Validation উদাহরণ:
ধরা যাক, আমাদের একটি XML ডকুমেন্ট এবং একটি DTD ফাইল রয়েছে।
person.dtd (DTD ফাইল):
<!ELEMENT person (name, age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
person.xml (XML ফাইল):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE person SYSTEM "person.dtd">
<person>
<name>John Doe</name>
<age>30</age>
</person>
এই XML ডকুমেন্টটি person.dtd এর সাথে ভ্যালিডেশন করার জন্য Xerces ব্যবহার করা হবে।
DTD Validation কোড উদাহরণ:
import org.apache.xerces.parsers.DOMParser;
import org.xml.sax.SAXException;
import java.io.IOException;
public class DTDValidationExample {
public static void main(String[] args) {
// DOMParser তৈরি করা
DOMParser parser = new DOMParser();
try {
// XML ডকুমেন্ট পার্স করা
parser.parse("person.xml");
// যদি কোন ত্রুটি না থাকে, সফল ভ্যালিডেশন
System.out.println("XML is valid against the DTD.");
} catch (SAXException | IOException e) {
// ত্রুটি ঘটলে ত্রুটি বার্তা
System.out.println("XML is not valid: " + e.getMessage());
}
}
}
আউটপুট:
XML is valid against the DTD.
এখানে, Xerces ব্যবহার করে DTD ভ্যালিডেশন করা হয়েছে এবং যদি XML ডকুমেন্ট DTD এর সাথে মেলে, তবে এটি সফলভাবে ভ্যালিডেট করা হবে।
2. Xerces দিয়ে XML Schema Validation
XML Schema (XSD) XML ডকুমেন্টের জন্য আরও শক্তিশালী এবং নির্ভরযোগ্য স্ট্রাকচার নির্ধারণ করে, যেখানে ডেটার টাইপ, এলিমেন্টের আদর্শ, অ্যাট্রিবিউট প্রভৃতি সংজ্ঞায়িত থাকে। Xerces XML Schema ভ্যালিডেশন সমর্থন করে এবং এটি XML Schema (XSD) ফাইলের বিরুদ্ধে XML ডকুমেন্ট ভ্যালিডেট করতে ব্যবহৃত হয়।
XML Schema Validation উদাহরণ:
ধরা যাক, আমাদের একটি XML Schema ফাইল এবং একটি XML ডকুমেন্ট রয়েছে।
person.xsd (XML Schema ফাইল):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="age" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
person.xml (XML ডকুমেন্ট):
<?xml version="1.0" encoding="UTF-8"?>
<person>
<name>John Doe</name>
<age>30</age>
</person>
এই XML ডকুমেন্টটি person.xsd এর সাথে ভ্যালিডেশন করার জন্য Xerces ব্যবহার করা হবে।
XML Schema Validation কোড উদাহরণ:
import org.apache.xerces.jaxp.validation.XMLSchemaFactory;
import org.apache.xerces.parsers.XMLParser;
import org.xml.sax.SAXException;
import java.io.IOException;
import javax.xml.validation.*;
public class SchemaValidationExample {
public static void main(String[] args) {
try {
// XML Schema ফাইল এবং XML ডকুমেন্ট লোড করা
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
Schema schema = factory.newSchema(new File("person.xsd"));
Validator validator = schema.newValidator();
// XML ডকুমেন্টের সাথে ভ্যালিডেশন
validator.validate(new StreamSource(new File("person.xml")));
System.out.println("XML is valid against the Schema.");
} catch (SAXException | IOException e) {
// ত্রুটি ঘটলে ত্রুটি বার্তা
System.out.println("XML is not valid: " + e.getMessage());
}
}
}
আউটপুট:
XML is valid against the Schema.
এখানে, Xerces ব্যবহার করে XML Schema (XSD) ভ্যালিডেশন করা হয়েছে এবং যদি XML ডকুমেন্ট XSD ফাইলের সাথে মেলে, তবে এটি সফলভাবে ভ্যালিডেট করা হবে।
সারাংশ
- DTD (Document Type Definition) এবং XML Schema (XSD) দুটি XML ডকুমেন্টের জন্য স্ট্রাকচার নির্ধারণ করে এবং এটি XML ডেটার সঠিকতা নিশ্চিত করতে ব্যবহৃত হয়। Xerces এই দুটি ভ্যালিডেশন সমর্থন করে।
- DTD Validation সিম্পল XML স্ট্রাকচার যাচাই করতে ব্যবহৃত হয়, তবে XML Schema Validation অনেক বেশি শক্তিশালী এবং ডেটার টাইপ, এলিমেন্টের আদর্শ ইত্যাদি যাচাই করে।
- Xerces ব্যবহারে আপনি XML ডকুমেন্ট এবং Schema বা DTD ফাইলের বিরুদ্ধে XML ডেটার ভ্যালিডেশন খুব সহজেই করতে পারেন।
Read more