このサンプルは、XML スキーマからサービス・データ・オブジェクトを生成する方法、およびその生成された SDO の使用方法を示しています。このサンプルには、PurchaseOrder.xsd という 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());
}
}
