XML nomlar fazolari
XML nomlar fazolari element nomlaridagi to‘qnashuvlarning oldini olish usulini taqdim etadi.
Nomlar to‘qnashuvi
XML’da element nomlarini dasturchi belgilaydi. Bu ko‘pincha turli XML ilovalaridagi XML hujjatlarini aralashtirishga uringanda to‘qnashuvga olib keladi.
Bu XML HTML jadvali haqidagi ma’lumotni tashiydi:
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>Bu XML table — stol (mebel buyumi) haqidagi ma’lumotni tashiydi:
<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>Agar bu XML qismlari birlashtirilsa, nomlar to‘qnashuvi yuzaga keladi. Ikkalasida ham <table> elementi bor, ammo bu elementlarning tarkibi va ma’nosi turlicha.
Foydalanuvchi yoki XML ilovasi bu farqlarni qanday hal qilishni bilmaydi.
Nomlar to‘qnashuvini prefiks yordamida hal qilish
XML’da nomlar to‘qnashuvining oldini nom prefiksi yordamida osongina olish mumkin.
Bu XML HTML jadvali va mebel buyumi (stol) haqidagi ma’lumotni tashiydi:
<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>Yuqoridagi misolda to‘qnashuv bo‘lmaydi, chunki ikkala <table> elementining nomlari turlicha.
XML nomlar fazolari - xmlns atributi
XML’da prefikslardan foydalanganda prefiks uchun nomlar fazosi belgilanishi kerak.
Nomlar fazosini elementning boshlang‘ich tegidagi xmlns atributi orqali belgilash mumkin.
Nomlar fazosini e’lon qilish quyidagi sintaksisga ega. 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>Yuqoridagi misolda:
Birinchi <table> elementidagi xmlns atributi h: prefiksiga malakali (qualified) nomlar fazosini beradi.
Ikkinchi <table> elementidagi xmlns atributi f: prefiksiga malakali (qualified) nomlar fazosini beradi.
Element uchun nomlar fazosi belgilanganda, xuddi shu prefiksga ega barcha bola elementlar ham shu nomlar fazosiga bog‘lanadi.
Nomlar fazolarini XML ildiz elementida ham e’lon qilish mumkin:
<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>Eslatma: Parser nomlar fazosi URI’sidan ma’lumot izlash uchun foydalanmaydi.
URI’dan foydalanishdan maqsad — nomlar fazosiga noyob nom berish.
Biroq kompaniyalar ko‘pincha nomlar fazosidan nomlar fazosi haqidagi ma’lumotlar joylashgan veb-sahifaga ko‘rsatkich sifatida foydalanadi.
Uniform Resource Identifier (URI)
Uniform Resource Identifier (URI) — internet resursini aniqlaydigan belgilar ketma-ketligi.
Eng keng tarqalgan URI — internet domen manzilini aniqlaydigan Uniform Resource Locator (URL). URI’ning unchalik keng tarqalmagan yana bir turi — Uniform Resource Name (URN).
Standart nomlar fazolari
Element uchun standart nomlar fazosini belgilash bizni barcha bola elementlarda prefikslardan foydalanishdan xalos qiladi. U quyidagi sintaksisga ega:
xmlns="namespaceURI"Bu XML HTML jadvali haqidagi ma’lumotni tashiydi:
<table xmlns="http://www.w3.org/TR/html4/">
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>Bu XML mebel buyumi haqidagi ma’lumotni tashiydi:
<table xmlns="https://www.w3schools.com/furniture">
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>Nomlar fazolarining amalda qo‘llanilishi
XSLT — XML hujjatlarini boshqa formatlarga o‘zgartirish uchun ishlatilishi mumkin bo‘lgan til.
Quyidagi XML hujjat XML’ni HTML’ga o‘zgartirish uchun ishlatiladigan hujjatdir.
"http://www.w3.org/1999/XSL/Transform" nomlar fazosi HTML hujjat ichidagi XSLT elementlarini aniqlaydi:
<?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 haqida ko‘proq bilmoqchi bo‘lsangiz, XSLT darsligimizni o‘qing.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
