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 CREMENESCU FLORIN <fl...@cdn.fr> on 2005/03/29 17:43:54 UTC

Problems using axis 1.1 and 1.2 with attachments

Hello, 

 
I am trying to use Axis as a client for a web service with attachments. I
have several problems, but I'm not sure that they are due to axis bugs, so I
ask you for advice. 


Skim of the wsdl service description : 

The service returns general information in a classic SOAP message plus an
attached document. The attached document is referenced from the general
information by the REP field (the entire wsdl can be found at the end of the
message). 
The output message has the form : 
<wsdl:message name="piReponse">
	<wsdl:part type="pi:REP_PROTECTEL_IBDF" name="REP_PROTECTEL_IBDF"/>
	<wsdl:part type="xsd:string" name="attch"/>
</wsdl:message>

The binding has the form : 
<wsdl:output>
	<mime:multipartRelated>
		<mime:part>
			<soap:body use="encoded"
namespace="http://mynamespace"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding"/>
		</mime:part>
		<mime:part>
			<mime:content part="attch" type="text/xml"/>
		</mime:part>
	</mime:multipartRelated>
</wsdl:output>

Somewhere in the REP_PROTECTEL_IBDF element there is an element REP
containing : 

<xsd:complexType name="REP">
	<xsd:attribute name="href" type="xsd:anyURI"/>
	<xsd:attribute name="ID" type="xsd:ID"/>
</xsd:complexType>

This element points to the attached document. 

Questions : do you see something unusual with this specification ? Are there
any reasons to encounter problems with wsdl2java and axis ? Does wsdl2java
take into account attachments ? 

First problem :  Null pointer exception with axis 1.1, but ok with axis 1.2
RC2
	We have succeeded to call the service and get the attachment using
axis 1.2RC2 but not with axis 1.1. In axis 1.1 we get the following
NullPointerException : 

java.lang.NullPointerException
	at java.io.FilterInputStream.available(FilterInputStream.java:146)
	at
org.apache.xerces.impl.XMLEntityManager$RewindableInputStream.available(XMLE
ntityManager.java:2644)
	at
sun.nio.cs.StreamDecoder$CharsetSD.inReady(StreamDecoder.java:487)
	at
sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:448)
	at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)
	at java.io.InputStreamReader.read(InputStreamReader.java:167)
	at
org.apache.xerces.impl.XMLEntityScanner.load(XMLEntityScanner.java:1740)
	at
org.apache.xerces.impl.XMLEntityScanner.skipSpaces(XMLEntityScanner.java:125
9)
	at
org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(XMLD
ocumentScannerImpl.java:756)
	at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocume
ntFragmentScannerImpl.java:338)
	at
org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:8
28)
	at
org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:7
58)
	at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:148)
	at
org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:117
8)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
	at
org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationCon
textImpl.java:242)
	at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
	at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
	at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
	at org.apache.axis.client.Call.invoke(Call.java:2553)
	at org.apache.axis.client.Call.invoke(Call.java:2248)
	at org.apache.axis.client.Call.invoke(Call.java:2171)
	at org.apache.axis.client.Call.invoke(Call.java:1691)

	Analyzing this problem we have found that the
MultiPartRelatedInputStream  in 1.2 has its definition of the method
available() : 
public int available() throws java.io.IOException {
        return (closed || eos) ? 0 : soapStream.available();
    }
	This does not exist in axis 1.1 so the super method is used. But the
super class is initialized with a super(null) in the constructor, so
NullPointerException. 
	
	Questions : Is it normal that the attachment part does not fonction
correctly in 1.1 or am I doing something wrong ? Are there other people
using attachments with axis ? I would like to use axis 1.1, what
possibilities I have to correct the problem (beyond patching axis) ? Is axis
1.2 RC 2-3 stable enough to use it in a production mode ? Do you know the
release date of axis 1.2 ? 

	

Second problem : Wsdl2java generator

  It seems to me that the WSDL2Java generator does not treat the
attachments. The generated code of the REP class no place attribute to put
the attachment. Is this a bug or the declaration of the REP element is wrong
? 

 Also, the deserializer used for the REP object is generated as the
BeanDeserializer (so I get a class cast exception when axis tries to put the
AttachmentPart object in the object containing REP). I wrote a new
deserializer which gets the content of the AttachmentPart and creates a REP
object with this content. What bothers me is the fact that I modified the
generated code (class REP_Helper). Is there a possibility to avoid this
(maybe rewrite the wsdl such that wsdl2java can take into account the
attachment) ? 



Thank you for your answers. 

 Here is the entire wsdl : 

<?xml version="1.0" encoding="ISO-8859-1"?>
<wsdl:definitions name="ServiceWebPROTECTELiBDF"
targetNamespace="www.scrypto.fr/wsdl/rpcenc/wsdl/"
xmlns:pi="www.scrypto.fr/wsdl/rpcenc/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/">
	<wsdl:types>
		<xsd:schema
targetNamespace="www.scrypto.fr/wsdl/rpcenc/wsdl/"
xmlns:pi="www.scrypto.fr/wsdl/rpcenc/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
			<xsd:simpleType name="SERVICE" final="restriction">
				<xsd:annotation>
					<xsd:documentation>Service Banque de
France interrogé</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="CODEMODULE">
				<xsd:annotation>
					<xsd:documentation>Numéro du Module
FIBEN, Type de Relevé FCC ou FICP</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="VOSREFERENCES">
				<xsd:annotation>
					<xsd:documentation>Réferences du
dossier</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="UTILISATEUR">
				<xsd:annotation>
					<xsd:documentation>Utilisateur de la
passerelle PROTECTEL-iBDF</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="DONNEESUTILISATEUR">
				<xsd:annotation>
					<xsd:documentation>Données attachées
à l'utilisateur</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="CODEETABLISSEMENT">
				<xsd:annotation>
					<xsd:documentation>Code de
l'établissement spécifié pour l'accès POBI</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="CODEAGENCE">
				<xsd:annotation>
					<xsd:documentation>Code agence
spécifié pour l'accès POBI</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="PRIORITE">
				<xsd:annotation>
					<xsd:documentation>Priorité de la
requête</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="FORCAGE">
				<xsd:annotation>
					<xsd:documentation>Forcer ou non une
interrogation alors que la réponse existe en cache</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="SERVEUR">
				<xsd:annotation>
	
<xsd:documentation>"BDF"</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="FORMATREPONSE">
				<xsd:annotation>
	
<xsd:documentation>"1"</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="IDREQ">
				<xsd:annotation>
					<xsd:documentation>Identifiant de la
réponse enregistrée dans la base de PROTECTEl-iBDF</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="SOUSID">
				<xsd:annotation>
					<xsd:documentation>Sous-Identifiant
de la réponse enregistrée dans la base de PROTECTEl-iBDF</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="ETAT">
				<xsd:annotation>
					<xsd:documentation>Etat dans lequel
se trouve la requête dans la base de PROTECTEL-iBDF</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="VALIDITE">
				<xsd:annotation>
					<xsd:documentation>Validité de la
réponse </xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="LONGUEUR_REPONSE">
				<xsd:annotation>
					<xsd:documentation>Longueur de la
réponse "brute" de la Banque de France</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="DATES">
				<xsd:annotation>
					<xsd:documentation>Date de
soumission de la requête</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="HEURES">
				<xsd:annotation>
					<xsd:documentation>Heure de
soumission de la requête</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="DATER">
				<xsd:annotation>
					<xsd:documentation>Date de reception
de la requête</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="HEURER">
				<xsd:annotation>
					<xsd:documentation>Heure de
reception de la requête</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="FRAICHEUR">
				<xsd:annotation>
					<xsd:documentation>"Fraicheur" de la
réponse </xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="ERREUR_IBDF">
				<xsd:annotation>
					<xsd:documentation>Code erreur
propre à PROTECTEL-iBDF</xsd:documentation>
				</xsd:annotation>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
			<xsd:simpleType name="FONCTION">
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="255"/>
				</xsd:restriction>
			</xsd:simpleType>
<xsd:complexType name="REP">
		<xsd:attribute name="href" type="xsd:anyURI"/>
		<xsd:attribute name="ID" type="xsd:ID"/>
	</xsd:complexType>
			<!--
****************************************************************************
*************************	-->
			<xsd:complexType name="REQ">
				<xsd:annotation>
					<xsd:documentation>Elements
spécifique au type de service interrogé</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="CLEBDF">
						<xsd:annotation>
	
<xsd:documentation>Cleanque de France ou Numéro SIREN</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction
base="xsd:string">
	
<xsd:maxLength value="255"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:element>
					<xsd:element name="DENOM">
						<xsd:annotation>
	
<xsd:documentation>Module FIBEN 07 : Nom recherché </xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction
base="xsd:string">
	
<xsd:maxLength value="255"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:element>
					<xsd:element name="TYPE">
						<xsd:annotation>
	
<xsd:documentation>Module FIBEN 07 : Type de nom</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction
base="xsd:string">
	
<xsd:maxLength value="255"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:element>
					<xsd:element name="RECHET">
						<xsd:annotation>
	
<xsd:documentation>Module FIBEN 07 : Indicateur de recherche étendue (O ou
N).</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction
base="xsd:string">
	
<xsd:maxLength value="255"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:element>
					<xsd:element name="APE">
						<xsd:annotation>
	
<xsd:documentation>Module FIBEN 07 :  code APE</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction
base="xsd:string">
	
<xsd:maxLength value="255"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:element>
					<xsd:element name="CODE">
						<xsd:annotation>
	
<xsd:documentation>Filtre FCC ou FICP sur le code postal.
</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction
base="xsd:string">
	
<xsd:maxLength value="255"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<!--
****************************************************************************
*************************	-->
			<xsd:complexType name="SOUSREQ">
				<xsd:annotation>
					<xsd:documentation>Elements
spécifique au type de service interrogé et permettant d'effectuer un filtre
sur la réponse</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="NOM">
						<xsd:annotation>
	
<xsd:documentation>Filtre FCC ou FICP sur le nom de
famille</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction
base="xsd:string">
	
<xsd:maxLength value="255"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:element>
					<xsd:element name="DATE">
						<xsd:annotation>
	
<xsd:documentation>Filtre FCC ou FICP sur la date de
naissance</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction
base="xsd:string">
	
<xsd:maxLength value="255"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:element>
					<xsd:element name="PRENOM">
						<xsd:annotation>
	
<xsd:documentation>Filtre FCC ou FICP sur le prénom</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction
base="xsd:string">
	
<xsd:maxLength value="255"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:element>
					<xsd:element name="SEXE">
						<xsd:annotation>
	
<xsd:documentation>Filtre FCC ou FICP sur le sexe</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction
base="xsd:string">
	
<xsd:maxLength value="255"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:element>
					<xsd:element name="VILLE">
						<xsd:annotation>
	
<xsd:documentation>Filtre FCC ou FICP sur la ville</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction
base="xsd:string">
	
<xsd:maxLength value="255"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:element>
					<xsd:element name="CODE">
						<xsd:annotation>
	
<xsd:documentation>Filtre FCC ou FICP sur le code postal.
</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction
base="xsd:string">
	
<xsd:maxLength value="255"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:element>
				</xsd:all>
			</xsd:complexType>
			<!--
****************************************************************************
*************************	-->
			<xsd:complexType name="REQUETE_IBDFRETOUR">
				<xsd:annotation>
					<xsd:documentation>Regroupement des
informations sur la requête émise</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SERVICE"
type="pi:SERVICE"/>
					<xsd:element name="CODEMODULE"
type="pi:CODEMODULE"/>
					<xsd:element name="REQ"
type="pi:REQ"/>
					<xsd:element name="SOUSREQ"
type="pi:SOUSREQ"/>
					<xsd:element name="VOSREFERENCES"
type="pi:VOSREFERENCES"/>
					<xsd:element name="UTILISATEUR"
type="pi:UTILISATEUR"/>
					<xsd:element
name="DONNEESUTILISATEUR" type="pi:DONNEESUTILISATEUR"/>
					<xsd:element
name="CODEETABLISSEMENT" type="pi:CODEETABLISSEMENT"/>
					<xsd:element name="CODEAGENCE"
type="pi:CODEAGENCE"/>
					<xsd:element name="SERVEUR"
type="pi:SERVEUR"/>
					<xsd:element name="FORCAGE"
type="pi:FORCAGE"/>
				</xsd:all>
			</xsd:complexType>
			<!--
****************************************************************************
*************************	-->
			<xsd:complexType name="REPONSE_IBDF">
				<xsd:annotation>
					<xsd:documentation>Regroupement des
informations sur la réponse</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="IDREQ"
type="pi:IDREQ"/>
					<xsd:element name="SOUSID"
type="pi:SOUSID"/>
					<xsd:element name="ETAT"
type="pi:ETAT"/>
					<xsd:element name="VALIDITE"
type="pi:VALIDITE"/>
					<xsd:element name="LONGUEUR_REPONSE"
type="pi:LONGUEUR_REPONSE"/>
					<xsd:element name="DATES"
type="pi:DATES"/>
					<xsd:element name="HEURES"
type="pi:HEURES"/>
					<xsd:element name="DATER"
type="pi:DATER"/>
					<xsd:element name="HEURER"
type="pi:HEURER"/>
					<xsd:element name="FRAICHEUR"
type="pi:FRAICHEUR"/>
					<xsd:element name="REP"
type="pi:REP" />
					
					
					<xsd:element name="ERREUR_IBDF"
type="pi:ERREUR_IBDF"/>
				</xsd:all>
			</xsd:complexType>
			<!--
****************************************************************************
*************************	-->
			<xsd:complexType name="REQ_PROTECTEL_IBDF">
				<xsd:annotation>
					<xsd:documentation>Regroupement des
informations sur la requête à emettre</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element name="SERVICE"
type="pi:SERVICE"/>
					<xsd:element name="CODEMODULE"
type="pi:CODEMODULE"/>
					<xsd:element name="REQ"
type="pi:REQ"/>
					<xsd:element name="SOUSREQ"
type="pi:SOUSREQ"/>
					<xsd:element name="VOSREFERENCES"
type="pi:VOSREFERENCES"/>
					<xsd:element name="UTILISATEUR"
type="pi:UTILISATEUR"/>
					<xsd:element
name="DONNEESUTILISATEUR" type="pi:DONNEESUTILISATEUR"/>
					<xsd:element
name="CODEETABLISSEMENT" type="pi:CODEETABLISSEMENT"/>
					<xsd:element name="CODEAGENCE"
type="pi:CODEAGENCE"/>
					<xsd:element name="SERVEUR"
type="pi:SERVEUR"/>
					<xsd:element name="PRIORITE"
type="pi:PRIORITE"/>
					<xsd:element name="FORCAGE"
type="pi:FORCAGE"/>
					<xsd:element name="FORMATREPONSE"
type="pi:FORMATREPONSE"/>
					<xsd:element name="FONCTION"
type="pi:FONCTION"/>
				</xsd:all>
			</xsd:complexType>
			<!--
****************************************************************************
*************************	-->
			<xsd:complexType name="REP_PROTECTEL_IBDF">
				<xsd:annotation>
					<xsd:documentation>Regroupement des
informations sur la réponse, et requête émise.</xsd:documentation>
				</xsd:annotation>
				<xsd:all>
					<xsd:element
name="REQUETE_IBDFRETOUR" type="pi:REQUETE_IBDFRETOUR"/>
					<xsd:element name="REPONSE_IBDF"
type="pi:REPONSE_IBDF"/>
				</xsd:all>
			</xsd:complexType>
		</xsd:schema>
	</wsdl:types>
	<wsdl:message name="piReponse">
		<wsdl:part type="pi:REP_PROTECTEL_IBDF"
name="REP_PROTECTEL_IBDF"/>
		<wsdl:part type="xsd:string" name="attch"/>
	</wsdl:message>
	<wsdl:message name="piRequest">
		<wsdl:part type="pi:REQ_PROTECTEL_IBDF"
name="REQ_PROTECTEL_IBDF"/>
	</wsdl:message>
	<wsdl:portType name="piPortType">
		<wsdl:operation name="InterrogationBDF">
			<wsdl:input message="pi:piRequest"/>
			<wsdl:output message="pi:piReponse"/>
		</wsdl:operation>
	</wsdl:portType>
	<wsdl:binding name="piBinding" type="pi:piPortType">
		<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="InterrogationBDF">
			<soap:operation soapAction="" style="rpc"/>
			<wsdl:input>
				<soap:body use="encoded"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://schemas.xmlsoap.org/wsdl/"/>
			</wsdl:input>
			<wsdl:output>
				<mime:multipartRelated>
					<mime:part>
						<soap:body use="encoded"
namespace="http://mynamespace"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding"/>
					</mime:part>
					<mime:part>
						<mime:content part="attch"
type="text/xml"/>
					</mime:part>
				</mime:multipartRelated>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:service name="piwsdl">
		<wsdl:port binding="pi:piBinding" name="piPort">
			<soap:address
location="http://test.scrypto.fr/piServiceWeb_RpcEncoded_Swa"/>
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>





----------------------------------------------------
Ce message et toutes les pieces jointes (ci-apres le "message") sont confidentiels et etablis a l'intention exclusive de ses destinataires.
Toute utilisation ou diffusion non autorisee est interdite.Tout message electronique est susceptible d'alteration.
Le CREDIT DU NORD et ses filiales declinent toute responsabilite au titre de ce message s'il a ete altere, deforme ou falsifie.
This message and any attachments ( the "message") are confidential and intended solely for the addressees.
Any unauthorised use or dissemination is prohibited.E-mails are susceptible to alteration.
Neither CREDIT DU NORD nor any of its subsidiaries or affiliates shall be liable for the message if altered, changed or falsified.
----------------------------------------------------


Re: Problems using axis 1.1 and 1.2 with attachments

Posted by Anne Thomas Manes <at...@gmail.com>.
I suggest you follow the guidelines defined in the WS-I Attachments
Profile. (It requires you to use literal encoding, but if you insist
on using SOAP encoding, then you still ought to be able to use the
special type that WS-I created to reference an attachment from your
message.

See http://www.ws-i.org/Profiles/AttachmentsProfile-1.0.html, section 4.4.

Anne


On Tue, 29 Mar 2005 17:43:54 +0200, CREMENESCU FLORIN
<fl...@cdn.fr> wrote:
> Hello,
> 
> I am trying to use Axis as a client for a web service with attachments. I
> have several problems, but I'm not sure that they are due to axis bugs, so I
> ask you for advice.
> 
> Skim of the wsdl service description :
> 
> The service returns general information in a classic SOAP message plus an
> attached document. The attached document is referenced from the general
> information by the REP field (the entire wsdl can be found at the end of the
> message).
> The output message has the form :
> <wsdl:message name="piReponse">
>         <wsdl:part type="pi:REP_PROTECTEL_IBDF" name="REP_PROTECTEL_IBDF"/>
>         <wsdl:part type="xsd:string" name="attch"/>
> </wsdl:message>
> 
> The binding has the form :
> <wsdl:output>
>         <mime:multipartRelated>
>                 <mime:part>
>                         <soap:body use="encoded"
> namespace="http://mynamespace"
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding"/>
>                 </mime:part>
>                 <mime:part>
>                         <mime:content part="attch" type="text/xml"/>
>                 </mime:part>
>         </mime:multipartRelated>
> </wsdl:output>
> 
> Somewhere in the REP_PROTECTEL_IBDF element there is an element REP
> containing :
> 
> <xsd:complexType name="REP">
>         <xsd:attribute name="href" type="xsd:anyURI"/>
>         <xsd:attribute name="ID" type="xsd:ID"/>
> </xsd:complexType>
> 
> This element points to the attached document.
> 
> Questions : do you see something unusual with this specification ? Are there
> any reasons to encounter problems with wsdl2java and axis ? Does wsdl2java
> take into account attachments ?
> 
> First problem :  Null pointer exception with axis 1.1, but ok with axis 1.2
> RC2
>         We have succeeded to call the service and get the attachment using
> axis 1.2RC2 but not with axis 1.1. In axis 1.1 we get the following
> NullPointerException :
> 
> java.lang.NullPointerException
>         at java.io.FilterInputStream.available(FilterInputStream.java:146)
>         at
> org.apache.xerces.impl.XMLEntityManager$RewindableInputStream.available(XMLE
> ntityManager.java:2644)
>         at
> sun.nio.cs.StreamDecoder$CharsetSD.inReady(StreamDecoder.java:487)
>         at
> sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:448)
>         at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)
>         at java.io.InputStreamReader.read(InputStreamReader.java:167)
>         at
> org.apache.xerces.impl.XMLEntityScanner.load(XMLEntityScanner.java:1740)
>         at
> org.apache.xerces.impl.XMLEntityScanner.skipSpaces(XMLEntityScanner.java:125
> 9)
>         at
> org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(XMLD
> ocumentScannerImpl.java:756)
>         at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocume
> ntFragmentScannerImpl.java:338)
>         at
> org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:8
> 28)
>         at
> org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:7
> 58)
>         at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:148)
>         at
> org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:117
> 8)
>         at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
>         at
> org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationCon
> textImpl.java:242)
>         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
>         at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
>         at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
>         at org.apache.axis.client.Call.invoke(Call.java:2553)
>         at org.apache.axis.client.Call.invoke(Call.java:2248)
>         at org.apache.axis.client.Call.invoke(Call.java:2171)
>         at org.apache.axis.client.Call.invoke(Call.java:1691)
> 
>         Analyzing this problem we have found that the
> MultiPartRelatedInputStream  in 1.2 has its definition of the method
> available() :
> public int available() throws java.io.IOException {
>         return (closed || eos) ? 0 : soapStream.available();
>     }
>         This does not exist in axis 1.1 so the super method is used. But the
> super class is initialized with a super(null) in the constructor, so
> NullPointerException.
> 
>         Questions : Is it normal that the attachment part does not fonction
> correctly in 1.1 or am I doing something wrong ? Are there other people
> using attachments with axis ? I would like to use axis 1.1, what
> possibilities I have to correct the problem (beyond patching axis) ? Is axis
> 1.2 RC 2-3 stable enough to use it in a production mode ? Do you know the
> release date of axis 1.2 ?
> 
> Second problem : Wsdl2java generator
> 
>   It seems to me that the WSDL2Java generator does not treat the
> attachments. The generated code of the REP class no place attribute to put
> the attachment. Is this a bug or the declaration of the REP element is wrong
> ?
> 
>  Also, the deserializer used for the REP object is generated as the
> BeanDeserializer (so I get a class cast exception when axis tries to put the
> AttachmentPart object in the object containing REP). I wrote a new
> deserializer which gets the content of the AttachmentPart and creates a REP
> object with this content. What bothers me is the fact that I modified the
> generated code (class REP_Helper). Is there a possibility to avoid this
> (maybe rewrite the wsdl such that wsdl2java can take into account the
> attachment) ?
> 
> Thank you for your answers.
> 
>  Here is the entire wsdl :
> 
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <wsdl:definitions name="ServiceWebPROTECTELiBDF"
> targetNamespace="www.scrypto.fr/wsdl/rpcenc/wsdl/"
> xmlns:pi="www.scrypto.fr/wsdl/rpcenc/wsdl/"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/">
>         <wsdl:types>
>                 <xsd:schema
> targetNamespace="www.scrypto.fr/wsdl/rpcenc/wsdl/"
> xmlns:pi="www.scrypto.fr/wsdl/rpcenc/wsdl/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>                         <xsd:simpleType name="SERVICE" final="restriction">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Service Banque de
> France interrogé</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="CODEMODULE">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Numéro du Module
> FIBEN, Type de Relevé FCC ou FICP</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="VOSREFERENCES">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Réferences du
> dossier</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="UTILISATEUR">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Utilisateur de la
> passerelle PROTECTEL-iBDF</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="DONNEESUTILISATEUR">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Données attachées
> à l'utilisateur</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="CODEETABLISSEMENT">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Code de
> l'établissement spécifié pour l'accès POBI</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="CODEAGENCE">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Code agence
> spécifié pour l'accès POBI</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="PRIORITE">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Priorité de la
> requête</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="FORCAGE">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Forcer ou non une
> interrogation alors que la réponse existe en cache</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="SERVEUR">
>                                 <xsd:annotation>
> 
> <xsd:documentation>"BDF"</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="FORMATREPONSE">
>                                 <xsd:annotation>
> 
> <xsd:documentation>"1"</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="IDREQ">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Identifiant de la
> réponse enregistrée dans la base de PROTECTEl-iBDF</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="SOUSID">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Sous-Identifiant
> de la réponse enregistrée dans la base de PROTECTEl-iBDF</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="ETAT">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Etat dans lequel
> se trouve la requête dans la base de PROTECTEL-iBDF</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="VALIDITE">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Validité de la
> réponse </xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="LONGUEUR_REPONSE">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Longueur de la
> réponse "brute" de la Banque de France</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="DATES">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Date de
> soumission de la requête</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="HEURES">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Heure de
> soumission de la requête</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="DATER">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Date de reception
> de la requête</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="HEURER">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Heure de
> reception de la requête</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="FRAICHEUR">
>                                 <xsd:annotation>
>                                         <xsd:documentation>"Fraicheur" de la
> réponse </xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="ERREUR_IBDF">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Code erreur
> propre à PROTECTEL-iBDF</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
>                         <xsd:simpleType name="FONCTION">
>                                 <xsd:restriction base="xsd:string">
>                                         <xsd:maxLength value="255"/>
>                                 </xsd:restriction>
>                         </xsd:simpleType>
> <xsd:complexType name="REP">
>                 <xsd:attribute name="href" type="xsd:anyURI"/>
>                 <xsd:attribute name="ID" type="xsd:ID"/>
>         </xsd:complexType>
>                         <!--
> ****************************************************************************
> *************************       -->
>                         <xsd:complexType name="REQ">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Elements
> spécifique au type de service interrogé</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:all>
>                                         <xsd:element name="CLEBDF">
>                                                 <xsd:annotation>
> 
> <xsd:documentation>Cleanque de France ou Numéro SIREN</xsd:documentation>
>                                                 </xsd:annotation>
>                                                 <xsd:simpleType>
>                                                         <xsd:restriction
> base="xsd:string">
> 
> <xsd:maxLength value="255"/>
>                                                         </xsd:restriction>
>                                                 </xsd:simpleType>
>                                         </xsd:element>
>                                         <xsd:element name="DENOM">
>                                                 <xsd:annotation>
> 
> <xsd:documentation>Module FIBEN 07 : Nom recherché </xsd:documentation>
>                                                 </xsd:annotation>
>                                                 <xsd:simpleType>
>                                                         <xsd:restriction
> base="xsd:string">
> 
> <xsd:maxLength value="255"/>
>                                                         </xsd:restriction>
>                                                 </xsd:simpleType>
>                                         </xsd:element>
>                                         <xsd:element name="TYPE">
>                                                 <xsd:annotation>
> 
> <xsd:documentation>Module FIBEN 07 : Type de nom</xsd:documentation>
>                                                 </xsd:annotation>
>                                                 <xsd:simpleType>
>                                                         <xsd:restriction
> base="xsd:string">
> 
> <xsd:maxLength value="255"/>
>                                                         </xsd:restriction>
>                                                 </xsd:simpleType>
>                                         </xsd:element>
>                                         <xsd:element name="RECHET">
>                                                 <xsd:annotation>
> 
> <xsd:documentation>Module FIBEN 07 : Indicateur de recherche étendue (O ou
> N).</xsd:documentation>
>                                                 </xsd:annotation>
>                                                 <xsd:simpleType>
>                                                         <xsd:restriction
> base="xsd:string">
> 
> <xsd:maxLength value="255"/>
>                                                         </xsd:restriction>
>                                                 </xsd:simpleType>
>                                         </xsd:element>
>                                         <xsd:element name="APE">
>                                                 <xsd:annotation>
> 
> <xsd:documentation>Module FIBEN 07 :  code APE</xsd:documentation>
>                                                 </xsd:annotation>
>                                                 <xsd:simpleType>
>                                                         <xsd:restriction
> base="xsd:string">
> 
> <xsd:maxLength value="255"/>
>                                                         </xsd:restriction>
>                                                 </xsd:simpleType>
>                                         </xsd:element>
>                                         <xsd:element name="CODE">
>                                                 <xsd:annotation>
> 
> <xsd:documentation>Filtre FCC ou FICP sur le code postal.
> </xsd:documentation>
>                                                 </xsd:annotation>
>                                                 <xsd:simpleType>
>                                                         <xsd:restriction
> base="xsd:string">
> 
> <xsd:maxLength value="255"/>
>                                                         </xsd:restriction>
>                                                 </xsd:simpleType>
>                                         </xsd:element>
>                                 </xsd:all>
>                         </xsd:complexType>
>                         <!--
> ****************************************************************************
> *************************       -->
>                         <xsd:complexType name="SOUSREQ">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Elements
> spécifique au type de service interrogé et permettant d'effectuer un filtre
> sur la réponse</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:all>
>                                         <xsd:element name="NOM">
>                                                 <xsd:annotation>
> 
> <xsd:documentation>Filtre FCC ou FICP sur le nom de
> famille</xsd:documentation>
>                                                 </xsd:annotation>
>                                                 <xsd:simpleType>
>                                                         <xsd:restriction
> base="xsd:string">
> 
> <xsd:maxLength value="255"/>
>                                                         </xsd:restriction>
>                                                 </xsd:simpleType>
>                                         </xsd:element>
>                                         <xsd:element name="DATE">
>                                                 <xsd:annotation>
> 
> <xsd:documentation>Filtre FCC ou FICP sur la date de
> naissance</xsd:documentation>
>                                                 </xsd:annotation>
>                                                 <xsd:simpleType>
>                                                         <xsd:restriction
> base="xsd:string">
> 
> <xsd:maxLength value="255"/>
>                                                         </xsd:restriction>
>                                                 </xsd:simpleType>
>                                         </xsd:element>
>                                         <xsd:element name="PRENOM">
>                                                 <xsd:annotation>
> 
> <xsd:documentation>Filtre FCC ou FICP sur le prénom</xsd:documentation>
>                                                 </xsd:annotation>
>                                                 <xsd:simpleType>
>                                                         <xsd:restriction
> base="xsd:string">
> 
> <xsd:maxLength value="255"/>
>                                                         </xsd:restriction>
>                                                 </xsd:simpleType>
>                                         </xsd:element>
>                                         <xsd:element name="SEXE">
>                                                 <xsd:annotation>
> 
> <xsd:documentation>Filtre FCC ou FICP sur le sexe</xsd:documentation>
>                                                 </xsd:annotation>
>                                                 <xsd:simpleType>
>                                                         <xsd:restriction
> base="xsd:string">
> 
> <xsd:maxLength value="255"/>
>                                                         </xsd:restriction>
>                                                 </xsd:simpleType>
>                                         </xsd:element>
>                                         <xsd:element name="VILLE">
>                                                 <xsd:annotation>
> 
> <xsd:documentation>Filtre FCC ou FICP sur la ville</xsd:documentation>
>                                                 </xsd:annotation>
>                                                 <xsd:simpleType>
>                                                         <xsd:restriction
> base="xsd:string">
> 
> <xsd:maxLength value="255"/>
>                                                         </xsd:restriction>
>                                                 </xsd:simpleType>
>                                         </xsd:element>
>                                         <xsd:element name="CODE">
>                                                 <xsd:annotation>
> 
> <xsd:documentation>Filtre FCC ou FICP sur le code postal.
> </xsd:documentation>
>                                                 </xsd:annotation>
>                                                 <xsd:simpleType>
>                                                         <xsd:restriction
> base="xsd:string">
> 
> <xsd:maxLength value="255"/>
>                                                         </xsd:restriction>
>                                                 </xsd:simpleType>
>                                         </xsd:element>
>                                 </xsd:all>
>                         </xsd:complexType>
>                         <!--
> ****************************************************************************
> *************************       -->
>                         <xsd:complexType name="REQUETE_IBDFRETOUR">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Regroupement des
> informations sur la requête émise</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:all>
>                                         <xsd:element name="SERVICE"
> type="pi:SERVICE"/>
>                                         <xsd:element name="CODEMODULE"
> type="pi:CODEMODULE"/>
>                                         <xsd:element name="REQ"
> type="pi:REQ"/>
>                                         <xsd:element name="SOUSREQ"
> type="pi:SOUSREQ"/>
>                                         <xsd:element name="VOSREFERENCES"
> type="pi:VOSREFERENCES"/>
>                                         <xsd:element name="UTILISATEUR"
> type="pi:UTILISATEUR"/>
>                                         <xsd:element
> name="DONNEESUTILISATEUR" type="pi:DONNEESUTILISATEUR"/>
>                                         <xsd:element
> name="CODEETABLISSEMENT" type="pi:CODEETABLISSEMENT"/>
>                                         <xsd:element name="CODEAGENCE"
> type="pi:CODEAGENCE"/>
>                                         <xsd:element name="SERVEUR"
> type="pi:SERVEUR"/>
>                                         <xsd:element name="FORCAGE"
> type="pi:FORCAGE"/>
>                                 </xsd:all>
>                         </xsd:complexType>
>                         <!--
> ****************************************************************************
> *************************       -->
>                         <xsd:complexType name="REPONSE_IBDF">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Regroupement des
> informations sur la réponse</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:all>
>                                         <xsd:element name="IDREQ"
> type="pi:IDREQ"/>
>                                         <xsd:element name="SOUSID"
> type="pi:SOUSID"/>
>                                         <xsd:element name="ETAT"
> type="pi:ETAT"/>
>                                         <xsd:element name="VALIDITE"
> type="pi:VALIDITE"/>
>                                         <xsd:element name="LONGUEUR_REPONSE"
> type="pi:LONGUEUR_REPONSE"/>
>                                         <xsd:element name="DATES"
> type="pi:DATES"/>
>                                         <xsd:element name="HEURES"
> type="pi:HEURES"/>
>                                         <xsd:element name="DATER"
> type="pi:DATER"/>
>                                         <xsd:element name="HEURER"
> type="pi:HEURER"/>
>                                         <xsd:element name="FRAICHEUR"
> type="pi:FRAICHEUR"/>
>                                         <xsd:element name="REP"
> type="pi:REP" />
> 
>                                         <xsd:element name="ERREUR_IBDF"
> type="pi:ERREUR_IBDF"/>
>                                 </xsd:all>
>                         </xsd:complexType>
>                         <!--
> ****************************************************************************
> *************************       -->
>                         <xsd:complexType name="REQ_PROTECTEL_IBDF">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Regroupement des
> informations sur la requête à emettre</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:all>
>                                         <xsd:element name="SERVICE"
> type="pi:SERVICE"/>
>                                         <xsd:element name="CODEMODULE"
> type="pi:CODEMODULE"/>
>                                         <xsd:element name="REQ"
> type="pi:REQ"/>
>                                         <xsd:element name="SOUSREQ"
> type="pi:SOUSREQ"/>
>                                         <xsd:element name="VOSREFERENCES"
> type="pi:VOSREFERENCES"/>
>                                         <xsd:element name="UTILISATEUR"
> type="pi:UTILISATEUR"/>
>                                         <xsd:element
> name="DONNEESUTILISATEUR" type="pi:DONNEESUTILISATEUR"/>
>                                         <xsd:element
> name="CODEETABLISSEMENT" type="pi:CODEETABLISSEMENT"/>
>                                         <xsd:element name="CODEAGENCE"
> type="pi:CODEAGENCE"/>
>                                         <xsd:element name="SERVEUR"
> type="pi:SERVEUR"/>
>                                         <xsd:element name="PRIORITE"
> type="pi:PRIORITE"/>
>                                         <xsd:element name="FORCAGE"
> type="pi:FORCAGE"/>
>                                         <xsd:element name="FORMATREPONSE"
> type="pi:FORMATREPONSE"/>
>                                         <xsd:element name="FONCTION"
> type="pi:FONCTION"/>
>                                 </xsd:all>
>                         </xsd:complexType>
>                         <!--
> ****************************************************************************
> *************************       -->
>                         <xsd:complexType name="REP_PROTECTEL_IBDF">
>                                 <xsd:annotation>
>                                         <xsd:documentation>Regroupement des
> informations sur la réponse, et requête émise.</xsd:documentation>
>                                 </xsd:annotation>
>                                 <xsd:all>
>                                         <xsd:element
> name="REQUETE_IBDFRETOUR" type="pi:REQUETE_IBDFRETOUR"/>
>                                         <xsd:element name="REPONSE_IBDF"
> type="pi:REPONSE_IBDF"/>
>                                 </xsd:all>
>                         </xsd:complexType>
>                 </xsd:schema>
>         </wsdl:types>
>         <wsdl:message name="piReponse">
>                 <wsdl:part type="pi:REP_PROTECTEL_IBDF"
> name="REP_PROTECTEL_IBDF"/>
>                 <wsdl:part type="xsd:string" name="attch"/>
>         </wsdl:message>
>         <wsdl:message name="piRequest">
>                 <wsdl:part type="pi:REQ_PROTECTEL_IBDF"
> name="REQ_PROTECTEL_IBDF"/>
>         </wsdl:message>
>         <wsdl:portType name="piPortType">
>                 <wsdl:operation name="InterrogationBDF">
>                         <wsdl:input message="pi:piRequest"/>
>                         <wsdl:output message="pi:piReponse"/>
>                 </wsdl:operation>
>         </wsdl:portType>
>         <wsdl:binding name="piBinding" type="pi:piPortType">
>                 <soap:binding style="rpc"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>                 <wsdl:operation name="InterrogationBDF">
>                         <soap:operation soapAction="" style="rpc"/>
>                         <wsdl:input>
>                                 <soap:body use="encoded"
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> namespace="http://schemas.xmlsoap.org/wsdl/"/>
>                         </wsdl:input>
>                         <wsdl:output>
>                                 <mime:multipartRelated>
>                                         <mime:part>
>                                                 <soap:body use="encoded"
> namespace="http://mynamespace"
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding"/>
>                                         </mime:part>
>                                         <mime:part>
>                                                 <mime:content part="attch"
> type="text/xml"/>
>                                         </mime:part>
>                                 </mime:multipartRelated>
>                         </wsdl:output>
>                 </wsdl:operation>
>         </wsdl:binding>
>         <wsdl:service name="piwsdl">
>                 <wsdl:port binding="pi:piBinding" name="piPort">
>                         <soap:address
> location="http://test.scrypto.fr/piServiceWeb_RpcEncoded_Swa"/>
>                 </wsdl:port>
>         </wsdl:service>
> </wsdl:definitions>
> 
> ----------------------------------------------------
> Ce message et toutes les pieces jointes (ci-apres le "message") sont confidentiels et etablis a l'intention exclusive de ses destinataires.
> Toute utilisation ou diffusion non autorisee est interdite.Tout message electronique est susceptible d'alteration.
> Le CREDIT DU NORD et ses filiales declinent toute responsabilite au titre de ce message s'il a ete altere, deforme ou falsifie.
> This message and any attachments ( the "message") are confidential and intended solely for the addressees.
> Any unauthorised use or dissemination is prohibited.E-mails are susceptible to alteration.
> Neither CREDIT DU NORD nor any of its subsidiaries or affiliates shall be liable for the message if altered, changed or falsified.
> ----------------------------------------------------
> 
>