Я написал веб-сервис JAX-WS на Java, сгенерировав WSDL и классы из схемы XML.
Я добавляю службу в качестве веб-ссылки в Visual Studio для использования с клиентским приложением C # .NET.
Исходная XML-схема использует несколько типов даты / времени: xs: date и xs: dateTime для некоторых элементов.
Моя проблема в том, что мой тип dateTime работает неправильно. Он преобразуется в объект .NET DateTime (правильно) в сгенерированных классах (созданных XMLSerializer в Visual Studio 2010), а затем я могу создать свой собственный объект DateTime и установить DateTime в одном из этих классов. Однако при отправке запроса обратно на сервер клиентское приложение отправляет нулевое значение вместо объекта DateTime, для которого я его установил. Так что я думаю, что это не правильно сериализуется.
У меня нет той же проблемы с типом 'date', который отлично сериализует / десериализует.
Я заметил кое-что, что могло быть проблемой, но не уверен:
Объект dateTime в сгенерированном классе выглядит следующим образом:
[System.Xml.Serialization.XmlElementAttribute (заказ = 10)]
public System.DateTime MyDateTime {...}
тогда как объект даты в сгенерированном классе выглядит следующим образом:
[System.Xml.Serialization.XmlElementAttribute (DataType = "date", Order = 12)]
public System.DateTime MyDate {...}
Итак, в объекте даты есть некоторая дополнительная информация - DataType = "date", но для объекта dateTime нет DateType. Может ли это быть проблемой? Если да, то почему он не генерирует классы правильно?
Спасибо за любую помощь