Bypass CDATA transformation

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sylvain Lafontaine
Le #11879391
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" 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



Lobrys
Le #11878061
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"
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



Publicité
Poster une réponse
Anonyme