SQL SERVER2008R2を使用しています。FORXMLを使用して結果をXMLとして返すストアドプロシージャがあります。ストアドプロシージャは次のようになります。
CREATE PROCEDURE [dbo].[myproc]
(
@ID int,
)
AS
SET NOCOUNT ON
BEGIN
SELECT
t1.FirstField
t2.AnotherField
t1.ThirdField
FROM table t1
INNER JOIN table2 t2 ON t1.ID = t2.ID
WHERE t1.id = @ID FOR XML RAW ('project'), ELEMENTS;
END
これは期待どおりに機能し、次のようなXMLを生成します。
<project>
<FirstField>First field data</FirstField>
<AnotherField> Another field data</AnotherField>
<ThirdField>Third field data</ThirdField>
</project>
それが私が欲しいものです。しかし、私の懸念は、<や>などの特殊な文字がXMLにある場合、それが物事を台無しにしてXMLの形式を正しくしないのではないかということです。これを回避する方法はありますか?このストアドプロシージャを呼び出すコードでいくつかのチェックを実行して、それが有効なXMLであるかどうかを確認できますが、それが発生するまでには手遅れではないでしょうか。誰かが私がこれにどのように取り組むべきかについていくつかの提案をすることができれば、私はそれをいただければ幸いです。どうもありがとう。