কেন পাঠ্য বিন্যাস প্রয়োজন?

পাঠ্য বিন্যাস তথ্য সংরক্ষণের জন্য সুবিধাজনক কারণ সেগুলি প্রোগ্রাম এবং মানুষ উভয়ের দ্বারা তৈরি এবং প্রক্রিয়া করা যেতে পারে।

টেক্সট ফাইল (টেক্সট ফরম্যাটে ফাইল) বিভিন্ন ধরনের টেক্সট এডিটরে খোলা, পড়া এবং সম্পাদনা করা যায়।

অনেক প্রোগ্রাম টেক্সট-ভিত্তিক কনফিগারেশন ফাইল ব্যবহার করে, এমনকি ফরম্যাটে সংখ্যা এবং বাইনারি (হ্যাঁ/না) মান থাকলেও।

এটি পাঠ্য থেকে একটি অভ্যন্তরীণ বিন্যাসে রূপান্তর করার প্রয়োজনের কারণে প্রোগ্রামগুলিকে কিছুটা জটিল করে তোলে এবং এর বিপরীতে, তবে এটি প্রোগ্রামে নিজেই কনফিগারেশন টুল ব্যবহার না করে ম্যানুয়ালি কনফিগারেশন সম্পাদনা করা সম্ভব করে তোলে।

XML এখন কোথায় ব্যবহার করা হয়?

XML IT এর বিভিন্ন ক্ষেত্রে ব্যবহৃত হয়। এটি কনফিগারেশন ফাইল (প্রোগ্রাম সেটিংস সহ) বা প্রোগ্রামগুলির মধ্যে ডেটা স্থানান্তর করতে ব্যবহৃত ফাইল হতে পারে। জাভাতে, সবচেয়ে সাধারণ ব্যবহারের ক্ষেত্রে একটি হল মাভেন কনফিগার করা, একটি বিল্ড অটোমেশন টুল।

একটি XML নথির কাঠামো

একটি XML নথির ভৌত এবং যৌক্তিক কাঠামো আলাদা রাখা হয়। শারীরিক গঠনের পরিপ্রেক্ষিতে, নথিতে এমন সত্তা রয়েছে যা অন্যান্য সত্তাকে উল্লেখ করতে পারে।

একমাত্র মূল উপাদান হল নথি সত্তা। একটি সত্তা একটি নথির ক্ষুদ্রতম অংশ। সমস্ত সত্তার একটি নাম আছে এবং অক্ষর রয়েছে।

পরিবর্তে, অক্ষর দুটি বিভাগের একটির অন্তর্গত: অক্ষর ডেটা বা মার্কআপ।

মার্কআপ অন্তর্ভুক্ত:

  • ট্যাগ, যা উপাদান সীমানা নির্দেশ করে;
  • ঘোষণা এবং প্রক্রিয়াকরণ নির্দেশাবলী, তাদের বৈশিষ্ট্য সহ;
  • সত্তা রেফারেন্স;
  • মন্তব্য
  • CDATA বিভাগগুলি মোড়ানো অক্ষর ক্রম।

যৌক্তিকভাবে, নথিতে উপাদান, মন্তব্য, ঘোষণা, সত্তার উল্লেখ এবং প্রক্রিয়াকরণ নির্দেশাবলী থাকে। একটি নথিতে এই সমস্ত কাঠামো তৈরি করতে মার্কআপ ব্যবহার করা হয়।

একটি নথির সমস্ত উপাদান অংশগুলি একটি প্রোলগ এবং একটি মূল উপাদানে বিভক্ত। মূল উপাদানটি একটি XML নথির বাধ্যতামূলক, অপরিহার্য অংশ, যদিও প্রোলগটি একেবারেই নাও থাকতে পারে। রুট এলিমেন্টে নেস্টেড এলিমেন্ট, ক্যারেক্টার ডেটা এবং কমেন্ট থাকতে পারে। একটি নথির উপাদানগুলি অবশ্যই সঠিকভাবে নেস্ট করা উচিত: অন্য একটি উপাদানের মধ্যে শুরু হওয়া যেকোনো উপাদান অবশ্যই সেই উপাদানটির মধ্যে শেষ হতে হবে।

মার্কআপ চিহ্ন

মার্কআপ সবসময় < দিয়ে শুরু হয় এবং > দিয়ে শেষ হয় ।

