プロジェクトにglobusツールキットを使用しています。私のサービスには、文字列配列というリソースがあります。このリソースをAndroidクライアントから取得したいと思います。どうやってやるの?wsdlファイルで「文字列の配列」タイプをどのように記述できますか?ありがとうございました。
質問する
24555 次
3 に答える
6
私はあなたがこれを探していると思います
<complexType name='ArrayOfString'>
<sequence>
<element name='item' type='xsd:string' maxOccurs='unbounded'/>
</sequence>
</complexType>
出典:http ://www.activebpel.org/samples/samples-2/BPEL_Samples/Resources/Docs/arrays.html
アップデート:
NetBeans7.0.1を使用してテストを実行しました。結果は次のとおりです。
String[]パラメーターを受け取るメソッドを宣言します。
@WebMethod(operationName = "helloArray")
public String helloArray(@WebParam(name = "name") String[] name) {
StringBuilder sb = new StringBuilder("Hello ");
if (name != null) {
for(int i = 0; i < name.length; i++) {
sb.append(name[i]);
if (i < (name.length - 1)) {
sb.append(" and ");
}
}
}
sb.append('!');
return sb.toString();
}
WSDLは、String配列要素を使用してメソッドの複合型を生成しました
<xs:complexType name="helloArray">
<xs:sequence>
<xs:element name="name" type="xs:string" nillable="true" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
クライアントでは、IDEはList<String>
それを消費するためにを生成しました:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "helloArray", propOrder = {"name"})
public class HelloArray {
@XmlElement(nillable = true)
protected List<String> name;
public List<String> getName() {
if (name == null) {
name = new ArrayList<String>();
}
return this.name;
}
}
そして、サービスを利用する方法
private String helloArray(java.util.List<java.lang.String> name) {
edu.home.wsclient.HelloWorldWS port = service.getHelloWorldWSPort();
return port.helloArray(name);
}
このアドレスに両方のプロジェクトをアップロードしました
于 2012-05-07T13:54:20.610 に答える
1
多重度>1のString要素(および必要に応じてより多くのデータ)を持つカスタムタイプを使用できます。
<xsd:sequence>
<xsd:element name="YourClass" type="pre:YourClass" maxOccurs="unbounded" minOccurs="0">
</xsd:element>
</xsd:sequence>
于 2012-05-07T13:55:35.800 に答える
0
XMLに、配列からの1つの文字列値を持つ複数の子を持つ親タグを呼び出させます。
<parent>
<child>String 1</child>
<child>String 2</child>
</parent>
タグに適切な名前を付けます。
于 2012-05-07T13:54:34.897 に答える