Java তে XML Validation সাধারণত JAXP (Java API for XML Processing) ব্যবহার করে করা হয়। XML ভ্যালিডেশন এর মাধ্যমে নিশ্চিত করা হয় যে XML ডকুমেন্টটি একটি নির্দিষ্ট XML স্কিমা (XSD) বা ডিটিএফ (DTD) অনুযায়ী সঠিকভাবে গঠিত। এটি XML ডেটার ধরন, গঠন এবং প্রয়োজনীয় উপাদানগুলির সঠিকতা যাচাই করতে সহায়ক।
XML Validation এর উদাহরণ:
ধরা যাক, আমাদের একটি XML ডকুমেন্ট আছে যা আমরা একটি XSD (XML Schema Definition) অনুযায়ী ভ্যালিডেট করতে চাই।
1. XML ডকুমেন্ট (sample.xml):
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book>
<title>Learn Java</title>
<author>John Doe</author>
<price>29.99</price>
</book>
<book>
<title>Advanced Java</title>
<author>Jane Smith</author>
<price>49.99</price>
</book>
</bookstore>
2. XML স্কিমা (XSD) ডকুমেন্ট (bookstore.xsd):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="bookstore">
<xs:complexType>
<xs:sequence>
<xs:element name="book" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="author" type="xs:string"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
এখন আমরা এই XML ডকুমেন্টটিকে bookstore.xsd স্কিমা অনুযায়ী Java দিয়ে ভ্যালিডেট করব।
3. Java কোড (XML Validation)
import javax.xml.parsers.*;
import javax.xml.validation.*;
import org.xml.sax.*;
import java.io.*;
public class XMLValidationExample {
public static void main(String[] args) {
try {
// XML এবং XSD ফাইলের পাথ
File xmlFile = new File("sample.xml");
File xsdFile = new File("bookstore.xsd");
// XSD ফাইল থেকে SchemaFactory তৈরি
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(xsdFile);
// XML পার্সিং এবং ভ্যালিডেশন সেট আপ করা
Validator validator = schema.newValidator();
validator.setErrorHandler(new ErrorHandler() {
public void warning(SAXParseException e) throws SAXException {
System.out.println("Warning: " + e.getMessage());
}
public void error(SAXParseException e) throws SAXException {
System.out.println("Error: " + e.getMessage());
}
public void fatalError(SAXParseException e) throws SAXException {
System.out.println("Fatal Error: " + e.getMessage());
}
});
// XML ফাইল ভ্যালিডেশন করা
validator.validate(new StreamSource(xmlFile));
System.out.println("XML is valid against the schema.");
} catch (SAXException | IOException e) {
System.out.println("XML is not valid: " + e.getMessage());
}
}
}
4. কোডের ব্যাখ্যা:
- SchemaFactory: এটি XSD স্কিমা থেকে
Schemaঅবজেক্ট তৈরি করতে ব্যবহৃত হয়। - Validator: এটি XML ডকুমেন্টের ভ্যালিডেশন করতে ব্যবহৃত হয়।
- ErrorHandler: এখানে আমরা ভ্যালিডেশন চলাকালীন যে কোন সতর্কতা বা ত্রুটি সনাক্ত করার জন্য একটি কাস্টম
ErrorHandlerতৈরি করেছি। - validate(): এই মেথডটি XML ডকুমেন্টটিকে XSD স্কিমা অনুযায়ী ভ্যালিডেট করে।
5. আউটপুট:
যদি XML ডকুমেন্টটি XSD স্কিমার সাথে মিলে, তবে আউটপুট হবে:
XML is valid against the schema.- যদি XML ডকুমেন্টে কোনো ভুল থাকে, তবে সংশ্লিষ্ট ত্রুটি বা সতর্কতা দেখানো হবে।
উদাহরণস্বরূপ, যদি XML ডকুমেন্টে <price> ট্যাগে কোনো অযৌক্তিক মান থাকে, তবে উপরের Java কোডটি সেই ত্রুটিকে সনাক্ত করবে এবং সংশ্লিষ্ট ত্রুটি দেখাবে।
এটি হল Java তে XML ভ্যালিডেশন করার একটি মৌলিক উদাহরণ।
Read more