users@jax-rpc.java.net

Re: Array in document-style SOAP binding

From: Arun Gupta <Arun.Gupta_at_Sun.COM>
Date: Mon, 04 Oct 2004 15:06:07 -0700

Arrays in document literal are defined as follows:

<complexType name="StringArray">
    <sequence>
     <element name="item" type="xsd:string" minOccurs="0"
maxOccurs="unbounded"/>
    </sequence>
   </complexType>
<element name="TerminalList" type="types:StringArray"/>

This should map to a String[].

Thanks,
-Arun

Oliver Jaun wrote:

> Hello
>
> I'm trying to define a document-style SOAP binding. So
> far it works. I even managed to have attachment
> support.
>
> The problem is that I now need a array as input
> parameter for one of my operations. In messages which
> are used in a document-style binding I MUST use the
> element attribute. I can't use the type attribute. I
> specified the following type and element:
> <type>
> ...
> <complexType name="StringArray">
> <complexContent>
> <restriction base="soapenc:Array">
> <attribute ref="soapenc:arrayType"
> wsdl:arrayType="xsd:string[]"/>
> </restriction>
> </complexContent>
> </complexType>
>
> <element name="TerminalList"
> type="types:StringArray"/>
> ...
> </type>
>
> It compiles fine with wscompile (jwsdp 1.4, wscompile
> 1.1.2) but when I look at the interface the array is
> mapped to SOAPElement.
> When I have a rpc-style binding and I specify
> type="types:StringArray" it is mapped to String[].
>
> How can I tell wscompile to map my
> TerminalList-Element to an Array?
>
> Thank a lot in advance. Following the complete WSDL:
> ------------------------------------------------------
>
> <?xml version="1.0" standalone="yes"?>
> <definitions
> name="FileDistributorService"
> targetNamespace="http://ascom.com/FileDistributor"
> xmlns="http://schemas.xmlsoap.org/wsdl/"
> 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://ascom.com/FileDistributor/types"
> xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
> xmlns:tns="http://ascom.com/FileDistributor"
> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
>
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> >
>
> <types>
> <schema
> targetNamespace="http://ascom.com/FileDistributor/types"
> xmlns="http://www.w3.org/2001/XMLSchema"
>
> xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>
> xmlns:types="http://ascom.com/FileDistributor/types">
>
> <import
> namespace="http://ws-i.org/profiles/basic/1.1/xsd"
> schemaLocation="WS-ISwA.xsd"/>
>
> <import
> namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
>
> <complexType name="StringArray">
> <complexContent>
> <restriction base="soapenc:Array">
> <attribute ref="soapenc:arrayType"
> wsdl:arrayType="xsd:string[]"/>
> </restriction>
> </complexContent>
> </complexType>
>
> <element name="TerminalList"
> type="types:StringArray"/>
> <element name="SliceName" type="xsd:string"/>
> <element name="UpdateId" type="xsd:string"/>
> <element name="FileReference"
> type="wsi:swaRef"/>
> </schema>
> </types>
>
> <message name="getConfigurationRequest">
> <part name="terminalList"
> element="types:TerminalList"/>
> </message>
>
> <message name="getConfigurationResponse">
> <part name="configFile"
> element="types:FileReference"/>
> </message>
>
> <message name="getUpdateRequest">
> <part name="updateId" element="types:SliceName"/>
> <part name="sliceName" element="types:UpdateId"/>
> </message>
>
> <message name="getUpdateResponse">
> <part name="updateRef"
> element="types:FileReference"/>
> </message>
>
> <portType name="FileDistributor">
> <operation name="getConfiguration">
> <input message="tns:getConfigurationRequest"/>
> <output message="tns:getConfigurationResponse"/>
> </operation>
>
> <operation name="getUpdate">
> <input message="tns:getUpdateRequest"/>
> <output message="tns:getUpdateResponse"/>
> </operation>
> </portType>
>
> <binding name="FileDistributorBinding"
> type="tns:FileDistributor">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>
> <operation name="getConfiguration">
> <input>
> <soap:body parts="terminalList"
> use="literal"/>
> </input>
>
> <output>
> <soap:body parts="configFile" use="literal"/>
> <mime:multipartRelated/>
> </output>
> </operation>
>
> <operation name="getUpdate">
> <input>
> <soap:body parts="updateId" use="literal"/>
> <soap:body parts="sliceName" use="literal"/>
> </input>
>
> <output>
> <soap:body parts="updateRef" use="literal"/>
> <mime:multipartRelated/>
> </output>
> </operation>
> </binding>
>
> <service name="FileDistributorService">
> <port name="FileDistributorPort"
> binding="tns:FileDistributorBinding">
> <soap:address
> location="http://localhost:8080/filedistributor/filedistributor"/>
> </port>
> </service>
> </definitions>
>
> ---------------------------------------------------
> additionally the included WS-ISwA.xsd:
> ---------------------------------------------------
>
> <?xml version="1.0" encoding="utf-8" ?>
>
> <xsd:schema
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> elementFormDefault="qualified"
>
> targetNamespace="http://ws-i.org/profiles/basic/1.1/xsd"
> xmlns:tns="http://ws-i.org/profiles/basic/1.1/xsd">
> <xsd:simpleType name="swaRef">
> <xsd:restriction base="xsd:anyURI" />
> </xsd:simpleType>
> </xsd:schema>
> Regards
>
> Oliver Jaun
>
>
>
>
>
> ___________________________________________________________ALL-NEW Yahoo! Messenger - all new features - even more fun! http://uk.messenger.yahoo.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jax-rpc.dev.java.net
> For additional commands, e-mail: users-help_at_jax-rpc.dev.java.net
>

-- 
got Web Services ?
Download Java Web Services Developer Pack from
http://java.sun.com/webservices
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_jax-rpc.dev.java.net
For additional commands, e-mail: users-help_at_jax-rpc.dev.java.net