Provo a portare un esempio all'acqua di rose, visto che comunque le mie conoscenze in merito non sono approfondite.
Facciamo caso di avere due strutture e due dialetti XML distinti:
codice:<prodotto> <nome>Aceto</nome> <anno>1999</anno> </prodotto> codice:<classe> <sezione>C</sezione> <anno>2000</anno> </classe>
Notiamo come entrambe abbiano il marcatore anno: il primo indica l'anno di fabbricazione del prodotto, il secondo l'anno in cui la classe di alunni ha terminato il ciclo di studi.
Finchè i due linguaggi non entrano in contatto tra di loro non vi è alcun problema. Nell'eventualità, però, che essi debbano essere utilizzati in una unica struttura di markup, ci vorrebbe un modo per dire a quale collezione ogni marcatore 'anno' appartiene, appunto per evitare l'ambiguità.
A tal scopo nascono i namespace, che altro non sono se non dei nomi univoci per identificare una collezione, e si scrivono nella forma di URI (Uniform Resource Identifier).
Insomma, visto che XML è un linguaggio per creare arbitrariamente altri linguaggi, e può capitare che due persone chissà dove nel mondo utilizzino uno stesso nome per un marcatore, i namespace servono a dire: 'In questa struttura, questo marcatore è riferito a questo linguaggio specifico'.
Per approfondire:
- www.w3.org/TR/REC-xml-names/
![]()

Rispondi quotando