Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Bypass CDATA transformation

2 réponses
Avatar
Lobrys
Bonjour,

Vous savez que lorsque vous faite un INSERT ou UPDATE dans un champ de type
XML dans une table, SQL Server supprime les CDATA et encode leur contenu par
les caractères html.

exemple :
CREATE TABLE #test ( xmldata xml )
INSERT INTO #test VALUES ('<test><![CDATA[test with & < >]]></test>')
SELECT xmldata FROM #test

le SELECT affiche :
<test>test with &amp; &lt; &gt;</test>

Question : Est ce qu'il est possible de configurer SQL Server pour qu'il ne
fasse pas cette transformation?

Merci d'avance!
Sylvain

2 réponses

Avatar
Sylvain Lafontaine
Je ne connais pas grand chose à l'utilisation de XML avec SQL-Server mais
d'après ce que je me souviens, il s'agit là d'un comportement normal. Le
type xmldata est un type qui indique que la valeur entrée sera parsée comme
étant du xml. Si vous ne voulez pas voir votre code parsée, vous devez
utiliser un champ caractère tel que nvarchar(max).

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


"Lobrys" wrote in message
news:
Bonjour,

Vous savez que lorsque vous faite un INSERT ou UPDATE dans un champ de
type XML dans une table, SQL Server supprime les CDATA et encode leur
contenu par les caractères html.

exemple :
CREATE TABLE #test ( xmldata xml )
INSERT INTO #test VALUES ('<test><![CDATA[test with & < >]]></test>')
SELECT xmldata FROM #test

le SELECT affiche :
<test>test with &amp; &lt; &gt;</test>

Question : Est ce qu'il est possible de configurer SQL Server pour qu'il
ne fasse pas cette transformation?

Merci d'avance!
Sylvain



Avatar
Lobrys
Merci pour la réponse,

bon, finallement, histoire de ne pas perdre de temps, on a décider de ne
rien changer. On laisse le type Xml coté SQL la ou il est utilisé...
en theorie, on devrait pas avoir de probleme, car les conversion sont faites
automatiquement....

bref, si on rencontre un probleme dans le futur a ce niveau la, on se
reposera la question.

bye!
Syl

"Lobrys" a écrit dans le message de news:

Bonjour,

Vous savez que lorsque vous faite un INSERT ou UPDATE dans un champ de
type XML dans une table, SQL Server supprime les CDATA et encode leur
contenu par les caractères html.

exemple :
CREATE TABLE #test ( xmldata xml )
INSERT INTO #test VALUES ('<test><![CDATA[test with & < >]]></test>')
SELECT xmldata FROM #test

le SELECT affiche :
<test>test with &amp; &lt; &gt;</test>

Question : Est ce qu'il est possible de configurer SQL Server pour qu'il
ne fasse pas cette transformation?

Merci d'avance!
Sylvain