Skip Menu |

This queue is for tickets about the SOAP-WSDL CPAN distribution.

Report information
The Basics
Id: 14751
Status: resolved
Priority: 0/
Queue: SOAP-WSDL

People
Owner: Nobody in particular
Requestors: Mark [...] Overmeer.net
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: (no value)
Fixed in: 2.00_09



Subject: missing handling <element ref="...">
I sent you this by e-mail directly, but didn't get a response. Trying it again: --- 8< --- I try to use your SOAP::WDSL module, but stumble on a problem. Maybe you can help me, I'm not a SOAP module specialist (yet) My WSDL file contains a <element ref="abc:type"> but when do a call(), this descends in the definition, failing on the above element. Looking at SOAP::WDSL::encode(), around line 300, I miss the treatment of the "ref" parameter. Am I right? I have added this code to encode(), and this may be correct, maybe not. For now, it looks to me that it is working... I'll keep you informed. + if(my $ref = $part->findvalue('@ref')->value) + { my $xpath = $self->_wsdl_xpath; + my ($ns, $elem) = $ref =~ m/(?:(.*?)\:)?(.*)/; + $ns ||= 'tns'; + my $wsdl_ns = $self->_wsdl_wsdlns; + my $path= qq(/${wsdl_ns}definitions/${wsdl_ns}types/) + .qq($schemaNS:schema/$schemaNS:element[\@name='$elem']); + + my $real = $self->_wsdl_xpath->find($path)->shift; + return $self->encode($real, $data); + } # TBD: Caching hook ?
From: kutterma [...] users.sourceforge.net
Bug entry moved to sourceforge. See https://sourceforge.net/tracker/index.php?func=detail&aid=1768287&group_id=111978&atid=660921 On Mo. 26. Sep. 2005, 03:09:25, MARKOV wrote: Show quoted text
> I sent you this by e-mail directly, but didn't get a response. Trying > it > again: > > --- 8< --- > I try to use your SOAP::WDSL module, but stumble on a problem. Maybe > you > can help me, I'm not a SOAP module specialist (yet) > > My WSDL file contains a <element ref="abc:type"> > but when do a call(), this descends in the definition, failing on the > above element. Looking at SOAP::WDSL::encode(), around line 300, I > miss the treatment of the "ref" parameter. Am I right? > > I have added this code to encode(), and this may be correct, maybe > not. > For now, it looks to me that it is working... I'll keep you informed. > > + if(my $ref = $part->findvalue('@ref')->value) > + { my $xpath = $self->_wsdl_xpath; > + my ($ns, $elem) = $ref =~ m/(?:(.*?)\:)?(.*)/; > + $ns ||= 'tns'; > + my $wsdl_ns = $self->_wsdl_wsdlns; > + my $path= qq(/${wsdl_ns}definitions/${wsdl_ns}types/) > + > .qq($schemaNS:schema/$schemaNS:element[\@name='$elem']); > + > + my $real = $self->_wsdl_xpath->find($path)->shift; > + return $self->encode($real, $data); > + } > # TBD: Caching hook ?
Subject: Re: [rt.cpan.org #14751] missing handling <element ref="...">
Date: Mon, 6 Aug 2007 14:39:10 +0200
To: Martin Kutter via RT <bug-SOAP-WSDL [...] rt.cpan.org>
From: Mark Overmeer <solutions [...] overmeer.net>
* Martin Kutter via RT (bug-SOAP-WSDL@rt.cpan.org) [070806 12:23]: Show quoted text
Hey, there is life after about one year! I have a majorly reworked version of your module in use... would you like to see it? There are many problematic angles in your implementation... far too many, and mostly caused by SOAP::Lite. But gladly you implemented what 90% of the people use. Things really cannot be fixed (requires a rewrite of SOAP::Lite). Therefore, I have created XML::Compile. XML::Compile::SOAP and ::WSDL are quite close to completion. It is a 100% strict W3C compliant implementation, with extremely simple usage from Perl. -- Regards, MarkOv ------------------------------------------------------------------------ Mark Overmeer MSc MARKOV Solutions Mark@Overmeer.net solutions@overmeer.net http://Mark.Overmeer.net http://solutions.overmeer.net
From: kutterma [...] users.sourceforge.net
Hi Mark, I've taken a similar approach like your XML::Compiled module: Building up a object tree from XML schema, which knows how to serialize hash data. The current SOAP::WSDL impl (2.00_0x) also has a code generator which will put out interface classes (and type classes) as perl code, like the C/C++ GSOAP Toolkit (or others). Maybe XML::Compiled would make up a better XML schema implementation than my current one (SOAP::WSDL::XSD) - let's see... element ref= should work mostly in my svn version - I'll put on CPAN in a few days... Regards, Martin On Mo. 06. Aug. 2007, 08:39:35, solutions@overmeer.net wrote: Show quoted text
> * Martin Kutter via RT (bug-SOAP-WSDL@rt.cpan.org) [070806 12:23]:
> > > > <URL: http://rt.cpan.org/Ticket/Display.html?id=14751 > > > > > Bug entry moved to sourceforge. > > > > See > >
>
https://sourceforge.net/tracker/index.php?func=detail&aid=1768287&group_id=111978&atid=660921 Show quoted text
> > Hey, there is life after about one year! > I have a majorly reworked version of your module in use... would you > like to see it? > > There are many problematic angles in your implementation... far too > many, and mostly caused by SOAP::Lite. But gladly you implemented > what 90% of the people use. Things really cannot be fixed (requires > a rewrite of SOAP::Lite). Therefore, I have created XML::Compile. > XML::Compile::SOAP and ::WSDL are quite close to completion. It is > a 100% strict W3C compliant implementation, with extremely simple > usage from Perl.
Subject: Re: [rt.cpan.org #14751] missing handling <element ref="...">
Date: Thu, 9 Aug 2007 13:50:44 +0200
To: Martin Kutter via RT <bug-SOAP-WSDL [...] rt.cpan.org>
From: Mark Overmeer <solutions [...] overmeer.net>
* Martin Kutter via RT (bug-SOAP-WSDL@rt.cpan.org) [070809 11:01]: Show quoted text
> I've taken a similar approach like your XML::Compiled module: Building > up a object tree from XML schema, which knows how to serialize hash data. > > The current SOAP::WSDL impl (2.00_0x) also has a code generator which > will put out interface classes (and type classes) as perl code, like the > C/C++ GSOAP Toolkit (or others).
Because you did not response well to my emails (only once), I thought you departed from development. Otherwise, I may not have started a compatitive implementation... Show quoted text
> Maybe XML::Compiled would make up a better XML schema implementation > than my current one (SOAP::WSDL::XSD) - let's see...
Last (whole) month, I rewrote the schema parser to be fully compliant. The only limitiation for the moment, is that the schema must use namespaces. This full rewrite will see daylight this week. XML::Compile::Schema does hide ALL schema knowledge from the user. It is fully validating and even supports substitution groups, facets, unions, lists, [choice|sequence|all|group|elements] with maxOccurs > 1, complexType/[simple|complex]Content/[restriction|extenstion], any, anyAttribute, etc. Everything. Although probably not bug-free (yet). Providing WSDL and SOAP based on this schema handler is quite straight-forward... the only (serious) problems I have, is to design the simpelest user interface to the defined procedures. Will you be at YAPC::EU in Vienna, this month? -- Regards, MarkOv ------------------------------------------------------------------------ Mark Overmeer MSc MARKOV Solutions Mark@Overmeer.net solutions@overmeer.net http://Mark.Overmeer.net http://solutions.overmeer.net
Fixed from 2.00_09 on.