XSL: evitare di esportare le definizioni dello spazio dei nomi nei documenti XML risultanti

Mi piacerebbe prendere i dati da alcuni file XML e trasformarli in un nuovo documento XML. Tuttavia, non voglio che la definizione di uno spazio dei nomi nell’XSLT si verifichi nel documento dei risultati.

In altre parole:

fonte:

 

foglio di stile:

   

risultato:

   

Sto usando msxsl per la trasformazione.

È ansible utilizzare l’attributo exclude-result-prefixes dell’elemento xsl:stylesheet per sopprimere gli spazi dei nomi dal documento di output:

    

Per sopprimere più spazi dei nomi dal documento di output, specificarli separati da spazi bianchi:

 exclude-result-prefixes="ns1 ns2 ns3" 

Dalla specifica XSLT :

Quando un foglio di stile usa una dichiarazione dello spazio dei nomi solo allo scopo di indirizzare l’albero dei sorgenti, specificare il prefisso nell’attributo exclude-result-prefixes eviterà dichiarazioni di namespace superflue nella struttura dei risultati.

la risposta di divo era già stata scelta, e in modo appropriato.

Ma se sei interessato a scavare più a fondo, controlla la sezione “Troppi spazi dei nomi” nel mio opus magnum sul tema molto popolare di “Namespace in XSLT”. (Sì, è fatto per essere ironico. :-))

use extension-element-prefixes = “Namespace”

piace: