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 Mark Whelan <ma...@ibsglobalweb.com> on 2006/01/12 01:09:15 UTC
[Axis 1.2.1] Unwanted xsi types in request message
G'day,
I've done a lot of reading on this topic, tried a lot of the suggested
strategies, but I have yet to find a suitable solution. I am using Axis
to generate client-side stubs from WSDL provided to us from another
party. The resulting request messages when connecting to the target web
service (not Axis-based) contain xsi:type attributes that are preventing
that service from validating the message. I'm using Axis 1.2.1.
Any advice would be appreciated.
cheers
Mark
The (edited) message that is produced is
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<Request xmlns="http://blah/foo/WebService">
<Header>
<ns1:Environment
xmlns:ns1="http://blah/foo">DEV</ns1:Environment>
<ns2:System xmlns:ns2="http://blah/foo">BLAH</ns2:System>
<ns3:SystemVersion xsi:type="xsd:int"
xmlns:ns3="http://blah/foo">1</ns3:SystemVersion>
<ns4:Service
xmlns:ns4="http://blah/foo">WEBSERVICE</ns4:Service>
<ns5:ServiceVersion xsi:type="xsd:int"
xmlns:ns5="http://blah/foo">1</ns5:ServiceVersion>
<ns6:CountryCode
xmlns:ns6="http://blah/foo">AU</ns6:CountryCode>
<ns7:Trace xsi:type="xsd:int"
xmlns:ns7="http://blah/foo">0</ns7:Trace>
<ns8:DealerCode xmlns:ns8="http://blah/foo"></ns8:DealerCode>
<ns9:SSO-ID xmlns:ns9="http://blah/foo">ABC123</ns9:SSO-ID>
</Header>
</Request>
</soapenv:Body>
</soapenv:Envelope>
The (edited) WSDL/XSD for this service is
<?xml version="1.0" encoding="UTF-8" ?><definitions name="WSDLDef"
targetNamespace="http://blah/foo/WebService"
xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://blah/foo"
xmlns:ns2="http://blah/foo" xmlns:ns3="http://blah/foo/WebService"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://blah/foo/WebService"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<types>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="http://blah/foo/WebService"
schemaLocation="WebServiceRequest.xsd"></xsd:import>
</xsd:schema>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="http://blah/foo/WebService"
schemaLocation="WebServiceResponse.xsd"></xsd:import>
</xsd:schema>
</types>
<message name="WebServiceRequest">
<part element="tns:Request" name="Next_Request"></part>
</message>
<message name="WebServiceResponse">
<part element="tns:Response" name="Next_Response"></part>
</message>
<portType name="WebServicePortType">
<operation name="WebService">
<input message="tns:WebServiceRequest"></input>
<output message="tns:WebServiceResponse"></output>
</operation>
</portType>
<binding name="WebServiceBinding" type="tns:WebServicePortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"></soap:binding>
<operation name="WebService">
<soap:operation soapAction="WebService"></soap:operation>
<input>
<soap:body use="literal"></soap:body>
</input>
<output>
<soap:body use="literal"></soap:body>
</output>
</operation>
</binding>
<service name="WebService">
<port binding="tns:WebServiceBinding" name="WebServicePort">
<soap:address
location="http://localhost:8080/mediator/services/WebService"></soap:address>
</port>
</service>
</definitions>
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://blah/foo/WebService"
xmlns="http://blah/foo/WebService" xmlns:ns1="http://blah/foo"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://blah/foo"
schemaLocation="RequestHeader.xsd"></xs:import>
<xs:element name="Request">
<xs:complexType>
<xs:sequence>
<xs:element name="Header" type="ns1:Header"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified" targetNamespace="http://blah/foo"
xmlns="http://blah/foo" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="Header">
<xs:sequence>
<xs:element name="Environment">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="4"></xs:maxLength>
<xs:minLength value="2"></xs:minLength>
<xs:enumeration value="DEVL"></xs:enumeration>
<xs:enumeration value="QA"></xs:enumeration>
<xs:enumeration value="PROD"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="System">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="15"></xs:maxLength>
<xs:minLength value="3"></xs:minLength>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SystemVersion">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0"></xs:minInclusive>
<xs:maxInclusive value="999"></xs:maxInclusive>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Service">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="30"></xs:maxLength>
<xs:minLength value="3"></xs:minLength>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ServiceVersion">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0"></xs:minInclusive>
<xs:maxInclusive value="999"></xs:maxInclusive>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CountryCode">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="2"></xs:length>
<xs:enumeration value="AU"></xs:enumeration>
<xs:enumeration value="NZ"></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Trace">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0"></xs:minInclusive>
<xs:maxInclusive value="9"></xs:maxInclusive>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DealerCode">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="5"></xs:minLength>
<xs:maxLength value="8"></xs:maxLength>
<xs:pattern value="([A-Z0-9])*"></xs:pattern>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="SSO-ID">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="6"></xs:minLength>
<xs:maxLength value="8"></xs:maxLength>
<xs:pattern value="([A-Z0-9])*"></xs:pattern>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
Re: [Axis 1.2.1] Unwanted xsi types in request message
Posted by Anne Thomas Manes <at...@gmail.com>.
Smells like a bug.
On 1/11/06, Mark Whelan <ma...@ibsglobalweb.com> wrote:
>
> G'day,
>
> I've done a lot of reading on this topic, tried a lot of the suggested
> strategies, but I have yet to find a suitable solution. I am using Axis
> to generate client-side stubs from WSDL provided to us from another
> party. The resulting request messages when connecting to the target web
> service (not Axis-based) contain xsi:type attributes that are preventing
> that service from validating the message. I'm using Axis 1.2.1.
>
> Any advice would be appreciated.
>
> cheers
>
> Mark
>
> The (edited) message that is produced is
>
> <?xml version="1.0" encoding="UTF-8"?>
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> <soapenv:Body>
> <Request xmlns="http://blah/foo/WebService">
> <Header>
> <ns1:Environment
> xmlns:ns1="http://blah/foo">DEV</ns1:Environment>
> <ns2:System xmlns:ns2="http://blah/foo">BLAH</ns2:System>
> <ns3:SystemVersion xsi:type="xsd:int"
> xmlns:ns3="http://blah/foo">1</ns3:SystemVersion>
> <ns4:Service
> xmlns:ns4="http://blah/foo">WEBSERVICE</ns4:Service>
> <ns5:ServiceVersion xsi:type="xsd:int"
> xmlns:ns5="http://blah/foo">1</ns5:ServiceVersion>
> <ns6:CountryCode
> xmlns:ns6="http://blah/foo">AU</ns6:CountryCode>
> <ns7:Trace xsi:type="xsd:int"
> xmlns:ns7="http://blah/foo">0</ns7:Trace>
> <ns8:DealerCode xmlns:ns8="http://blah/foo"
> ></ns8:DealerCode>
> <ns9:SSO-ID xmlns:ns9="http://blah/foo">ABC123</ns9:SSO-ID>
> </Header>
> </Request>
> </soapenv:Body>
> </soapenv:Envelope>
>
> The (edited) WSDL/XSD for this service is
>
> <?xml version="1.0" encoding="UTF-8" ?><definitions name="WSDLDef"
> targetNamespace="http://blah/foo/WebService"
> xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://blah/foo"
> xmlns:ns2="http://blah/foo" xmlns:ns3="http://blah/foo/WebService"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:tns="http://blah/foo/WebService"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <types>
> <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <xsd:import namespace="http://blah/foo/WebService"
> schemaLocation="WebServiceRequest.xsd"></xsd:import>
> </xsd:schema>
> <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <xsd:import namespace="http://blah/foo/WebService"
> schemaLocation="WebServiceResponse.xsd"></xsd:import>
> </xsd:schema>
> </types>
> <message name="WebServiceRequest">
> <part element="tns:Request" name="Next_Request"></part>
> </message>
> <message name="WebServiceResponse">
> <part element="tns:Response" name="Next_Response"></part>
> </message>
> <portType name="WebServicePortType">
> <operation name="WebService">
> <input message="tns:WebServiceRequest"></input>
> <output message="tns:WebServiceResponse"></output>
> </operation>
> </portType>
> <binding name="WebServiceBinding" type="tns:WebServicePortType">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"></soap:binding>
> <operation name="WebService">
> <soap:operation soapAction="WebService"></soap:operation>
> <input>
> <soap:body use="literal"></soap:body>
> </input>
> <output>
> <soap:body use="literal"></soap:body>
> </output>
> </operation>
> </binding>
> <service name="WebService">
> <port binding="tns:WebServiceBinding" name="WebServicePort">
> <soap:address
> location="http://localhost:8080/mediator/services/WebService"
> ></soap:address>
> </port>
> </service>
> </definitions>
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <xs:schema attributeFormDefault="unqualified"
> elementFormDefault="qualified"
> targetNamespace="http://blah/foo/WebService"
> xmlns="http://blah/foo/WebService" xmlns:ns1="http://blah/foo"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <xs:import namespace="http://blah/foo"
> schemaLocation="RequestHeader.xsd"></xs:import>
> <xs:element name="Request">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="Header" type="ns1:Header"></xs:element>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> </xs:schema>
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <xs:schema attributeFormDefault="unqualified"
> elementFormDefault="qualified" targetNamespace="http://blah/foo"
> xmlns="http://blah/foo" xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <xs:complexType name="Header">
> <xs:sequence>
> <xs:element name="Environment">
> <xs:simpleType>
> <xs:restriction base="xs:string">
> <xs:maxLength value="4"></xs:maxLength>
> <xs:minLength value="2"></xs:minLength>
> <xs:enumeration value="DEVL"></xs:enumeration>
> <xs:enumeration value="QA"></xs:enumeration>
> <xs:enumeration value="PROD"></xs:enumeration>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
> <xs:element name="System">
> <xs:simpleType>
> <xs:restriction base="xs:string">
> <xs:maxLength value="15"></xs:maxLength>
> <xs:minLength value="3"></xs:minLength>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
> <xs:element name="SystemVersion">
> <xs:simpleType>
> <xs:restriction base="xs:int">
> <xs:minInclusive value="0"></xs:minInclusive>
> <xs:maxInclusive value="999"></xs:maxInclusive>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
> <xs:element name="Service">
> <xs:simpleType>
> <xs:restriction base="xs:string">
> <xs:maxLength value="30"></xs:maxLength>
> <xs:minLength value="3"></xs:minLength>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
> <xs:element name="ServiceVersion">
> <xs:simpleType>
> <xs:restriction base="xs:int">
> <xs:minInclusive value="0"></xs:minInclusive>
> <xs:maxInclusive value="999"></xs:maxInclusive>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
> <xs:element name="CountryCode">
> <xs:simpleType>
> <xs:restriction base="xs:string">
> <xs:length value="2"></xs:length>
> <xs:enumeration value="AU"></xs:enumeration>
> <xs:enumeration value="NZ"></xs:enumeration>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
> <xs:element name="Trace">
> <xs:simpleType>
> <xs:restriction base="xs:int">
> <xs:minInclusive value="0"></xs:minInclusive>
> <xs:maxInclusive value="9"></xs:maxInclusive>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
> <xs:element name="DealerCode">
> <xs:simpleType>
> <xs:restriction base="xs:string">
> <xs:minLength value="5"></xs:minLength>
> <xs:maxLength value="8"></xs:maxLength>
> <xs:pattern value="([A-Z0-9])*"></xs:pattern>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
> <xs:element name="SSO-ID">
> <xs:simpleType>
> <xs:restriction base="xs:string">
> <xs:minLength value="6"></xs:minLength>
> <xs:maxLength value="8"></xs:maxLength>
> <xs:pattern value="([A-Z0-9])*"></xs:pattern>
> </xs:restriction>
> </xs:simpleType>
> </xs:element>
> </xs:sequence>
> </xs:complexType>
> </xs:schema>
>
>
>