Apache Xerces একটি শক্তিশালী XML লাইব্রেরি যা XML ডেটার পার্সিং, যাচাই (validation), এবং স্কিমা হ্যান্ডলিংয়ের জন্য ব্যবহৃত হয়। XML ডেটা যথাযথ কাঠামো এবং নিয়ম অনুসরণ করছে কিনা তা নিশ্চিত করার জন্য XML Validation এবং Schema Handling গুরুত্বপূর্ণ ভূমিকা পালন করে। Xerces XML স্কিমা (যেমন, XML Schema, DTD (Document Type Definition)) এবং অন্যান্য যাচাই স্ট্যান্ডার্ড সমর্থন করে, যা XML ডেটাকে একটি নির্দিষ্ট কাঠামোর সাথে মেলে কিনা তা নিশ্চিত করে।
এখানে Apache Xerces ব্যবহার করে XML Validation এবং Schema Handling এর একটি বিস্তারিত ব্যাখ্যা এবং উদাহরণ দেয়া হয়েছে।
XML ডেটা বৈধ কিনা তা যাচাই করার জন্য XML Validation ব্যবহার করা হয়। Apache Xerces XML Schema (XSD), DTD, এবং RelaxNG স্কিমা যাচাই সমর্থন করে। এর মাধ্যমে XML ডেটা নিশ্চিত করা যায় যে এটি একটি নির্দিষ্ট কাঠামো অনুসরণ করছে এবং প্রয়োজনীয় বিধি ও নিয়ম মেনে চলছে।
XSD একটি স্ট্যান্ডার্ড যা XML ডেটার কাঠামো, ডেটা টাইপ, এবং অন্যান্য বৈশিষ্ট্য সংজ্ঞায়িত করে। Xerces ব্যবহার করে আপনি XML ডেটাকে XSD স্কিমার সাথে যাচাই করতে পারেন।
DTD একটি পুরানো XML স্কিমা স্ট্যান্ডার্ড, যা XML ডেটার কাঠামো ও এলিমেন্টস সংজ্ঞায়িত করে।
Apache Xerces ব্যবহার করে XML ডেটার যাচাই করা খুবই সহজ। এখানে একটি উদাহরণ দেওয়া হলো যেখানে XML Schema (XSD) ব্যবহার করে XML ডেটার বৈধতা যাচাই করা হচ্ছে।
XML (person.xml):
<person>
<name>John Doe</name>
<age>30</age>
</person>
XML Schema (person.xsd):
<?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 ফাইলটি একটি সাধারণ person
ট্যাগ ধারণ করছে যেখানে name
এবং age
ফিল্ড রয়েছে। এই XML ফাইলটি person.xsd স্কিমা দিয়ে যাচাই করা হবে।
XML ডেটাকে XSD স্কিমার সাথে যাচাই করার জন্য Apache Xerces ব্যবহার করা যেতে পারে।
import org.apache.xerces.jaxp.validation.XMLSchemaFactory;
import javax.xml.validation.Schema;
import javax.xml.validation.Validator;
import javax.xml.transform.stream.StreamSource;
import java.io.File;
public class XMLValidationExample {
public static void main(String[] args) {
try {
// XSD ফাইল এবং XML ফাইলের পাথ
File schemaFile = new File("person.xsd");
File xmlFile = new File("person.xml");
// XMLSchemaFactory তৈরি করা
XMLSchemaFactory factory = new XMLSchemaFactory();
// Schema তৈরি করা
Schema schema = factory.newSchema(new StreamSource(schemaFile));
// Validator তৈরি করা
Validator validator = schema.newValidator();
// XML ফাইল ভ্যালিডেশন
try {
validator.validate(new StreamSource(xmlFile));
System.out.println("XML is valid against the schema.");
} catch (Exception e) {
System.out.println("XML is NOT valid: " + e.getMessage());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে validate
মেথডটি XML ফাইলটি স্কিমা ফাইলের সাথে যাচাই করে, এবং যদি ফাইলটি স্কিমার সাথে সঠিকভাবে মেলে, তবে এটি সফল হবে। যদি না মেলে, তবে ত্রুটি বার্তা প্রিন্ট হবে।
যদি XML ফাইলটি সঠিকভাবে স্কিমার সাথে মেলে, তাহলে আউটপুট হবে:
XML is valid against the schema.
যদি XML ফাইলটি স্কিমার সাথে সঠিক না মেলে, তবে আউটপুট হবে:
XML is NOT valid: cvc-complex-type.2.4.a: Invalid content was found starting with element 'age'.
আপনি DTD (Document Type Definition) ব্যবহার করেও XML ডেটাকে যাচাই করতে পারেন। DTD একটি পুরনো স্কিমা স্ট্যান্ডার্ড, তবে এখনো এটি কিছু XML ডকুমেন্টে ব্যবহৃত হয়।
XML (person_with_dtd.xml):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE person SYSTEM "person.dtd">
<person>
<name>John Doe</name>
<age>30</age>
</person>
DTD (person.dtd):
<!ELEMENT person (name, age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
এখানে, person_with_dtd.xml ফাইলটি একটি DTD ফাইল ব্যবহার করে যাচাই করা হবে।
import org.apache.xerces.parsers.DOMParser;
import org.xml.sax.InputSource;
import java.io.File;
public class DTDValidationExample {
public static void main(String[] args) {
try {
// Create a parser
DOMParser parser = new DOMParser();
// Enable validation
parser.setFeature("http://apache.org/xml/features/validation/schema", true);
// Parse the XML file with DTD validation
parser.parse(new InputSource(new File("person_with_dtd.xml").toURI().toString()));
System.out.println("XML is valid against DTD.");
} catch (Exception e) {
System.out.println("XML is NOT valid: " + e.getMessage());
}
}
}
যদি XML ফাইলটি DTD এর সাথে সঠিকভাবে মিলে, আউটপুট হবে:
XML is valid against DTD.
যদি XML ফাইলটি DTD এর সাথে সঠিক না মেলে, ত্রুটি বার্তা প্রদান করবে:
XML is NOT valid: cvc-complex-type.2.4.a: Invalid content was found starting with element 'age'.
Apache Xerces XML ডেটার validation এবং schema handling-এর জন্য একটি শক্তিশালী লাইব্রেরি। এটি XML Schema (XSD) এবং DTD এর সাথে XML ডেটার যাচাই করতে সাহায্য করে। Xerces ব্যবহার করে আপনি সহজেই XML ফাইলকে একটি নির্দিষ্ট কাঠামোর সাথে যাচাই করতে পারেন এবং ত্রুটি সনাক্ত করতে পারেন। এটি Java এবং C++ উভয় প্ল্যাটফর্মে ব্যবহার করা যেতে পারে এবং এটি XML ডেটা শেয়ার, পার্স, এবং ভ্যালিডেশন নিশ্চিত করতে একটি কার্যকরী টুল।
XML Validation হলো একটি প্রক্রিয়া যেখানে একটি XML ডকুমেন্টের গঠন (structure) এবং বিষয়বস্তু (content) পরীক্ষা করা হয়, যাতে নিশ্চিত করা যায় যে এটি নির্দিষ্ট XML স্কিমা বা DTD (Document Type Definition) এর সাথে সঙ্গতিপূর্ণ। অ্যাপাচি জারসেস (Apache Xerces) লাইব্রেরি এই XML Validation প্রক্রিয়া সমর্থন করে, যা XML ডেটার সঠিকতা যাচাই করতে ব্যবহৃত হয়। অ্যাপাচি জারসেস XML ডকুমেন্টের জন্য DTD (Document Type Definition) এবং XML Schema (XSD) এর মাধ্যমে ভ্যালিডেশন নিশ্চিত করতে সহায়তা করে।
XML Validation হলো একটি প্রক্রিয়া যা XML ডকুমেন্টের উপাদানগুলো যাচাই করে, নিশ্চিত করে যে ডকুমেন্টটি নির্দিষ্ট নিয়মাবলী, কাঠামো এবং ডেটা ফরম্যাটের সাথে সঙ্গতিপূর্ণ। এটি দুটি প্রধান উপায়ে করা যায়:
XML Validation XML ডেটার বিশ্বস্ততা, অখণ্ডতা এবং সঠিকতা নিশ্চিত করার জন্য অপরিহার্য।
XML Validation নিশ্চিত করে যে XML ডকুমেন্টের সমস্ত উপাদান এবং তাদের সম্পর্ক সঠিকভাবে সংজ্ঞায়িত হয়েছে। এটি ডেটার বৈধতা যাচাই করে এবং কোনো অযাচিত বা অবৈধ উপাদান XML ডকুমেন্টে অন্তর্ভুক্ত হতে দেয় না। যদি কোনো ত্রুটি থাকে, তা নির্দিষ্ট বার্তা সহ প্রদর্শিত হয়, যা উন্নয়ন এবং ডিবাগিং প্রক্রিয়া সহজ করে।
XML Validation ডেটার ইন্টিগ্রিটি বজায় রাখে, যাতে সঠিক তথ্য একে অপরের সাথে সঙ্গতিপূর্ণভাবে থাকে। যদি XML ডকুমেন্টের কাঠামো সঠিক না হয়, তাহলে তা ডেটা ইন্টিগ্রিটির জন্য বিপজ্জনক হতে পারে। XML Validation তা স্বয়ংক্রিয়ভাবে শনাক্ত করে এবং নির্দিষ্ট দৃষ্টিকোণ থেকে তা ঠিক করে দেয়।
XML Validation ডেভেলপারদের জন্য ডেটা ফরম্যাট এবং কাঠামো যাচাই করার একটি সরল উপায় সরবরাহ করে। এটি XML ডকুমেন্টের ভুল এবং অযাচিত উপাদানগুলো দ্রুত চিহ্নিত করতে সাহায্য করে, যা সময় সাশ্রয়ী এবং কোডের উন্নয়ন প্রক্রিয়াকে দ্রুততর করে তোলে।
XML Validation বিশেষভাবে গুরুত্বপূর্ণ যখন বিভিন্ন সিস্টেম বা অ্যাপ্লিকেশনগুলির মধ্যে XML ডেটা আদান-প্রদান করা হয়। XML ডকুমেন্টে ভুল থাকা সিস্টেমের মধ্যে তথ্যের ভুল ইন্টিগ্রেশন ঘটাতে পারে। XML Validation একে অপরের সাথে সংযুক্ত সিস্টেমগুলির মধ্যে সঠিক ডেটা ট্রান্সফার নিশ্চিত করতে সহায়তা করে।
XML Validation XML ডেটাকে একটি নির্দিষ্ট কাঠামোয় মান্য করে, যার মাধ্যমে ডেটার প্রক্রিয়াকরণ এবং বিশ্লেষণ সহজ হয়ে যায়। XML ডকুমেন্টের প্রতিটি অংশের জন্য নির্দিষ্ট বৈশিষ্ট্য থাকলে তা একটি সিস্টেমে ডেটার দ্রুত এবং সঠিক ব্যবহার সম্ভব করে তোলে।
অ্যাপাচি জারসেস (Apache Xerces) XML ডকুমেন্টের জন্য DTD এবং XML Schema (XSD) সমর্থন করে। এর মাধ্যমে আপনি XML ডকুমেন্টের বৈধতা যাচাই করতে পারেন। অ্যাপাচি জারসেস XML ডকুমেন্টের DTD বা XSD এর সাথে তুলনা করে তার সঠিকতা যাচাই করে এবং ত্রুটি থাকলে তা রিপোর্ট করে।
import org.apache.xerces.parsers.DOMParser;
import org.apache.xerces.xni.parser.XMLParseException;
public class XMLValidationExample {
public static void main(String[] args) {
try {
// Create the DOMParser instance
DOMParser parser = new DOMParser();
// Enable XML Schema validation
parser.setFeature("http://apache.org/xml/features/validation/schema", true);
// Parse the XML document
parser.parse("example.xml");
System.out.println("XML is valid according to the Schema.");
} catch (XMLParseException e) {
System.out.println("XML is invalid: " + e.getMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
}
XML Validation একটি গুরুত্বপূর্ণ প্রক্রিয়া যা XML ডকুমেন্টের সঠিকতা, এক্সেসযোগ্যতা এবং স্ট্রাকচারাল বৈধতা নিশ্চিত করে। অ্যাপাচি জারসেস (Apache Xerces) লাইব্রেরি XML ডকুমেন্টের জন্য DTD এবং XML Schema (XSD) ভ্যালিডেশন সমর্থন করে, যা ডেটা ইন্টিগ্রিটি বজায় রাখতে সহায়তা করে। XML Validation ডেভেলপারদের XML ডেটার সঠিকতা এবং বৈধতা যাচাই করতে সহায়তা করে, এবং এটি বিভিন্ন সিস্টেম বা অ্যাপ্লিকেশনগুলির মধ্যে সঠিক ডেটা আদান-প্রদান নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে।
Apache Xerces হল একটি ওপেন সোর্স XML পার্সিং লাইব্রেরি যা Java এবং C++ প্রোগ্রামিং ভাষায় XML ডেটা পার্সিং, ভ্যালিডেশন এবং প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়। DTD (Document Type Definition) এবং XML Schema XML ডেটার কাঠামো এবং বৈধতা নির্ধারণ করার জন্য ব্যবহৃত দুটি জনপ্রিয় প্রযুক্তি। Apache Xerces এই দুটি প্রযুক্তি সমর্থন করে, এবং এই প্রযুক্তিগুলির মাধ্যমে XML ডেটা ভ্যালিডেশন করতে সাহায্য করে।
এই লেখায়, আমরা DTD এবং XML Schema এর ব্যবহার এবং Apache Xerces এর মাধ্যমে তাদের কার্যকারিতা ব্যাখ্যা করব।
DTD (Document Type Definition) হল একটি XML ডকুমেন্টের কাঠামো এবং বৈধতা নির্ধারণের জন্য ব্যবহৃত একটি স্ট্যান্ডার্ড। এটি একটি XML ডকুমেন্টের মধ্যে কোন উপাদানগুলি থাকতে পারে, তাদের গঠন কেমন হতে হবে, এবং তাদের মধ্যে সম্পর্ক কেমন হবে, তা নির্ধারণ করে। DTD একটি সহজ উপায়ে XML ডেটার ভ্যালিডেশন নিশ্চিত করতে সাহায্য করে।
ধরা যাক, আমাদের একটি XML ডকুমেন্ট আছে এবং আমরা তার জন্য একটি DTD সংজ্ঞায়িত করতে চাই।
<person>
<name>John Doe</name>
<age>30</age>
</person>
person.dtd
:<!ELEMENT person (name, age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
এখানে, DTD ফাইলে person
এলিমেন্টটি name
এবং age
এলিমেন্টগুলি ধারণ করবে এবং এগুলোর ডেটা প্যারাগ্রাফ চিহ্নিত টেক্সট হবে।
Apache Xerces ব্যবহার করে আপনি DTD ভ্যালিডেশন করতে পারেন। এর জন্য XML ডকুমেন্ট এবং DTD ফাইলের মধ্যে সম্পর্ক স্থাপন করা হয় এবং তারপর ভ্যালিডেশন চেক করা হয়।
import org.apache.xerces.parsers.DOMParser;
import org.xml.sax.SAXException;
import org.w3c.dom.Document;
import org.apache.xerces.xni.parser.XMLParserConfiguration;
public class DTDValidationExample {
public static void main(String[] args) {
try {
// Create a new SAX parser
DOMParser parser = new DOMParser();
parser.setFeature("http://apache.org/xml/features/validation/dynamic", true);
// Parse XML document with DTD validation
parser.parse("person.xml");
Document document = parser.getDocument();
System.out.println("XML document validated successfully against DTD.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
এই কোডে, DOMParser
ব্যবহার করে XML ডকুমেন্টটি DTD ফাইলের সাথে ভ্যালিডেট করা হয়েছে।
XML Schema (বা XSD - XML Schema Definition) হল একটি আধুনিক এবং শক্তিশালী মাধ্যম XML ডকুমেন্টের কাঠামো এবং বৈধতা নির্ধারণ করার জন্য। XML Schema DTD এর চেয়ে বেশি ক্ষমতাশালী, কারণ এটি ডেটা টাইপ সংজ্ঞায়িত করতে পারে, জটিল স্ট্রাকচার তৈরি করতে পারে এবং ত্রুটি চিহ্নিত করতে সাহায্য করে।
string
, int
, date
ইত্যাদি।ধরা যাক, আমাদের XML ডেটা এবং তার জন্য একটি XML Schema (XSD) রয়েছে।
<person>
<name>John Doe</name>
<age>30</age>
</person>
person.xsd
:<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>
এখানে, XML Schema (XSD) ফাইলটি person এলিমেন্টের জন্য দুটি সাব এলিমেন্ট name
এবং age
এর জন্য ডেটা টাইপ এবং কাঠামো সংজ্ঞায়িত করছে।
Apache Xerces XML Schema (XSD) দিয়ে XML ডেটার ভ্যালিডেশনও সমর্থন করে। XML ডকুমেন্ট এবং XML Schema (XSD) ফাইলের মধ্যে সম্পর্ক স্থাপন করে আপনি XML ডেটার বৈধতা পরীক্ষা করতে পারেন।
import org.apache.xerces.parsers.DOMParser;
import org.apache.xerces.xni.parser.XMLParserConfiguration;
public class SchemaValidationExample {
public static void main(String[] args) {
try {
// Create a new DOM parser
DOMParser parser = new DOMParser();
parser.setFeature("http://apache.org/xml/features/validation/schema", true);
parser.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", "person.xsd");
// Parse XML document with Schema validation
parser.parse("person.xml");
System.out.println("XML document validated successfully against XML Schema.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
এখানে, DOMParser ব্যবহার করে XML ডেটা person.xsd
স্কিমার সাথে ভ্যালিডেট করা হচ্ছে।
Feature | DTD (Document Type Definition) | XML Schema |
---|---|---|
XML Data Types | DTD শুধুমাত্র প্যারাগ্রাফ টেক্সট বা সাধারণ ডেটা ব্যবহার করে | XML Schema ডেটা টাইপ সমর্থন করে, যেমন string, int, date |
Complex Types | DTD জটিল ডেটা টাইপ সমর্থন করে না | XML Schema জটিল ডেটা টাইপ সমর্থন করে |
Validation | DTD শুধুমাত্র এলিমেন্ট এবং অ্যাট্রিবিউটের জন্য ভ্যালিডেশন করে | XML Schema সম্পূর্ণ XML ডেটা স্ট্রাকচার ভ্যালিডেশন করে |
Namespace Support | DTD নামস্পেস সমর্থন করে না | XML Schema নামস্পেস সমর্থন করে |
Document Structure | DTD শুধুমাত্র এলিমেন্ট এবং অ্যাট্রিবিউটের জন্য স্ট্রাকচার নির্ধারণ করে | XML Schema ডেটা কাঠামো এবং টাইপস সমর্থন করে, এবং প্যাটার্ন ভ্যালিডেশন করতে পারে |
Apache Xerces হল একটি শক্তিশালী XML পার্সিং লাইব্রেরি যা DTD এবং XML Schema সমর্থন করে। DTD XML ডেটার কাঠামো এবং বৈধতা নির্ধারণের জন্য ব্যবহৃত একটি প্রাথমিক প্রযুক্তি, কিন্তু XML Schema আধুনিক এবং শক্তিশালী বিকল্প যা ডেটা টাইপ, নামস্পেস এবং জটিল স্ট্রাকচার সমর্থন করে। Xerces DTD এবং XML Schema এর মাধ্যমে XML ডেটার ভ্যালিডেশন নিশ্চিত করে, এবং XML ডেটাকে একটি নির্দিষ্ট কাঠামোর সাথে সামঞ্জস্যপূর্ণ করার জন্য অত্যন্ত কার্যকরী একটি টুল।
অ্যাপাচি জারসেস (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 কিভাবে করা যায়, তা বিস্তারিতভাবে ব্যাখ্যা করা হলো।
DTD (Document Type Definition) একটি ডকুমেন্টের জন্য একটি স্ট্রাকচার বা কাঠামো নির্ধারণ করে, যা XML ডকুমেন্টের এলিমেন্ট এবং অ্যাট্রিবিউটের নিয়ম নির্ধারণ করে। Xerces এ DTD ভ্যালিডেশন সম্পাদন করার জন্য XML ডকুমেন্টে DTD রেফারেন্স যুক্ত করতে হয় এবং সেই ডকুমেন্টকে DTD ফাইলের বিরুদ্ধে ভ্যালিডেট করা হয়।
ধরা যাক, আমাদের একটি XML ডকুমেন্ট এবং একটি DTD ফাইল রয়েছে।
<!ELEMENT person (name, age)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<?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 ব্যবহার করা হবে।
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 এর সাথে মেলে, তবে এটি সফলভাবে ভ্যালিডেট করা হবে।
XML Schema (XSD) XML ডকুমেন্টের জন্য আরও শক্তিশালী এবং নির্ভরযোগ্য স্ট্রাকচার নির্ধারণ করে, যেখানে ডেটার টাইপ, এলিমেন্টের আদর্শ, অ্যাট্রিবিউট প্রভৃতি সংজ্ঞায়িত থাকে। Xerces XML Schema ভ্যালিডেশন সমর্থন করে এবং এটি XML Schema (XSD) ফাইলের বিরুদ্ধে XML ডকুমেন্ট ভ্যালিডেট করতে ব্যবহৃত হয়।
ধরা যাক, আমাদের একটি XML Schema ফাইল এবং একটি XML ডকুমেন্ট রয়েছে।
<?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>
<?xml version="1.0" encoding="UTF-8"?>
<person>
<name>John Doe</name>
<age>30</age>
</person>
এই XML ডকুমেন্টটি person.xsd এর সাথে ভ্যালিডেশন করার জন্য Xerces ব্যবহার করা হবে।
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 ফাইলের সাথে মেলে, তবে এটি সফলভাবে ভ্যালিডেট করা হবে।
Apache Xerces একটি শক্তিশালী XML লাইব্রেরি যা XML ডেটার বৈধতা যাচাইয়ের জন্য ব্যবহার করা হয়। XML Validation XML ডেটা যাচাই করতে সহায়ক, যাতে এটি DTD (Document Type Definition) বা XML Schema (XSD) এর সাথে সঙ্গতিপূর্ণ থাকে।
এই উদাহরণে, আমরা দেখাবো কীভাবে Apache Xerces ব্যবহার করে XML ডেটা XML Schema বা DTD এর বিরুদ্ধে যাচাই করা যায়।
ধরা যাক, আমাদের একটি XML ফাইল রয়েছে এবং আমরা এটিকে একটি XML Schema (XSD) এর বিরুদ্ধে যাচাই করতে চাই। XML Schema একটি নির্দিষ্ট গঠন এবং ধরন নির্ধারণ করে, যার মাধ্যমে XML ডেটা বৈধতা যাচাই করা যায়।
employee.xsd
):<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="age" type="xs:int"/>
<xs:element name="department" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
এটি একটি XML Schema (XSD) ফাইল যা employee এলিমেন্টের গঠন এবং তার অন্তর্ভুক্ত উপাদানগুলো name, age, এবং department নির্ধারণ করে।
employee.xml
):<?xml version="1.0" encoding="UTF-8"?>
<employee>
<name>John Doe</name>
<age>30</age>
<department>Engineering</department>
</employee>
এটি একটি সাধারণ XML ডকুমেন্ট যা আমাদের যাচাই করার জন্য তৈরি করা হয়েছে।
এখন, আমরা Apache Xerces ব্যবহার করে XML ডেটা যাচাই করার কোড লিখব, যাতে এটি employee.xsd স্কিমার বিরুদ্ধে বৈধ কিনা যাচাই করা হবে।
import org.apache.xerces.parsers.XMLParser;
import org.apache.xerces.util.XMLCatalog;
import org.apache.xerces.xni.parser.XMLParserConfiguration;
import org.apache.xerces.impl.xs.XSImplementation;
import org.apache.xerces.impl.xs.XMLSchemaLoader;
import org.apache.xerces.xs.XSSchema;
import org.apache.xerces.xs.XSSimpleType;
import org.xml.sax.SAXException;
import javax.xml.XMLConstants;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import java.io.File;
import java.io.IOException;
public class XMLValidationExample {
public static void main(String[] args) {
try {
// XML Schema Factory for validation
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
// Load the XSD schema file
File schemaFile = new File("src/employee.xsd");
Schema schema = factory.newSchema(schemaFile);
// Create Validator object
Validator validator = schema.newValidator();
// Validate the XML file against the XSD schema
File xmlFile = new File("src/employee.xml");
validator.validate(new javax.xml.transform.stream.StreamSource(xmlFile));
// If no exception is thrown, the XML is valid
System.out.println("XML is valid against the schema.");
} catch (SAXException | IOException e) {
// If an exception is thrown, the XML is invalid
System.out.println("XML is NOT valid: " + e.getMessage());
}
}
}
validate()
মেথড ব্যবহার করে আমরা employee.xml ফাইলটি employee.xsd স্কিমার বিরুদ্ধে যাচাই করি।XML is valid against the schema.
XML is NOT valid: The element type "employee" must be followed by a matching element...
এছাড়া, আপনি DTD (Document Type Definition) ব্যবহার করে XML ডেটার বৈধতা যাচাই করতে পারেন। এখানে আমরা DTD ব্যবহার করে একটি XML ডকুমেন্টের বৈধতা যাচাই করার একটি উদাহরণ দেখাবো।
employee.dtd
):<!ELEMENT employee (name, age, department)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT department (#PCDATA)>
এটি একটি DTD যা XML ডকুমেন্টের employee এলিমেন্টের গঠন এবং এর অন্তর্ভুক্ত name, age, এবং department এলিমেন্টের ধরন নির্ধারণ করে।
employee_with_dtd.xml
):<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE employee SYSTEM "employee.dtd">
<employee>
<name>John Doe</name>
<age>30</age>
<department>Engineering</department>
</employee>
import org.apache.xerces.parsers.SAXParser;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class DTDValidationExample {
public static void main(String[] args) {
try {
// SAXParser তৈরি করা
SAXParser parser = new SAXParser();
// XML ডকুমেন্টে DTD বৈধতা যাচাই করতে SAXParser ব্যবহার করা
parser.setFeature("http://apache.org/xml/features/validation/schema", true);
// DTD Validation Handler সেট করা
parser.setContentHandler(new DefaultHandler());
// XML ডকুমেন্ট প্যার্স করা
parser.parse("src/employee_with_dtd.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.
XML is NOT valid: The element type "employee" must be followed by a matching element...
Apache Xerces ব্যবহার করে আপনি সহজেই XML Validation করতে পারেন, যা XML ডেটা DTD বা XML Schema (XSD) এর সাথে তুলনা করে বৈধতা যাচাই করে। DTD Validation XML ডেটার গঠন যাচাই করতে সহায়তা করে, এবং XML Schema Validation (XSD) XML ডেটার গঠন এবং ধরন যাচাই করতে আরও শক্তিশালী সমাধান প্রদান করে। এই উদাহরণগুলির মাধ্যমে আপনি Xerces ব্যবহার করে XML ডেটা বৈধতা যাচাইয়ের প্রক্রিয়া শিখতে পারবেন।
Read more
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ducimus nihil, quo, quis minus aspernatur expedita, incidunt facilis aliquid inventore voluptate dolores accusantium laborum labore a dolorum dolore omnis qui? Consequuntur sed facilis repellendus corrupti amet in quibusdam ducimus illo autem, a praesentium.
1 hour ago
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ducimus nihil, quo, quis minus aspernatur expedita, incidunt facilis aliquid inventore voluptate dolores accusantium laborum labore a dolorum dolore omnis qui? Consequuntur sed facilis repellendus corrupti amet in quibusdam ducimus illo autem, a praesentium.
1 hour ago
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ducimus nihil, quo, quis minus aspernatur expedita, incidunt facilis aliquid inventore voluptate dolores accusantium laborum labore a dolorum dolore omnis qui? Consequuntur sed facilis repellendus corrupti amet in quibusdam ducimus illo autem, a praesentium.
1 hour ago
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ducimus nihil, quo, quis minus aspernatur expedita, incidunt facilis aliquid inventore voluptate dolores accusantium laborum labore a dolorum dolore omnis qui? Consequuntur sed facilis repellendus corrupti amet in quibusdam ducimus illo autem, a praesentium.
1 hour ago
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ducimus nihil, quo, quis minus aspernatur expedita, incidunt facilis aliquid inventore voluptate dolores accusantium laborum labore a dolorum dolore omnis qui? Consequuntur sed facilis repellendus corrupti amet in quibusdam ducimus illo autem, a praesentium.
1 hour ago
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ducimus nihil, quo, quis minus aspernatur expedita, incidunt facilis aliquid inventore voluptate dolores accusantium laborum labore a dolorum dolore omnis qui? Consequuntur sed facilis repellendus corrupti amet in quibusdam ducimus illo autem, a praesentium.
1 hour ago
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ducimus nihil, quo, quis minus aspernatur expedita, incidunt facilis aliquid inventore voluptate dolores accusantium laborum labore a dolorum dolore omnis qui? Consequuntur sed facilis repellendus corrupti amet in quibusdam ducimus illo autem, a praesentium.
1 hour ago
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ducimus nihil, quo, quis minus aspernatur expedita, incidunt facilis aliquid inventore voluptate dolores accusantium laborum labore a dolorum dolore omnis qui? Consequuntur sed facilis repellendus corrupti amet in quibusdam ducimus illo autem, a praesentium.
1 hour ago
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ducimus nihil, quo, quis minus aspernatur expedita, incidunt facilis aliquid inventore voluptate dolores accusantium laborum labore a dolorum dolore omnis qui? Consequuntur sed facilis repellendus corrupti amet in quibusdam ducimus illo autem, a praesentium.
1 hour ago
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Ducimus nihil, quo, quis minus aspernatur expedita, incidunt facilis aliquid inventore voluptate dolores accusantium laborum labore a dolorum dolore omnis qui? Consequuntur sed facilis repellendus corrupti amet in quibusdam ducimus illo autem, a praesentium.
1 hour ago