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:

    oehhar added on 2018-02-09 14:51:47 UTC:
    Looking to the service array:

    simpletypes -> list of ... {tns1:Envelope {base string comment {} xns tns1}} ...
    

    so it is considered as simple type, cousing this result.

    Looking at the wsdl:

    Definition of FullExtend in the output:

          <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" />
    
    

    -> type is "Envelope".

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

    Now letts look for Geometry:

          <xs:complexType name="Geometry">
            <xs:annotation>
              <xs:documentation />
            </xs:annotation>
          </xs:complexType>
    

    This is nothing.

    When reverse looking for the returned element "XMin", I only get one type, which directly follows the Extend type:

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

    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.