با سلام خدمت کاربران گرامی سایت پی وی لرن و علاقمندان و کاربرانی که علاقمند به یادگیری دوره XML هستند. در جلسه گذشته با ویژگی های XML آشنا شدیم و تفاوت آن ها را با عناصر XML آموختیم. در این جلسه علاقمندان این سری آموزشی، آموزش کار با Namespaces ها در XML را به شما ارائه خواهد کرد.
Namespaces ها در XML روشی برای جلوگیری از تضاد نام ها و عناوین است.
آموزش کار با Namespaces ها در XML به این دلیل ارائه می شود که از تضاد نام ها در XML جلوگیری شود.
در XML نام عناصر توسط توسعه دهندگان تعریف می شود و این مسئله اغلب در هنگام ترکیب اسناد XML با اپلیکیشن ها و برنامه های مختلف XML موجب بروز مشکلاتی می شود.
این نوع از XML ها، اطلاعات دسته بندی شده HTML را انتقال می دهند.
1 2 3 4 5 6 | <table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table> |
این نوع XML حاوی اطلاعات دسته بندی شده راجع به ( وسایل منزل است ).
1 2 3 4 5 | <table> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table> |
اگر این تکه های XML با یکدیگر ترکیب شوند، یک تضاد از نام ها را به وجود می آوردند.
هر دو این اسناد XML شامل عنصر مشترک <table> هستند اما این عنصر مشترک در هر کدام از این دو سند هم از لحاظ معنا و هم محتوا با یکدیگر متفاوتند.
یک کاربر یا یک برنامه مبتنی بر XML نمی دانند چگونه این تفاوت ها را کنترل کنند.
می توان با استفاده از یک اسم پیشوند ( prefix ) به راحتی از برزو اختلاف و تضاد نام ها در XML جلوگیری کرد.
این XML اطلاعاتی را در مورد یک HTML دسته بندی شده در رابطه با یک سری وسایل منزل انتقال می دهد.
1 2 3 4 5 6 7 8 9 10 11 12 | <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 باید یک Namespaces برای آن تعریف شود و برای این کار می توان از ویژگی xlmns در تگ شروع یک عنصر استفاده کرد.
اعلان Namespaces دارای ترکیب این چنینی است: xmlns:prefix=”URI
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <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 یک پیشوند Namespaces محسوب می شود.
ویژگی xmlns در دومین عنصر <table>، حرف f نیز یک پیشوند محسوب می شود.
وقتی یک Namespaces برای یک عنصر تعریف می شود؛ همه زیر عناصر آن که پیشوند مشابه آن را دارند به همان Namespaces مرتبط می شوند.
Namespaces ها همچنین می توانند در ریشه عنصر XML شناسایی شده و به کار روند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <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> |
در Namespaces نمی توان از URI برای تجزیه و تحلیل اطلاعات استفاده کرد زیرا هدف استفاده از URI دادن اسم منحصر به فرد به Namespaces است.
با این حال، شرکت ها اغلب از Namespaces به عنوان یک اشاره گر به یک صفحه وب که خود حاوی اطلاعات Namespaces هستند استفاده می کنند.
یک منبع مشخص کننده یکسان(URI) در واقع یک رشته از کاراکترهای مشخص برای شناسایی یک منیع اینترنتی است.
رایج ترین URI ها Uniform Resource Locator یا منابع یکسان جایگزین شونده ( به اختصار URL ها ) هستند که آدرس دامنه های اینترنتی را شناسایی می کنند.
Uniform Resource Locator یا (URN) ها نیز از دیگر URI های نه چندان رایج هستند.
از Namespaces های پیش فرض برای ذخیره سازی پیشوند ها در کلیه زیر عنصرها استفاده می شود و از ترکیب زیر برخوردار است:
1 | xmlns="namespaceURI" |
این XML اطلاعات دسته بندی شده HTML را انتقال می دهند:
1 2 3 4 5 6 | <table xmlns="http://www.w3.org/TR/html4/"> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table> |
این XML نیز اطلاعاتی را راجع به مبلمان انتقال می دهد:
1 2 3 4 5 | <table xmlns="https://www.w3schools.com/furniture"> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table> |
XSLT یک زبان است که می تواند برای تبدیل اسناد XML به فرمت های دیگر مورد استفاده قرار گیرد.
سند XML زیر، یک سند است که برای تبدیل XML به HTML استفاده می شود.
Namespaces در “http://www.w3.org/1999/XSL/Transform” عناصر XSLT را درون سند HTML زیر شناسایی می کند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <?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> |
در این جلسه آموزش کار با Namespaces ها را در XML به علاقمندان این دوره ارائه کردیم.
در جلسه بعدی به نحوه نمایش XML خواهیم پرداخت.
با پی وی لرن همراه باشید.