2012-05-07 14 views
1

これは、リクエスト・エンベロープがどのように見えるべきかです:ksoap2類似した名前空間を持つネストされたアイテムが、異なる種類

<v:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/"> 
    <v:Header /> 
    <v:Body> 
    <getLijst xmlns="http://OAM/OMZETAPPMETHODS.xsd"> 
     <selectie i:type="n1:OAM_ArtstructselobjUser" xmlns:n1="http://OAM/OMZETAPPMETHODS.xsd"> 
     <filiaal i:type="d:decimal">4</filiaal> 
     <artnivsel i:type="n1:OAM_ArtstructobjUser"> 
      <asonummer i:type="d:decimal">1</asonummer> 
      <asotype i:type="d:string">P</asotype> 
     </artnivsel> 
     </selectie> 
    </getLijst> 
    </v:Body> 
</v:Envelope> 

そして、これは私のコードの一部です:

String nameSpace = "http://OAM/OMZETAPPMETHODS.xsd"; 
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
envelope.dotNet = true; 
envelope.setAddAdornments(false); 
SoapObject request = new SoapObject(nameSpace, _soapMethod); 

OAM_ArtstructselobjUser obj = new OAM_ArtstructselobjUser(); 
// .. This is where the properties are added, irrelevant 
request.addProperty("selectie", obj); 

OAM_ArtstructobjUser obj2 = new OAM_ArtstructobjUser(); 
// .. This is where the properties are added, irrelevant 
request.addProperty("artnivsel", obj2); 

envelope.setOutputSoapObject(request); 

Marshal floatMarshal = new MarshalFloat(); 
floatMarshal.register(envelope); 

envelope.addMapping(nameSpace, "OAM_ArtstructselobjUser", OAM_ArtstructselobjUser.class); 
envelope.addMapping(nameSpace, "OAM_ArtstructobjUser", OAM_ArtstructobjUser.class);  

だから私はartnivselしたいですカスタムタイプを持ちますが、selectieという名前空間を継承しています。私は上記のコードを実行 た場合、私は何か他のものに二addMappingnameSpaceを変更する場合、私は05-07 14:22:21.034: ERROR/AndroidRuntime(16417): Caused by: java.lang.RuntimeException: Unknown Property: asotype

を取得し、私のコードは正常に動作します。しかし、私の封筒のXMLは正しくありません。もう

私にポインタを与えることができる人なら、特にksoap2や石けんで経験したことはありません。

答えて

1

これはksoap2.6.4に更新されているようです。これを修正しました。 SoapSerializationEnvelopetrueavoidExceptionForUnknownPropertyを追加するだけで

関連する問題