You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Eugene Shershnev <sh...@gmail.com> on 2005/01/31 19:36:12 UTC

question/problem

Hi All,

The wrapped WSDL that Axis generated for my service failed to pass WS-I test using SOAPscope.
It was failing on R2002 and R2004 of the requirements. In the WS-I BP 1.0 all the samples related to these two requirements have both namespace and location attributes. Also, in the schema at http://schemas.xmlsoap.org/wsdl/ both namespace and location are defined as "required" (if I'm looking at the right thing):
<xs:complexType name="tImport">
  <xs:complexContent>
    <xs:extension base="wsdl:tExtensibleAttributesDocumented">
      <xs:attribute name="namespace" type="xs:anyURI" use="required" />
      <xs:attribute name="location" type="xs:anyURI" use="required" />
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

To make it pass the test I've simply commented out both <import namespace="..."/> elements. Everything was validated and worked perfectly.
So, here is my question: what are these two imports used for and has anything changed when I removed them?

Also, two namespaces defined in the <definitions> are never used in the WSDL: "apachesoap" and "intf". I understand that this is OK, but what may these 2 namespaces be used for?

Thanks,
Eugene

Here is the WSDL file:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://localhost:9090/axis/services/ent"
 xmlns:apachesoap="http://xml.apache.org/xml-soap"
 xmlns:impl="http://localhost:9090/axis/services/ent"
 xmlns:intf="http://localhost:9090/axis/services/ent"
 xmlns:tns1="http://enterprise.ent"
 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
 xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--WSDL created by Apache Axis version: 1.2RC2
