Skip Menu |

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

Report information
The Basics
Id: 58056
Status: open
Priority: 0/
Queue: SOAP-WSDL

People
Owner: Nobody in particular
Requestors: xiaojun.tan [...] picis.com
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in: 2.00.10
Fixed in: (no value)



Subject: "unbound prefix" when processing xmlns in extension
In WSD defined complexType like: <xs:complexType name="ConfigurationServiceFault"> <xs:complexContent mixed="false"> <xs:extension base="q1:PicisServiceFault" xmlns:q1="http://schemas.datacontract.org/2004/07/Picis.Services.DataCon tracts.Common"> <xs:sequence /> </xs:extension> </xs:complexContent> wsdl2pl died in the middle, looks like the value of xmlns:q1 was handled as QName, the error message was: C:/Perl/site/lib/SOAP/WSDL/Generator/Template/XSD\complexType.tt undef error - u nbound prefix http found for http://schemas.datacontract.org/2004/07/Picis.Servi ces.DataContracts.Common. Bound prefixes are q18, wsa, q5, soapenc, q27, q2, xsd , q15, wsx, xml, q24, q19, q9, q3, xs, q16, q21, q14, msc, q10, q1, q7, wsu, soa p12, q6, q25, soap, wsaw, q26, q23, wsap, q8, wsa10, q20, wsam, q17, wsdl, tns, q4, wsp, q13, q22, q12, q11 at C:/Perl/site/lib/Template/Stash.pm line 451 at C:/Perl/site/lib/SOAP/WSDL/Base.pm line 62
From: bitcard.10.drkshadow [...] spamgourmet.com
This bug is caused by set_extension and set_restriction in SOAP/WSDL/XSD/ComplexType.pm expecting exactly two arguments. If the block has a namespace with a base attribute, however, it will receive two attributes: <xs:complexType name="EntityQuery.SearchFilterGroup"> <xs:complexContent mixed="false"> <xs:extension xmlns:q8="http://gwi.com/" base="q8:EntityQuery.SearchFilter"> <xs:sequence> <xs:element minOccurs="0" name="SearchFilters" nillable="true" type="q8:ArrayOfEntityQuery.SearchFilter" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> This causes it to _assume_ that the first attribute is the base. You can fix this: sub set_extension { my $self = shift; - my $element = shift; + my @args = @_; $variety_of{ ident $self } = 'extension'; $derivation_of{ ident $self } = 'extension'; - $base_of{ ident $self } = $element->{ Value }; + $self->init(@args); } Perform the same changes to sub set_restriction.