Hi

We are using castor api to marshall and un-marshall based on castor's
SourceGenerator. We are using org.exolab.castor.builder.javaclassmapping
property as "type" instead of default "element". Because of this xml we
are getting when we call marshall on the top level element class is
incorrect. Only the top-level element name is corrupted. I am enclosing
a sample xml schema, a test program and its output. We are using
0.9.3.9 version of the api and I checked with latest version also and
the result is the same. I would like to know anyone suggest a solution
for this problem. Thanks in advance.

Ramesh
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'>

<xsd:simpleType name="OpRole_T">
        <xsd:restriction base="xsd:string">
                <xsd:enumeration value="REQ"/>
                <xsd:enumeration value="RESP"/>
        </xsd:restriction>
</xsd:simpleType>

<xsd:complexType name="Content_T">
        <xsd:sequence>
                <xsd:element name="id" type="xsd:string"/>
                <xsd:element name="name" type="xsd:string"/>
        </xsd:sequence>
</xsd:complexType>

<xsd:complexType name="Message_T">
        <xsd:sequence>
                <xsd:element name="hdr" type="Hdr_T"/>
                <xsd:element name="content" type="Content_T"/>
        </xsd:sequence>
</xsd:complexType>


<xsd:complexType name="Hdr_T">
        <xsd:sequence>
                <xsd:element name="id" type="xsd:string"/>
                <xsd:element name="role" type="OpRole_T"/>
        </xsd:sequence>
</xsd:complexType>

<xsd:element name="message" type="Message_T"/>
</xsd:schema>
import cgwgen.*;
import cgwgen.types.*;
import java.io.*;

public class test1 {
        public static void main(String [] av) throws Exception{
                Message_T msg = new Message_T();
                Hdr_T hdr = new Hdr_T();
                Content_T con = new Content_T();
                msg.setHdr(hdr);
                msg.setContent(con);

                String hdr_id = "h1";

                hdr.setId(hdr_id);
                hdr.setRole(OpRole_T.RESP);

                con.setName("cname");
                con.setId("c1");

                StringWriter sw = new StringWriter();
                msg.marshal(sw);
                System.out.println("xml::" + sw.toString());
        }
}
xml::<?xml version="1.0"?>
<Message_T><hdr><id>h1</id><role>RESP</role></hdr><content><id>c1</id><name>cname</name></content></Message_T>

Reply via email to