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> |
- RE: <import namespace> question/problem Eugene Shershnev
- RE: <import namespace> question/problem Simon Fell