Autor Beitrag
saekularfranke
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 12.05.10 13:35 
Hallo,

ich muss einen Web Service mit .net ansprechen, welcher eine komplexe Datentruktur (anyType) als Parameter benötigt. Dieser WebService ist eigentlich nur ein Dispatcher, welcher mehrere Requestarten entgegennimmt und verteilt.
(habe auch schon einige Einträge hier diesbzgl. gelesen - hat leider nicht geholfen)

Auszug aus der WSDL
-
ausblenden XML-Daten
1:
2:
 <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="CC"
<xsd:element name="F1SearchRequest" type="xsd:anyType" />


In der WebService Reference-CS wird dieser Parameter als partial Class
definiert und enthält eine Var vom Type Object.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
public object F1Request(object F1Request1) {
            F1Request inValue = new F1Request();
            inValue.F1Request1 = F1Request1;
            F1RequestResponse retVal = ((F1RequestPortType)(this)).F1Request(inValue);
            return retVal.F1Request;


Soap-Request: (wie es sein sollte)
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
  <soap:Header/>
  <soap:Body>
    <F1Request>
----> ab hier ist der anyType
      <Root>
        <MeDa>

          <BoFo>Ih</BoFo>
        </MeDa>
        <BData>
          <Reqs>
            <F1Request ReqId="111111">
              <No>777777</No>
            </F1Request>
          </Reqs>
        </BData>
      </Root>
----> 
    </F1Request>
  </soap:Body>
</soap:Envelope>


Fehlermeldung(en):
- There was an error generating the XML document.
- Oder expected Parameter …. Please use XMLelement or soapelement to ….

Meine ärmlichen Versuche:
Ich habe eine Klasse (incl. Subklassen auch mal mit Strukturen probiert) definiert und habe diese Attribute in den eckigen Klammern angegeben.
Habe es mit datacontractserializer probiert
Wollte anhand einer XML eine Klasse generieren und diese als deserialisieren und dann weitergeben.


Leider muss ich ab und an unterschiedliche Testprogramme zu unterschiedlichen Systemen schreiben. (wir alle wissen, Webservices sind nicht immer gleich auf den
Unterschiedlichen Plattformen) In Sap definiert man hierzu verschachtelte Strukturen im Dictionary und übergibt diese.

Für Hilfe wäre ich sehr dankbar
(zurückgeben - werde ich diese, mangels Fachkenntnis, leider nicht können)

Gruß & Dank

Moderiert von user profile iconKha: XML-Tags hinzugefügt
Moderiert von user profile iconKha: C#-Tags hinzugefügt