Esta amostra demonstra como gerar Objetos de Dados de Serviço a partir de um Esquema XML e como utilizar os SDOs gerados. O exemplo inclui um arquivo de Esquema XML denominado 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 {
/******************************************************************************/
/******************* CRIAR UMA INSTÂNCIA DE ORDEM DE COMPRA *******************/
/******************************************************************************/
// Criar uma ordem de compra
PurchaseOrderType purchaseOrder = IbmFactory.eINSTANCE.createPurchaseOrderType();
// Criar um item de produto para a ordem de compra
ItemType item = IbmFactory.eINSTANCE.createItemType();
item.setProductName("DVD Player");
item.setQuantity(BigInteger.valueOf(1));
item.setUSPrice(BigDecimal.valueOf(14895,2));
// Incluir o item de produto numa coleção de itens
Items items = IbmFactory.eINSTANCE.createItems();
items.getItem().add(item);
// Incorporar a coleção de itens na ordem de compra
purchaseOrder.setItems(items);
// Configurar o endereço de remessa da ordem de compra
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);
//Configurar a data e comentário da ordem de compra
purchaseOrder.setOrderDate(DatatypeFactory.newInstance().newXMLGregorianCalendarDate(2007, 3, 10, DatatypeConstants.FIELD_UNDEFINED));
purchaseOrder.setComment("Overnight shipping");
/******************************************************************************/
/***************** SALVAR UMA ORDEM DE COMPRA NUM ARQUIVO XML *****************/
/******************************************************************************/
// Criar e configurar a raiz do documento XML para a ordem de compra
DocumentRoot documentRoot = IbmFactory.eINSTANCE.createDocumentRoot();
documentRoot.setPurchaseOrder(purchaseOrder);
// Salvar o Documento XML num Arquivo
IbmResourceUtil.getInstance().save(documentRoot,"sample.xml");
/******************************************************************************/
/**************** CARREGAR UMA ORDEM DE COMPRA DE UM ARQUIVO XML **************/
/******************************************************************************/
// Carregar o arquivo do documento XML
documentRoot = IbmResourceUtil.getInstance().load("sample.xml");
// Imprimir um resumo da ordem de compra obtida do documento XML carregado
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());
}
}
