Файл WSDL от клиента указывает тип данных времени, используя следующий синтаксис: <xsd:simpleType name="time"><xsd:restriction base="xsd:time"><xsd:pattern value="[0-9]{2}:[0-9]{2}:[0-9]{2}"/></xsd:restriction></xsd:simpleType>
Я включил файл WSDL как «Веб-ссылку» (а не как ссылку на службу) в проект Visual Studio C#. Что генерирует этот код:
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="time")]
public System.DateTime I_TIMETO {
get {
return this.i_TIMETOField;
}
set {
this.i_TIMETOField = value;
}
}
Проблема в том, что в сгенерированной полезной нагрузке шаблон из файла WSDL ([0-9]{2}:[0-9]{2}:[0-9]{2}) полностью игнорируется. т.е. полезная нагрузка выглядит так:
<I_TIMETO xmlns="">17:11:00.0000000+01:00</I_TIMETO>
вместо:
<I_TIMETO xmlns="">17:11:00</I_TIMETO>
Невозможно изменить веб-сервис, и я не хочу менять автоматически сгенерированный код.