<module name="test">
	<const name="DemoConst">
		<var name="x1" type="int" value="0"/>
		<var name="x2" type="long" value="3242"/>
		<var name="x3" type="float" value="444.3"/>
		<var name="x4" type="double" value="55.3"/>
		<!--var name="x5" type="string" value="abcdefg"/-->
	</const>
	
	<enum name="DemoEnum">
		<var name="A" value="1"/>
		<var name="B"/>
		<var name="C" value="4"/>
		<var name="D"/>
	</enum>
	
	<bean name="DemoType1">
		<var name="x1" type="int"/>
	</bean>
	
	<bean name="DemoDynamic"> 多态数据结构
		<var name="x1" type="int"/>
		
		<bean name="DemoD2" alias="测试别名">
			<var name="x2" type="int"/>
		</bean>
		
		<bean name="DemoD3">
			<var name="x3" type="int"/>
			<bean name="DemoE1">
				<var name="x4" type="int"/>
			</bean>
		</bean>
		<bean name="DemoD5">
			<var name="time" type="DateTimeRange"/>
		</bean>
	</bean>
	
	<bean name="DemoE2">
		<var name="y1" type="int"/>
		<var name="y2" type="bool"/>
	</bean>
	
	<bean name="DemoType2" >
		<var name="x1" type="bool"/>
		<var name="x2" type="byte"/>
		<var name="x3" type="short" ref="test.TbFullTypes"/>
		<var name="x4" type="int?" convert="DemoEnum"/>
		<var name="x5" type="long" convert="DemoEnum"/>
		<var name="x6" type="float"/>
		<var name="x7" type="double"/>
		<var name="x8_0" type="fshort"/>
		<var name="x8" type="fint"/>
		<var name="x9" type="flong"/>
		
		<var name="x10" type="string" path="normal;*.txt"/>
		<var name="x12" type="DemoType1"/>
		<var name="x13" type="DemoEnum"/>
		<var name="x14" type="DemoDynamic" sep=","/>多态数据结构
		
		<var name="v2" type="vector2"/>
		<var name="v3" type="vector3"/>
		<var name="v4" type="vector4"/>
		
		<var name="t1" type="datetime"/>

		<var name="k1" type="array,int"/> 使用;来分隔
		
		<var name="k2" type="list,int"/>
		<var name="k3" type="linkedlist,int"/>
		<var name="k4" type="arraylist,int"/>
		<var name="k5" type="set,int"/>
		<var name="k6" type="treeset,int"/>
		<var name="k7" type="hashset,int"/>
		<var name="k8" type="map,int,int"/>
		<var name="k9" type="list,DemoE2" sep="," index="y1"/>
		<var name="k15" type="array,DemoDynamic" sep=","/> 
	</bean>
	
	<table name="TbFullTypes" index="x3" value="DemoType2" input="test/full_type.xlsx"/> 最常见的普通 key-value表
	
	
	<bean name="DateTimeRange" sep=";">
		<var name="start_time" type="datetime"/>
		<var name="end_time" type="datetime"/>
	</bean>
	
	<bean name="DemoSingletonType">
		<var name="id" type="int"/>
		<var name="name" type="text"/>
		<var name="date" type="DemoDynamic"/>
	</bean>
	
	<table name="TbSingleton" mode="one" value="DemoSingletonType" input="test/table_one.xlsx"/> 单例表，只有一个记录
	
	<table name="TbDataFromJson" value="DemoType2" input="test/json_datas"/> 普通表，不过数据从tbrole_datas目录递归读入，每个文件是一个记录
 	
	<table name="TbDataFromXml" value="DemoType2" input="test/xml_datas"/> 普通表，不过数据从tbrole_datas目录递归读入，每个文件是一个记录
 	
	<table name="TbDataFromLua" value="DemoType2" input="test/lua_datas"/> 普通表，不过数据从tbrole_datas目录递归读入，每个文件是一个记录
	
	<table name="TbTwoKey" value="DemoType2" index="x3,x4" input="test/json_datas" mode="bmap"/>
	
	
	<bean name="MultiRowType1">
		<var name="id" type="int"/>
		<var name="x" type="int"/>
	</bean>
	
	<bean name="MultiRowType2">
		<var name="id" type="int"/>
		<var name="x" type="int"/>
		<var name="y" type="float"/>
	</bean>
	
	<bean name="MultiRowRecord">
		<var name="id" type="int"/>
		<var name="name" type="string"/>
		<var name="one_rows" type="list,MultiRowType1"/>
		<var name="multi_rows1" type="list,MultiRowType1" multi_rows="1"/>
		<var name="multi_rows2" type="array,MultiRowType1" multi_rows="1"/>
		<var name="multi_rows3" type="set,MultiRowType2" multi_rows="1"/>
		<var name="multi_rows4" type="map,int,MultiRowType2" multi_rows="1"/>
	</bean>
	
	<table name="TbMultiRowRecord" value="MultiRowRecord" input="test/multi_rows_record.xlsx"/>
	
	
	<enum name="ETestUeType">
		<var name="WHITE" alias="白"/>
		<var name="BLACK"/>
	</enum>
	
	<enum name="ETestEmptyEnum">
	
	</enum>
	
	<enum name="ETestEmptyEnum2">
		<var name="SMALL_THAN_256" value="255"/>
		<var name="X_256" value="256"/>
		<var name="X_257" value="257"/>
	</enum>
	
	<bean name="TestUeType">
		<var name="x1" type="bool"/>
		<var name="x2" type="byte"/>
		<!--var name="x3" type="short"/-->
		<var name="x4" type="int"/>
		<var name="x5" type="long"/>
		<var name="x6" type="float"/>
		<!--var name="x7" type="double"/>
		<var name="x8_0" type="fshort"/>
		<var name="x8" type="fint"/>
		<var name="x9" type="flong"/-->
		
		<var name="x10" type="string"/>
		<var name="x12" type="DemoType1"/>
		<var name="x13" type="ETestUeType"/>
		<!--var name="x14" type="DemoDynamic" sep=","/-->多态数据结构
		
		<var name="v2" type="vector2"/>
		<var name="v3" type="vector3"/>
		<var name="v4" type="vector4"/>
		
		<var name="t1" type="datetime"/>
		<!--
		
		<var name="x15" type="DemoType1"/>
		
		<var name="y1" type="int?"/> nullable ,多态结构肯定是nullable的
	-->
		
		<var name="k1" type="array,int"/> 使用;来分隔
		
		<var name="k2" type="list,int" group="c,s"/>
		<var name="k3" type="linkedlist,int"/>
		<var name="k4" type="arraylist,int"/>
		<var name="k5" type="set,int"/>
		<var name="k6" type="treeset,int"/>
		<var name="k7" type="hashset,int"/>
		<var name="k8" type="map,int,int"/>
		<var name="k9" type="list,DemoE2"/>
	</bean>	
	
	
	<bean name="H1">
		<var name="y2" type="H2"/>
		<var name="y3" type="int"/>
	</bean>
	<bean name="H2">
		<var name="z2" type="int"/>
		<var name="z3" type="int"/>
	</bean>
	
	<bean name="MultiRowTitle">
		<var name="id" type="int"/>
		<var name="name" type="string"/>
		<var name="x1" type="H1"/>
		<var name="x2" type="list,H2" multi_rows="1"/>
		<var name="x3" type="array,H2" multi_rows="1"/>
	</bean>
	<table name="TbMultiRowTitle" value="MultiRowTitle" input="test/multi_level_title.xlsx"/>
	
	<!--table name="TbDynamic" value="DemoDynamic" input="多态数据源"/-->
 
	<module name="login">
		支持在一个定义文件中 定义多个模块。 一般来说一个定义文件中一个模块比较好，但有些情况下为了方便可以定义多个。
		<bean name="RoleInfo">
			<var name="role_id" type="long"/>
		</bean>
	</module>
</module>