wsdl.exe(.net sdk 2.0)で解釈する必要のあるwsdlがあります。このwsdlは、実行時に軸エンジンによって生成され、wsddファイルを読み取って生成します。
私のリターンタイプの1つにはjava.util.Mapが含まれており、これがwsdl(wsdlの一部)のマップのスキーマです。
<schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<complexType name="Map">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="item">
<complexType>
<all>
<element name="key" type="xsd:anyType" />
<element name="value" type="xsd:anyType" />
</all>
</complexType>
</element>
</sequence>
</complexType>
</schema>
しかし、wsdl.exeを実行してこのwsdlを読み取ると、次のエラーが発生します。
- 操作'getXXX'をインポートできません。
- タイプは、スキーマの最上位で宣言する必要があります。名前空間' http://xml.apache.org/xml-soap 'からスキーマタイプ'Map'を確認してください:要素'item'は匿名型宣言を使用しています。匿名型はエンコードされたSOAPではサポートされていません。
これは、Webサービスに関してMapを使用できないことを意味しますか?私はグーグルの結果に満足できませんでした...