PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl Web Service mit SOAP::Lite



pygo
21.09.2006, 09:16
Hallo,

Ich habe einen Perl Web Service geschrieben und auch brav eine WSDL dazu geschrieben (naja, generieren lassen). Wenn ich den Web Service jetzt nutze, kriege ich in dem Antwortumschlag bei jedem verwendeten Array als SOAP-ENC:arrayType immer "xsd:anyType[4]". In meiner WSDL stehen aber unter den Attributen der Arrays wsdl:arrayTypes, die auf einen komplexen Datentyp verweisen:

<complexType name="ArrayOfAdmin">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:Admin[]" />
</restriction>
</complexContent>
</complexType>

Muss ich da beim einpacken im Perl-Modul noch was beachten oder irgendwas an der WSDL ändern, damit er das richtig übernimmt?

Vielen Dank - pygo

supersucker
21.09.2006, 09:38
Hmm,

sieht für mich soweit ok aus.......

Hast du mal das XML-Schema validiert?

pygo
21.09.2006, 09:59
Also mit einem normalen XML-Validator habe ich keinen Fehler angezeigt bekommen. Habe dann versucht, sowas mit WSDL-Spezialisierung zu finden ("Linguine Maps Online" und "xMethods WSDL analyzer" waren da noch am nächsten dran) und auch da gab es keine Fehlermeldungen.

Ich hatte übrigens sogar schon versucht, in meinem Perl-Modul den Typ manuell zu setzen, allerdings wirkt sich das nur auf den xsi:type, nicht auf den SOAP-ENC:arrayType aus.

Edit: Ich seh grad, XML-Schema... Das hab ich noch nicht probiert, werde ich aber mal tun. Muss nur noch erst rausfinden, was ich da angeben muss, also noch mal einen Blick in meinen Header werfen...

Edit 2: Also mit dem tool von w3.org hat er mir nur meine documentation angemotzt, die hab ich dann mal rausgenommen und dann fand er es gut. Das Problem ist leider offensichtlich nicht von den documentations ausgegangen ;)