Ci sono situazioni in cui una persona potrebbe non volere un XML ben formato:quello che io (e forse il poster originale) ho incontrato stava usando la tecnica For XML Path per restituire un elenco a campo singolo di elementi "figli" tramite una query ricorsiva. Maggiori informazioni su questa tecnica sono disponibili qui (in particolare nella sezione "I metodi XML della blackbox"):Concatenamento di valori di riga in Transact-SQL
Per la mia situazione, vedere "H&E" (una macchia di patologia) trasformata in "XML ben formato" è stata una vera delusione. Fortunatamente, ho trovato una soluzione... la pagina seguente mi ha aiutato a risolvere questo problema in modo relativamente semplice e senza dover riprogettare la mia query ricorsiva o aggiungere ulteriori analisi a livello di presentazione (per questo e per altre/future situazioni in cui mio figlio -i campi dati righe contengono caratteri XML riservati):Gestione di caratteri speciali con FOR XML PATH
EDIT:codice qui sotto dal post del blog di riferimento.
select
stuff(
(select ', <' + name + '>'
from sys.databases
where database_id > 4
order by name
for xml path(''), root('MyString'), type
).value('/MyString[1]','varchar(max)')
, 1, 2, '') as namelist;