Built on Jan 25, 2005 (06:12:35 PST)-->
 <wsdl:types>
  <schema elementFormDefault="qualified" targetNamespace="http://enterprise.ent" xmlns="http://www.w3.org/2001/XMLSchema">
   <import namespace="http://localhost:9090/axis/services/ent"/>
   <element name="login">
    <complexType>
     <sequence>
      <element maxOccurs="unbounded" name="credentials" type="xsd:string"/>
      <element name="locale" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="loginResponse">
    <complexType>
     <sequence>
      <element name="loginReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="logout">
    <complexType>
     <sequence>
      <element name="sid" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="logoutResponse">
    <complexType/>
   </element>
   <element name="clear">
    <complexType>
     <sequence>
      <element name="sid" type="xsd:string"/>
      <element name="uri" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="clearResponse">
    <complexType/>
   </element>
   <element name="load">
    <complexType>
     <sequence>
      <element name="sid" type="xsd:string"/>
      <element name="uri" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="loadResponse">
    <complexType>
     <sequence>
      <element name="loadReturn" type="tns1:EntDocument"/>
     </sequence>
    </complexType>
   </element>
   <complexType name="EntDocument">
    <sequence>
     <element name="URI" nillable="true" type="xsd:string"/>
     <element name="name" nillable="true" type="xsd:string"/>
     <element name="size" type="xsd:long"/>
    </sequence>
   </complexType>
   <element name="write">
    <complexType>
     <sequence>
      <element name="sid" type="xsd:string"/>
      <element name="uri" type="xsd:string"/>
      <element name="data" type="xsd:base64Binary"/>
     </sequence>
    </complexType>
   </element>
   <element name="writeResponse">
    <complexType/>
   </element>
   <element name="list">
    <complexType>
     <sequence>
      <element name="sid" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="listResponse">
    <complexType>
     <sequence>
      <element name="listReturn" type="impl:ArrayOf_xsd_anyType"/>
     </sequence>
    </complexType>
   </element>
   <element name="delete">
    <complexType>
     <sequence>
      <element name="sid" type="xsd:string"/>
      <element name="uri" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="deleteResponse">
    <complexType/>
   </element>
   <element name="read">
    <complexType>
     <sequence>
      <element name="sid" type="xsd:string"/>
      <element name="uri" type="xsd:string"/>
      <element name="offset" type="xsd:long"/>
      <element name="length" type="xsd:int"/>
     </sequence>
    </complexType>
   </element>
   <element name="readResponse">
    <complexType>
     <sequence>
      <element name="readReturn" type="xsd:base64Binary"/>
     </sequence>
    </complexType>
   </element>
   <element name="create">
    <complexType>
     <sequence>
      <element name="sid" type="xsd:string"/>
      <element name="name" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="createResponse">
    <complexType>
     <sequence>
      <element name="createReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
  </schema>
  <schema elementFormDefault="qualified" targetNamespace="http://localhost:9090/axis/services/ent" xmlns="http://www.w3.org/2001/XMLSchema">
   <import namespace="http://enterprise.ent"/>
   <complexType name="ArrayOf_xsd_anyType">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="item" type="xsd:anyType"/>
    </sequence>
   </complexType>
  </schema>
 </wsdl:types>
   <wsdl:message name="logoutResponse">
      <wsdl:part element="tns1:logoutResponse" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="createRequest">
      <wsdl:part element="tns1:create" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="clearRequest">
      <wsdl:part element="tns1:clear" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="clearResponse">
      <wsdl:part element="tns1:clearResponse" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="readRequest">
      <wsdl:part element="tns1:read" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="deleteResponse">
      <wsdl:part element="tns1:deleteResponse" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="logoutRequest">
      <wsdl:part element="tns1:logout" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="loginResponse">
      <wsdl:part element="tns1:loginResponse" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="writeRequest">
      <wsdl:part element="tns1:write" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="readResponse">
      <wsdl:part element="tns1:readResponse" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="loadRequest">
      <wsdl:part element="tns1:load" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="deleteRequest">
      <wsdl:part element="tns1:delete" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="writeResponse">
      <wsdl:part element="tns1:writeResponse" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="listRequest">
      <wsdl:part element="tns1:list" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="listResponse">
      <wsdl:part element="tns1:listResponse" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="loadResponse">
      <wsdl:part element="tns1:loadResponse" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="createResponse">
      <wsdl:part element="tns1:createResponse" name="parameters"/>
   </wsdl:message>
   <wsdl:message name="loginRequest">
      <wsdl:part element="tns1:login" name="parameters"/>
   </wsdl:message>
   <wsdl:portType name="EntAPI">
      <wsdl:operation name="login">
         <wsdl:input message="impl:loginRequest" name="loginRequest"/>
         <wsdl:output message="impl:loginResponse" name="loginResponse"/>
      </wsdl:operation>
      <wsdl:operation name="logout">
         <wsdl:input message="impl:logoutRequest" name="logoutRequest"/>
         <wsdl:output message="impl:logoutResponse" name="logoutResponse"/>
      </wsdl:operation>
      <wsdl:operation name="clear">
         <wsdl:input message="impl:clearRequest" name="clearRequest"/>
         <wsdl:output message="impl:clearResponse" name="clearResponse"/>
      </wsdl:operation>
      <wsdl:operation name="load">
         <wsdl:input message="impl:loadRequest" name="loadRequest"/>
         <wsdl:output message="impl:loadResponse" name="loadResponse"/>
      </wsdl:operation>
      <wsdl:operation name="write">
         <wsdl:input message="impl:writeRequest" name="writeRequest"/>
         <wsdl:output message="impl:writeResponse" name="writeResponse"/>
      </wsdl:operation>
      <wsdl:operation name="list">
         <wsdl:input message="impl:listRequest" name="listRequest"/>
         <wsdl:output message="impl:listResponse" name="listResponse"/>
      </wsdl:operation>
      <wsdl:operation name="delete">
         <wsdl:input message="impl:deleteRequest" name="deleteRequest"/>
         <wsdl:output message="impl:deleteResponse" name="deleteResponse"/>
      </wsdl:operation>
      <wsdl:operation name="read">
         <wsdl:input message="impl:readRequest" name="readRequest"/>
         <wsdl:output message="impl:readResponse" name="readResponse"/>
      </wsdl:operation>
      <wsdl:operation name="create">
         <wsdl:input message="impl:createRequest" name="createRequest"/>
         <wsdl:output message="impl:createResponse" name="createResponse"/>
      </wsdl:operation>
   </wsdl:portType>
   <wsdl:binding name="entSoapBinding" type="impl:EntAPI">
      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsdl:operation name="login">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input name="loginRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="loginResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="logout">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input name="logoutRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="logoutResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="clear">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input name="clearRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="clearResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="load">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input name="loadRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="loadResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="write">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input name="writeRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="writeResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="list">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input name="listRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="listResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="delete">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input name="deleteRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="deleteResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="read">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input name="readRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="readResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
      <wsdl:operation name="create">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input name="createRequest">
            <wsdlsoap:body use="literal"/>
         </wsdl:input>
         <wsdl:output name="createResponse">
            <wsdlsoap:body use="literal"/>
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>
   <wsdl:service name="EntAPIService">
      <wsdl:port binding="impl:entSoapBinding" name="ent">
         <wsdlsoap:address location="http://localhost:9090/axis/services/ent"/>
      </wsdl:port>
   </wsdl:service>
</wsdl:definitions>