Hello,
I'm using Castor to bind xml files to java classes and then persist those classes, but running
classes.Lom lom = (classes.Lom)unmar.unmarshal(classes.Lom.class, new FileReader("./xmlFile.xml"));
db.create(lom)
returns an: "Illegal Text data found as child of: langstring" error
This is a "summary" of xmlFile.xml:
<lom>
<general>
general content
<identifier>identifier general</identifier>
<title>
<langstring>general title langstring</langstring>
</title>
(...)
</general>
</lom>
and this the mapping file (summarized) i use:
<class name="classes.Lom_General_Title" identity="_id" key-generator="MAX" depends="classes.Lom_General">
<map-to table="GENERAL_TITLE"/>
<field name="_id" type="integer" get-method="getId" set-method="setId">
<sql name="genTitID"/>
<bind-xml node="attribute"/>
</field>
<field name="_langstringList" type="classes.Lom_General_Title_Langstring" collection="array" get-method="getLangstring" set-method="setLangstring" required="true">
<sql many-key="genTitID"/>
<bind-xml name="langstring"/>
</field>
</class>
<class name="classes.Lom_General_Title_Langstring
" identity="_id" key-generator="MAX" depends="classes.Lom_General_Title">
<map-to table="GENERAL_TITLE_LANGSTRING"/>
<field name="_id" type="integer" get-method="getId" set-method="setId">
<sql name="genTitLanID"/>
<bind-xml node="attribute"/>
</field>
<field name="_title" type="classes.Lom_General_Title
" get-method="getTitle" set-method="setTitle">
<sql name="genTitID"/>
<bind-xml name="masterTitle" reference="true" />
</field>
<field name="_lang" type="java.lang.String" get-method="getLang" set-method="setLang">
<sql name="lang"/>
<bind-xml name="xml:lang" node="attribute"/>
</field>
<field name="content" type="java.lang.String">
<sql name="content"/>
<bind-xml node="text"/>
</field>
</class>
Can someone please help me?
Thanks in advance,
Mikel

