Cosa sono 'xmlns' e 'xsi:schemaLocation' nei file XML?
Data di pubblicazione:
Aggiornato:
Articoli > Cosa sono 'xmlns' e 'xsi:schemaLocation' nei file XML?
2026 stato e uso sicuro
Conclusione: xmlns lega uno spazio di nome prefisso o predefinito a un URI così i nomi degli elementi rimangono inequivocabili. xsi:schemaLocation è solo un suggerimento che accoppia URI namespace con le posizioni dello schema; il comportamento di validazione dipende ancora dal processore XML.
Cosa imparerai
- Come gli spazi di nome predefinito e prefissati cambiano il nome espanso di un elemento.
- Perché un URI namespace è un identificatore e non deve restituire una pagina web.
- Come?
xsi:schemaLocationdifferisce daxsi:noNamespaceSchemaLocation.
Destinatari: Gli sviluppatori che leggono Maven, Spring, SOAP o altri file di configurazione XML.
Nota di aggiornamento (2026): Le regole W3C namespace e XML Schema rimangono l'autorità. Trattare le posizioni degli schemi remoti come input non fidato ed evitare a seconda del recupero della rete durante la fase di produzione.
Nota di sicurezza: i comandi e gli esempi di configurazione dell'articolo originale non sono stati rieseguiti in un ambiente di produzione moderno. Prima di applicarli, verifica versioni supportate, backup, controlli di accesso e procedura di rollback in un ambiente di prova isolato.
Fonti primarie ufficiali
Panoramica
Nei file XML si vedono "xmlns", "xsi:schemaLocation", ecc. e questa sezione spiega il loro significato.
Indice dei contenuti
1. Che cos'è un file XML?
XML è l'acronimo di Extensible Markup Language ed è specificato dal World Wide Web Consortium (W3C). Per specifiche più dettagliate, diverse da "xmlns" e "xsi:schemaLocation", si rimanda ai seguenti siti.
1-1. Cosa sono "xmlns" e "xsi:schemaLocation"?
L'esempio seguente è un esempio della prima descrizione di un file XML quando si utilizza il framework Spring per lo sviluppo di applicazioni Java.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd">
In conclusione, 'xmlns' e 'xsi:schemaLocation' sono impostazioni per le definizioni di come viene scritto XML. Nello sviluppo di applicazioni Java, il framework Spring esegue l'elaborazione sulla base dei dati contenuti in questo file XML. Se non esiste una definizione di come scrivere XML, è difficile sapere come scriverlo. Quindi, per esempio, definiscono che "si può definire l'attributo id nel tag bean" e "si può definire il tag constructor-arg nel tag interno del tag bean".
1-2. Che cos'è xmlns?
xmlns si riferisce allo "spazio dei nomi XML". In breve, uno spazio dei nomi è un ID, cioè un valore che identifica in modo univoco.
Riprendendo l'esempio precedente di "xmlns="http://www.springframework.org/schema/beans"", "http://www.springframework.org/schema/beans" è lo spazio dei nomi, cioè il valore che identifica in modo univoco Il valore è.
Si tratta di un URL, ma quando il programma lo elabora, non viene elaborato come URL, bensì come ID. Pertanto, il processo viene eseguito trovando il file XSD (file di definizione XML) in cui "http://www.springframework.org/schema/beans" è definito come ID e verificando se è descritto come definito nel file XSD. Il processo viene eseguito cercando un file XSD (file di definizione XML) con "" definito come ID e controllando se è descritto come definito nel file XSD. Nel caso di Spring, il file XSD è anche memorizzato come set nel file jar.
1-3. Che cos'è "xmlns:xsi"?
'xmlns', 'xmlns:xsi', ecc. per evitare definizioni duplicate. Ad esempio, se lo stesso tag di esempio è definito in "xmlns" e in "xmlns:xsi", non è possibile determinare quale definizione sia descritta. Pertanto, è possibile distinguere tra le definizioni "xmlns" e "xmlns:xsi" per "sample" e "xsi:sample" per "xmlns:xsi". In altre parole, quelli con "xmlns="~"" sono i valori predefiniti, mentre quelli con "xmlns:xxxx="~"" devono essere definiti come "xxxx:tag name".
2. sintesi
'xmlns' e 'xsi:schemaLocation' sono impostazioni del file di definizione per scrivere correttamente i file XML.