title: gsoap class generation problem
body: <p>I am trying to generate gsoap classes for the JIRA issue tracking system WSDL.  I run these commands to generate the required classes:</p>
  
  <pre>$ wsdl2h -o JIRASoap.h &lt;url to wsdl&gt;
  $ soapcpp2 -C JIRASoap.h</pre>
  
  <p>The soapcpp2 command gives the following output, but does not indicate how to fix it.</p>
  
  <pre>There were errors:
  3 syntax errors
  1 semantic error
  2 warnings</pre>
  
  <p>These are (most of) the errors:</p>
  
  <pre>JIRASoap.h(935): syntax error
  JIRASoap.h(934): Syntax error: input before ; skipped
  JIRASoap.h(940): syntax error
  JIRASoap.h(939): Syntax error: input before ; skipped
  
  JIRASoap.h(942): **ERROR**: Duplicate declaration of __size (already declarared at line 937)
  
  JIRASoap.h(947): syntax error
  JIRASoap.h(946): Syntax error: input before ; skipped</pre>
  
  <p>Here is the relevant portion of JIRASoap.h (lines 928-947):</p>
  
  <pre><code>/// SOAP encoded array of xs:byte[]
  class ArrayOf_USCORExsd_USCOREbase64Binary
  { public:
  /// SOAP encoded array of xs:byte
  class 
  { public:
  /// Pointer to array of xsd__byte.
      xsd__byte                           *__ptr                         ;
  /// Size of the dynamic array.
      int                                  __size                        ;
  /// Offset for partially transmitted arrays (uncomment only when required).
  //  int                                  __offset                      ;
      }                                   *__ptr                         ;
  /// Size of the dynamic array.
      int                                  __size                        ;
  /// Offset for partially transmitted arrays (uncomment only when required).
  //  int                                  __offset                      ;
  /// A handle to the soap struct that manages this instance (automatically set)
      struct soap                         *soap                          ;
  };</code></pre>
  
  <p>When I try to compile my program, I get this error:</p>
  
  <blockquote>soapStub.h:2799: error: ISO C++ forbids declaration of ‘ArrayOf_USCORExsd_USCOREbase64Binary’ with no type</blockquote>
  
  <p>Here is the relevant section of the WSDL:</p>
  
  <pre><code>&lt;complexType name="ArrayOf_xsd_base64Binary"&gt;
    &lt;complexContent&gt;
      &lt;restriction base="soapenc:Array"&gt;
        &lt;attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:byte[][]"/&gt;
      &lt;/restriction&gt;
    &lt;/complexContent&gt;
  &lt;/complexType&gt;</code></pre>
  
  <p>As far as I can tell, most types are defined in soapStub.h, but ArrayOf_USCORExsd_USCOREbase64Binary is not.</p>
  
  <p>When I generate C only files, I get "struct /*?*/" instead of "ArrayOf_USCORExsd_USCOREbase64Binary".</p>