Unmarshalling using Castor

Unmarshallingisthereverseprocess,buildinganobject(i.eJavaObject)fromanXMLrepresentation(i.eschema).

Step1:

Gettheschemafilewhichneedtobeunmarshalled.

Fore.gInourcasewehaveemployees.xsd

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="age" type="xsd:string"/>
    <xsd:element name="dept" type="xsd:string"/>
    <xsd:element name="employee">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="name"/>
                <xsd:element ref="age"/>
                <xsd:element ref="dept"/>
                <xsd:element ref="project"/>
            </xsd:sequence>
            <xsd:attribute name="id" type="xsd:string" use="optional"/>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="employees">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element maxOccurs="unbounded" minOccurs="1" ref="employee"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="fname" type="xsd:string"/>
    <xsd:element name="lname" type="xsd:string"/>
    <xsd:element name="name">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element ref="fname"/>
                <xsd:element ref="lname"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="project" type="xsd:string"/>
</xsd:schema>

Step2:

WriteaJavaProgramtounmarshallXMlrepresentationtoObject

Note:TorunJavaProgram,castor-0.9.9.1.jar,xerces.jarandcommon-logging.jarinprojectbuildpath.

import org.exolab.castor.builder.SourceGenerator;

public class UnmarshallTest
{
    public void unMarshallTest() 
    {
        try
        {
            // instantiate the SourceGenerator
            SourceGenerator srcGen = new SourceGenerator();
            // call the generateSource method to generate the Object-Model from the
            // the schema and put it in a package
            srcGen.generateSource("employees.xsd", "com.ibm.employee"); 
            System.out.println("Completed..");
        }
        catch(Exception e)
        {
            System.out.println(e.toString());
        }
    }
    
    public static void main(String[] args) 
    {
        UnmarshallTest test = new UnmarshallTest();
        test.unMarshallTest();
    }
}

相关推荐