Geração de SDOs a Partir de Detalhes de Amostra de Esquema XML

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.

Gerando Objetos de Dados de Serviço a Partir de PurchaseOrder.xsd

Sobre Esta Tarefa

Para gerar SDOs a partir de PurchaseOrder.xsd, siga as etapas a seguir:

Procedimento

  1. Clique em Janela (Window) > Abrir Perspectiva (Open Perspective) > Java.
  2. Clique com o botão direito do mouse em PurchaseOrder.xsd, no Explorador de Pacotes, e selecione Gerar > Java para abrir o assistente de geração Java™.
    Imagem do assistente Gerar Java (Generate Java)
  3. Na lista Gerador , selecione Gerador SDO e clique em Avançar .
  4. No campo Contêiner , clique em Procurar para localizar o projeto SDOFromXSDExample no espaço de trabalho.
  5. Clique em Concluir para gerar as classes Java. É possível visualizar as classes Java geradas no Package Explorer.

Utilizando SDOs Gerados em um Aplicativo Java

Sobre Esta Tarefa

O exemplo de código Java a seguir demonstra como utilizar o código gerado para executar estas ações:
  • Criar uma Instância de uma PurchaseOrder
  • Serializar uma PurchaseOrder em um Arquivo XML
  • Carregar uma PurchaseOrder de um Arquivo XML

Exemplo

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());		
	}
}

Executando o Aplicativo Java

Sobre Esta Tarefa

Para executar o aplicativo Java:

Procedimento

  1. Crie uma classe denominada PurchaseOrderSample.java no pacote padrão do projeto SDOFromXSDExample e cole o exemplo de código Java precedente na classe.
  2. No Explorador de Pacotes, clique com o botão direito do mouse no PurchaseOrderSample.java e clique em Executar como > Aplicativo Java. O arquivo serializado sample.xml é criado. É possível visualizar as instâncias Java reconstruídas na visualização Console.
  3. Para visualizar o arquivo sample.xml, clique com o botão direito do mouse no projeto e selecione Atualizar.
    Imagem do arquivo sample.xml

Feedback