XML スキーマからの SDO の生成のサンプル詳細

このサンプルは、XML スキーマからサービス・データ・オブジェクトを生成する方法、およびその生成された SDO の使用方法を示しています。このサンプルには、PurchaseOrder.xsd という XML スキーマ・ファイルが含まれています。

PurchaseOrder.xsd からのサービス・データ・オブジェクトの生成

このタスクについて

PurchaseOrder.xsd から SDO を生成するには、以下の手順を実行します。

手順

  1. 「ウィンドウ」 > 「パースペクティブを開く」 > 「Java」の順にクリックします。
  2. パッケージ・エクスプローラーで PurchaseOrder.xsd を右クリックしてから、「生成」 > 「Java」をクリックし、Java™ の生成用ウィザードを起動します。
    「Java の生成」ウィザードのイメージ
  3. 「生成プログラム」リストで、「SDO 生成プログラム」を選択し、「次へ」をクリックします。
  4. 「コンテナー」フィールドで、「参照」をクリックして、ワークスペースで SDOFromXSDExample プロジェクトを見つけます。
  5. 「完了」をクリックして、Java クラスを生成します。 生成された Java クラスはパッケージ・エクスプローラーで表示できます。

Java アプリケーションにおける生成済み SDO の使用

このタスクについて

次の Java コード例は、生成されたコードを使用して以下のアクションを実行する方法を示しています。
  • PurchaseOrder のインスタンスの生成
  • PurchaseOrder の XML ファイルへの直列化
  • PurchaseOrder の XML ファイルからのロード

import java.math.BigDecimal;
import java.math.BigInteger;
import com.ibm.DocumentRoot;
import com.ibm.IbmFactory;
import com.ibm.ItemType;
import com.ibm.Items;
import com.ibm.PurchaseOrderType;
import com.ibm.USAddress;
import com.ibm.USState;
import com.ibm.util.IbmResourceUtil;
import javax.xml.datatype.DatatypeConstants;
import javax.xml.datatype.DatatypeFactory;

public class PurchaseOrderSample {

	public static void main(String[] args) throws Exception {

	/******************************************************************************/
	/******************* CREATE AN INSTANCE OF A PURCHASE ORDER *******************/
	/******************************************************************************/
	
	    // Create a purchase order
	    PurchaseOrderType purchaseOrder = IbmFactory.eINSTANCE.createPurchaseOrderType(); 

	    // Create a product item for the purchase order
	    ItemType item = IbmFactory.eINSTANCE.createItemType();
	    item.setProductName("DVD Player");
	    item.setQuantity(BigInteger.valueOf(1));
	    item.setUSPrice(BigDecimal.valueOf(14895,2));
		
	    // Add the product item to a collection of items
	    Items items = IbmFactory.eINSTANCE.createItems();
	    items.getItem().add(item);
	    
	    // Incorporate the collection of items into the purchase order
	    purchaseOrder.setItems(items);
	    
	    // Set the purchase order shipping address
	    USAddress shippingAddress = IbmFactory.eINSTANCE.createUSAddress();
	    shippingAddress.setName("Alice Smith");
	    shippingAddress.setStreet("3465 Maple Street");
	    shippingAddress.setCity("Mill Valley");   
	    shippingAddress.setState(USState.get("CA"));
	    shippingAddress.setZip(BigDecimal.valueOf(90952));   
	    shippingAddress.setCountry("US");
	    purchaseOrder.setShipTo(shippingAddress);	
	    
	    //Set the purchase order date and comment
	    purchaseOrder.setOrderDate(DatatypeFactory.newInstance().newXMLGregorianCalendarDate(2007, 3, 10, DatatypeConstants.FIELD_UNDEFINED));
	    purchaseOrder.setComment("Overnight shipping");
	    

	/******************************************************************************/   
	/******************* SAVE A PURCHASE ORDER INTO AN XML FILE *******************/
	/******************************************************************************/
	
		// Create and set the XML document root to the purchase order
		DocumentRoot documentRoot = IbmFactory.eINSTANCE.createDocumentRoot();
		documentRoot.setPurchaseOrder(purchaseOrder);

		// Save the XML Document into a file
		IbmResourceUtil.getInstance().save(documentRoot,"sample.xml");
		

	/******************************************************************************/	
	/******************* LOAD A PURCHASE ORDER FROM AN XML FILE *******************/
	/******************************************************************************/
	
		// Load the XML document file
		documentRoot = IbmResourceUtil.getInstance().load("sample.xml");
		
		// Print a summary of the purchase order obtained from the loaded XML document
		System.out.println("Purchase order summary");
		System.out.println("  Date: " + documentRoot.getPurchaseOrder().getOrderDate());
		System.out.println("  Customer: "	+ documentRoot.getPurchaseOrder().getShipTo().getName());
		System.out.println("  Product sold: "
				+ ((ItemType)documentRoot.getPurchaseOrder().getItems().getItem().get(0)).getProductName());
		System.out.println("  Amount paid: "
				+ ((ItemType)documentRoot.getPurchaseOrder().getItems().getItem().get(0)).getUSPrice());
		System.out.println("  Comments: " + documentRoot.getPurchaseOrder().getComment());		
	}
}

Java アプリケーションの実行

このタスクについて

Java アプリケーションを実行する手順は、次のとおりです。

手順

  1. SDOFromXSDExample プロジェクトのデフォルト・パッケージに PurchaseOrderSample.java という名前のクラスを作成し、前述の Java コード例をこのクラスに貼り付けます。
  2. パッケージ・エクスプローラーで、PurchaseOrderSample.java を右クリックしてから、「実行」>「Java アプリケーション」をクリックします。直列化されたファイルである sample.xml が作成されます。 「コンソール」ビューで再構成された Java インスタンスを表示できます。
  3. sample.xml ファイルを表示するには、プロジェクトを右クリックし、「最新表示」をクリックします。
    sample.xml ファイルのイメージ

フィードバック