Thank you very much! Sorry for the newbie question.

>From: Keith Visco <[EMAIL PROTECTED]>
>Reply-To: [EMAIL PROTECTED]
>To: [EMAIL PROTECTED]
>Subject: Re: [castor-dev] possible bug in code generation?
>Date: Wed, 12 Jun 2002 13:28:27 -0500
>
>
>You'll need to create a Marshaller class and set the name of the root
>element...
>
>Marshaller m = new Marshaller(writer);
>m.setRootElement("foo");
>m.marshal(rootTypeName);
>
>--Keith
>
>
>Barnaby Morris wrote:
> >
> > Thanks for the reply Arnaud.
> >
> > Because I am have org.exolab.castor.builder.javaclassmapping=type in the
> > castorbuilder.properties file, I only have classes generated for the 
>complex
> > types, not for the elements. Is it possible to specify to the complex 
>type
> > class instance what element name to use (perhaps on construction or with 
>a
> > set method)? This is only a problem for the root tag since all child
> > elements' names are stored by the parent complex type classes. There is 
>no
> > parent complex type for the root, therefore no place to store the 
>correct
> > element name.
> >
> > Thanks,
> >
> > Barnaby
> >
> > >From: "Arnaud Blandin" <[EMAIL PROTECTED]>
> > >Reply-To: [EMAIL PROTECTED]
> > >To: [EMAIL PROTECTED]
> > >Subject: Re: [castor-dev] possible bug in code generation?
> > >Date: Wed, 12 Jun 2002 08:08:31 +0200
> > >
> > >Hi Barnaby,
> > >
> > >You are getting the expected output.
> > > >             RootTypeName t = new RootTypeName();
> > > >             // display the marshalled version of this object
> > > >             StringWriter sw = new StringWriter();
> > > >             t.marshal(sw);
> > >
> > >you are marshalling RootTypeName, you should marshall RootElementName.
> > >Castor won't decide for you which element to marshall.
> > >
> > >Imagine you have
> > ><xsd:element name="foo" type="RootTypeName"/>
> > ><xsd:element name="bar" type="RootTypeName"/>
> > >which element do you want to see outputted when marshalling
> > >'RootTypeName'?
> > >
> > >Castor provides all the necessary methods to do basically what you want
> > >to do with the generated Object Model but it doesn't (and it won't)
> > >prevent you from doing mistakes ;).
> > >
> > >Hope that helps,
> > >
> > >Arnaud
> > >
> > >
> > > > -----Original Message-----
> > > > From: Barnaby Morris [mailto:[EMAIL PROTECTED]]
> > > > Sent: Tuesday, June 11, 2002 11:40 PM
> > > > To: [EMAIL PROTECTED]
> > > > Subject: [castor-dev] possible bug in code generation?
> > > >
> > > > I am wondering if I have found a bug or not.
> > > >
> > > > I am using the castor-0.9.3.19
> > >org.exolab.castor.builder.SourceGenerator
> > > > tool to generate Java sourcecode from a schema using the
> > > > org.exolab.castor.builder.javaclassmapping=type setting in the
> > > > castorbuilder.properties file. The xml generated from a marshaled
> > >object
> > > > isn't what I expect. Instead of the root element name specified in 
>the
> > > > schema, I get the ComplexType of the root element.
> > > >
> > > > I would appreciate it if somebody either confirmed that this is a 
>bug
> > >or
> > > > told me that the existing behavior is correct.
> > > >
> > > > I have included an example of what I am talking about below. If it
> > >would be
> > > > helpful, I can send all of the source and compiled classes used to 
>run
> > >this.
> > > >
> > > > Thanks!
> > > >
> > > > Barnaby
> > > >
> > > > Here is an example:
> > > >
> > > > Using code generated from this schema (make sure to set
> > > > org.exolab.castor.builder.javaclassmapping=type in the
> > > > castorbuilder.properties file):
> > > > =======================
> > > > <?xml version="1.0"?>
> > > > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> > > > elementFormDefault="unqualified" attributeFormDefault="unqualified">
> > > >     <xsd:element name="rootElementName" type="RootTypeName"/>
> > > >     <xsd:complexType name="RootTypeName">
> > > >             <xsd:sequence>
> > > >                     <xsd:element name="innerSimpleElementName"
> > > > type="xsd:string"/>
> > > >                     <xsd:element name="innerComplexElementName"
> > > > type="InnerTypeName"/>
> > > >             </xsd:sequence>
> > > >     </xsd:complexType>
> > > >     <xsd:complexType name="InnerTypeName">
> > > >             <xsd:sequence>
> > > >                     <xsd:element name="b" type="xsd:string"/>
> > > >             </xsd:sequence>
> > > >     <xsd:attribute name="a" type="xsd:int"/>
> > > >     </xsd:complexType>
> > > > </xsd:schema>
> > > > =======================
> > > >
> > > > Output I want:
> > > > =======================
> > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > <rootElementName>
> > > >     <innerSimpleElementName>string 1</innerSimpleElementName>
> > > >     <innerComplexElementName a="5">
> > > >             <b>Hello</b>
> > > >     </innerComplexElementName>
> > > > </rootElementName>
> > > > =======================
> > > >
> > > > Output I get (notice the 'RootTypeName' instead of 
>'rootElementName'):
> > > > =======================
> > > > <?xml version="1.0" encoding="UTF-8"?>
> > > > <RootTypeName>
> > > >     <innerSimpleElementName>string 1</innerSimpleElementName>
> > > >     <innerComplexElementName a="5">
> > > >             <b>Hello</b>
> > > >     </innerComplexElementName>
> > > > </RootTypeName>
> > > > =======================
> > > >
> > > > This is the class I used to generate output:
> > > > =======================
> > > > import apackage.RootTypeName;
> > > > import apackage.InnerTypeName;
> > > > import java.io.StringWriter;
> > > > import java.io.StringWriter;
> > > >
> > > > public class TestSimple {
> > > >
> > > >     public static void main(String[] args) {
> > > >
> > > >         try {
> > > >             // create and populate an new instance
> > > >             RootTypeName t = new RootTypeName();
> > > >             t.setInnerSimpleElementName("string 1");
> > > >
> > > >             InnerTypeName it = new InnerTypeName();
> > > >             t.setInnerComplexElementName(it);
> > > >             it.setA(5);
> > > >             it.setB("Hello");
> > > >
> > > >             // display the marshalled version of this object
> > > >             StringWriter sw = new StringWriter();
> > > >             t.marshal(sw);
> > > >             System.out.println("xml output = '" + sw.toString() +
> > >"'");
> > > >
> > > >
> > > >         } catch (Exception x) {
> > > >             x.printStackTrace();
> > > >         }
> > > >     }
> > > > }
> > > > =======================
> > > >
> > > >
> > > >
> > > > _________________________________________________________________
> > > > Get your FREE download of MSN Explorer at
> > >http://explorer.msn.com/intl.asp.
> > > >
> > > > -----------------------------------------------------------
> > > > If you wish to unsubscribe from this mailing, send mail to
> > > > [EMAIL PROTECTED] with a subject of:
> > > >     unsubscribe castor-dev
> > >
> > >-----------------------------------------------------------
> > >If you wish to unsubscribe from this mailing, send mail to
> > >[EMAIL PROTECTED] with a subject of:
> > >       unsubscribe castor-dev
> > >
> >
> > _________________________________________________________________
> > Chat with friends online, try MSN Messenger: http://messenger.msn.com
> >
> > -----------------------------------------------------------
> > If you wish to unsubscribe from this mailing, send mail to
> > [EMAIL PROTECTED] with a subject of:
> >         unsubscribe castor-dev
>
>-----------------------------------------------------------
>If you wish to unsubscribe from this mailing, send mail to
>[EMAIL PROTECTED] with a subject of:
>       unsubscribe castor-dev
>


_________________________________________________________________
Send and receive Hotmail on your mobile device: http://mobile.msn.com

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to