مساحات أسماء XML
توفر مساحات أسماء XML طريقة لتجنب تعارض اسم العنصر.
تعارض الأسماء
في XML ، يتم تحديد أسماء العناصر من قبل المطور. ينتج عن هذا غالبًا تعارض عند محاولة مزج مستندات XML من تطبيقات XML مختلفة.
يحمل XML هذا معلومات جدول HTML:
<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 هذا معلومات حول جدول HTML وقطعة أثاث:
<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> لهما أسماء مختلفة.
مساحات أسماء XML - سمة xmlns
عند استخدام البادئات في XML ، يجب تحديد مساحة اسم البادئة.
يمكن تحديد مساحة الاسم بواسطة سمة xmlns في علامة البداية للعنصر.
إعلان مساحة الاسم له بناء الجملة التالي. xmlns: بادئة = " 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.w3schools.com/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
في المثال أعلاه:
تعطي السمة xmlns في عنصر <table> الأول البادئة h: مساحة اسم مؤهلة.
تعطي السمة xmlns في عنصر <table> الثاني البادئة f: مساحة اسم مؤهلة.
عندما يتم تحديد مساحة اسم لعنصر ما ، فإن جميع العناصر الفرعية التي لها نفس البادئة تقترن بنفس مساحة الاسم.
يمكن أيضًا الإعلان عن مساحات الأسماء في عنصر جذر XML:
<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="https://www.w3schools.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)
معرف الموارد المنتظم (URI) هو سلسلة من الأحرف التي تحدد مورد الإنترنت.
أكثر URI شيوعًا هو محدد موقع المعلومات (URL) الذي يحدد عنوان مجال الإنترنت. نوع آخر غير شائع من URI هو اسم المورد الموحد (URN).
مساحات الأسماء الافتراضية
إن تحديد مساحة اسم افتراضية لعنصر ما يحفظنا من استخدام البادئات في جميع العناصر الفرعية. يحتوي على النحو التالي:
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.w3schools.com/furniture">
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
مساحات الأسماء في الاستخدام الحقيقي
XSLT هي لغة يمكن استخدامها لتحويل مستندات XML إلى تنسيقات أخرى.
مستند XML أدناه ، هو مستند يستخدم لتحويل XML إلى HTML.
تحدد مساحة الاسم "http://www.w3.org/1999/XSL/Transform" عناصر XSLT داخل مستند HTML:
<?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 التعليمية .