﻿  <class name="<<|=ClassName|>>" assembly="<<|=AssemblyName|>>" displayName="<<|=DisplayName|>>" table="<<|=TableName|>>">
	 <<|IF(HasSuperClass):
		<superClass class="<<|=SuperClassName|>>" assembly="<<|=SuperClassAssemblyName|>>" 
			orMapping="<<|=InheritanceType|>>" discriminator="<<|=SuperClassDiscriminator|>>"
		  <<|IF(SuperClassDefIDIsNotNullOrEmpty): id="<<|=SuperClassChildID|>>" |>> />
	 |>>
	<<|FOREACH(Properties):
    <property name="<<|=PropertyName|>>" type="<<|=PropertyType.PropertyTypeName|>>" assembly="<<|=PropertyType.AssemblyName|>>" 
     displayName="<<|=DisplayName|>>" readWriteRule="<<|=ReadWriteRule|>>" databaseField="<<|=DatabaseField|>>"
     <<|IF(!DefaultValue EQUALS NULL): default="<<|=DefaultValue|>>" |>> description="<<|=Description|>>" 
     <<|IF(IsCompulsory): compulsory="true" |>>
     <<|IF(AutoIncrementing): autoIncrementing="true" |>> 
     <<|IF(HasLength): length="<<|=Length|>>" |>>
     <<|IF(KeepValuePrivate): keepValuePrivate="true" |>>
    >
		<<|IF(!DefaultPropRule EQUALS NULL):
		<rule name="<<|=DefaultPropRule.PropRuleName|>>" class="<<|=DefaultPropRule.Class|>>" assembly="<<|=DefaultPropRule.Assembly|>>" message="<<|=DefaultPropRule.Message|>>">
			<<|FOREACH(DefaultPropRule.PropRuleParameters): <add key="<<|=KeyName|>>" value="<<|=Value|>>" /> |>>
		</rule>
		|>>
		<<|IF(LookupListTypeString EQUALS "Simple"):
		<simpleLookupList>
		<<|FOREACH(LookupList.ListItems):
		    <item value="<<|=Value|>>" display="<<|=Display|>>" />
		|>>
		</simpleLookupList>
		|>>
		<<|IF(LookupListTypeString EQUALS "BusinessObject"):
			<businessObjectLookupList class="<<|=LookupList.ClassName|>>" assembly="<<|=LookupList.AssemblyName|>>" sort="<<|=LookupList.DMSortOrder|>>" timeout="<<|=LookupList.Timeout|>>" />
		|>>
	</property>
    |>>
    <<|FOREACH(UniqueConstraints):
		<key name="<<|=KeyName|>>" <<|IF(IgnoreIfNull): ignoreIfNull="true" |>> message="<<|=Message|>>" >
		<<|FOREACH(KeyProperties):
			<prop name="<<|=PropertyName|>>" />			
		|>>
		</key>
	|>>
    <<|IF(HasPrimaryKeyWithProps):<<|IF(!ObjectIdentity EQUALS NULL):
    <primaryKey <<|IF(!ObjectIdentity.IsObjectID): isObjectID="false" |>> >
	  <<|FOREACH(PrimaryKeyProperties):
      <prop name="<<|=PropertyName|>>" />
      |>>
    </primaryKey>|>>|>>
    <<|FOREACH(Relationships):
    <relationship name="<<|=RelationshipName|>>" type="<<|IF(IsMultiple):multiple|>><<|IF(!IsMultiple):single|>>"  
     relatedClass="<<|=RelatedClass|>>" relatedAssembly="<<|=RelatedAssembly|>>"
     relationshipType="<<|=RelationshipType|>>"
     deleteAction="<<|=DeleteParentAction|>>" <<|IF(IsMultiple):orderBy="<<|=DMSortOrder|>>"|>>
     >
      <relatedProperty property="<<|=PropertyName|>>" relatedProperty="<<|=RelatedPropertyName|>>" />
    </relationship>
    |>>
    <<|FOREACH(UIViews):
      <<|INCLUDE(UIViewXmlTemplateText)|>>
	|>>
   </class>