Hi,

I am using the version castor-0.9.3.9. (last released version).

And here are the two XML files generated. The first one is when I do not 
used the mapping file, the second one is the one I used with the mapping.

I will try the CVS version ...

Thanks,

gregori



. The xml file looks like: (without the mapping file)
----------------------------------------------

<?xml version="1.0"?>

<my-bean>
<my-vector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:type="java:java.lang.Integer">2
</my-vector>
<my-vector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:type="java:java.lang.String">toto
</my-vector>
<my-vector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:type="java:castorvalidation.MyBean">
<my-vector xsi:type="java:java.lang.Integer">333
</my-vector>
<my-vector xsi:type="java:java.lang.String">inside vector of beanInside
</my-vector>
<my-string>interieur
</my-string>
</my-vector>
<my-string>un message
</my-string>
</my-bean>
----------------------------------------------
. Unmarshaller:
----------------------------------------------
- myString = un message
- myVector :
--- 2
--- toto
---  _myString: interieur vec elm(0)= 333 vec elm(1)= inside vector of 
beanInside
----------------------------------------------
. Castor Test:
 . MAPPING USED
----------------------------------------------

. The xml file looks like: (with the mapping file)
----------------------------------------------

<?xml version="1.0"?>

<ma-classe>
<ma-chaine>un message
</ma-chaine>
<mon-vecteur>2
</mon-vecteur>
<mon-vecteur>toto
</mon-vecteur>
<mon-vecteur xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:type="java:castorvalidation.MyBean">
<ma-chaine>interieur
</ma-chaine>
<mon-vecteur>333
</mon-vecteur>
<mon-vecteur>inside vector of beanInside
</mon-vecteur>
</mon-vecteur>
</ma-classe>
----------------------------------------------
. Unmarshaller:
----------------------------------------------
- myString = un message
- myVector :
--- <mon-vecteur>2</mon-vecteur>
--- <mon-vecteur>toto</mon-vecteur>
---  _myString: interieur vec elm(0)= <mon-vecteur>333</mon-vecteur> vec 
elm(1)= <mon-vecteur>inside vector of beanInside</mon-vecteur>
----------------------------------------------



Keith Visco wrote:

>Which version of Castor are you using? Can you try this with the CVS
>version?
>
>Also please include the XML files that were created during marshalling.
>
>Thanks,
>
>--Keith
>
>Gregori Faroux wrote:
>
>>Hi,
>>
>>I looked in the archive and did not find a solution to my problem. I
>>have a simple bean with 2 fields: one is a String, one is a Vector.
>>Then I create an instance of the bean.
>>Then I set the String.
>>I add in the vector an int.
>>
>>If I use marshall and unmarshall WITHOUT specifing a mapping file, then
>>everything is fine.
>>But, when I use marshall and unmarshall WITH a mapping file, then the
>>bean inside the vector is NOT unmarshall correctly. The value inside the
>>Vector is a String with tags instead of being a simple int.
>>
>>The mapping file I used is this one: (I convert English names to French
>>one).
>><mapping>
>>  <class name="castorvalidation.MyBean">
>>    <map-to xml="ma-classe"/>
>>    <field name="myString" type="java.lang.String">
>>      <bind-xml name="ma-chaine" node="element"/>
>>    </field>
>>    <field name="myVector" collection="vector">
>>      <bind-xml name="mon-vecteur"/>
>>    </field>
>>  </class>
>></mapping>
>>
>>Here is the result using Unmarshaller without mapping: (after of course,
>>I used marshall without mapping)
>>- myString = un message
>>- myVector :
>>--- 2
>>
>>Here is the result using Unmarshaller with mapping (after of course, I
>>used marshall with mapping)
>>- myString = un message
>>- myVector :
>>--- <mon-vecteur>2</mon-vecteur>
>>
>>I do not know what I do wrong or if it's a bug, but I do not think it's
>>normal to have the tag "<mon-vecteur>2</mon-vecteur>" instead of an int !?
>>
>>In the rest of the email you will find the code.
>>
>>Thank you for your time and hopefully someone will guide me,
>>
>>Gregori
>>
>>------ Mybean.java ------------
>>package castorvalidation;
>>import java.util.Vector;
>>public class MyBean
>>{
>>  private String _myString;
>>  private Vector _myVector;
>>
>>  public void setMyString(String aString) { _myString = aString; }
>>  public String getMyString() { return(_myString); }
>>  public void setMyVector(Vector aVector) { _myVector = aVector; }
>>  public Vector getMyVector() { return(_myVector); }
>>
>>  public MyBean(){}
>>
>>  public String toString()
>>  {
>>    StringBuffer res = new StringBuffer();
>>    res.append(" _myString: ");
>>    res.append(_myString);
>>    for (int i = 0; i < _myVector.size(); i++)
>>    {
>>      res.append(" vec elm(");
>>      res.append(i);
>>      res.append(")= ");
>>      res.append(_myVector.elementAt(i).toString());
>>    }
>>    return(res.toString());
>>  }
>>}
>>
>>---- the code to populate the bean ----------------
>>MyBean bean = new MyBean();
>>Vector vec = new Vector();
>>vec.add(new Integer(2));
>>bean.setMyString("un message");
>>bean.setMyVector(vec);
>>runMarshall(bean);
>>runUnMarshall();
>>
>>---------- methods used to marshall and unmarshall ----------
>>  private void runMarshall(MyBean bean)
>>  {
>>    try
>>    {
>>      FileWriter writer = new FileWriter("bean.xml");
>>      Marshaller marshaller = new Marshaller(writer);
>>      Mapping mapping = new Mapping();
>>      mapping.loadMapping("mapping.xml");
>>      marshaller.setMapping( mapping );
>>      marshaller.marshal(bean);
>>      writer.close();
>>    } catch (Exception e)
>>    {
>>      e.printStackTrace();
>>    }
>>  }
>>
>>  /**
>>   * runUnMarshall()
>>   */
>>  private void runUnMarshall()
>>  {
>>    try
>>    {
>>      Unmarshaller unmarshaller = new Unmarshaller(MyBean.class);
>>      Mapping mapping = new Mapping();
>>      mapping.loadMapping("mapping.xml");
>>      unmarshaller.setMapping( mapping );
>>      MyBean beanRead = (MyBean) unmarshaller.unmarshal(new
>>FileReader("bean.xml"));
>>      System.err.println("- myString = " + beanRead.getMyString());
>>      System.err.println("- myVector : ");
>>      Vector vecRead = beanRead.getMyVector();
>>      if (vecRead != null)
>>      {
>>        for (int i = 0; i < vecRead.size(); i++)
>>        {
>>          System.err.println("--- " + vecRead.elementAt(i).toString());
>>        }
>>      }
>>    } catch (Exception e)
>>    {
>>      e.printStackTrace();
>>    }
>>  }
>>
>>-----------------------------------------------------------
>>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
>
>

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

Reply via email to