সহজে শিখুন এক্স এম এল (XML)
এক্স এম এল (XML) টিউটোরিয়াল | ভূমিকা
XML এর অর্থ হচ্ছে eXtensible Markup Language.এটা ডেটা বহন (Transport) এবং সংরক্ষন করার জন্য ব্যাবহার করা হয়।এটা জানা খুব গুরত্বপূর্ন কিন্তু শেখা খুব সহজ।এর সাহায্যে সহজেই নিজের মত করে ডেটাকে সংগায়িত করা যায়।নিজের মত করে মানে এর ভিতরের লেখা এবং বাইরের ট্যাগ নিজের মত করে করা যায়।
একটা XML Document এর উদাহরন
XML শেখার আগে আপনাকে HTML এবং Javascript জানতে হবে।এই সাইট থেকেই এগুলো শিখতে পারেন।
XML বানানো হয়েছে ডেটা বহন ও সংরক্ষনের জন্য ডেটা প্রদর্শনের (display)জন্য নয়।
অপরদিকে HTML বানানো হয়েছে ডেটা দেখানোর/প্রদর্শনের(display) জন্য।
XML তথ্য carry করে আর HTML তথ্য দেখায়।
XML এর ট্যাগ ইচ্ছেমত দেয়া যায় যেমন উপরের উদাহরনে <note>,<to> এসব ট্যাগ ইচ্ছেমত দেয়া হয়েছে।
HTML এ আগেই নির্ধারন করে দেয়া আছে কি কি ট্যাগ ব্যাবহার করা যাবে যেমন <head>,<title> ইত্যাদি।
এক্সএমএল বৃক্ষ/ট্রি (XML Tree)
এক্সএমএল ডকুমেন্টগুলি একটা বৃক্ষের মত গঠন নিয়ে তৈরী হয় যা শুরু হয় “the root”/(গাছের গোড়ার মত) দিয়ে আর ডাল/শাখাগুলি “the leaves”/(পাতার মত)
এক্সএমএল এ সহজ ট্যাগ ব্যাবহৃত হয় (নিজের ইচ্ছেমত) নিচের উদাহরনটি দেখুন ট্যাগগুলি দেখেই বোঝা যায় যে এর ভিতর কি বর্ননা থাকবে।
এই কোডে প্রথম লাইনটি দিয়ে একটা ঘোষনা (Declaration) দেয়া হয়েছে যে এটা একটা XML Document.এখানে দেয়া আছে এর ভার্সন ১.০ এবং এটা এনকোডিং ব্যাবহার করা হয়েছে ISO-8859-1,যখন বাংলা সাইট করবেন তখন দিতে পারেন uft-8 (ইউনিকোড ভিত্তিক এনকোডিং)
পরের লাইনটি এই ডকুমেন্টের root element
এর পরের ৪টি লাইন হল এই root এর child element(to, from, heading, and body)
শেষের লাইনটি এই root element এর সমাপ্তি ইঙ্গিত করে।
এই উদাহরন থেকে আপনি সহজেই অনুমান করতে পারেন যে এটা এমন একটা XML Document যেটা হল একটা নোট/বিবরন/চিঠি Jani এর কাছ থেকে Tove এর কাছে।
এই root element ছাড়া অন্যান্য element গুলোর আবার sub element (child element) থাকতে পারে যেমন:
Parent,Child,Sibling এই শব্দগুলি ব্যাবহৃত হয় ইলিমেন্ট গুলির মধ্যে সম্পর্ক বর্ননা করতে।Parent element এর child থাকে আবার একই পর্যায়ের/Level এর child গুলো কে Sibling/সহদোর (ভাই বা বোন) বলে।
প্রতিটি ইলিমেন্টের ভিতর লেখা এবং এট্রিবিউট থাকতে পারে যেমন HTML এ থাকে।
উপরের ছবি একটা বইকে represent করে XMl এ
এখানে root element হচ্ছে <bookstore>
এক্সএমএল সংকেত (XML Syntax Rule)
XML এর সংকেত নিয়ম (Syntax Rule) অনেক সহজ এবং যৌক্তিক (Logical).এটা শেখা এবং ব্যাবহার করা দুটোই সহজ।
“Opening and closing tags” কে “Start and end tags” ও বলা হয়।আপনার যেটা ভাল লাগে বলতে পারেন একি জিনিস।
কিন্তু XML এভাবে লেখা চলবেনা এটা ভুল XML এ ,লিখতে হবে এভাবে
সঠিকভাবে nested হতে হবে এর অর্থ হচ্ছে <i> element টি <b> এর ভিতর শুরু হয়েছে শেষও হতে হবে এর ভিতর।
XML এর অর্থ হচ্ছে eXtensible Markup Language.এটা ডেটা বহন (Transport) এবং সংরক্ষন করার জন্য ব্যাবহার করা হয়।এটা জানা খুব গুরত্বপূর্ন কিন্তু শেখা খুব সহজ।এর সাহায্যে সহজেই নিজের মত করে ডেটাকে সংগায়িত করা যায়।নিজের মত করে মানে এর ভিতরের লেখা এবং বাইরের ট্যাগ নিজের মত করে করা যায়।
একটা XML Document এর উদাহরন
1.
<?
xml
version
=
"1.0"
?>
2.
<
note
>
3.
<
to
>Tove</
to
>
4.
<
from
>Jani</
from
>
5.
<
heading
>Reminder</
heading
>
6.
<
body
>Don't forget me this weekend!</
body
>
7.
</
note
>
XML এবং HTML কি এক??
না এক নয়XML বানানো হয়েছে ডেটা বহন ও সংরক্ষনের জন্য ডেটা প্রদর্শনের (display)জন্য নয়।
অপরদিকে HTML বানানো হয়েছে ডেটা দেখানোর/প্রদর্শনের(display) জন্য।
XML তথ্য carry করে আর HTML তথ্য দেখায়।
XML এর ট্যাগ ইচ্ছেমত দেয়া যায় যেমন উপরের উদাহরনে <note>,<to> এসব ট্যাগ ইচ্ছেমত দেয়া হয়েছে।
HTML এ আগেই নির্ধারন করে দেয়া আছে কি কি ট্যাগ ব্যাবহার করা যাবে যেমন <head>,<title> ইত্যাদি।
এক্সএমএল বৃক্ষ/ট্রি (XML Tree)
এক্সএমএল ডকুমেন্টগুলি একটা বৃক্ষের মত গঠন নিয়ে তৈরী হয় যা শুরু হয় “the root”/(গাছের গোড়ার মত) দিয়ে আর ডাল/শাখাগুলি “the leaves”/(পাতার মত)
এক্সএমএল এ সহজ ট্যাগ ব্যাবহৃত হয় (নিজের ইচ্ছেমত) নিচের উদাহরনটি দেখুন ট্যাগগুলি দেখেই বোঝা যায় যে এর ভিতর কি বর্ননা থাকবে।
1.
<?
xml
version
=
"1.0"
encoding
=
"ISO-8859-1"
?>
2.
<
note
>
3.
<
to
>Tove</
to
>
4.
<
from
>Jani</
from
>
5.
<
heading
>Reminder</
heading
>
6.
<
body
>Don't forget me this weekend!</
body
>
7.
</
note
>
পরের লাইনটি এই ডকুমেন্টের root element
1.
<note>
1.
<
to
>Tove</
to
>
2.
<
from
>Jani</
from
>
3.
<
heading
>Reminder</
heading
>
4.
<
body
>Don't forget me this weekend!</
body
>
5.
</
note
>
1.
</note>
XML Document একাট গাছের মত গঠন নিয়ে তৈরী হয়
প্রত্যেকটা XML Document এর একটা root element থাকতে হবে।এটা হচ্ছে অন্যান্য element গুলোর জন্য Parent.এই root element ছাড়া অন্যান্য element গুলোর আবার sub element (child element) থাকতে পারে যেমন:
1.
<
root
>
2.
<
child
>
3.
<
subchild
>.....</
subchild
>
4.
</
child
>
5.
</
root
>
প্রতিটি ইলিমেন্টের ভিতর লেখা এবং এট্রিবিউট থাকতে পারে যেমন HTML এ থাকে।
উপরের ছবি একটা বইকে represent করে XMl এ
01.
<
bookstore
>
02.
<
book
category
=
"COOKING"
>
03.
<
title
lang
=
"en"
>Everyday Italian</
title
>
04.
<
author
>Giada De Laurentiis</
author
>
05.
<
year
>2005</
year
>
06.
<
price
>30.00</
price
>
07.
</
book
>
08.
<
book
category
=
"CHILDREN"
>
09.
<
title
lang
=
"en"
>Harry Potter</
title
>
10.
<
author
>J K. Rowling</
author
>
11.
<
year
>2005</
year
>
12.
<
price
>29.99</
price
>
13.
</
book
>
14.
<
book
category
=
"WEB"
>
15.
<
title
lang
=
"en"
>Learning XML</
title
>
16.
<
author
>Erik T. Ray</
author
>
17.
<
year
>2003</
year
>
18.
<
price
>39.95</
price
>
19.
</
book
>
20.
</
bookstore
>
এক্সএমএল সংকেত (XML Syntax Rule)
XML এর সংকেত নিয়ম (Syntax Rule) অনেক সহজ এবং যৌক্তিক (Logical).এটা শেখা এবং ব্যাবহার করা দুটোই সহজ।
প্রত্যেকটা XML Document এর অবশ্যই সমাপ্তি ট্যাগ (Closing tag) থাকতে হবে
একটা HTML document এর সমাপ্তি ট্যাগ থাকা আবশ্যক নয়।কিন্তু XML এ এটা ভুল যে একটা ট্যাগের সমাপ্তি ট্যাগ থাকবেনা।আগের টিউটোরিয়ালের উদাহরনে declaration লাইনে closing tag ছিলনা আসলে এটা ভুল নয় কারন এই লাইনটি XML document এর কোন অংশই নয়।XML এর Tag গুলি Case Sensitive
<Letter> Tag টি <letter> tag থেকে ভিন্ন।opening এবং closing tag অবশ্যই একই অক্ষরের হতে হবে অর্থ্যাৎ ছোট বড়ৃ হাতের অক্ষর একসাথে করা যাবেনা।1.
<
Message
>This is incorrect</
message
>
2.
<
message
>This is correct</
message
>
XML Element সঠিকভাবে nested হতে হবে
HTML এ হয়ত এভাবে দেখতে পারেন1.
<b><i>This text is bold and italic</b></i>
1.
<
b
><
i
>This text is bold and italic</
i
></
b
>
XML element এর attribute কমার ভিতর থাকতে হবে
HTML এর মত XML এরও attribute থাকতে পারে তবে ইনভার্টেড কমার ভিতর থাকতে হবে।যেমন:1.
<
note
date
=
"12/11/2007"
>
2.
<
to
>Tove</
to
>
3.
<
from
>Jani</
from
>
4.
</
note
>
এক্সএমএল উপাদান (XML Elements)
একটা XML document সবসময় XML elements ব্যাবহার করে।ধরুন একটা বাক্য যদি শিরোনাম হয় তাহলে এটা একটা ‘title’ element এর মধ্যে থাকবে।একটা XML element হচ্ছে কোন একটা ইলিমেন্টের start tag থেকে শুরু করে end tag পর্যন্ত সবকিছুই।একটা ইলিমেন্টের ভিতর আরও ইলিমেন্ট থাকতে পারে,টেক্সট থাকতে পারে বা দুটো মিলেও থাকতে পারে।
এখানে <bookstore> এবং <book> এর element content আছে কারন তারা element বহন করে। আর <author> এর text content আছে কারন এটা টেক্সক্ট বহন করে।
নাম যত সংক্ষিপ্ত এবং সহজ রাখা যায় ততই ভাল যেমন <book_title> এমন নয়: <the_title_of_the_book>.
মাঝখানে হাইফেন “-” দিলে সমস্যা হতে পারে যেমন যদি লেখেন <first-name> তাহলে কোন সফটওয়ার মনে করতে পারে আপনি first থেকে name বিয়োগ করতে চাচ্ছেন।
“:” ক্লোন দেয়া থেকে এড়িয়ে যান।
01.
<
bookstore
>
02.
<
book
category
=
"CHILDREN"
>
03.
<
title
>Harry Potter</
title
>
04.
<
author
>J K. Rowling</
author
>
05.
<
year
>2005</
year
>
06.
<
price
>29.99</
price
>
07.
</
book
>
08.
<
book
category
=
"WEB"
>
09.
<
title
>Learning XML</
title
>
10.
<
author
>Erik T. Ray</
author
>
11.
<
year
>2003</
year
>
12.
<
price
>39.95</
price
>
13.
</
book
>
14.
</
bookstore
>
XML নামকরন পদ্ধতি
XML elements এর নাম দেয়ার সময় নিচের বিষয়গুলি অবশ্যই অনুসরন করতে হবে।- নামটি অক্ষর,নাম্বার বা অন্য যেকোন চিহ্ন হতে পারে।
- নাম বিরামচিহ্ন/punctuation বা কোন সংখ্যা দিয়ে শুরু হবেনা
- xml (or XML, or Xml, etc) এগুলো দিয়ে নাম করা যাবেনা।
- নামের মধ্যে ফাকা জায়গা/space থাকা যাবেনা।
- যেকোন অক্ষর ব্যাবহার করা যাবে কোন নির্দিষ্ট সীমাবদ্ধতা নেই।
নামকরন টিপস:
নাম একটু বর্ননামুলক হলে ভাল এক্ষেত্রে underscore দিয়ে শব্দ আলাদা করে দিতে পারেন যেমন <first_name>, <last_name>.নাম যত সংক্ষিপ্ত এবং সহজ রাখা যায় ততই ভাল যেমন <book_title> এমন নয়: <the_title_of_the_book>.
মাঝখানে হাইফেন “-” দিলে সমস্যা হতে পারে যেমন যদি লেখেন <first-name> তাহলে কোন সফটওয়ার মনে করতে পারে আপনি first থেকে name বিয়োগ করতে চাচ্ছেন।
“:” ক্লোন দেয়া থেকে এড়িয়ে যান।
XML Attribute
XML elements এ attribute ব্যাবহার হয় বিশেষ কোন তথ্য এটে দিতে।যেমন1.
<
friend
age
=
"23"
>Samantha</
friend
>
Social Plugin