Поиск сообщества
Показаны результаты для тегов 'soap'.
Найдено: 1 результат
-
Необходимо добавить в существующий Delphi проект обмен данными с удаленным сервером через SOAP. WSDL есть. Столкнулся с тем, что wsdl импортер для Delphi отрабатывает не корректно. Пример 1. Кусок WSDL <xs:complexType name="MessagePrimaryContent"> <xs:sequence> <xs:any namespace="##other" processContents="skip"/> </xs:sequence> <xs:attribute name="id" type="xs:ID"/> </xs:complexType> 2. Сформированный wsdl импортером Delphi-класс для вышеуказанного куска. MessagePrimaryContent = class(TRemotable) private Fid: string; Fid_Specified: boolean; procedure Setid(Index: Integer; const Astring: string); function id_Specified(Index: Integer): boolean; published property id: string Index (IS_ATTR or IS_OPTN) read Fid write Setid stored id_Specified; end; 3. С# класс для него же public partial class MessagePrimaryContent : object, System.ComponentModel.INotifyPropertyChanged { private System.Xml.XmlElement anyField; private string idField; /// <remarks/> [System.Xml.Serialization.XmlAnyElementAttribute(Order=0)] public System.Xml.XmlElement Any { get { return this.anyField; } set { this.anyField = value; this.RaisePropertyChanged("Any"); } } /// <remarks/> [System.Xml.Serialization.XmlAttributeAttribute(DataType="ID")] public string id { get { return this.idField; } set { this.idField = value; this.RaisePropertyChanged("id"); } } public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; protected void RaisePropertyChanged(string propertyName) { System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; if ((propertyChanged != null)) { propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); } } } После импорта в Delphi никакого упоминания об элементе Any нет, в отличии от С#. Может у кого были похожие проблемы?? Или кто нибудь знает альтернативный вариант WSDL -импортера.? Уж очень не хочется разбирать XML вручную. P.S. Импорт тестировался на d7, XE1, XE10.1 - результат одинаков.