< এবং > (কোণ বন্ধনী) এবং & (অ্যাম্পারস্যান্ড) চিহ্নগুলি একটি বিশেষ ভূমিকা পালন করে। কোণ বন্ধনী উপাদানের সীমানা, প্রক্রিয়াকরণ নির্দেশাবলী এবং কিছু অন্যান্য ক্রম নির্দেশ করে। এবং অ্যাম্পারস্যান্ড আমাদেরকে টেক্সটকে সত্তা দিয়ে প্রতিস্থাপন করতে সাহায্য করে।

XML ঘোষণা

একটি XML ঘোষণা নথি লিখতে ব্যবহৃত ভাষার সংস্করণ নির্দিষ্ট করে। XML স্পেসিফিকেশন বলে যে একটি XML ঘোষণা দিয়ে একটি নথি শুরু করতে হবে কারণ নথির বিষয়বস্তুর সঠিক ব্যাখ্যা ভাষার সংস্করণের উপর নির্ভর করে।

ভাষার প্রথম সংস্করণে (1.0), এই ঘোষণাটি ঐচ্ছিক ছিল, কিন্তু পরবর্তী সংস্করণগুলিতে এটি বাধ্যতামূলক। অনুপস্থিত ঘোষণার অর্থ সংস্করণ 1.0 বলে ধরে নেওয়া হয়। ঘোষণায় ডকুমেন্ট এনকোডিং সম্পর্কে তথ্যও থাকতে পারে।

উদাহরণ:

<?XML version="1.1" encoding="UTF-8" ?>

ট্যাগ

একটি ট্যাগ হল একটি মার্কআপ গঠন যাতে একটি উপাদানের নাম থাকে। শুরু ট্যাগ এবং শেষ ট্যাগ আছে. এছাড়াও খালি-উপাদান ট্যাগ রয়েছে যা শুরু এবং শেষ উপাদানগুলিকে একত্রিত করে।

উদাহরণ:

  • স্টার্ট ট্যাগ: <tag1>

  • শেষ ট্যাগ: </tag1>

  • খালি-উপাদান ট্যাগ: <empty_tag1 />

গুণাবলী

XML উপাদানগুলির আরেকটি অংশ হল বৈশিষ্ট্য। একটি উপাদান একাধিক অনন্য বৈশিষ্ট্য থাকতে পারে. গুণাবলী আমাদের একটি উপাদান সম্পর্কে আরো তথ্য নির্দিষ্ট করা যাক. বা আরও সঠিকভাবে, বৈশিষ্ট্যগুলি উপাদানগুলির বৈশিষ্ট্যগুলিকে সংজ্ঞায়িত করে।

একটি বৈশিষ্ট্য সর্বদা একটি নাম-মানের জুড়ি:

নাম = "মান"

একটি ট্যাগের একটি বৈশিষ্ট্যের উদাহরণ:

<tag1 name = "value">উপাদান</tag1>

