Ticket Change Details
Not logged in
Overview

Artifact ID: 69150acb55e7665f9a66fea289102fa61f014b61f29ef3da622f99d00212b6ad
Ticket: 584bfb772724c1a938f671b8a9ac1d57b2d70f58
WS::Client returns nonsense for abstract types
User & Date: oehhar 2018-02-09 14:51:47
Changes

  1. Appended to comment:
    
    
    <hr /><i>oehhar added on 2018-02-09 14:51:47 UTC:</i><br />
    Looking to the service array:
    
    <verbatim>
    simpletypes -> list of ... {tns1:Envelope {base string comment {} xns tns1}} ...
    </verbatim>
    
    so it is considered as simple type, cousing this result.
    
    Looking at the wsdl:
    
    Definition of FullExtend in the output:
    <verbatim>
          <xs:complexType name="MapServerInfo">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
            <xs:sequence>
              <xs:element name="Name" type="xs:string" />
              <xs:element name="Description" type="xs:string" />
              <xs:element minOccurs="0" name="FullExtent" type="Envelope" />
    
    </verbatim>
    
    -> type is "Envelope".
    
    <verbatim>
    <definitions
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:e="http://www.esri.com/schemas/ArcGIS/10.3"
        xmlns="http://schemas.xmlsoap.org/wsdl/"
        targetNamespace="http://www.esri.com/schemas/ArcGIS/10.3">
      <types>
        <xs:schema
            targetNamespace="http://www.esri.com/schemas/ArcGIS/10.3"
            xmlns="http://www.esri.com/schemas/ArcGIS/10.3">
    ..
          <xs:complexType name="Envelope" abstract="true">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
            <xs:complexContent mixed="false">
              <xs:extension base="Geometry" />
            </xs:complexContent>
          </xs:complexType>
    </verbatim>
    
    Now letts look for Geometry:
    
    <verbatim>
          <xs:complexType name="Geometry">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:complexType>
    </verbatim>
    
    This is nothing.
    
    
    When reverse looking for the returned element "XMin", I only get one type, which directly follows the Extend type:
    
    <verbatim>
          <xs:complexType name="Envelope" abstract="true">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
            <xs:complexContent mixed="false">
              <xs:extension base="Geometry" />
            </xs:complexContent>
          </xs:complexType>
          <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>
          <xs:complexType name="EnvelopeB">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
            <xs:complexContent mixed="false">
              <xs:extension base="Envelope">
                <xs:sequence>
                  <xs:element name="Bytes" type="xs:base64Binary" />
                </xs:sequence>
              </xs:extension>
            </xs:complexContent>
          </xs:complexType>
    </verbatim>
    
    Here is the definition matching the input data.
    
    It seams to be something like abstract classes in oo-c.
    
    The type is empty and replaced by one of the real types in function of context.
    
    So, I suppose, abstract classes are not supported or broken.