Overview
Artifact ID: | 68efc9b2c532b7507586f4e2f6b88ca29d9ece8262b83f812d178841b3f1d9c6 |
---|---|
Ticket: | 584bfb772724c1a938f671b8a9ac1d57b2d70f58
WS::Client returns nonsense for abstract types |
User & Date: | oehhar 2018-02-21 09:43:04 |
Changes
- Appended to comment:
<hr /><i>oehhar added on 2018-02-21 09:43:04 UTC:</i><br /> The convert2dict of FullExtend is now: <verbatim> in ::WS::Utils::convertTypeToDict Client Latest_MapServer domNode054ED118 tns1:MapServerInfo domNode054ED640 ... Trying #3 domNode054ED118 selectNodes FullExtent Found 1 FullExtent *** Line 1628 Non-simple non-array *** The abstract type FullExtend was replaced by tns:EnvelopeN *** Before the change, we got here: *** Type = {tns1:Envelope} typeInfoList = {0 0} Entering convertTypeToDict Client Latest_MapServer domNode054ED19C tns:EnvelopeN domNode054ED640 *** ::WS::Utils::convertTypeToDict *** type=tns:EnvelopeN *** isArray=0 Type = {tns:EnvelopeN} typeInfoList = {1 0} *** Apparently, tns:EnvelopeN is not present in the typeInfo. *** So, the base type is evaluated and the asText is called. Type = {tns1:Envelope} typeInfoList = {1 0} </verbatim> So, apparently one step further. Now, tns:EnvelopeN is not found in dict: * typeInfo Client Latest_MapServer tns:EnvelopeN * typeInfo Client Latest_MapServer Latest_MapServer:tns:EnvelopeN Its wsdl snippet is: <verbatim> <xs:complexType name="EnvelopeN"> <xs:annotation> <xs:documentation /> </xs:annotation> <xs:complexContent mixed="false"> <xs:extension base="Envelope"> <xs:sequence> <xs:element name="XMin" type="xs:double" /> <xs:element name="YMin" type="xs:double" /> <xs:element name="XMax" type="xs:double" /> <xs:element name="YMax" type="xs:double" /> <xs:element minOccurs="0" name="ZMin" type="xs:double" /> <xs:element minOccurs="0" name="ZMax" type="xs:double" /> <xs:element minOccurs="0" name="MMin" type="xs:double" /> <xs:element minOccurs="0" name="MMax" type="xs:double" /> <xs:element minOccurs="0" name="SpatialReference" type="SpatialReference" /> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </verbatim> So lets look what was found in the wsdl: <verbatim> % dict get $::WS::Utils::typeInfo Client Latest_MapServer tns:EnvelopeN key "tns:EnvelopeN" not known in dictionary % dict get $::WS::Utils::typeInfo Client Latest_MapServer tns1:EnvelopeN definition { XMin {type xs:double comment {}} YMin {type xs:double comment {}} XMax {type xs:double comment {}} YMax {type xs:double comment {}} ZMin {type xs:double comment {}} ZMax {type xs:double comment {}} MMin {type xs:double comment {}} MMax {type xs:double comment {}} SpatialReference {type tns1:SpatialReference comment {}} } xns tns1 abstract false </verbatim> So, there is a wrong namespace, "tns1" instead "tns"... Stop here today. Maybe someone may comment... Thank you, Harald