AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Probleme beim import von WSDL Datei
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme beim import von WSDL Datei

Ein Thema von saschab · begonnen am 3. Sep 2005 · letzter Beitrag vom 13. Sep 2005
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#11

Re: Probleme beim import von WSDL Datei

  Alt 6. Sep 2005, 11:19
Zitat von marabu:
habe eben gerade ein wenig in BDN QC geschmökert - der Fehler in D2005 wurde schon vor 8 Monaten gemeldet. Wenn ich mir den Report dort so ansehe, dann wird saschab nicht nur auf D2005 umstellen, sondern auch die Sprache (C#) wechseln müssen, damit er die WSDL Datei von Amazon verarbeiten kann - oder?
Das ist leider korrekt- Habe ich soeben ausprobiert. In einer Delphi WinForms-Anwendung wird die WSDL zwar importiert (was nicht verwundert). Der erzeugte Code läßt sich aber nicht übersetzen. Tonnenweise Fehlermeldungen. In einem C#-Sharp Projekt war aber auch das kein Problem mehr. Das ist wohl ein grundsätzliches Delphi- (und IMHO auch C++)-Problem beim Mappen eines benannten Arrays auf ein Klasse:
Zitat:
The problem is in the logic that maps a named array [in this case 'items'] to a class. That logic must be enabled for the top level type but not for the nested ones.
...
However, the code generated will not work in cases where we need to serialized an array with a specified name [since Pascal and C++ don't provide for a way to associate a type name with an array [syntactically they do but that information is not kept in the compiler's typeinfo about the type] the array element name will be serialized with the wrong name].
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#12

Re: Probleme beim import von WSDL Datei

  Alt 6. Sep 2005, 11:28
Tja, man kann es auch mit .Net Board mitteln versuchen, was ich generell immer eine Borlandbastelei vorziehen würde.
Kiekst du hier.
Wenn es mit dem CodeDom von D.Net zickt, nimmm einen der funktioniert. Wie der von C# oder Chrome. Edit: Die kompilierte Lib kannst du ja dann in D.Net benutzen...
Der Wisdel-Importer von D7 hat ja schon damals auch nicht alles kapiert und dank Delphis phänomenal unsinniger single pass Einschränkung geht sicher auch in .Net ganz gerne was daneben...
  Mit Zitat antworten Zitat
Benutzerbild von saschab
saschab

Registriert seit: 24. Nov 2003
Ort: Overath
50 Beiträge
 
Delphi 2005 Personal
 
#13

Re: Probleme beim import von WSDL Datei

  Alt 6. Sep 2005, 17:06
So nü versteh ich fast gar nix mehr.

Ich kann doch wenn ich das richtig verstanden habe wie folgt vorgehen:

Zitat:
1) wsdl von .net ---> wsdl /language:CS AWSECommerceService.wsdl
bekomme dann eine AWSECommerceService.cs raus klappt auch ohne fehlermeldungen
2) mit csc --> csc /target:library AWSECommerce.cs
bekomme ich eine dll raus diese kann ich dann doch in delphi 32 benutzen oder?

Könnte das denn generell funktionieren?
Cu Sascha
----------------------------------------------------------------------------
Computer Helfen uns Probleme zu lösen die wir Früher nicht hatten.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#14

Re: Probleme beim import von WSDL Datei

  Alt 6. Sep 2005, 21:30
Sorry Sasha,
Mein Beitrag richtete sich an Rainers Probleme mit D.Net. Überlese es einfach.
Ich wollte mir zwar gerade 'nen Film ankieken, aber ich schaue mal was mein D7 aus dem Wisdel macht und vergleiche es mit dem was .Nets wsdl.exe + Chrome.exe daraus machen.

btw: Bitte keine PNs mehr zu irgendwelchen Threads. Ich habe jetzt nur geantwortet, weil ich dich mit meinem OT wohl etwas durcheinandergebracht habe.

Edit2: Ich habe mein D7 hier ohne WebSnap & IntrWeb installiert, somit gibt's auch keinen wsdl Importer
Kannst du dir generierte Datei hier anhängen?
  Mit Zitat antworten Zitat
Benutzerbild von saschab
saschab

Registriert seit: 24. Nov 2003
Ort: Overath
50 Beiträge
 
Delphi 2005 Personal
 
#15

Re: Probleme beim import von WSDL Datei

  Alt 6. Sep 2005, 21:44
Hi,

hatte die pn nur geschrieben da ich gesehen hatte das Du online bist, ich habe die Datei mit dem wsdl importer von .Net SDK gemacht siehe meinen Beitrag, da ich immoment auf der Arbeit bin kann ich die erst morgen anhängen. Oder Du müsstest die eben selber erstellen (steht in meinen Post oben wie)

Der wsdl Importer von D7 und D2005 w32 und .net macht es sowieso nicht (Access Violation)

Danke schon mal wg der Mühe
Cu Sascha
----------------------------------------------------------------------------
Computer Helfen uns Probleme zu lösen die wir Früher nicht hatten.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#16

Re: Probleme beim import von WSDL Datei

  Alt 6. Sep 2005, 21:55
