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.

Reply via email to