XML სახელის სივრცეები - w3schools.com

XML Namespaces


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 ფრაგმენტში ინფორმაცია მოცემულია 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>

კონფლიქტი ამ XML ფრაგმენტში აღარ წარმოიშვება, რადგან ელემენტს <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="http://www.w3schools.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: და f: განუსაზღვრავს კვალიფიცირებულ სახელების სივრცეებს.

როდესაც სახელის სივრცე განსაზღვრულია ელემენტისთვის, ყველა მისი შვილობილი ელემენტი იმავე პრეფიქსით ასოცირებულია იმავე სახელის სივრცესთან.

სახელის სივრცე შეიძლება განისაზღვროს უშუალოდ იმ ელემენტში, რომელშიც გამოიყენება ან XML-ის <root> ელემენტში.

<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="http://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 ვერ იქნება გამოყენებული ინფორმაციის მოსაძიებლად ანალიზატორის მიერ.

მთავარი მიზანი არის სახელის სივრცისთვის უნიკალური სახელწოდების მინიჭება. თუმცა, ხშირად კომპანიები სახელის სივრცეებს იყენებენ იმ სივრცეზე მისათითებლად, სადაც დევს ინფორმაცია სახელის სივრცის შესახებ.

სცადეთ ამ ბმულზე გადასვლა http://www.w3.org/TR/html4/.


Uniform Resource Identifier (URI)

Uniform Resource Identifier (URI) არის სიმბოლოებისაგან შემდგარი ფრაზა, რომელიც ახდენს ინტერნეტ რესურსის იდენტიფიცირებას.

URI-ის ყველაზე გავრცელებული ფორმაა Uniform Resource Locator (URL), რომელიც განსაზღვრავს ინტერნეტის დომენის მისამართს. URI-ის მეორე, არც ისე გავრცელებული ფორმა, არის Universal Resource Name (URN).

ჩვენს მაგალითებში გამოყენებულია მხოლოდ URL-ები.


ნაგულისხმევი სახელის სივრცეები

ელემენტისთვის ნაგულისხმევი სახელის სივრცის განსაზღვრა საშუალებას გვაძლევს აღარ გამოვიყენოთ პრეფიქსები შვილობილ ელემენტებში. მას აქვს შემდეგი სინტაქსი:

xmlns="namespaceURI"

ამ XML ფაილში მოცემულია ინფორმაცია HTML ცხრილის შესახებ:

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

ამ XML-ს მოჰყვება ინფორმაცია მაგიდის შესახებ:

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


სახელის სივრცეები რეალურ გამოყენებაში

XSLT არი XML ენა, რომელიც შეიძლება გამოყენებული იყოს XML დოკუმენტების სხვა ფორმატებში, მაგალითად, HTML-ში გადასაყვანად.

ქვემოთ მოყვანილ XSLT დოკუმენტში, თქვენ დაინახავთ, რომ ტეგების უმრავლესობა HTML ტეგებია.

ტეგები, რომლებიც არ არის HTML ტეგები, მონიშნულია პრეფიქსით xsl, რომელიც განსაზღვრულია სახელის სივრცით: xmlns:xsl="http://www.w3.org/1999/XSL/Transform":

<?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-ის შესახებ, მოიძიეთ შესაბამისი ტუტორიალი ჩვენს ვებგვერდზე.

Last modified: კვირა, თებერვალი 9 2014, 9:42