Got it to work...seems that the deploy.wsdd file created by Eclipse/WST didn't 
set style attribute to "wrapped". When I set it manually, all is well.

Please note the last wsdl I provided didn't have the style set to wrapped, but 
it was with the copy I was using.

Sorry for the confusion

Ann, thanks for all your help

Karl

-----Original Message-----
From: Schwarz, Karl [mailto:[EMAIL PROTECTED]
Sent: Tuesday, April 19, 2005 7:53 AM
To: axis-user@ws.apache.org
Subject: RE: Exception parsing complex data type


Well I've tried a few different tracks and I am still left with the same 
original problem, that is an org.xml.sax.SAXException: Invalid element exception

The wsdl I am using is a follows:

<wsdl:definitions name="PhotoCatalogService"
  targetNamespace="http://examples.com/PhotoCatalog";
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
  xmlns:xsd="http://www.w3.org/2001/XMLSchema";
  xmlns:types="http://examples.com/PhotoCatalog/types";
  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
  xmlns:tns="http://examples.com/PhotoCatalog";>

<wsdl:types>


<xsd:schema targetNamespace="http://examples.com/PhotoCatalog/types";
       xmlns:types="http://examples.com/PhotoCatalog/types";>


<!-- Wrapper elements to provide unique signatures for the addPhoto
and replacePhoto operations -->
    <xsd:element name="addPhoto">
       <xsd:complexType>
          <xsd:sequence>
             <xsd:element ref="types:PhotoInfo"/>
          </xsd:sequence>
       </xsd:complexType>
    </xsd:element>
    <xsd:element name="replacePhoto">
       <xsd:complexType>
          <xsd:sequence>
             <xsd:element ref="types:PhotoInfo"/>
          </xsd:sequence>
       </xsd:complexType>
    </xsd:element>

<!-- Output for the addPhoto and replacePhoto operations. -->
    <xsd:element name="status" type="xsd:string" />

<!-- Input for the addPhoto and replacePhoto operations. -->
    <xsd:element name="PhotoInfo">
       <xsd:complexType>
          <xsd:sequence>
             <xsd:element name="customerName" type="xsd:string"/>
             <xsd:element name="photoID" type="xsd:int"/>
             <!--xsd:element name="photoRef" type="wsi:swaRef"/-->
          </xsd:sequence>
       </xsd:complexType>
    </xsd:element>
  </xsd:schema>
</wsdl:types>

<wsdl:message name="addPhotoRequest">
  <!-- first part is the SOAP body -->
  <wsdl:part name="body" element="types:addPhoto"/>
  <!-- second part is the attachment -->
  <wsdl:part name="photo" type="xsd:base64Binary"/>
</wsdl:message>

<wsdl:message name="addPhotoResponse">
  <wsdl:part name="body" element="types:status"/>
</wsdl:message>

<wsdl:message name="replacePhotoRequest">
  <wsdl:part name="body" element="types:replacePhoto"/>
  <wsdl:part name="newPhoto" type="xsd:base64Binary"/>
</wsdl:message>

<wsdl:message name="replacePhotoResponse">
  <wsdl:part name="status" element="types:status"/>
</wsdl:message>

<wsdl:portType name="PhotoCatalog">
  <wsdl:operation name="addPhoto">
    <wsdl:input message="tns:addPhotoRequest"/>
    <wsdl:output message="tns:addPhotoResponse"/>
  </wsdl:operation>
  <wsdl:operation name="replacePhoto">
    <wsdl:input message="tns:replacePhotoRequest"/>
    <wsdl:output message="tns:replacePhotoResponse"/>
  </wsdl:operation>
</wsdl:portType>

<wsdl:binding name="PhotoCatalogBinding" type="tns:PhotoCatalog">
  <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
  <wsdl:operation name="addPhoto">
    <soap:operation soapAction="addPhoto"/>
    <wsdl:input>
      <mime:multipartRelated>
        <mime:part>
          <soap:body parts="body" use="literal"/>
        </mime:part>
        <mime:part>
          <mime:content part="photo" type="image/jpeg"/>
        </mime:part>
      </mime:multipartRelated>
    </wsdl:input>
    <wsdl:output>
      <soap:body use="literal"/>
    </wsdl:output>
  </wsdl:operation>
  <wsdl:operation name="replacePhoto">
    <soap:operation soapAction="replacePhoto"/>
    <wsdl:input>
      <mime:multipartRelated>
        <mime:part>
          <soap:body parts="body" use="literal"/>
        </mime:part>
        <mime:part>
          <mime:content part="newPhoto" type="image/jpeg"/>
        </mime:part>
      </mime:multipartRelated>
    </wsdl:input>
    <wsdl:output>
      <soap:body use="literal"/>
    </wsdl:output>
  </wsdl:operation>
</wsdl:binding>
<wsdl:service name="PhotoCatalogService">
  <wsdl:port name="PhotoCatalogPort" binding="tns:PhotoCatalogBinding">
    <soap:address 
location="http://192.168.1.100:8080/axis/services/PhotoCatalogPort"/>
  </wsdl:port>
</wsdl:service>
</wsdl:definitions>

I removed the use of swaRef in accordance with 3.1.4.1 of WS-I Usage Scenarios 
for the WS-I Attachments Profile 1.0 (version 1.02 
http://www.ws-i.org/SampleApplications/UsageScenariosAP-1.02-MRD.pdf)


Has anyone successfully processed a SOAP with Attachments request using AXIS 
1-2RC3 and a wsdl like the one I have included.


Karl

Reply via email to