Listing 1: ClientOrders.xsd

<?xml version="1.0" encoding="UTF-8"?><xs:schema ? 
 targetNamespace="http://www.justwebsolutions.com/articles" xmlns:?
 xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.?  justwebsolutions.com/articles"
 elementFormDefault="qualified"?  >
 <!-- define global elements for Client -->
   <xs:element ?  name="CustomerId" type="xs:string"/>
     <xs:element name="CompanyName" ?  type="xs:string"/>
	   <xs:element name="Phone" type="xs:string"/>
	   <xs:element name="Fax" type="xs:string"/>
	   <!-- define global ? elements for Order -->
	   <xs:element name="OrderId" type="xs:? int"/>
	   <xs:element name="OrderDate" type="xs:date"/>
	   <xs:? element name="RequiredDate" type="xs:date"/>	?
	   <xs:element name="ShippedDate" type="xs:date"/>
	   <!-- define Order ? element -->
	     <xs:element name="Order">
		 <xs:complexType>
		 <xs:sequence>
		 <xs:element ref="OrderId"/>	?
		 <xs:element ref="OrderDate"/>	?
		 <xs:element ref="RequiredDate"/>
		 <xs:element ref="ShippedDate"/>	?
		 </xs:sequence>
		 </xs:complexType>
		 </xs:element>	?
		 <!-- define Client element -->
		 <xs:element name="ClientOrder">
		 <xs:complexType>
		 <xs:sequence>
		 <xs:element ref="CustomerId"/>
		 <xs:element ref="CompanyName"/>
		 <xs:element ref="Phone"/>
		 <xs:element ref="Fax"/>
		 <xs:sequence>
		 <xs:element ref="Order"/>
		 </xs:sequence>
		 </xs:sequence>
		 </xs:complexType>
		 </xs:element>
		 <!-- define schema elements -->
		 <xs:element name="ClientOrders">
		 <xs:complexType>
		 <xs:sequence>
		 <xs:element ref="ClientOrder"/>
		 </xs:sequence>
		 </xs:complexType>
		 </xs:element></xs:schema>

Listing 2: XMLBean generation script

@rem Schema compiler
@rem
@rem Builds XBean types from xsd files.

@echo off

rem *** SET JAVA_HOME to the location of the Java 1.4 SDK
set JAVA_HOME=C:\JBuilderX\jdk1.4
set PATH=%JAVA_HOME%\bin
set cp=C:\xmlbeans\xkit\lib\xbean.jar

java -classpath %cp% com.bea.xbean.tool.SchemaCompiler %*

:done

Listing 3: ClientOrdersDAO.java

package com.justwebsolutions.articles.dotnetj2ee.datatransfer;

import com.justwebsolutions.articles.*;
import java.util.Calendar;

public class ClientOrdersDAO {

  public ClientOrdersDAO() {
  }

  public static String generateTestData() {

    // generate some data for client-orders
    ClientOrdersDocument xmlDoc = ClientOrdersDocument.Factory.?      newInstance();
    ClientOrdersDocument.ClientOrders clientOrder = ?      xmlDoc.addNewClientOrders();
    ClientOrderDocument.ClientOrder client = ?     clientOrder.addNewClientOrder();

    // add client information
    client.setCustomerId("ALFKI");
    client.setCompanyName("Alfreds Futterkiste");
    client.setFax("030-0076545");
    client.setPhone("030-0074321");
    // add order 1
    OrderDocument.Order order = client.addNewOrder();
    order.setOrderId(10643);
    Calendar cal = Calendar.getInstance();
    cal.set(1997, 8, 25);
    order.setOrderDate(cal);
    cal.set(1997, 8, 26);
    order.setRequiredDate(cal);
    cal.set(1997, 9, 2);
    order.setShippedDate(cal);

    // add order 2
    OrderDocument.Order order2 = client.addNewOrder();
    order2.setOrderId(10692);
    cal.set(1997, 10, 3);
    order2.setOrderDate(cal);
    cal.set(1997, 10, 31);
    order2.setShippedDate(cal);

    // obtain the XML document instance as a string and return
    return xmlDoc.xmlText();

  }

}

Additional Code is available - zip file