Overview
Artifact ID: | 9a4f292c9e73826fae7843b18f31a10aa8b3bb8c76c06fd15d9eb015614445a9 |
---|---|
Ticket: | 584bfb772724c1a938f671b8a9ac1d57b2d70f58
WS::Client returns nonsense for abstract types |
User & Date: | oehhar 2018-02-09 13:38:26 |
Changes
- Appended to comment:
<hr /><i>oehhar added on 2018-02-09 13:38:26 UTC:</i><br /> Thank you for the pointer to convertTypeToDict. The (very complex) extend type is parsed as non array simple type. Thus a call to "getText" on the whole result subtree gives this annoying result. Here is the log file analysis on the call with the children of the Result node as argument: <verbatim> ::WS::Utils::convertTypeToDict Client 1 domNode052AAEF0 tns1:MapServerInfo domNode052AB418 0 type def = {definition {Name {type xs:string comment {}} Description {type xs:string comment {}} FullExtent {type tns1:Envelope comment {}} Extent {type tns1:Envelope comment {}} SpatialReference {type tns1:SpatialReference comment {The spatial reference of the map (data frame).}} MapLayerInfos {type tns1:ArrayOfMapLayerInfo comment {}} BackgroundColor {type tns1:Color comment {}} Bookmarks {type tns1:ArrayOfMapServerBookmark comment {}} DefaultMapDescription {type tns1:MapDescription comment {}} Units {type tns1:esriUnits comment {The units for the map (data frame).}} SupportedImageReturnTypes {type tns1:esriImageReturnType comment {}} BackgroundSymbol {type tns1:FillSymbol comment {}} CopyrightText {type xs:string comment {}} StandaloneTableInfos {type tns1:ArrayOfStandaloneTableInfo comment {}} StandaloneTableDescriptions {type tns1:ArrayOfStandaloneTableDescription comment {}} FullTimeExtent {type tns1:TimeExtent comment {}} DefaultTimeStepInterval {type xs:double comment {}} DefaultTimeStepIntervalUnits {type tns1:esriTimeUnits comment {}} DefaultTimeWindow {type xs:double comment {}} SupportsDynamicLayers {type xs:boolean comment {}} HasLiveData {type xs:boolean comment {}} MinScale {type xs:double comment {}} MaxScale {type xs:double comment {}}} xns tns1 abstract false} XML of node is <Result xsi:type="tns:MapServerInfo"> <Name>Layers</Name> <Description/> <FullExtent xsi:type="tns:EnvelopeN"> <XMin>-8883833.3022622615</XMin> <YMin>4916395.3269803952</YMin> <XMax>-7973800.0204237271</XMax> <YMax>5632483.3843831643</YMax> <SpatialReference xsi:type="tns:ProjectedCoordinateSystem"> <WKT>PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0],AUTHORITY["EPSG",3857]]</WKT> <XOrigin>-20037700</XOrigin> <YOrigin>-30241100</YOrigin> <XYScale>148923141.92838538</XYScale> <ZOrigin>-100000</ZOrigin> <ZScale>10000</ZScale> <MOrigin>-100000</MOrigin> <MScale>10000</MScale> <XYTolerance>0.001</XYTolerance> <ZTolerance>0.001</ZTolerance> <MTolerance>0.001</MTolerance> <HighPrecision>true</HighPrecision> <WKID>102100</WKID> <LatestWKID>3857</LatestWKID> </SpatialReference> </FullExtent> *** snip *** partsList is {Name Description FullExtent Extent SpatialReference MapLayerInfos BackgroundColor Bookmarks DefaultMapDescription Units SupportedImageReturnTypes BackgroundSymbol CopyrightText StandaloneTableInfos StandaloneTableDescriptions FullTimeExtent DefaultTimeStepInterval DefaultTimeStepIntervalUnits DefaultTimeWindow SupportsDynamicLayers HasLiveData MinScale MaxScale} Type = {string} typeInfoList = {0 0} @3 partName Name partType xs:string xns tns1 typeInfoList 0 0 Trying #1 domNode052AAEF0 selectNodes tns1:Name Trying #2 domNode052AAEF0 selectNodes tns1:Name Trying #3 domNode052AAEF0 selectNodes Name Found 1 Name *** in ::WS::Utils::GetServiceTypeDef Client 1 xs:string Type = {string} typeInfoList = {0 0} @3 *** -> symple type: string partName Description partType xs:string xns tns1 typeInfoList 0 0 Trying #1 domNode052AAEF0 selectNodes tns1:Description Trying #2 domNode052AAEF0 selectNodes tns1:Description Trying #3 domNode052AAEF0 selectNodes Description Found 1 Description *** here is the FullExtend run *** *** in (::WS::Utils::GetServiceTypeDef Client 1 tns1:Envelope) Type = {tns1:Envelope} typeInfoList = {0 0} @2 *** Custom simple type *** simpleTypes($mode=Client,$service=1,$type=tns1:Envelope) = {0 0} *** utilities 1443 partName FullExtent partType tns1:Envelope xns tns1 typeInfoList 0 0 Trying #1 domNode052AAEF0 selectNodes tns1:FullExtent Trying #2 domNode052AAEF0 selectNodes tns1:FullExtent Trying #3 domNode052AAEF0 selectNodes FullExtent *** utilities 1477 Found 1 FullExtent </verbatim> With the type "0 0", it goes to a getText and thus to the strange result. Now, the type should be non simple non array "1 0". Then, we would get the single fields (or would get a chance to get it).