2009-09-03 12 views
8

Qualcuno sa qual è l'uso esatto di xmlns in HTML, file XML?qual è l'uso esatto di xmlns in xml e html

Modifica: Perché abbiamo bisogno di questo spazio dei nomi? Qual è il suo utilizzo?

+0

Vedere anche http://stackoverflow.com/questions/5875021/questo-è-del-uso-di-xsischemalocation/28098405#28098405 – rogerdpack

risposta

6

L'attributo xmlns dichiara un XML Namespace. Lo standard Namespaces in XML discute questo elemento in profondità.

Gli spazi dei nomi sono utilizzati principalmente per evitare conflitti tra i nomi degli elementi quando si mescolano i linguaggi XML. Se hai una particolare applicazione in cui hai domande, forse potresti pubblicare un esempio.

1

Gli spazi dei nomi consentono di ridurre l'ambiguità in caso di duplicati. Potresti avere un tag <title> che fa riferimento agli autori e al tag <title> che fa riferimento a un saluto, come Mr., Mrs. ecc. Per differenziare, puoi assegnarli a spazi dei nomi diversi.

È anche possibile utilizzare gli spazi dei nomi durante la convalida dei documenti per la conformità a un particolare standard/restrizioni, in cui lo spazio dei nomi indica a quale "schema" appartiene il documento.

2

I namespace XML aiutano a contestualizzare elementi e attributi, tra le altre cose. Offre anche un'identificazione precisa per un particolare elemento o attributo.

Ad esempio, l'elemento <html> può essere definito da chiunque e ha un significato. Tuttavia, l'elemento <html> all'interno dello spazio dei nomi http://www.w3.org/1999/xhtml è univoco e si riferisce all'XHTML.

Gli spazi dei nomi si rivelano utili anche quando si utilizza lo homographs, quando si utilizzano più linguaggi XML in un singolo file.

7

L'attributo xmlns ha una gestione speciale, che consente la dichiarazione di uno spazio dei nomi.

Tutti i nomi, come i nomi di tag, in un documento appartengono a uno spazio dei nomi. In assenza dell'attributo xmlns tutti i nomi appartengono allo spazio dei nomi "senza nome". Quindi: -

<root><item /></root> 

Nell'esempio di cui sopra sia root e item sono nomi nello spazio dei nomi "no name". Considerando quanto segue: -

<root xmlns="urn:mydomain.com:mystuff"><item /></root> 

Ora root e item esistere nella "urn: mydomain.com: MioAsk" namespace.

Il xmlns può inoltre definire ulteriori elementi namespace di cui possono essere distinti dagli altri utilizzando un prefisso alias: -

<root xmlns="urn:mydomain.com:mystuff" xmlns:a="urn:otherdomain.com:other"> 
    <item> 
     <a:supplement /> 
    </item> 
</root> 

In questo caso root e item continuano ad essere in "urna: mydomain.com : mystuff "namespace ma a:supplement indica che il nome supplement è nello spazio dei nomi" urna: otherdomain.com: altro ".

Che cosa significa?

X in XML sta per eXtensible. Un obiettivo è consentire l'aggiunta di informazioni su un documento esistente, ad esempio la possibilità di estendere il documento. Considerare: -

Parte A creare un documento: -

<root> 
    <item /> 
<root> 

Partito B estende il documento includendo ulteriori informazioni: -

<root> 
    <item /> 
    <supplement /> 
</root> 

tardi Partito Una aggiunge nuove informazioni alla loro forma originale di il documento e solo così capita di usare anche il nome supplement nel loro originale. Potremmo finire con qualcosa come: -

<root> 
    <item /> 
    <supplement /> 
    <supplement /> 
</root> 

Quale elemento di supplemento appartiene a quale parte? Utilizzando gli spazi dei nomi del documento sarebbe simile a questa: -

<root xmlns="urn:mydomain.com:mystuff" xmlns:a="urn:otherdomain.com:other"> 
    <item /> 
    <supplement /> 
    <a:supplement /> 
</root> 

Ora, quando si tratta di analisi e l'interrogazione XML suo chiaro quale elemento appartiene a chi. Gli spazi dei nomi eliminano la collisione tra ciò che altrimenti sarebbe un insieme globale di nomi semplici.

+0

Perché dovremmo utilizzare il nome di dominio come ns? Grazie ... – Tarik

+0

Quando si utilizza la forma dell'urna è consigliabile utilizzare un nome di dominio di cui si è proprietari poiché è altamente improbabile che altri utilizzino un nome di dominio che non possiedono nelle loro definizioni dell'urna. In altri casi è possibile utilizzare un URL. – AnthonyWJones

2

In HTML, xmlns è solo un talismano per semplificare lo spostamento da e verso XHTML. Non fa nulla.

Problemi correlati