گروه مقاله : طراحی سایت
تاريخ انتشار : 1396/06/26 - 11:12
كد :7853

فضاهای نامی XML

در این مقاله به نحوه جلوگیری از مشکلات احتمالی از هم نام بودن دو تگ در دو فایل XML که همزمان به یک نرم افزار فراخوانی میشود را آموزش داده ایم.

آموزش فضاهای نامی در XML

فضاهای نامی برای پیشگری از تداخل نامها راهکارهایی برای XML ارائه میدهد.

تداخل نام

در تگ های XML نام توسط توسعه دهنده انتخاب می شود. این میتواند موجبات تداخلاتی در هنگام ترکیب دو XML در یک نرم افزار شود.

در این XML اطلاعات یک جدول نگه داری میشود.

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

این کدها هم اطلاعاتی در باره یک جدول با اطلاعاتی در باره مبلمان در خود نگه میدارند.

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

اگر این دو XML در یک نرم افزار فراخوانی شوند به دلیل هم نام بودن تگ table تداخل ایجاد خواهد شد.

یک کاربر یا یک نرم افزار تفاوتی میان این دو تگ نمی تواند پیدا کند

برطرف کردن مشکل تداخل نام با پسوند

با قراردادن پسوند میتوان از تداخلات احتمالی نام پیشگیری کرد

در مثال زیر ما اطلاعات یک جدول 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: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.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 دادن یک نام منحصر به فرد به فضای نامی است.

هرچند ، شرکت ها از فضای نامی برای لینک به صفحات خود استفاده می کنند .

Uniform Resource Identifier (URI):

شناسه منابع یکسان یا uri یک رشته از کاراکترها است که به عنوان منابع اینترنتی مشخص میشود.

بیشتر شناسه های منابع یکسان یا uri ها در واقع Uniform Resource Locator (URL) یا آدرس صفحات اینترنت هستند، استفاده از شناسه منابع یکسان یا uri بصورت Universal Resource Name (URN). چندان رایج نیست.

 فضاهای نامی پیشفرض

تعریف یک فضای نامی پیشفرض برای یک تگ ما را از تایپ آن در تک تک تگ های فرزندان بی نیاز می کند.

xmlns="namespaceURI"

در مثال زیر ما یک XML با محتوای اطلاعات یک جدول HTML را تعریف کرده ایم.

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

مثال زیر هم اطلاعات جدولی که دارای اطلاعاتی درباره مبلمان است را نشان میدهد.

<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>

 

براي بهره مندي از مشاوره تخصصي در زمینه طراحی سایت در کرج با شرکت سارگون تماس بگيريد

نظرات كاربران :