Tom Drake writes:
> Sebastien:
>
> Thanks for your speedy response.
>
> The problem seems to be due to some strange differences between the
> different 'unmarshal' methods:
>
> A one-line change to my marshalling code solved my problem:
>
> Original Code:
> Object result = myUnmarshaller.unmarshal(objClass, xmlDocumentReader);
> New Code:
> Object result = myUnmarshaller.unmarshal(xmlDocumentReader);
>
> This works for String arrays and String Vectors.
>
> I don't have a clue as to why one method works and the other doesn't.
> The javadocs don't provide any insight either.
> At least one of them does what I need.
The problem is that:
Object result = myUnmarshaller.unmarshal(objClass, xmlDocumentReader);
is a static method wich don't take into account your mapping file...
Your not the first one having problem using the static unmarshal
method by mistake. We should remove all the static method of the
marshaller and unmarshaller and put them in an helper class.
Seb
>
> Thanks again.
>
> Tom Drake ([EMAIL PROTECTED])
>
> ----- Original Message -----
> From: "Sebastien Gignoux" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Thursday, August 30, 2001 3:53 PM
> Subject: Re: [castor-dev] Umarshalling vectors and arrays
>
>
> >
> > Hi Tom,
> >
> > These is quite strange, I can't manage to reproduce your problem. I am
> > able to unmarshal and then marshal your document with your
> > mapping.xml with no problem.
> >
> > If you want I can send you my test case to see if it is working on
> > your computer or not.
> >
> > Seb
> >
> > Tom Drake writes:
> > >
> > > I'm having difficulty unmarshalling Vectors of Strings and arrays of
> > > Strings. If my classes are defined in mapping.xml, Castor will simply
> not
> > > unmarshall string arrays and string vectors. If I remove the
> mapping.xml
> > > entries, then Castor will marshall and unmarshall just fine, however,
> the
> > > results don't match the DTD's that I am working with (attributes vs.
> > > elements) so, I must create the mappin.xml entries to compensate. It
> seems
> > > I'm caught between a rock and a hard place
> > > I'm using castor-0.9.3.
> > >
> > > ---------------------------------------
> > > Here's the exception I get:
> > > ---------------------------------------
> > >
> > > org.xml.sax.SAXException: Illegal Text data found as child of: name
> > > value: "Russell"
> > > at
> > >
> org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.java:413)
> > > at org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1392)
> > > at
> > >
> org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator
> > > .java:1480)
> > > at
> > >
> org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XM
> > > LDocumentScanner.java:1205)
> > > at
> > >
> org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.
> > > java:381)
> > > at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1081)
> > > at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:338)
> > > at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:270)
> > > at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:391)
> > >
> > > ---------------------------------------
> > > Here's the xml document
> > > ---------------------------------------
> > > <Doc Foo="myFoo">
> > > <name>Russell</name>
> > > <name>Lee</name>
> > > <name>Alyse</name>
> > > </Doc>
> > > ---------------------------------------
> > > Here's the java class
> > >
> > > public class Doc {
> > >
> > > private String foo;
> > > public Vector Name;
> > > public String [] email;
> > > public void setName(java.util.Vector names) { Name=names; }
> > > public java.util.Vector getName() { return Name; }
> > > public void setEmail(String [] addrs) { email = addrs; }
> > > public String [] getEmail() { return email; }
> > > public Doc() {
> > > }
> > > public void setFoo(String f) { foo = f; }
> > > public String getFoo() { return foo; }
> > > }
> > >
> > > ---------------------------------------
> > > Here's the mapping.xml
> > > ---------------------------------------
> > >
> > > <class name="Doc">
> > > <map-to xml="Doc"/>
> > > <field name="Foo"><bind-xml name="Foo" node="attribute"/></field>
> > > <field name="name" type="string" collection="vector">
> > > <bind-xml name="name"/>
> > > </field>
> > > </class>
> > >
> > >
> > >
> > > Regards,
> > >
> > > Tom Drake
> > > President, software/etc inc.
> > > Email: [EMAIL PROTECTED]
> > >
> > > -----------------------------------------------------------
> > > If you wish to unsubscribe from this mailing, send mail to
> > > [EMAIL PROTECTED] with a subject of:
> > > unsubscribe castor-dev
> >
> >
> >
> >
> > --
> > There is a theory which states that if ever anyone discovers exactly
> > what the Universe is for and why it is here, it will instantly
> > disappear and be replaced by something even more bizarre and
> > inexplicable. There is another theory which states that this has
> > already happened.
> > -- Douglas Adams, The Restaurant at the End of the Universe
> >
> > -----------------------------------------------------------
> > 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
--
There is a theory which states that if ever anyone discovers exactly
what the Universe is for and why it is here, it will instantly
disappear and be replaced by something even more bizarre and
inexplicable. There is another theory which states that this has
already happened.
-- Douglas Adams, The Restaurant at the End of the Universe
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev