データベースからxmlを取得し、ビジネスレイヤーに戻るデータアクセスメソッドがあります。リターンタイプはどうあるべきですか?単に文字列として返す必要がありますか?あるレイヤーから別のレイヤーにxmlを返すときのベストプラクティスは何ですか?
そのxmlをクライアントに返すか、クライアントの要求に基づいてjsonに変換する可能性があります。
この決定は、どのユースケースがあなたの方法をカバーすべきかによって決まると私は主張します。
文字列を返す場合:
メソッドを呼び出すコードは結果をXMLとして操作しないので、なぜXmlDocumentやXDocumentなどの複雑なオブジェクトをロードするCPUとメモリを浪費するのでしょうか。文字列を返すだけです!
返されるXMLはシリアル化されたオブジェクトです。このXML文字列を実際の.NETオブジェクトに解析します。
XDocument
またはのようなXMLオブジェクトを返す場合XmlDocument
:
メソッドを呼び出すコードは、結果をXMLとして操作します。これには、新しいノードや属性の追加、またはXML内のいくつかの要素や属性の読み取りが含まれます。
メソッドを呼び出すコードは、引数としてXMLオブジェクトを必要とする.NET基本クラスライブラリまたはサードパーティライブラリを使用します。
アップデート
クライアントのリクエストに応じて、「JSONまたはXML」の部分について言及するのを忘れました。
もちろん、クライアントがXMLを必要とする場合は、データをXMLとして返すだけで、クライアントがJSONを必要とする場合は、データをJSONとして返すだけです。
データベースから文字列として取得し、XElement.Parse(XML_STING);を使用してXMLに解析します。。代わりにJSONに解析する必要がある場合は、DBからの取得方法を変更せずにJSONパーサーを使用できます。