C#で実装するXML呼び出しが5つあります。Xsd2Codeを使用してコードを自動生成しましたが、結果には非常に満足しています。ただし、私の問題は、次のように、すべてのXML呼び出しに同じ要求応答TypeNameがあることです。
XML呼び出し-1:
<Request Method="AvailabilityRetrievalRQ">
....
</Request>
<Response Method="AvailabilityRetrievalRS">
....
</Response>
XML呼び出し-2:
<Request Method="RateRetrievalRQ">
.....
</Request>
<Response Method="RateRetrievalRS">
....
</Response>
したがって、5つのXML呼び出しすべてが10のクラスを生成しました。5つは「Request」という名前で、5つは「Response」という名前です。これで、XmlTypeのTypeNameをいつでもRequestとして指定し、クラスの名前を変更できることがわかりました。私はすでにそれをしました。私の質問は、自動生成されたコードを変更するのが良いかどうかです。クラスの名前を変更するだけです。他に何も変更する必要はありません。私が考えたもう1つの解決策は、各Request-Responseペアに異なるC#名前空間を与えることです。しかし、私はそれについて悪い気持ちを持っており、回避策のように見えます。
あなたによると、理想的な解決策は何ですか?
もう1つの疑問は、内部XMLノードにも同じ問題があることです。それらは同じ名前ですが、すべてのXML呼び出しで機能性が異なり、したがって構造も異なります。例えば、
XML呼び出し-1
<Request Method="AvailabilityRetrievalRQ">
<Room ID="XXX" />
.....
</Request>
XML呼び出し-2
<Request Method="RateRetrievalRQ">
<Room ID="XXX" ProductID="YYY" />
....
</Request>
今のところ、コードの冗長性を減らすためだけに、一般的なクラスを削除しようとしないことにしました。XSDスキーマを自動生成されたクラスにマップしたままにし、競合を避けるためにクラスの名前を変更することをお勧めします。たとえば、上記の例に類似したRoomクラスは次のようになります。
XML呼び出し-1
public partial class AvailabilityRetrievalRQ_Room { }
XML呼び出し-2
public partial class RateRetrievalRQ_Room { }
私はその中で間違っていますか?