XML নামস্পেস

XML নাম জায়গা ইলেকট্রন নাম সংঘাত এড়ানোর একটি পদ্ধতি প্রদান করে。

নাম সংঘাত

XML-এ, ইলেকট্রন নামকরণ ডেভেলপার দ্বারা নির্ধারিত হয়। যখন দুইটি ভিন্ন ডকুমেন্টই একই ইলেকট্রন নাম ব্যবহার করে, তখন নাম সংঘাত হয়。

এই XML ডকুমেন্টটি কোনও টেবিলের তথ্য ধারণ করেছে:

<table>
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

এই XML ডকুমেন্টটি টেবিল (একটি মূল্যবান ফার্নিচার) সম্পর্কিত তথ্য ধারণ করেছে:

<table>
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

যদি এই দুইটি XML ডকুমেন্টকে একসঙ্গে ব্যবহার করা হয়, তবে নাম সংঘাত হবে, কারণ দুইটি ডকুমেন্টই ভিন্ন বিষয় এবং বিবরণ সহ নামকরণকৃত <table> ইলেকট্রন ধারণ করেছে。

ব্যবহারকারী বা XML অ্যাপ্লিকেশনটি এই ধরণের সংঘাতকে কিভাবে হালনাগাদ করবে তা নিশ্চিত করতে পারে না。

নাম সংঘাত সমস্যা সমাধান করতে প্রিফিক্স ব্যবহার

নাম প্রিফিক্স ব্যবহার করে XML-এ নাম সংঘাত সহজভাবে এড়ানো যায়。

এই XML এখানে হাল্কি টেবিল এবং একটি মূল্যবান ফার্নিচার সম্পর্কিত তথ্য রয়েছে:

<h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>
<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

এখন, নাম সংঘাত নেই, কারণ দুইটি ডকুমেন্টই আলাদা নাম ব্যবহার করে তাদের <table> ইলেকট্রন নাম করেছে (<h:table> এবং <f:table>)。

প্রিফিক্স ব্যবহার করে আমরা দুইটি ভিন্ন ধরণের <table> ইলেকট্রন

XML নাম জায়গা - xmlns এক্সপ্রোপ্রিয়ন

XML-তে প্রতীকী ব্যবহার করার সময়, প্রতীকীর প্রতীকীকরণ করা আবশ্যকনেমস্পেসনেমস্পেস (Namespaces)

ইউনিট শুরু ট্যাগে xmlns এটি দ্বারা নির্দিষ্ট হয়

নামস্পেস ঘোষণা এই সিন্তাক্সটিতে ব্যবহার করা হয়: xmlns:prefix="URI"。

<root>
<h:table xmlns:h="http://www.w3.org/TR/html4/">
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>
<f:table xmlns:f="https://www.codew3c.com/furniture">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>
</root>

উপরোক্ত উদাহরণে

প্রথম <table> ইউনিটে xmlns এটি হল h: প্রতীকী নির্দিষ্ট নামস্পেসকে সীমিত করে

দ্বিতীয়টি <table> ইউনিটে xmlns এটি হল f: প্রতীকী নির্দিষ্ট নামস্পেসকে সীমিত করে

যদি একটি ইউনিটে নামস্পেস নির্দিষ্ট করা হয়, তবে একই প্রতীকীর সমস্ত সাব-ইউনিটগুলি একই নামস্পেসের সাথে সংযুক্ত হয়

নেমস্পেসটি XML রূপমূল ইউনিটেও ঘোষণা করা যেতে পারে:

<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="https://www.codew3c.com/furniture">
<h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>
<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>
</root>

মন্তব্য:পার্সার নামস্পেস URI-কে তথ্য অনুসন্ধানের জন্য ব্যবহার করবে না。

URI-র উদ্দেশ্য শুধুমাত্র নামস্পেসকে একক নাম প্রদান করা

তবে, অনেক কোম্পানি নামস্পেসকে একটি সূচক হিসাবে ব্যবহার করে, যা একটি বাস্তব ওয়েবসাইটকে চিহ্নিত করে, যা নামস্পেসের বিষয়ে তথ্য ধারণ করে。

একক উপজীবী চিহ্নিতকারী (URI)

একটি একক উপজীবী চিহ্নিতকারী (Uniform Resource Identifier,URI) হল ইন্টারনেট সম্পদকে চিহ্নিত করা একটি স্ট্রিং

) সবচেয়ে সাধারণ URIএকটি একক উপজীবী লোকেশন (Uniform Resource Locator,URL),যা ইন্টারনেট ডোমেন এড্রেসকে চিহ্নিত করে。

এর মধ্যে একটি অন্যান্য অপ্রচলিত URI টাইপ হলএকটি একক উপজীবী নাম (Uniform Resource Name,URN)。

ডিফল্ট নেমস্পেস (Default Namespaces)

এলিমেন্টকে ডিফল্ট নির্দেশক্ষেত্র নির্দেশ করা করলে, আমরা সব সাব-ইলিমেন্টের জন্য প্রতীকী ব্যবহার করতে হবেন।

নিচের গঠনটি ব্যবহার করুন:

xmlns="namespaceURI"

এই XML ডকিউমেন্টটি HTML ট্যাবল তথ্য নিয়ে আছে:

<table xmlns="http://www.w3.org/TR/html4/">
  <tr>
    <td>Apples</td>
    <td>Bananas</td>
  </tr>
</table>

এই XML-এ একটি ফার্নিচার সংক্রান্ত তথ্য আছে:

<table xmlns="https://www.codew3c.com/furniture">
  <name>African Coffee Table</name>
  <width>80</width>
  <length>120</length>
</table>

নির্দেশক্ষেত্রের বাস্তব প্রয়োগ

XSLT হলো একটি ভাষা, যা XML ডকিউমেন্টকে অন্য ফরম্যাটে রূপান্তরিত করার জন্য ব্যবহৃত হয়。

নিচের এক্সএমএল ডকিউমেন্টটি XML-কে এইচএমএল-এ রূপান্তরিত করার জন্য ব্যবহৃত হয়。

আপনি যদি নিজেকে নিয়ে এইচএক্সএসএল ডকিউমেন্টটি দেখেন, তবে বেশিরভাগ ট্যাগগুলি এইচএমএল ট্যাগ হবে দেখা যাবে。

অ-এইচএমএল ট্যাগসমূহ সবাই xsl প্রতীকী দ্বারা সূচিত হয়, এবং এই নির্দেশক্ষেত্র দ্বারা: "http://www.w3.org/1999/XSL/Transform":

নির্দেশক্ষেত্র "http://www.w3.org/1999/XSL/Transform" এইচএমএল ডকিউমেন্টের XSLT ইলেকট্রনম নির্দেশ করে:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr>
      <th style="text-align:left">Title</th>
      <th style="text-align:left">Artist</th>
    </tr>
    <xsl:for-each select="catalog/cd">
    <tr>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="artist"/></td>
    </tr>
    </xsl:for-each>
  </table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>

如果您想深入学习有关 XSLT 的更多内容,请阅读我们的 XSLT 教程