AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi SOAP : Array items mit falschem Namen
Thema durchsuchen
Ansicht
Themen-Optionen

SOAP : Array items mit falschem Namen

Ein Thema von moelski · begonnen am 1. Jun 2010 · letzter Beitrag vom 5. Jul 2012
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

SOAP : Array items mit falschem Namen

  Alt 1. Jun 2010, 09:13
Moin !

So jetzt habe ich aber dennoch ein Problem mit meinem Webservice.
Ich muss für den Webservice Aufruf eine Struktur aufbauen. Und ein Teil dieser Struktur ist das hier:
Delphi-Quellcode:
  ServiceRequestHeader = class(TRemotable)
  private
    FDocumentReference: ArrayOfDocumentReference;
    FDocumentReference_Specified: boolean;
    procedure SetDocumentReference(Index: Integer; const AArrayOfDocumentReference: ArrayOfDocumentReference);
    function DocumentReference_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property DocumentReference: ArrayOfDocumentReference Index (IS_OPTN) read FDocumentReference write SetDocumentReference stored DocumentReference_Specified;
  end;
Ist sehr stark gekürzt. Aber es geht auch nur um das ArrayOfDocumentReference.

ArrayOfDocumentReference ist so definiert:
ArrayOfDocumentReference = array of ArrayOfDocumentReferenceItem; Und ArrayOfDocumentReferenceItem so ...
Delphi-Quellcode:
  // ************************************************************************ //
  // XML : ArrayOfDocumentReferenceItem, alias
  // ************************************************************************ //
  ArrayOfDocumentReferenceItem = class(DocumentReference)
  private
  published
  end;
Ok, wenn ich jetzt in meinem Code alles zusammenbaue muss ich irgendwann auch DocumentReference füllen.
das mache ich so:
Delphi-Quellcode:
var _ArrayOfDocumentReference : ArrayOfDocumentReference;
...
begin
...
    SetLength(_ArrayOfDocumentReference, 2);
    _ArrayOfDocumentReference[0] := ArrayOfDocumentReferenceItem.Create;
    _ArrayOfDocumentReference[0].ReferenceType := 'xyz';
    _ArrayOfDocumentReference[0].ReferenceValue := 'xyz-000001';
    _ArrayOfDocumentReference[1] := ArrayOfDocumentReferenceItem.Create;
    _ArrayOfDocumentReference[1].ReferenceType := 'xyz';
    _ArrayOfDocumentReference[1].ReferenceValue := 'xyz-000001';
    _SR.ServiceRequest.ServiceRequestHeader.DocumentReference := _ArrayOfDocumentReference;
Das fonktioniert auch. Aber wenn ich mir dann die Rohdaten in der SOAP Message ansehe, dann kommt da das bei rum:
XML-Code:
<DocumentReference>
   <item>
      <ReferenceType>xyz</ReferenceType>
      <ReferenceValue>xyz-000001</ReferenceValue>
   </item>
   <item>
      <ReferenceType>xyz</ReferenceType>
      <ReferenceValue>xyz-000001</ReferenceValue>
   </item>
</DocumentReference>
Und ich frage mich nun warum da <item> steht und nicht <ArrayOfDocumentReferenceItem>.

Mache ich da was falsch beim Zusammensetzen und übergeben des Arrays?
Ist das evtl. ein (bekannter) Delphi Bug?

Falls ich irgendwas an wichtigen Infos vergessen habe, dann lasst es mich wissen.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#2

Re: SOAP : Array items mit falschem Namen

  Alt 1. Jun 2010, 09:26
Ok ich habe schon rausgefunden das es in OPToSOAPDomConv.pas folgendes gibt:
DefArrayElemName: string = 'item'; { do not lcoalize } Das bedeutet wohl das in der WSDL eine Definition fehlt !?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Der.faule.Christoph

Registriert seit: 13. Apr 2011
4 Beiträge
 
#3

AW: SOAP : Array items mit falschem Namen

  Alt 5. Jul 2012, 07:14
hast du ne lösung gefunden?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz