Codifica e decodifica dei nomi di elementi e attributi XML e dei valori dell'ID

I nomi di elementi e attributi o valori ID sono limitati all'intervallo dei caratteri XML come specificato nella versione 1.0 di Extensible Markup Language (XML) (seconda edizione) disponibile all'indirizzo www.w3.org/TR/2000/REC-xml-20001006.html. Quando nei nomi sono contenuti caratteri non validi, vengono utilizzati metodi di codifica e decodifica per tradurli in nomi XML validi.

In molti linguaggi e applicazioni quali Microsoft SQL Server e Microsoft Word, nei nomi è consentito l'uso di caratteri Unicode che non sono validi nei nomi XML. Se ad esempio, Dettagli ordine fosse l'intestazione di una colonna all'interno di un database, quest'ultimo consentirebbe di inserire uno spazio tra Dettagli e ordine, mentre, in XML, lo spazio tra le due parole è considerato un carattere XML non valido. Quindi, lo spazio, il carattere non valido, deve essere convertito in una codifica con sequenza di escape esadecimale che potrà essere decodificata in un secondo momento.

Per impostazione predefinita, i controlli sui caratteri non vengono eseguiti dalla classe XmlTextWriter. Nel codice WriteElementString("Order Detail","My order"); ad esempio, viene prodotto un elemento non valido di <Order Detail>My order</Order Detail>.

Per codificare il valore dell'elemento, la codifica corretta è la seguente: writer.WriteElementString(XmlConvert.EncodeName("Order Detail"), "My order") con la quale viene prodotto l'elemento valido <Order_0x0020_Detail>My order</Order_0x0020_Detail>.

Vedere anche

Conversione dei tipi di dati XML