Има ситуации, в които човек може да не иска добре оформен XML - тази, с която се сблъсках аз (и може би оригиналният автор), използваше техниката For XML Path, за да върне списък с едно поле с „дете“ елементи чрез рекурсивна заявка. Повече информация за тази техника има тук (по-специално в секцията „XML методите на черната кутия“):Свързване на стойности на редове в Transact-SQL
За моята ситуация да видя „H&E“ (патологично петно) трансформирано в „добре оформен XML“ беше истинско разочарование. За щастие намерих решение... следващата страница ми помогна да разреша този проблем сравнително лесно и без да преархитекирам моята рекурсивна заявка или да добавя допълнителен анализ на ниво презентация (за това, както и за други/бъдещи ситуации, в които детето ми -редовете с данни съдържат запазени XML знаци):Обработка на специални знаци с FOR XML PATH
РЕДАКТИРАНЕ:код по-долу от цитираната публикация в блога.
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;