2013-04-12 63 views
3

我在SQL Server Management Studio中工作的一個存儲過程。還有,我試圖用XPATH訪問一個包含XML列,但我得到這個錯誤:SQL服務器:XPath查詢失敗

Parsing XML with internal subset DTDs not allowed. Use CONVERT with style option 2 to enable limited internal subset DTD support`

我讀轉換並導入XML,但沒有運氣的文檔。

要清楚,我必須存儲在一個表中的列XML,現在想查詢到內存中的存儲過程後XPath來訪問它。任何人都知道我該怎麼辦?

回答

4

你最有可能得到這個,因爲裏面的XML某處你正在使用的文件定義,如下所示:(DTD的MSDN example

<!DOCTYPE DOC [<!ATTLIST elem1 attr1 CDATA "defVal1">]><elem1>January</elem1> 

微軟阻止此默認爲它創建了一個潛在的安全漏洞。與樣式選項2的消息轉換是在告訴你,你可以爲了通過使用CONVERT function as it relates to XML來處理這個XML啓用DTD部分支持。

我沒有與這樣做,所以我不能提供比鏈接MSDN更多的個人經驗。

唯一的其他選擇是在Microsoft不推薦的服務器上啓用完整的DTD支持。

+4

是的,就在,謝謝。看文檔後,命令是這樣的'轉換(XML,myXmlAsString,2)' –