Só para mostrar que é possível, não posso dizer como criar código que o fará, mas com algum software criado por meu amigo, o esquema .xml é parecido com isso. Talvez isso possa ajudar você a criar seu próprio código?
<table enabled="true" name="Users">
<field name="i_user_id" size="10" type="INTEGER"/>
<field name="c_user_login" size="32" type="VARCHAR"/>
<field name="c_user_pwd" size="32" type="VARCHAR"/>
<field name="c_user_session" size="40" type="VARCHAR"/>
<field name="c_user_name" size="200" type="VARCHAR"/>
<field name="d_stamp_" size="19" type="DATETIME"/>
<index name="Users2CID_0" unique="true" using="OTHER">
<field direction="ASCENDING" name="i_user_id" ordinal="1"/>
</index>
<index name="Users2_1_idx" unique="false" using="OTHER">
<field direction="ASCENDING" name="c_user_login" ordinal="1"/>
</index>
<index name="Users2_3_idx" unique="false" using="OTHER">
<field direction="ASCENDING" name="c_user_session" ordinal="1"/>
</index>
<index name="Users2_4_idx" unique="false" using="OTHER">
<field direction="ASCENDING" name="c_user_name" ordinal="1"/>
</index>
<index name="Users2_8_idx" unique="false" using="OTHER">
<field direction="ASCENDING" name="c_flag_" ordinal="1"/>
</index>
<index name="Users2_9_idx" unique="false" using="OTHER">
<field direction="ASCENDING" name="d_stamp_" ordinal="1"/>
</index>
</table>
E o arquivo de dados é assim:
Users.dat
i_user_id ( ,10,INTEGER,true,true,true) c_user_login ( ,32,VARCHAR,true,true,true) c_user_pwd ( ,32,VARCHAR,true,true,true) c_user_session ( ,40,VARCHAR,true,true,true) c_user_name ( ,200,VARCHAR,true,true,true) d_stamp_ ( ,19,DATETIME,true,true,true)
1 CUSER Null -1 CUser 2010-02-16 23:06:38.0
2 admin X032343fZdYdgrtueuILPmQ== -1 Admin User 2009-12-03 00:13:30.0