Spazi di nomi XML
- Pagina precedente Attributi XML
- Pagina successiva Visualizzazione XML
Il namespace XML fornisce un metodo per evitare i conflitti di nomi degli elementi.
Conflitto di nomi
In XML, i nomi degli elementi sono definiti dallo sviluppatore. Quando due documenti diversi utilizzano lo stesso nome di elemento, si verifica un conflitto di nomi.
Questo documento XML trasporta informazioni su una tabella:
<table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
Questo documento XML contiene informazioni sulla tavola (un mobile):
<table> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
Se questi due documenti XML vengono utilizzati insieme, a causa dell'esistenza di elementi <table> con contenuti e definizioni diversi in entrambi i documenti, si verifica un conflitto di nomi.
L'utente o l'applicazione XML non può determinare come gestire questo tipo di conflitto.
Risoluzione dei conflitti di nomi utilizzando prefissi
L'uso di prefissi può evitare facilmente i conflitti di nomi nell'XML.
Questo XML contiene informazioni sull'HTML tabella e su un mobile:
<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>
Ora, non esistono conflitti di nomi, poiché entrambi i documenti hanno utilizzato nomi diversi per i loro elementi <table> (<h:table>
e <f:table>
)。
Utilizzando prefissi, abbiamo creato due tipi diversi di elementi <table>.
Namespace XML - attributo xmlns
Quando si utilizza un prefisso in XML, è necessario definire il prefissoSpazio nome(Namespaces)。
Gli spazi nomi possono essere definiti nel tag di inizio dell'elemento xmlns
l'attributo per definire.
La dichiarazione dello spazio nome utilizza questa sintassi: xmlns:prefisso="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.codew3c.com/furniture"> <f:name>African Coffee Table</f:name> <f:width>80</f:width> <f:length>120</f:length> </f:table> </root>
Nell'esempio sopra:
il primo elemento <table>; xmlns
l'attributo è h:
Il prefisso fornisce uno spazio nome limitato.
il secondo elemento <table>; xmlns
l'attributo è f:
Il prefisso fornisce uno spazio nome limitato.
Se un elemento ha definito uno spazio nome, tutti i sottoelementi con lo stesso prefisso sono associati allo stesso spazio nome.
Gli spazi nomi possono anche essere dichiarati nell'elemento radice XML:
<root xmlns:h="http://www.w3.org/TR/html4/"> xmlns:f="https://www.codew3c.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>
Attenzione:Il parser non utilizza l'URI dello spazio nome per cercare informazioni.
L'obiettivo dell'uso di URI è solo fornire un nome unico per gli spazi nomi.
Tuttavia, molte aziende spesso utilizzano gli spazi nomi come puntatori per indicare pagine web esistenti che contengono informazioni sull' spazio nome.
Identificatore risorsa uniforme (URI)
Identificatore risorsa uniforme (Identificatore risorsa uniforme,URI) è una stringa che identifica le risorse Internet.
Il tipo URI più comune èLocalizzatore risorsa uniforme (Localizzatore risorsa uniforme,URL) e identifica gli indirizzi di dominio Internet.
Un altro tipo meno comune di URI èNome risorsa uniforme (Nome risorsa uniforme,URN)。
Nominativo predefinito (Default Namespaces)
Definire uno spazio di nomi predefinito per l'elemento ci permette di evitare l'uso del prefisso in tutti i sottoelementi.
Utilizza la seguente sintassi:
xmlns="namespaceURI"
Questo documento XML contiene informazioni sulla tabella HTML:
<table xmlns="http://www.w3.org/TR/html4/"> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
Questo XML contiene informazioni su un pezzo di mobilia:
<table xmlns="https://www.codew3c.com/furniture"> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
Applicazione effettiva degli spazi di nomi
XSLT è un linguaggio utilizzato per convertire documenti XML in altri formati.
Il documento XML sottostante viene utilizzato per trasformare XML in HTML.
Se osservi attentamente il documento XSLT sottostante, vedrai che la maggior parte dei tag sono tag HTML.
Tutti i tag non HTML hanno un prefisso xsl, identificato dallo spazio dei nomi: "http://www.w3.org/1999/XSL/Transform":
Lo spazio di nomi "http://www.w3.org/1999/XSL/Transform" identifica gli elementi XSLT nel documento 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>
Se desideri approfondire ulteriormente le informazioni su XSLT, leggi il nostro Tutorial XSLT.
- Pagina precedente Attributi XML
- Pagina successiva Visualizzazione XML