5

ストアド プロシージャで SQL Server Management Studio を使用しています。XPATH でアクセスしようとしている XML を含む列がありますが、次のエラーが発生します。

内部サブセット DTD を使用した XML の解析は許可されていません。スタイル オプション 2 で CONVERT を使用して、制限付きの内部サブセット DTD サポートを有効にします`

convert と importing xml に関するドキュメントを読みましたが、運がありません。

明確にするために、XML をテーブルの列に格納しており、ストアド プロシージャでメモリにクエリを実行した後、xpath でアクセスしたいと考えています。私が何をすべきか知っている人はいますか?

4

1 に答える 1

7

XML 内のどこかで次のようなドキュメント定義を使用しているため、これを取得する可能性が最も高くなります: ( DTD のMSDN の例)

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

Microsoft は、潜在的なセキュリティ ホールを作成するため、既定でこれをブロックします。convert with style option 2 メッセージは、XML に関連する CONVERT 関数を使用してこの XML を処理するために、DTD の部分的なサポートを有効にできることを示しています。

私はそれを行った個人的な経験がないので、MSDN へのリンク以上のものを提供することはできません。

他の唯一のオプションは、Microsoft が推奨していないサーバーで完全な DTD サポートを有効にすることです。

于 2013-04-12T22:35:18.113 に答える