2010-08-13 61 views
3

我們正在使用SQL Server 2005並試圖在數據庫中存儲XML類型。 XML類型有一個元素需要包含CDATA中的內容,但是一旦插入,該字段似乎剝離CDATA並存儲沒有它的元素...SQL Server XmlType不保留CDATA元素

有沒有人經歷過或甚至解決了過去?

簡便的事例:

create table t (x xml) 

insert into t values ('<test>kjhghk</test>') 
insert into t values ('<test><![CDATA[kjhghk]]></test>') 
select * from t 

drop table t 

結果:

<test>kjhghk</test> 
<test>kjhghk</test> 

回答

1

不幸的是,這是標準的行爲,其中CDATA部分被剝離,其內容entitized。您可以使用cdata指令FOR XML EXPLICIT在檢索時將內容添加到CDATA部分,但取決於XML的複雜性,這可能會很複雜。另請參閱此post

+0

Bummer ...我期望的 - 我們使用hibernate與JQL進行交互,所以FOR XML語法沒有運氣 - 我將字段轉換爲NTEXT - 我們不需要在DB中查詢XML。 。 – akaphenom 2010-08-13 22:52:32