Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第4部 Webサービス編> 第18章 Webサービスの開発> 18.3 Javaのデータ型とXMLのデータ型との対応

18.3.2 構造体型・Bean型

 構造体型とBean型について、説明します。

構造体型

 構造体型は、任意の数のデータ(メンバと呼びます)をpublicインスタンスフィールドとして持つデータ型です。メンバは、サポートされているデータ型であれば自由に定義できます。

 構造体型と、それに対応してXMLで使用される型を以下に示します。

Webサービスアプリケーションのパラメタに使用するJavaのデータ型

XMLで使用されるデータ型

構造体型として定義した任意のクラス

構造体
(xsd:sequenceを内容とするxsd:complexTypeとして定義されます)

 構造体型は、次の条件を満たすpublicクラスとして定義します。


【構造体型として定義したクラスの例】

package com.example;  // パッケージ名
 public class Person {
   public String name;    // 各メンバをpublicインスタンスフィールドとして宣言する
   public int age;        // 同上
   public Person (){        // public デフォルト(引数なし)コンストラクタ
     name="nobody";
     age=0;
   }
   public Person (String myname, int myage){  // publicコンストラクタ(省略可)
     name = myname;
     age = myage;
   }
 }

 上記のJavaに対応する、XMLの構造体のWSDL定義例を以下に示します。

<xsd:complexType name="Person">
   <xsd:sequence>
     <xsd:element name="name" type="xsd:string"/>
     <xsd:element name="age" type="xsd:int"/>
   </xsd:sequence>
 </xsd:complexType>

Bean型

 Bean型は、任意の数のデータ(メンバと呼びます)をプロパティとして持つ、構造体に類似したデータ型です。メンバは、サポートされているデータ型であれば自由に定義できます。
 Bean型では、set/getメソッドを提供することでメンバを定義します。

 Bean型と、それに対応してXMLで使用される型を以下に示します。

Webサービスアプリケーションのパラメタに使用するJavaのデータ型

XMLで使用されるデータ型

Bean型として定義した任意のクラス

構造体
(xsd:sequenceを内容とするxsd:complexTypeとして定義されます)

 Bean型は、次の条件を満たすpublicクラスとして定義します。


【Bean型の定義例】

package com.example;    // パッケージ名
 public class PersonBean {
   // 各メンバをプロパティ(set/getメソッドのペア)として宣言する
   private String _name;//privateのため、メンバとして直接参照されない
   public void setName(String name) { _name = name; }
   public String getName() { return _name; }
   // 同上
   private int _age; //privateのため、メンバとして直接参照されない
   public void setAge(int age) { _age = age; }
   public int getAge() { return _age; }

   public PersonBean() {     // public デフォルト(引数なし)コンストラクタ
      _name="nobody";
      _age = 0; 
   }
   public PersonBean(String name, int age){   // publicコンストラクタ(省略可)
     _name=name;
     _age=age; 
   }
 }

 上記のJavaに対応する、XMLの構造体のWSDL定義例を以下に示します。

<xsd:complexType name="Person">
   <xsd:sequence>
     <xsd:element name="name" type="xsd:string"/>
     <xsd:element name="age" type="xsd:int"/>
   </xsd:sequence>
 </xsd:complexType>

■そのほかのXMLの構造体

 以下のXMLのデータ型は、Javaベースの開発では使用されませんが、WSDLおよびSOAP通信で利用は可能です。


目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED