Ticket Change Details
Not logged in
Overview

Artifact ID: 9a4f292c9e73826fae7843b18f31a10aa8b3bb8c76c06fd15d9eb015614445a9
Ticket: 584bfb772724c1a938f671b8a9ac1d57b2d70f58
WS::Client returns nonsense for abstract types
User & Date: oehhar 2018-02-09 13:38:26
Changes

  1. Appended to comment:

    oehhar added on 2018-02-09 13:38:26 UTC:
    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:

    ::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 
    

    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).