• 0
Авторизация  
DigriZ

Работа WSDL импортера.

Вопросы

Необходимо добавить в существующий 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 - результат одинаков.

Изменено пользователем DigriZ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

0 ответов на этот вопрос

Ответы на этот вопрос пока отсутствуют

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу