En utilisant le code suivant dans un type complexe par un web service
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
[System.Xml.Serialization.XmlElementAttribute(IsNullable=false)]
	public string CorporateName;
 
	/// <remarks/>
	[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
	public string Type;
 
	/// <remarks/>
	[System.Xml.Serialization.XmlElementAttribute(IsNullable=false)]
	public string ID;

Le résultat de ces champs dans le WSDL sera :

Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
   <s:element minOccurs="0" maxOccurs="1" name="CorporateName" type="s:string" /> 
  <s:element minOccurs="1" maxOccurs="1" name="Type" nillable="true" type="s:string" /> 
  <s:element minOccurs="0" maxOccurs="1" name="ID" type="s:string" />

Avec nillable=true pour les champs ayant IsNullable=true,
Et minOccurs= pour les champs ayant IsNullable=false

Mais au mode RPC/Encoded , le WSDL est :

Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
   <s:element minOccurs="1" maxOccurs="1" name="CorporateName" type="s:string" /> 
  <s:element minOccurs="1" maxOccurs="1" name="Type" type="s:string" /> 
  <s:element minOccurs="1" maxOccurs="1" name="ID" type="s:string" />

Pas de minOccurs=0 et pas de nillable=”true”, donc la propriété XmlElementAttribute n’est pas prise en compte dans le mode WSDL.


Pourriez vous m’aider a résoudre ce problème.
Merci