Der generierte Chrome Code ist über 16.000 Zeilen lang! (C# trotz fehlender interface section 13.000 )
Ich glaube das ist dann doch ein wenig viel...
Bleibt dir wohl nix anderes übrig als Zeilenweise durcj den Code zu laufen und alles was zickt mit dem wisdel zu vergleichen (Dort steht ja alles drin ).
Der WSDL Importer von D7 taugt IMHO nicht wiklich viel...
  Mit Zitat antworten Zitat
Benutzerbild von saschab
saschab

Registriert seit: 24. Nov 2003
Ort: Overath
50 Beiträge
 
Delphi 2005 Personal
 
#17

Re: Probleme beim import von WSDL Datei

  Alt 6. Sep 2005, 23:36
Hi,

danke erst mal,

aber kann ich nicht die compellierte c# Datei die ich ja mit csc zu ner dll gemacht habe in Delphi benutzen?

Wenn ja wer weis wie?

Wenn ich die in Delphi 2005 zum project hinzufüge zeigt er mir alle klassen anscheinend an, nur gibt es eine möglichkeit alle Exportierten funktionen der Dll in mein Projekt automatisch hinzuzufügen?

Weil ne dll kann man doch universell benutzen oder?
Cu Sascha
----------------------------------------------------------------------------
Computer Helfen uns Probleme zu lösen die wir Früher nicht hatten.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#18

Re: Probleme beim import von WSDL Datei

  Alt 7. Sep 2005, 16:24
Nene du. .Net DLLs sind nunmal .Net Assemblies und haben mit nativen Delphi32 Code nicht viel zu tun.
Du müsstest dir einen COM Wrapper drumrum bauen um sie dann in D32 benutzen zu können.
Das wäre wohl mit Kanonen auf Spatzen geschossen.
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#19

Re: Probleme beim import von WSDL Datei

  Alt 7. Sep 2005, 16:46
Moin Robert,

Zitat von Robert_G:
Der Wisdel-Importer von D7 hat ja schon damals auch nicht alles kapiert und dank Delphis phänomenal unsinniger single pass Einschränkung geht sicher auch in .Net ganz gerne was daneben...
Das Problem liegt nicht nur nur an dem rudimentären WSDL-Importer von D7 sondern auch an bestimmten Spracheinschränkungen der Delphi-Language. Für Dich poste ich hier mal die kompletten Antworten, die ich von Borland erhalten habe:
Zitat:
Hello Rainer,

I'm currently on loan to the Delphi team to help out with some COM issues
and someone brought this item to my attention as I worked on WebServices
until the D7 timeframe. Indeed there's a bug in the importer. We are unable
to distinguish the inline complex type 'items' in 'CartAddRequest':

<xs:complexType name="CartAddRequest">
<xs:sequence>
<xs:element name="CartId" type="xs:string" minOccurs="0" />
<xs:element name="HMAC" type="xs:string" minOccurs="0" />
<xs:element name="MergeCart" type="xs:string" minOccurs="0" />
<xs:element name="Items" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Item" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ASIN" type="xs:string" minOccurs="0" />
<xs:element name="OfferListingId" type="xs:string" minOccurs="0" />
<xs:element name="Quantity" type="xs:positiveInteger" minOccurs="0"
/>
<xs:element name="AssociateTag" type="xs:string" minOccurs="0" />
<xs:element name="ListItemId" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ResponseGroup" type="xs:string" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>


from the top-level 'items' declared later:

<xs:element name="Items">
<xs:complexType>
<xs:sequence>
<xs:element name="TotalResults" type="xs:nonNegativeInteger"
minOccurs="0" />
<xs:element name="TotalPages" type="xs:nonNegativeInteger" minOccurs="0"
/>
<xs:element ref="tns:Item" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>

The 'CartCreateRequest' type - like 'CartAddRequest' - also has an inline
'items'.

The problem is in the logic that maps a named array [in this case 'items']
to a class. That logic must be enabled for the top level type but not for
the nested ones. Unfortunately, we don't distinguish between the two and
enable it for the nested one as well. So you should be able to avoid the AV
by turning off that mapping [i.e. by using the -Ok- switch]:

wsdlimp -Ok-
http://webservices.amazon.com/AWSECo...ceService.wsdl

However, the code generated will not work in cases where we need to
serialized an array with a specified name [since Pascal and C++ don't
provide for a way to associate a type name with an array [syntactically they
do but that information is not kept in the compiler's typeinfo about the
type] the array element name will be serialized with the wrong name].

Now, it is possible that the code generated might work for you if you are
not using some operations that involve named array types.

I've put in a fix to eliminate the AV; however, a proper fix would involve
adding logic to distinguish between nested and top level types and not
confusing them. If time allows, I hope to check in a fix for this issue too
next week.

Regards,

Bruneau.
und
Zitat:
Good morning!

Yes, please feel free to post the answer. I still want to stress that while
using -Ok- will avert the AV, the code generated will not be OK for
serializing the type 'Items' [and other named array types]. Also, if it's
helpful I'll be more than happy to post the correctly imported unit once I
put in a fix to the importer.

Regards,

Bruneau.
  Mit Zitat antworten Zitat
Benutzerbild von saschab
saschab

Registriert seit: 24. Nov 2003
Ort: Overath
50 Beiträge
 
Delphi 2005 Personal
 
#20

Re: Probleme beim import von WSDL Datei

  Alt 7. Sep 2005, 21:19
Hi,

das hört sich ja mal nicht schlecht an.

Habe die wsdl mit

Zitat:
wsdlimp -Ok- AWSECommerceService.wsdl
übersetzt und er hat es gemacht weis noch nicht ob er sie auch kompelliert.

Hänge die erzeugte Datei mal hie an.
Angehängte Dateien
Dateityp: pas awsecommerceservice_146.pas (111,0 KB, 14x aufgerufen)
Cu Sascha
----------------------------------------------------------------------------
Computer Helfen uns Probleme zu lösen die wir Früher nicht hatten.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 18:38 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