I have just created a Jira issue: http://jira.codehaus.org/browse/CASTOR-1919 http://jira.codehaus.org/browse/CASTOR-1919 . Personally, it isn't urgent, since my workaround satisfies me, but it remains an annoying bugger ;-) Good luck with it!
Joris Werner Guttmann wrote: > > Very hard to diagnose. Can you PLEASE create a new Jira issue and attach > *all* relevant files ? > > Werner > > jvleminc wrote: >> I managed to risolve this error by using the following mapping file. >> <?xml version="1.0"?> >> <!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN" >> "http://castor.exolab.org/mapping.dtd"> >> <mapping> >> <description>Mapping per il file dei dati di test verso una lista di >> TestDatabean</description> >> >> <class >> name="it.aci.tabelleComuni.normalizzatoreResidenze.junit.bean.TestDataList"> >> <field name="list" collection="arraylist" >> type="it.aci.tabelleComuni.normalizzatoreResidenze.junit.bean.TestDataBean"> >> <bind-xml name="test"/> >> </field> >> </class> >> >> <class >> name="it.aci.tabelleComuni.normalizzatoreResidenze.junit.bean.TestDataBean"> >> <field name="inputBean" >> type="it.aci.tabelleComuni.normalizzatoreResidenze.bean.InputBean" >> container="true"> >> </field> >> <field name="id" type="int"> >> <bind-xml name="id" node="element"/> >> </field> >> <field name="comuneEsito" type="int"> >> <bind-xml name="comuneEsito" node="element"/> >> </field> >> <field name="comuneElaborazione" type="int"> >> <bind-xml name="comuneElaborazione" node="element"/> >> </field> >> <field name="localitaEsito" type="int"> >> <bind-xml name="localitaEsito" node="element"/> >> </field> >> <field name="localitaElaborazione" type="int"> >> <bind-xml name="localitaElaborazione" node="element"/> >> </field> >> <field name="indirizzoEsito" type="int"> >> <bind-xml name="indirizzoEsito" node="element"/> >> </field> >> <field name="indirizzoElaborazione" type="int"> >> <bind-xml name="indirizzoElaborazione" node="element"/> >> </field> >> </class> >> >> <class >> name="it.aci.tabelleComuni.normalizzatoreResidenze.bean.InputBean"> >> <field name="codiceProvincia" type="string"/> >> <field name="descrizioneComune" type="string"/> >> <field name="descrizioneLocalita" type="string"/> >> <field name="cap" type="string"/> >> <field name="descrizioneDug" type="string"/> >> <field name="indirizzoString" type="string"/> >> <field name="civico" type="string"/> >> <field name="comuneTipoCodifica" type="int"/> >> <field name="indirizzoTipoCodifica" type="int"/> >> </class> >> >> >> </mapping> >> >> Note the "container" attribute, which isn't documented in the official >> documentation >> (http://www.castor.org/xml-mapping.html#3.4-The-<field>-element) but in >> this >> case saved my life! >> Now I have just another new annoying error, about which I find little >> help >> online. I get the following error when I execute my program: >> The container object >> (it.aci.tabelleComuni.normalizzatoreResidenze.bean.InputBean) cannot >> accept >> the child object associated with the element 'comuneTipoCodifica' because >> the container is already full!{file: [not available]; line: 13; column: >> 22} >> >> Any ideas??? If I eliminate the comuneTipoCodifica and >> indirizzoTipoCodifica >> fields from my data file, everything works fine. >> Thanks in advance! >> >> >> >> jvleminc wrote: >>> Hello, >>> >>> I am having the following problem with a Castor XML->bean mapping. I >>> don't >>> manage to group a series of xml fields >>> into a bean. Let me explain. >>> The bean to be filled: TestDataBean.java >>> public class TestDataBean extends BaseBean { >>> private int id; >>> private InputBean inputBean; >>> >>> private int comuneEsito; >>> private int comuneElaborazione; >>> private int localitaEsito; >>> private int localitaElaborazione; >>> private int indirizzoEsito; >>> private int indirizzoElaborazione; >>> /* getter + setter */ >>> } >>> >>> where InputBean.java: >>> public class InputBean extends >>> it.aci.tabelleComuni.normalizzatoreResidenze.utils.BaseBean { >>> private java.lang.String cap; >>> private java.lang.String civico; >>> private java.lang.String descrizioneComune; >>> private java.lang.String descrizioneDug; >>> private java.lang.String descrizioneLocalita; >>> private java.lang.String indirizzoString; >>> private java.lang.String codiceProvincia; >>> private int comuneTipoCodifica; >>> private int indirizzoTipoCodifica; >>> /* getter + setter*/ >>> } >>> >>> My input file xml: >>> <?xml version="1.0" encoding="UTF-8"?> >>> <dataroot xmlns:od="urn:schemas-microsoft-com:officedata"> >>> <test> >>> <id>1</id> >>> <comuneElaborazione>101</comuneElaborazione> >>> <comuneEsito>100</comuneEsito> >>> <localitaElaborazione>980</localitaElaborazione> >>> <localitaEsito>900</localitaEsito> >>> <indirizzoElaborazione>980</indirizzoElaborazione> >>> <indirizzoEsito>900</indirizzoEsito> >>> <codiceProvincia>AR</codiceProvincia> >>> <descrizioneComune>CIVITELLA IN VAL DI CHIANA</descrizioneComune> >>> <comuneTipoCodifica>999</comuneTipoCodifica> >>> <indirizzoTipoCodifica>999</indirizzoTipoCodifica> >>> </test> >>> <!-- more tests --> >>> </dataroot> >>> >>> I want the fields that are not *Esito or *Elaborazione (such as >>> codiceProvincia or descrizioneComune) to fill the InputBean, inside the >>> TestDataBean, but whatever I try, I get a (correct) "unable to find >>> FieldDescriptor for 'codiceProvincia' in ClassDescriptor of >>> test-data-bean" error. >>> My current mapping file is this one: >>> <mapping> >>> <description>Mapping per il file dei dati di test verso una lista di >>> TestDatabean</description> >>> >>> <class >>> name="it.aci.tabelleComuni.normalizzatoreResidenze.junit.bean.TestDataList"> >>> <field name="list" collection="arraylist" >>> type="it.aci.tabelleComuni.normalizzatoreResidenze.junit.bean.TestDataBean"> >>> <bind-xml name="test"/> >>> </field> >>> </class> >>> >>> <class >>> name="it.aci.tabelleComuni.normalizzatoreResidenze.junit.bean.TestDataBean"> >>> <field name="id" type="int"> >>> <bind-xml name="id" node="element"/> >>> </field> >>> <field name="comuneEsito" type="int"> >>> <bind-xml name="comuneEsito" node="element"/> >>> </field> >>> <field name="comuneElaborazione" type="int"> >>> <bind-xml name="comuneElaborazione" node="element"/> >>> </field> >>> <field name="localitaEsito" type="int"> >>> <bind-xml name="localitaEsito" node="element"/> >>> </field> >>> <field name="localitaElaborazione" type="int"> >>> <bind-xml name="localitaElaborazione" node="element"/> >>> </field> >>> <field name="indirizzoEsito" type="int"> >>> <bind-xml name="indirizzoEsito" node="element"/> >>> </field> >>> <field name="indirizzoElaborazione" type="int"> >>> <bind-xml name="indirizzoElaborazione" node="element"/> >>> </field> >>> </class> >>> >>> <class >>> name="it.aci.tabelleComuni.normalizzatoreResidenze.bean.InputBean"> >>> <field name="codiceProvincia" type="string"/> >>> <field name="descrizioneComune" type="string"/> >>> <field name="descrizioneLocalita" type="string"/> >>> <field name="cap" type="string"/> >>> <field name="descrizioneDug" type="string"/> >>> <field name="indirizzoString" type="string"/> >>> <field name="civico" type="string"/> >>> <field name="comuneTipoCodifica" type="integer"/> >>> <field name="indirizzoTipoCodifica" type="integer"/> >>> </class> >>> >>> </mapping> >>> >>> It seems in need some inverse "collection" atribute somewhere inside my >>> mapping, but I don't know how to indicate that several root fields have >>> to >>> be grouped into a sub-bean. >>> >>> Any help is appreciated! Thanks in advance. >>> >>> Joris >>> >> > > > --------------------------------------------------------------------- > To unsubscribe from this list please visit: > > http://xircles.codehaus.org/manage_email > > > -- View this message in context: http://www.nabble.com/Group-several-root-fields-into-a-sub-bean-tf3362109.html#a9669379 Sent from the Castor - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email