একটি অ্যাট্রিবিউটের মান অবশ্যই ডবল কোট ( " ) বা একক উদ্ধৃতি ( ' ) দিয়ে আবৃত করতে হবে। অ্যাট্রিবিউটগুলি শুধুমাত্র স্টার্ট ট্যাগ এবং খালি-এলিমেন্ট ট্যাগে ব্যবহার করা হয়।

পাঁচটি বিশেষ অক্ষর (<, >, ', ”, &)

স্পষ্টতই, অক্ষর ডেটা এবং অ্যাট্রিবিউট মানগুলিতে < , > এবং & চিহ্নগুলি ব্যবহার করা যাবে না। তাদের প্রতিনিধিত্ব করার জন্য আপনাকে বিশেষ এস্কেপ সিকোয়েন্স করতে হবে। অ্যাট্রিবিউট মানের ভিতরে অ্যাপোস্ট্রোফ এবং উদ্ধৃতি চিহ্ন লেখার সময় বিশেষ ক্রমগুলিও ব্যবহার করা হয়:

প্রতীক প্রতিস্থাপন
< <
> >
এবং &
' '
" "

এছাড়াও, \ অক্ষর লিখতে , আপনাকে \\ ব্যবহার করতে হবে ।

CDATA বিভাগ

একটি CDATA বিভাগ পাঠ্যের একটি যৌক্তিক একক নয়। এই ধরনের বিভাগ ঘটতে পারে যেখানে XML সিনট্যাক্স আমাদের নথিতে অক্ষর ডেটা রাখতে দেয়।

বিভাগটি <![CDATA[ দিয়ে শুরু হয় এবং ]]> দিয়ে শেষ হয় । মার্কআপের এই বিটগুলির মধ্যে অক্ষর ডেটা স্থাপন করা হয় এবং < , > , এবং & প্রতীকগুলি তাদের সরাসরি আকারে ব্যবহার করা যেতে পারে।

মন্তব্য

মন্তব্যগুলি অক্ষর ডেটা হিসাবে বিবেচিত হয় না। একটি মন্তব্য শুরু হয় <!-- দিয়ে এবং শেষ হয় --> দিয়ে । অক্ষর ক্রম -- একটি মন্তব্য ভিতরে ব্যবহার করা যাবে না. এছাড়াও, একটি মন্তব্যের ভিতরে, অ্যাম্পারস্যান্ড অক্ষরটি মার্কআপ বোঝায় না।

উদাহরণ:

<!-- এটি একটি মন্তব্য -->

নাম

XML-এ, সমস্ত নামের শুধুমাত্র ইউনিকোড অক্ষর টেবিলের অক্ষর, আরবি সংখ্যা, পিরিয়ড, কোলন, হাইফেন এবং আন্ডারস্কোর থাকতে পারে। নামগুলি একটি অক্ষর, কোলন বা আন্ডারস্কোর দিয়ে শুরু হতে পারে। মনে রাখবেন যে একটি নাম XML স্ট্রিং দিয়ে শুরু হতে পারে না ।

উদাহরণ

আসুন একটি জাভা ক্লাস এবং সেই ক্লাসের একটি অবজেক্ট দেখি। তারপরে আমরা XML ফরম্যাটে অবজেক্টটিকে সিরিয়াল করার চেষ্টা করব। ক্লাস কোড:


public class Book {
   private String title;
   private String author;
   private Integer pageCount;
   private List<String> chapters;

   public Book(String title, String author, Integer pageCount, List<String> chapters) {
       this.title = title;
       this.author = author;
       this.pageCount = pageCount;
       this.chapters = chapters;
   }
// Getters/setters
}

এবং বস্তুর সৃষ্টি:


Book book = new Book("My Favorite Book", "Amigo", 999, Arrays.asList("Chapter 1", "Chapter 2", "Chapter 3", "Chapter 4", "Chapter 5", "Chapter 6"));

এখানে একটি জাভা অবজেক্টের একটি বৈধ XML উপস্থাপনার একটি উদাহরণ যেখানে 4টি ক্ষেত্র রয়েছে, যার মধ্যে একটি হল একটি সংগ্রহ (উপরের জাভা কোড দেখুন):

<বই>
  <title>আমার প্রিয় বই</title>
  <author>Amigo</author>
  <pageCount>999</pageCount>
 <অধ্যায়>
    <অধ্যায়>অধ্যায় 1</অধ্যায়>
    <অধ্যায়>অধ্যায় 2</chapters>
    <অধ্যায়>অধ্যায় 3</অধ্যায়>
    <অধ্যায়>অধ্যায় 4</অধ্যায়>
    <অধ্যায়>অধ্যায় 5</অধ্যায়>
    <অধ্যায়>অধ্যায় 6</অধ্যায়> </ অধ্যায় >
 </Book>

XML স্কিমা

একটি XML স্কিমা হল একটি XML নথির কাঠামোর বর্ণনা। সংশ্লিষ্ট স্পেসিফিকেশন (XML স্কিমা সংজ্ঞা, বা XSD) হল একটি W3C সুপারিশ।

XSD একটি XML নথি অনুসরণ করা আবশ্যক নিয়মগুলি প্রকাশ করার জন্য ডিজাইন করা হয়েছিল। কিন্তু আমাদের জন্য সবচেয়ে আকর্ষণীয় বিষয় হল XSD সফ্টওয়্যার বিকাশ করার সময় ব্যবহার করার জন্য ডিজাইন করা হয়েছিল যা XML নথিগুলি প্রক্রিয়া করে। এটি আমাদের একটি XML নথির প্রোগ্রাম্যাটিকভাবে সঠিকতা পরীক্ষা করতে দেয়।

একটি XML স্কিমা ধারণকারী ফাইলগুলিতে .xsd এক্সটেনশন থাকে৷ একটি XML স্কিমা ডিজাইন করা এই পাঠের সুযোগের বাইরে, তাই আপাতত সচেতন থাকুন যে সম্ভাবনা বিদ্যমান।