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.
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