В этом примере показано, как создать Объекты данных службы на основе схемы XML и как использовать созданные SDO. В пример включен файл схемы XML с именем PurchaseOrder.xsd.

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 {
/******************************************************************************/
/******************** Создать экземпляр заказа на покупку *********************/
/******************************************************************************/
// Создать заказ на покупку
PurchaseOrderType purchaseOrder = IbmFactory.eINSTANCE.createPurchaseOrderType();
// Создать позицию товара для заказа на покупку
ItemType item = IbmFactory.eINSTANCE.createItemType();
item.setProductName("Проигрыватель DVD");
item.setQuantity(BigInteger.valueOf(1));
item.setUSPrice(BigDecimal.valueOf(14895,2));
// Добавить позицию товара в набор товаров
Items items = IbmFactory.eINSTANCE.createItems();
items.getItem().add(item);
// Вставить набор товаров в заказ на покупку
purchaseOrder.setItems(items);
// Указать адрес доставки заказа на покупку
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);
//Указать дату заказа на покупку и ввести комментарии
purchaseOrder.setOrderDate(DatatypeFactory.newInstance().newXMLGregorianCalendarDate(2007, 3, 10, DatatypeConstants.FIELD_UNDEFINED));
purchaseOrder.setComment("Срочная доставка");
/******************************************************************************/
/******************* Сохранить заказ на покупку в файле XML *******************/
/******************************************************************************/
// Создать корневой элемент документа XML и задать ему значение Заказ на покупку
DocumentRoot documentRoot = IbmFactory.eINSTANCE.createDocumentRoot();
documentRoot.setPurchaseOrder(purchaseOrder);
// Сохранить документ XML в файл
IbmResourceUtil.getInstance().save(documentRoot,"sample.xml");
/******************************************************************************/
/****************** Загрузить заказ на покупку из файла XML *******************/
/******************************************************************************/
// Загрузить файл документа XML
documentRoot = IbmResourceUtil.getInstance().load("sample.xml");
// Напечатать сводную информацию по заказу на покупку, полученную из загруженного документа XML
System.out.println("Сводка по заказу на покупку");
System.out.println(" Дата: " + documentRoot.getPurchaseOrder().getOrderDate());
System.out.println(" Заказчик: " + documentRoot.getPurchaseOrder().getShipTo().getName());
System.out.println(" Товар: "
+ ((ItemType)documentRoot.getPurchaseOrder().getItems().getItem().get(0)).getProductName());
System.out.println(" Уплаченная сумма: "
+ ((ItemType)documentRoot.getPurchaseOrder().getItems().getItem().get(0)).getUSPrice());
System.out.println(" Комментарии: " + documentRoot.getPurchaseOrder().getComment());
}
}
