Hi All,
I have taken a little time to review the castor documentation
this weekend. I have also skimmed through some of the mailing
list archives (how it has grown!).
I have discovered castor features I wasn't familiar with such
as the org.exolab.castor.tools.MappingTool that can be used
to automatically generate a skeleton mapping file which can
be used as a starting point for a custom mapping file. It
takes a lot of the drudgery out of writing the mappings for
existing java classes.
Question: i got mappingtool to work for a class with a
list of properties. when i tried to run it again using a
class with a collection property, it failed. i may be using
the tool wrong. here's simple code i used to run MappingTool:
===============================
package com.u2d.tests;
import org.exolab.castor.tools.*;
import java.io.*;
public class MapMaker
{
public static void main(String[] args) throws Exception
{
MappingTool maptool = new MappingTool();
maptool.addClass("com.u2d.ide.Debugger");
File outfile = new File("outfile.xml");
FileWriter w = new FileWriter(outfile);
maptool.write(w);
w.close();
}
}
===============================
here's a class for which this run failed:
===============================
package com.u2d.ide;
import java.util.*;
public class Debugger
{
private List classpaths;
private String jreVersion;
public Debugger()
{
classpaths = new ArrayList(10);
}
public List getClasspaths()
{
return classpaths;
}
public void addClasspath(String path)
{
classpaths.add(path);
}
public String getJreVersion()
{
return jreVersion;
}
public void setJreVersion(String ver)
{
jreVersion = ver;
}
public String toString()
{
String cp = "";
for (int i=0; i<classpaths.size(); i++)
{
cp += classpaths.get(i) + ":" ;
}
return "\n\t\tclasspath: "+cp+"; "+
"\n\t\tjre version: "+jreVersion;
}
}
===============================
i verified that if i were to remove the "classpaths"
property from "Debugger", my MapMaker class's run would
complete successfully.
finally, here's the exception i got:
===============================
Exception in thread "main" ValidationException: "" is not a valid NCName.;
- location of error: XPATH: mapping/class/field/@name
at
org.exolab.castor.xml.validators.NameValidator.validate(NameValidator.java:1
18)
at
org.exolab.castor.xml.validators.NameValidator.validate(NameValidator.java:1
33)
at
org.exolab.castor.xml.FieldValidator.validate(FieldValidator.java:249)
at org.exolab.castor.xml.Validator.validate(Validator.java:133)
at
org.exolab.castor.xml.FieldValidator.validate(FieldValidator.java:217)
at org.exolab.castor.xml.Validator.validate(Validator.java:133)
at
org.exolab.castor.xml.FieldValidator.validate(FieldValidator.java:217)
at org.exolab.castor.xml.Validator.validate(Validator.java:133)
at org.exolab.castor.xml.Marshaller.validate(Marshaller.java:1152)
at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:534)
at org.exolab.castor.tools.MappingTool.write(MappingTool.java:387)
at com.u2d.tests.MapMaker.main(MapMaker.java:17)
===============================
on a related note, i would be more than happy to add some mappingtool
documentation
to the documentation set. if anyone would like to reply to this thread and
volunteer
extra information they've learned from using the mappingtool, i will make
sure to
include that information in the documentation.
Thanks, Eitan
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev