Listing 1

A schema definition using element and complex type for the cases:

	<xs:complexType name="Employee">
		<xs:sequence>
			<xs:element name="ssn" type="xs:integer"/>
			<xs:element name="name" type="name"/>
			<xs:element name="salary" type="xs:float"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="name">
		<xs:sequence>
			<xs:element name="fname" type="xs:string"/>
			<xs:element name="lname" type="xs:string"/>			
		</xs:sequence>
	</xs:complexType>

A schema definition using element and element references for the cases:

	<xs:element name="Employee">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="ssn"/>
				<xs:element ref="name"/>
				<xs:element ref="salary"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="ssn" type="name" />
	<xs:element name="name" type="xs:string"/>
	<xs:element name="salary" type="xs:float"/>
	<xs:complexType name="name">
		<xs:sequence>
			<xs:element name="fname" type="xs:string"/>
			<xs:element name="lname" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>

Listing 2

public class SchemaInstance implements IXercesInstance
{
// implemented methods from IXercesInstance
	public abstract void parseSchema(XSObject aCaptureNode, Node aParentNode,
			Object aFillerObject) throws Exception;
	public abstract Node parseSchemaElement(XSObject aCaptureNode,
			Node aParentNode, Object aFillerObject) throws Exception;
	public abstract void fillupData(XSObject aCaptureNode, Node lContentElem,
			Object aFillerObject);
	public abstract int getNumOccours(XSParticle aNode, int aAllowedMax);
	
	// implemented methods from Instance 
	public abstract void generateInstance(OutputStream aOut)throws Exception;	
	public abstract void generateInstance(String aFilePath) throws Exception;

	// important class methods 
	protected void handleGroup(XSModelGroup aGroup, Element aContext,Object
	 aFillerObject)throws Exception
	protected void handleParticle(XSParticle particle, Element aContentElem,
                                     Object aFillerObject)throws Exception
	protected void handleAttribute(XSAttributeUse aAttr, Attr aGenAttr,
                                      String aVal)
	protected void handleSimpleValueTypes(short asType, Node aGenNode,
                                              String aVal)
	public void fillupData(XSObject aCaptureNode, Node lContentElem,
			Object aFillerObject)
....
...
}

Listing 3

public class T2xmlInstance extends SchemaInstance implements IParseProperties
{
    public T2xmlInstance(String aURLOrFileName,String aDataFileStr) throws Exception
    public T2xmlInstance(String aSchemaInput,URL aDataFile) throws Exception
    public void handleXPathExpressions(XSObject aXsElem,Node aContentElem,String aVal)
    public static void main(String[] argc)
   
    private String getVariableValue(XSElementDeclaration aNode, String aName)
    private boolean isVariableOfValue(XSElementDeclaration aNode, String aVarName,
            String aVarValue)
    protected boolean matchDataWithSchemaRepresetation(XSElementDeclaration aElement,
                                                       String aContent)
    private Object setupFillerObject(XSElementDeclaration aElement,
            String aContainerContent,String aEscapeChar)

   // overridden functions from SchemaInstance 
   public XSObject getRootSchemaElement(XSModel aModel) throws Exception;
   protected void handleParticle(XSParticle particle, Element aContentElem,
                              Object aFillerObject)throws Exception
   public void fillupData(XSObject aElement, Node lContentElem,Object aFillerObject)
}

Listing 4

<?xml version="1.0" encoding="UTF-8"?>
<root_element>
    <Employee>
        <ssn>123,456789</ssn>
        <name>
            <fname>Ram</fname>
            <lname>Singh</lname>
        </name>
        <salary>100000.00</salary>
    </Employee>
    <Employee>
        <ssn>444556666</ssn>
        <name>
            <fname>Barr</fname>
            <lname>Clark</lname>
        </name>
        <salary>87000.00</salary>
    </Employee>
    <Employee>
        <ssn>777227878</ssn>
        <name>
            <fname>Simi D</fname>
            <lname>Roy</lname>
        </name>
        <salary>123000.00</salary>
    </Employee>
    <Employee>
        <ssn>998877665</ssn>
        <name>
            <fname>Charr</fname>
            <lname>Lee</lname>
        </name>
        <salary>92000.00</salary>
    </Employee>
</root_element>

Additional Source Code .Jar file