Perché abbiamo bisogno di URI per gli spazi dei nomi XML?

21

Sto cercando di capire perché abbiamo bisogno di URI per gli spazi dei nomi XML e non riesco a trovare uno scopo per questo. Qualcuno può illuminarmi un po 'mostrando il loro uso su un esempio concreto?

Modifica

Ok, per esempio: ho questo da w3schools

<root
xmlns:h="http://www.w3.org/TR/html4/"
 xmlns:f="http://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>

Quindi cosa dovrebbe contenere http://www.w3schools.com/furniture ?

    
posta Patryk 28.11.2011 - 04:36
fonte

4 risposte

19

Un spazio dei nomi è un modo per dire "Questo tipo di Foo" è diverso da "Quel tipo di Foo", anche se sono stati scritti nello stesso modo. Oppure, se preferisci " IL MIO tipo di Foo" è diverso da " Tutti gli altri tipo di Foo".

Il modo tecnico per dire questo è "L'URI di il mio spazio dei nomi per Foo" è diverso da tutti gli altri URI per il loro spazio dei nomi per Foo. In altre parole, gli URI sono solo stringhe che ti permettono di dirlo.

Il trucco è quindi dire "Ehi, gli URL sono URI validi", e quindi utilizzare un URI corrispondente a un URL sotto il tuo controllo. Se tutti lo fanno, eviterai le collisioni accidentali nello spazio dei nomi. Avresti anche potuto dire namespace "A" e namespace "B", ma rischi che qualcuno userebbe lo stesso spazio dei nomi, e quindi il tuo tipo di Foo non è più diverso dal loro Foo che è esattamente quello che vuoi evitare .

È quindi possibile aggiungere ulteriori convenzioni agli URL utilizzati come URI, ad esempio che l'URL deve corrispondere a una pagina contenente documentazione o XSD o simili, ma ciò non è necessario. È semplicemente conveniente.

    
risposta data 28.11.2011 - 05:05
fonte
15

In termini generali, qualsiasi identificatore univoco dovrebbe servire per uno spazio dei nomi; ma dal momento che dovrebbe essere globalmente univoco , lo standard dovrebbe o imporre un'autorità di arbitraggio, o usare un'altra risorsa che è allo stesso tempo globalmente unica ma facile da ottenere e dimostrare che è tua.

Oh, guarda! se hai un dominio, è ovviamente solo tuo ed è facile dimostrare che è tuo!

Ad esempio, volevano evitare la situazione in cui due diversi bookstore iniziassero a usare "libri" come spazio dei nomi, con definizioni interne totalmente diverse. Mentre lo usano internamente, non c'è nessun problema; ma non appena uno di loro vuole pubblicare le loro specifiche, si scatena l'inferno.

Invece, se sei incoraggiato ad usare il tuo dominio, chiunque (beh, chiunque possieda un dominio) può definire il proprio spazio dei nomi privato con la certezza che nessun altro utilizzerà lo stesso identico identificatore.

Come bonus, puoi opzionalmente memorizzare la definizione del tuo spazio dei nomi nell'URI, rendendola autodocumentante.

Mi sembra una grande idea.

    
risposta data 28.11.2011 - 04:46
fonte
1

DOM Level 2 was published in late 2000. It introduced the "getElementById" function as well as an event model and support for XML namespaces and CSS.

Quale xmlIns specifica?
Come nodi attributo denominati "xmlns" o "xmlns: xxx", esattamente come gli spazi dei nomi sono scritti nel documento XML di origine. Questo è il modello presentato da DOM.

Che cos'è l'URI?
Uno spazio dei nomi XML viene dichiarato utilizzando il pseudo-attributo XML riservato xmlns o xmlns: prefisso, il cui valore deve essere un nome di spazio dei nomi valido.

Ad esempio, la seguente dichiarazione mappa il prefisso "xhtml:" allo spazio dei nomi XHTML:

xmlns:xhtml="http://www.w3.org/1999/xhtml"

Come ho scoperto dopo aver letto l' articolo su Wikipedia. URI contiene le specifiche in formato XML dello spazio dei nomi e fornisce un metodo per evitare conflitti tra i nomi degli elementi.

Potresti sapere che il documento xml utilizza XML Schema per la struttura elemento / tabella / classe degli elementi del documento XML.

che cosa dovrebbe contenere link ?

La risposta è sulla tua pagina dove hai imparato a conoscere lo spazio dei nomi XML. Controlla la sezione Namespaces in Real Use su questo articolo .

di W3Schools.

Controlla il seguente link di StackOverflow che mostra alcuni esempi di ciò che porta questo URI:

Come creare e utilizzare lo spazio dei nomi XML?

    
risposta data 28.11.2011 - 08:17
fonte
-1

URI = nome o identificatore univoco globale dello spazio dei nomi

Considera la possibilità di creare un database o un documento sulla gestione finanziaria della logistica dell'industria petrolifera. Avrebbe bisogno di usare vocabolari specifici (cioè termini controllati) per ciascuno dei soggetti: database, documenti, gestione, finanza, logistica, petrolio e industria.

Se nessuno dei termini si sovrappone a questi sette vocabolari, è necessario un solo URI. Tuttavia, per ogni termine che si sovrappone ad altri termini in questi vocabolari, è necessario un vocabolario aggiuntivo specifico per soggetto identificato in un URI o in un IRI. Un modo per aggirare questo è creare una tassonomia unita, con termini generali più ampi e termini specifici per soggetto più ristretti.

Questo potrebbe quindi essere espanso in un thesaurus che mostra anche i sinonimi gergali di un termine e consente di specificare un termine preferito tra quei sinonimi gergali.

    
risposta data 09.04.2016 - 18:56
fonte

Leggi altre domande sui tag