Oops, one more gotcha. The dynamic field support is only in 1.4 trunk. On Fri, Jan 23, 2009 at 1:24 PM, Shalin Shekhar Mangar < shalinman...@gmail.com> wrote:
> On Fri, Jan 23, 2009 at 1:08 PM, Gunaranjan Chandraraju < > chandrar...@apple.com> wrote: > >> >> <record> >> <coreInfo id="123" , .../> >> <address street="XYZ1" State="CA" ...type="home" /> >> <address street="XYZ2" state="CA" ... type="Office"/> >> <address street="XYZ3" state="CA" ....type="Other"/> >> </record> >> >> I have setup my DIH to treat these as entities as below >> >> <dataConfig> >> <dataSource type="FileDataSource" encoding="UTF-8" /> >> <document> >> <entity name ="f" processor="FileListEntityProcessor" >> baseDir="***" >> fileName=".*xml" >> rootEntity="false" >> dataSource="null" > >> <entity >> name="record" >> processor="XPathEntityProcessor" >> stream="false" >> forEach="/record" >> url="${f.fileAbsolutePath}"> >> <field column="ID" xpath="/record/@id" /> >> >> <!-- Address --> >> <entity >> name="record_adr" >> processor="XPathEntityProcessor" >> stream="false" >> forEach="/record/address" >> url="${f.fileAbsolutePath}"> >> <field column="address_street" >> xpath="/record/address/@street" /> >> <field column="address_state" >> xpath="/record/address//@state" /> >> <field column="address_type" >> xpath="/record/address//@type" /> >> </entity> >> </entity> >> </entity> >> </document> >> </dataConfig> >> > > I think the only way is to create a dynamic field for each attribute > (street, state etc.). Write a transformer to copy the fields from your data > config to appropriately named dynamic field (e.g. street_1, state_1, etc). > To maintain this counter you will need to get/store it with > Context#getSessionAttribute(name, val, Context.SCOPE_DOC) and > Context#setSessionAttribute(name, val, Context.SCOPE_DOC). > > I cant't think of an easier way. > -- > Regards, > Shalin Shekhar Mangar. > -- Regards, Shalin Shekhar Mangar.