Spazi dei nomi XML e attributi non prefissati

Le specifiche di XML Namespaces spiegano che l’interpretazione degli attributi non prefissati è determinata dall’elemento su cui appaiono . E che il nome dello spazio dei nomi per un nome di attributo non prefissato non ha sempre alcun valore .

Come si applica questa regola allo spazio dei nomi dell’attributo jid nei seguenti casi.

    

Se la dichiarazione dello spazio dei nomi e dell’attributo in questione non hanno entrambi un prefisso, l’attributo jid trova nello spazio dei nomi jabber:iq:roster .

    

Se entrambi, la dichiarazione dello spazio dei nomi e l’attributo hanno lo stesso prefisso, l’attributo jid ha anche lo spazio dei nomi jabber:iq:roster :

    

Ma in quale spazio dei nomi è l’attributo se lo spazio dei nomi è dichiarato con un prefisso ma l’attributo non ha un prefisso? Immagino che l’attributo jid

  1. ha lo spazio dei nomi predefinito dichiarato in un elemento genitore,

          
  2. o nessuno spazio dei nomi, se non c’è una tale dichiarazione.

Ho capito bene?

Un attributo senza prefisso si trova sempre nello spazio dei nomi vuoto, ovvero non ha uno spazio dei nomi. Non importa se l’elemento che racchiude ha uno spazio dei nomi o meno. Questa è la mia lettura della seconda affermazione a cui ti riferisci, e questa è l’interpretazione di tutti gli strumenti XML che ho usato.

L’interpretazione normale utilizzata da XPath e altre specifiche è che un attributo non prefissato non è nello spazio dei nomi.

Ci sono avvocati linguistici che insistono sul fatto che le specifiche dei namespace non lo dicono. Dice che un attributo non prefissato si trova in qualsiasi spazio dei nomi che il progettista del vocabolario dice di essere in. Ma questa interpretazione non è molto utile nella pratica; è ciò che gli strumenti fanno che conta.