Suporte a FOR XML para tipos de dados de cadeia de caracteres
No SQL Server 2000, espaços em branco eram retornados exatamente como estavam. A partir do SQL Server 2005, o XML gerado pelos caracteres de espaço em branco do FOR XML nos dados tem a entidade definida.
O exemplo a seguir cria a tabela de exemplo T e insere dados de exemplo que incluem caracteres de alimentação de linha, retorno de carro e tab. A instrução SELECT recupera os dados da tabela.
CREATE TABLE T
(
c1 int identity primary key,
c2 varchar(100)
)
go
insert T (c2) values ('Special character 0xD for carriage return ' + convert(varchar(10), 0xD) + ' after carriage return')
insert T (c2) values ('Special character 0x9 for tab ' + convert(varchar(10), 0x9) + ' after tab' )
insert T (c2) values ('Special character 0xA for line feed ' + convert(varchar(10), 0xA) + ' after line feed')
go
SELECT *
FROM T
FOR XML AUTO
go
Este é o resultado:
<T c1="1" c2="Special character 0xD for carriage return 
 after carriage return" />
<T c1="2" c2="Special character 0x9 for tab 	 after tab" />
<T c1="3" c2="Special character 0xA for line feed 
 after line feed" />
Observe o seguinte na consulta anterior:
O retorno de carro na primeira linha tem a entidade definida como 
.
O caractere tab na segunda linha tem a entidade definida como 	.
O caractere de alimentação de linha na terceira linha tem a entidade definida como 
.
No SQL Server 2000, você receberia o resultado a seguir, porque os espaços em branco não tinham a entidade definida:
<T c1="1" c2="Special character 0xD for carriage return after carriage return"/>
<T c1="2" c2="Special character 0x9 for tab after tab"/>
<T c1="3" c2="Special character 0xA for line feed
after line feed"/>