নেমস্পেস কি?
এক্সএমএল নেমস্পেস হচ্ছে এলিমেন্ট এবং এট্রিবিউটকে আলাদা বা একক বা অনন্য (unique) করার জন্য একটা পদ্ধতি। যখন একই নামের একাধিক এলিমেন্ট ডকুমেন্টে থাকবে তখনি নেমস্পেস ব্যবহার করে সেগুলিকে অনন্য বা unique করে নিতে হবে।
কেন এক্সএমএল নেমস্পেস ব্যবহার করতে হবে?
মুলত ২টি কারনে এক্সএমএল নেমস্পেস ব্যবহার করা হয়। প্রথমত প্রত্যেকটি এলিমেন্ট এবং এট্রিবিউটকে অনন্য করার জন্য (যখন একই নামের একাধিক এলিমেন্ট থাকে)। দ্বিতীয়ত একই শ্রেনীর সব এলিমেন্ট এবং এট্রিবিউটকে একসাথে রাখার জন্য।
কখন নেমস্পেস ব্যবহার করবেন?
আপনার এক্সএমএল যখন অন্যরা ব্যবহার করার সম্ভাবনা থাকবে, তখন নেমস্পেস ব্যবহার করবেন। আপনার নিজের কোন এপ্লিকেশনে যদি এক্সএমএল লিখতে হয় তাহলে ব্যবহার না করলেও সমস্যা নেই। কেননা আপনি ডকুমেন্ট লেখার সময় তো ইচ্ছে করেই একই নামের দুটি বা একাধিক এলিমেন্ট কখনও ব্যবহার করবেন না। অর্থ্যাৎ একজনের এক্সএমএল এ আরেকজনের এক্সএমএল একত্রিত হওয়ার সম্ভাবনা থাকলেই নেমস্পেস ব্যবহার করা উচিৎ। যেমন যেকোন বড় সাইটের rss বা কোন ওয়েব সার্ভিসের এক্সএমএল এ দেখবেন নেমস্পেস আছে কারন তারা জানে লক্ষ লক্ষ ডেভেলপার তাদের এই এক্সএমএল ডকুমেন্ট বিভিন্ন এপ্লিকেশনে ব্যবহার করতে পারে এবং আরেকটা এক্সএমএল ফাইলের ভিতরেই এই ডকুমেন্ট ব্যবহার করা প্রয়োজন হতে পারে।
যেভাবে লিখতে হয়
কয়েকটি নিয়ম আছে লেখার। যেমন প্রথমে প্রিফিক্স সহ নেমস্পেস ঠিক করে নিতে হবে
1.
<
b:books
xmlns:b
=
"https://www.smhamiri.com/2024/10/xml-xml-syntax-rule.html"
>
b হচ্ছে এখানে প্রিফিক্স আর books হচ্ছে ট্যাগ। XML namespace এর সংক্ষিপ্ত রুপ হচ্ছে xmlns. সবশেষে ওয়েব ঠিকানাটি হচ্ছে URI (Uniform Resource Indentifier)
পূর্নাঙ্গ উদাহরন
01.
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
02.
<
booksName
>
03.
<
b:books
xmlns:b
=
"https://www.smhamiri.com/2024/10/xml-xml-syntax-rule.html"
>.
04.
<
b:name
>Professional PHP6</
b:name
>
05.
<
b:publication
>wrox publication</
b:publication
>
06.
</
b:books
>
07.
<
d:books
xmlns:d
=
"http://www.w3.org/TR/html4/"
>.
08.
<
d:name
>Professional PHP6</
d:name
>
09.
<
d:publication
>wrox publication</
d:publication
>
10.
</
d:books
>
11.
</
booksName
>
ব্যাখ্যা : এখানে b এবং d হচ্ছে প্রিফিক্স আর http://webcoachbd.com/namespaces/b এবং http://www.w3.org/TR/html4/ হচ্ছে নেমস্পেস URI. এই URI অনন্য রাখা ভাল। একই URI কিন্তু ভিন্ন প্রিফিক্স দেয়া যায় এমনকি একই প্রিফিক্স এবং একই URI দিয়েও করা যায় তবে এভাবে করা ভাল হবেনা।
একবারে রুট এলিমেন্টে নেমস্পেস দুটি দিয়ে দিতে পারেন যেমন
01.
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
02.
<
booksName
xmlns:b
=
"https://www.smhamiri.com/2024/10/xml-xml-syntax-rule.html"
03.
xmlns:d
=
"http://www.w3.org/TR/html4/"
>
04.
<
b:books
>
05.
<
b:name
>Professional PHP6</
b:name
>
06.
<
b:publication
>wrox publication</
b:publication
>
07.
</
b:books
>
08.
<
d:books
>.
09.
<
d:name
>Professional PHP6</
d:name
>
10.
<
d:publication
>wrox publication</
d:publication
>
11.
</
d:books
>
12.
</
booksName
>
এটা গেল প্রিফিক্স নেমস্পেস। আপনি চাইলে প্রিফিক্স নাও দিতে পারেন, তখন এটার নাম ডিফল্ট নেমস্পেস যেমন
01.
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
02.
<
booksName
xmlns
=
"https://www.smhamiri.com/2024/10/xml-xml-syntax-rule.html"
03.
xmlns:d
=
"http://www.w3.org/TR/html4/"
>
04.
<
books
>.
05.
<
name
>Professional PHP6</
name
>
06.
<
publication
>wrox publication</
publication
>
07.
</
books
>
08.
<
d:books
>
09.
<
d:name
>Professional PHP6</
d:name
>
10.
<
d:publication
>wrox publication</
d:publication
>
11.
</
d:books
>
12.
</
booksName
>
যেটার নাম দেইনি সেটা এখন ডিফল্ট নেমস্পেস।