У меня есть несколько XML-вызовов, которые должны быть реализованы на C#. Я использовал Xsd2Code для автоматического создания кода, и я очень доволен результатами. Моя проблема, однако, заключается в том, что все XML-вызовы имеют тот же TypeName ответ на запрос следующим образом:Изменение кода, сгенерированного из схемы XSD
XML Call - 1:
<Request Method="AvailabilityRetrievalRQ">
....
</Request>
<Response Method="AvailabilityRetrievalRS">
....
</Response>
XML Call - 2:
<Request Method="RateRetrievalRQ">
.....
</Request>
<Response Method="RateRetrievalRS">
....
</Response>
Таким образом, , все 5 XML-вызовов сгенерировали 10 классов - 5 с именем «Request» и 5 с именем «Response». Теперь я знаю, что всегда могу указать TypeName в XmlType как Request и переименовать классы. Я уже это сделал. Мой вопрос в том, хорошо ли изменить сгенерированный код или нет. Это просто переименование классов. Я не обязан ничего менять. Другое решение, о котором я думал, это дать разное пространство имен C# для каждой пары Request-Response. Но у меня плохое представление об этом, похожее на обходное решение.
Что, по вашему мнению, является идеальным решением?
Еще одно сомнение заключается в том, что у меня такая же проблема с внутренними узлами XML. Они имеют одно и то же имя, но различную функциональность и, следовательно, разные структуры, в каждом вызове XML. Например,
XML Call - 1
<Request Method="AvailabilityRetrievalRQ">
<Room ID="XXX" />
.....
</Request>
XML Call - 2
<Request Method="RateRetrievalRQ">
<Room ID="XXX" ProductID="YYY" />
....
</Request>
Прямо сейчас, я решил не пытаться вывезти общие классы только REDUCT кода избыточности. Я предпочел сохранить схему XSD, сопоставленную с автоматически сгенерированными классами, и просто переименовал классы, чтобы избежать конфликта. Например, аналогичные классы номера для приведенного выше примера будет:
XML Call - 1
public partial class AvailabilityRetrievalRQ_Room { }
XML Call - 2
public partial class RateRetrievalRQ_Room { }
я делаю неправильно в этом?