XML Naamruimtes
XML-naamruimtes bied 'n metode om elementnaamkonflik te vermy.
Naamkonflikte
In XML word elementname deur die ontwikkelaar gedefinieer. Dit lei dikwels tot 'n konflik wanneer probeer om XML-dokumente van verskillende XML-toepassings te meng.
Hierdie XML dra HTML-tabelinligting:
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
Hierdie XML bevat inligting oor 'n tafel ('n meubelstuk):
<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
As hierdie XML-fragmente saamgevoeg word, sal daar 'n naamkonflik wees. Beide bevat 'n <table> element, maar die elemente het verskillende inhoud en betekenis.
'n Gebruiker of 'n XML-toepassing sal nie weet hoe om hierdie verskille te hanteer nie.
Los die naamkonflik op met 'n voorvoegsel
Naamkonflikte in XML kan maklik vermy word deur 'n naamvoorvoegsel te gebruik.
Hierdie XML bevat inligting oor 'n HTML-tabel en 'n meubelstuk:
<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>
In die voorbeeld hierbo sal daar geen konflik wees nie, want die twee <table>-elemente het verskillende name.
XML-naamruimtes - Die xmlns-kenmerk
Wanneer voorvoegsels in XML gebruik word, moet 'n naamspasie vir die voorvoegsel gedefinieer word.
Die naamruimte kan gedefinieer word deur 'n xmlns -kenmerk in die beginmerker van 'n element.
Die naamruimteverklaring het die volgende sintaksis. xmlns: voorvoegsel =" 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>
In die voorbeeld hierbo:
Die xmlns-kenmerk in die eerste <table>-element gee die h:-voorvoegsel 'n gekwalifiseerde naamruimte.
Die xmlns-kenmerk in die tweede <table>-element gee die f:-voorvoegsel 'n gekwalifiseerde naamruimte.
Wanneer 'n naamruimte vir 'n element gedefinieer word, word alle kinderelemente met dieselfde voorvoegsel met dieselfde naamspasie geassosieer.
Naamruimtes kan ook in die XML-wortelelement verklaar word:
<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>
Let wel: Die naamruimte-URI word nie deur die ontleder gebruik om inligting op te soek nie.
Die doel van die gebruik van 'n URI is om die naamruimte 'n unieke naam te gee.
Maatskappye gebruik egter dikwels die naamruimte as 'n wyser na 'n webblad wat naamruimte-inligting bevat.
Uniform Resource Identifier (URI)
'n Uniform Resource Identifier (URI) is 'n string karakters wat 'n internethulpbron identifiseer.
Die mees algemene URI is die Uniform Resource Locator (URL) wat 'n internetdomeinadres identifiseer. 'n Ander, nie so algemene tipe URI nie, is die Uniform Resource Name (URN).
Verstek naamruimtes
Definieer 'n verstek naamspasie vir 'n element spaar ons daarvan om voorvoegsels in al die kind elemente te gebruik. Dit het die volgende sintaksis:
xmlns="namespaceURI"
Hierdie XML dra HTML-tabelinligting:
<table xmlns="http://www.w3.org/TR/html4/">
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
Hierdie XML bevat inligting oor 'n meubelstuk:
<table xmlns="https://www.w3schools.com/furniture">
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>
Naamruimtes in werklike gebruik
XSLT is 'n taal wat gebruik kan word om XML-dokumente in ander formate te transformeer.
Die XML-dokument hieronder is 'n dokument wat gebruik word om XML in HTML te transformeer.
Die naamspasie "http://www.w3.org/1999/XSL/Transform" identifiseer XSLT-elemente binne 'n HTML-dokument:
<?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>
As jy meer wil leer oor XSLT, lees asseblief ons XSLT-tutoriaal .