<?xml version="1.0" encoding="utf-8"?>
<!--
 *	CFSecurity
 *
 *	Copyright (c) 2014-2017 Mark Sobkow
 *	
 *	Licensed under the Apache License, Version 2.0 (the "License");
 *	you may not use this file except in compliance with the License.
 *	You may obtain a copy of the License at
 *	
 *	    http://www.apache.org/licenses/LICENSE-2.0
 *	
 *	Unless required by applicable law or agreed to in writing, software
 *	distributed under the License is distributed on an "AS IS" BASIS,
 *	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *	See the License for the specific language governing permissions and
 *	limitations under the License.
 *-->
<MSSBam
		xmlns="uri://msscodefactory/mssbam"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xmlns:xs="http://www.w3.org/2001/XMLSchema"
		xsi:schemaLocation="uri://msscodefactory/mssbam file:../bin/xsd/mssbam-2.9.xsd"
		Name="CFSecurity"
		Revision="2.10"
		Description="CFSecurity"
		ProjectRoot="net.sourceforge.MSSCodeFactory.CFSecurity.2.10" >
	<Tld Name="org" >
		<TopDomain Name="apache" >
			<License Name="ApacheV2"
					Description="Apache Version 2 License">
Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
    http://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.</License>
		</TopDomain>
		<TopDomain Name="gnu" >
			<License Name="GplV2"
					Description="GNU GPL v2+ License">
This project is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
.
This project is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this project.  If not, see http://www.gnu.org/licenses/.</License>
			<License Name="GplV3"
					Description="GNU GPL v3+ License">
This project is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
.
This project is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this project.  If not, see http://www.gnu.org/licenses/.</License>
			<License Name="LGplV2"
					Description="GNU Lesser/Library GPL v2+ License">
This project is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
.
This project is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser Public License for more details.
.
You should have received a copy of the GNU Lesser Public License
along with this project.  If not, see http://www.gnu.org/licenses/.</License>
			<License Name="LGplV3"
					Description="GNU Lesser/Library GPL v3+ License">
This project is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
.
This project is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser Public License for more details.
.
You should have received a copy of the GNU Lesser Public License
along with this project.  If not, see http://www.gnu.org/licenses/.</License>
		</TopDomain>
	</Tld>
	<Tld Name="net" >
		<TopDomain Name="sourceforge" >
			<TopProject Name="MSSCodeFactory" >
				<SubProject Name="CFSecurity" >
					<MajorVersion Name="2" >
						<MinorVersion Name="10" >
<SchemaDef Name="CFSecurity"
		DbName="CFSec210"
		Description=""
		DefaultLicense="org.apache.ApacheV2"
		ExtendCFCore="true"
		CopyrightHolder="Mark Sobkow"
		CopyrightPeriod="2014-2017"
		AuthorEMail="msobkow@sasktel.net"
		ProjectURL="http://msscodefactory.sourceforge.net/"
		PublishURI="http://msscodefactory.sourceforge.net/model-2.9/net-sourceforge-MSSCodeFactory-CFSecurity-2-10-CFSecurity.xml" >

	<EnumType Name="AuditActionEnum"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0" >
		<EnumTag Name="Create" EnumCode="0" />
		<EnumTag Name="Update" EnumCode="1" />
		<EnumTag Name="Delete" EnumCode="2" />
	</EnumType>

	<Id64Gen Name="ClusterIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			DbName="ClusterIdGenSeq"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Slice="105"
			BlockSize="1" />

	<StringType Name="DeviceName"
			Label="Device Name"
			IsNullable="false"
			DefaultVisibility="true"
			MaxLen="127"
			ShowLines="1"
			InitValue="" />

	<StringType Name="ISO6391LanguageCode"
			IsNullable="false"
			DefaultVisibility="true"
			MaxLen="2"
			ShowLines="1"
			InitValue="" />

	<StringType Name="ISO6392LanguageCode"
			IsNullable="false"
			DefaultVisibility="true"
			MaxLen="3"
			ShowLines="1"
			InitValue="" />

	<StringType Name="ISOCountryCode"
			IsNullable="false"
			DefaultVisibility="true"
			MaxLen="2"
			ShowLines="1"
			InitValue="" />

	<StringType Name="ISOCountryCode3"
			IsNullable="false"
			DefaultVisibility="true"
			MaxLen="3"
			ShowLines="1"
			InitValue="" />

	<Id16Gen Name="ISOCountryIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			DbName="ISOCountryIdGenSeq"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Slice="100"
			BlockSize="1" />

	<StringType Name="ISOCurrencyCode"
			IsNullable="false"
			DefaultVisibility="true"
			MaxLen="3"
			ShowLines="1"
			InitValue="" />

	<Id16Gen Name="ISOCurrencyIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			DbName="ISOCurrencyIdGenSeq"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Slice="101"
			BlockSize="1" />

	<Id16Gen Name="ISOLanguageIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			DbName="ISOLanguageIdGenSeq"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Slice="102"
			BlockSize="1" />

	<Id16Gen Name="ISOTimezoneIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			DbName="ISOTimezoneIdGenSeq"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Slice="103"
			BlockSize="1" />

	<StringType Name="SHA512HexHash"
			Label="SHA-2 512 Hash encoded in hexadecimal"
			IsNullable="false"
			DefaultVisibility="true"
			MaxLen="256"
			ShowLines="1"
			InitValue="" />

	<UuidGen Name="SecSessionIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			InitValue="654dbba0-eda7-11e1-aff1-0800200c9a66"
			Slice="113"
			BlockSize="1" />

	<UuidGen Name="SecUserIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			InitValue="654dbba0-eda7-11e1-aff1-0800200c9a66"
			Slice="114"
			BlockSize="1" />

	<Id32Gen Name="ServiceTypeIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			DbName="ServiceTypeIdGenSeq"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Slice="104"
			BlockSize="1" />

	<Id64Gen Name="TenantIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			DbName="TenantIdGenSeq"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Slice="106"
			BlockSize="1" />

	<Table Name="Cluster"
			TableClassCode="CLUS"
			DbName="clus"
			ShortName="Clus"
			Label="Cluster"
			Description="A Cluster is an MSS Code Factory installation"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			PageData="true"
			LookupIndex="ClusterUDomainNameIdx"
			LoaderBehaviour="Insert"
			SecScope="System" >
		<TableCol Name="Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="ClusterIdGen" />
		<StringCol Name="FullDomainName"
				Label="Full Domain Name"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="192"
				ShowLines="1"
				InitValue="" />
		<StringCol Name="Description"
				Label="Cluster Description"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="128"
				ShowLines="1"
				InitValue="" />
		<PrimaryIndex Name="ClusterIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="cluster_pk"
				ShortName="PIdx"
				Suffix="IdIdx"
				Label="IdIdx" >
			<IndexCol Name="Id" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="ClusterUDomainNameIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="cluster_xufdname"
				ShortName="UDom"
				Suffix="UDomainNameIdx"
				Label="UDomainNameIdx" >
			<IndexCol Name="FullDomainName" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ClusterUDescrNameIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="cluster_xudescr"
				ShortName="UDescr"
				Suffix="UDescrIdx"
				Label="UDescrIdx" >
			<IndexCol Name="Description" IsAscending="true" DefaultVisibility="true" />
		</Index>

		<JavaTableObjInterface>
	I$SecuritySchemaName$ClusterObj getSystemCluster();
</JavaTableObjInterface>

		<JavaTableObjImplementation>
	public I$SecuritySchemaName$ClusterObj getSystemCluster() {
		boolean transactionStarted = schema.beginTransaction();
		I$SecuritySchemaName$ClusterObj clusterObj;
		try {
			clusterObj = readClusterByUDomainNameIdx( &quot;system&quot; );
			if( clusterObj == null ) {
				clusterObj = newInstance();
				I$SecuritySchemaName$ClusterEditObj clusterEdit = clusterObj.beginEdit();
				clusterEdit.setRequiredFullDomainName( &quot;system&quot; );
				clusterObj = clusterEdit.create();
				clusterEdit.endEdit();
			}
			if( transactionStarted ) {
				schema.commit();
			}
		}
		catch( RuntimeException e ) {
			if( transactionStarted ) {
				try {
					schema.rollback();
				}
				catch( Exception e2 ) {
				}
			}
			throw e;
		}
		return( clusterObj );
	}
</JavaTableObjImplementation>

		<HPlusTableObjInterface>
	virtual I$SecuritySchemaName$ClusterObj* getSystemCluster() = 0;
</HPlusTableObjInterface>

		<CPlusTableObjInterface>
	virtual I$SecuritySchemaName$ClusterObj* getSystemCluster();
</CPlusTableObjInterface>

		<CPlusTableObjImplementation>
	I$SecuritySchemaName$ClusterObj* $SchemaName$$TableName$TableObj::getSystemCluster() {
		static const std::string S_System( "system" );
		bool transactionStarted = schema-&gt;beginTransaction();
		I$SecuritySchemaName$ClusterObj* clusterObj;
		try {
			clusterObj = readClusterByUDomainNameIdx( S_System, true );
			if( clusterObj == NULL ) {
				clusterObj = newInstance();
				I$SecuritySchemaName$ClusterEditObj* clusterEdit = clusterObj-&gt;beginEdit();
				clusterEdit-&gt;setRequiredFullDomainName( S_System );
				clusterObj = clusterEdit-&gt;create();
				clusterEdit-&gt;endEdit();
			}
			if( transactionStarted ) {
				schema-&gt;commit();
			}
		}
		catch( std::exception&amp; e ) {
			if( transactionStarted ) {
				try {
					schema-&gt;rollback();
				}
				catch( ... ) {
				}
			}
			throw e;
		}
		return( clusterObj );
	}
</CPlusTableObjImplementation>
	</Table>

	<Id64Gen Name="HostNodeIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Cluster"
			Slice="116"
			BlockSize="1" />

	<Id32Gen Name="SecAppIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Cluster"
			Slice="107"
			BlockSize="1" />

	<Id32Gen Name="SecFormIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Cluster"
			Slice="108"
			BlockSize="1" />

	<Id64Gen Name="SecGroupFormIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Cluster"
			Slice="112"
			BlockSize="1" />

	<Id32Gen Name="SecGroupIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Cluster"
			Slice="109"
			BlockSize="1" />

	<Id64Gen Name="SecGroupIncludeIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Cluster"
			Slice="111"
			BlockSize="1" />

	<Id64Gen Name="SecGroupMemberIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Cluster"
			Slice="110"
			BlockSize="1" />

	<Id64Gen Name="ServiceIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Cluster"
			Slice="115"
			BlockSize="1" />

	<Table Name="HostNode"
			TableClassCode="HSND"
			DbName="HostNode"
			Label="Host Node"
			Description="An installation cluster usually has many nodes"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			PageData="true"
			LookupIndex="HostNodeUHostNameIdx"
			LoaderBehaviour="Update"
			SecScope="Cluster" >
		<TableCol Name="ClusterId"
				Label="Cluster Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="ClusterIdGen" />
		<TableCol Name="HostNodeId"
				Label="Host Node Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="HostNodeIdGen" />
		<StringCol Name="Description"
				Label="Description"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="255"
				ShowLines="1"
				InitValue="" />
		<StringCol Name="HostName"
				Label="Host Name"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="192"
				ShowLines="1"
				InitValue="" />
		<PrimaryIndex Name="HostNodeIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="HostNode_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="HostNodeId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="HostNodeClusterIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="HostNode_xcluster"
				ShortName="Clus"
				Suffix="ClusterIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="HostNodeUDescrIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="HostNode_xudsc"
				ShortName="UDescr"
				Suffix="UDescrIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="Description" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="HostNodeUHostNameIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="HostNode_xhnm"
				ShortName="HostNm"
				Suffix="HostNameIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="HostName" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="ISOCountry"
			TableClassCode="ISOC"
			DbName="iso_cntry"
			Label="ISO Country"
			Description="ISO Country implements the ISO 3166 Codes as a global static lookup, replicated to all nodes"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LookupIndex="ISOCountryCodeIdx"
			LoaderBehaviour="Update"
			SecScope="System" >
		<TableCol Name="ISOCountryId"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="ISOCountryIdGen" />
		<TableCol Name="ISOCode"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="iso_code"
				DataType="ISOCountryCode" />
		<StringCol Name="Name"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="country_name"
				MaxLen="64"
				ShowLines="1"
				InitValue="" />
		<PrimaryIndex Name="ISOCountryIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="isocountry_pk"
				ShortName="PIdx"
				Suffix="IdIdx"
				Label="CountryIdx" >
			<IndexCol Name="ISOCountryId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="ISOCountryCodeIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="isocountry_xcode"
				ShortName="ISOCode"
				Suffix="ISOCodeIdx"
				Label="ISOCodeIdx" >
			<IndexCol Name="ISOCode" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ISOCountryNameIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="isocountry_xuname"
				ShortName="NameIdx"
				Suffix="NameIdx"
				Label="Name Index" >
			<IndexCol Name="Name" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="ISOCountryCurrency"
			TableClassCode="ICCY"
			DbName="iso_cntryccy"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			AltIndex="ISOCountryCurrencyIdIdx"
			LoaderBehaviour="Insert"
			SecScope="System" >
		<TableCol Name="ISOCountryId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="ISOCountryIdGen" />
		<TableCol Name="ISOCurrencyId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="ISOCurrencyIdGen" />
		<PrimaryIndex Name="ISOCountryCurrencyIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="isocountryccy_pk"
				ShortName="PIdx"
				Suffix="IdIdx"
				Label="CountryCcyIdx" >
			<IndexCol Name="ISOCountryId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="ISOCurrencyId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="ISOCountryCurrencyCountryIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="isocountryccy_xcountry"
				ShortName="Country"
				Suffix="CountryIdx"
				Label="CountryIdx" >
			<IndexCol Name="ISOCountryId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ISOCountryCurrencyCurrencyIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="isocountryccy_xccy"
				ShortName="Currency"
				Suffix="CurrencyIdx"
				Label="CurrencyIdx" >
			<IndexCol Name="ISOCurrencyId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="ISOCountryLanguage"
			TableClassCode="ISCL"
			DbName="iso_cntrylng"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			AltIndex="ISOCountryLanguageIdIdx"
			LoaderBehaviour="Insert"
			SecScope="System" >
		<TableCol Name="ISOCountryId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="ISOCountryIdGen" />
		<TableCol Name="ISOLanguageId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="ISOLanguageIdGen" />
		<PrimaryIndex Name="ISOCountryLanguageIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="isocountrylang_pk"
				ShortName="PIdx"
				Suffix="IdIdx"
				Label="CountryLangIdx" >
			<IndexCol Name="ISOCountryId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="ISOLanguageId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="ISOCountryLanguageCountryIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="isocountrylang_xcountry"
				ShortName="Country"
				Suffix="CountryIdx"
				Label="CountryIdx" >
			<IndexCol Name="ISOCountryId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ISOCountryLanguageLanguageIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="isocountrylang_xlang"
				ShortName="Language"
				Suffix="LanguageIdx"
				Label="LanguageIdx" >
			<IndexCol Name="ISOLanguageId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="ISOCurrency"
			TableClassCode="ISCY"
			DbName="iso_ccy"
			Label="ISO Currency"
			Description="ISO Currency is a global static lookup, replicated to all nodes"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LookupIndex="ISOCurrencyCodeIdx"
			LoaderBehaviour="Update"
			SecScope="System" >
		<TableCol Name="ISOCurrencyId"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="ISOCurrencyIdGen" />
		<TableCol Name="ISOCode"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="iso_code"
				DataType="ISOCurrencyCode" />
		<StringCol Name="Name"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="ccy_name"
				MaxLen="64"
				ShowLines="1"
				InitValue="" />
		<StringCol Name="UnitSymbol"
				IsNullable="true"
				DefaultVisibility="true"
				DbName="unit_symbol"
				MaxLen="4"
				ShowLines="1" />
		<Int16Col Name="Precis"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="precis"
				MinValue="0"
				MaxValue="5"
				InitValue="0" />
		<PrimaryIndex Name="ISOCurrencyIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="isocurrency_pk"
				ShortName="PIdx"
				Suffix="IdIdx"
				Label="Currency Id Index" >
			<IndexCol Name="ISOCurrencyId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="ISOCurrencyCodeIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="isocurrency_xcode"
				ShortName="CcyCd"
				Suffix="CcyCdIdx"
				Label="Currency Code Index" >
			<IndexCol Name="ISOCode" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ISOCurrencyNameIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="isocurrency_xuname"
				ShortName="NameIdx"
				Suffix="CcyNmIdx"
				Label="Currency Name Index" >
			<IndexCol Name="Name" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="ISOLanguage"
			TableClassCode="ISLN"
			DbName="iso_lang"
			Label="ISO Language"
			Description="ISO Language is a global static lookup, replicated to all nodes"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LookupIndex="ISOLanguage6392Idx"
			LoaderBehaviour="Update"
			SecScope="System" >
		<TableCol Name="ISOLanguageId"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="ISOLanguageIdGen" />
		<TableCol Name="ISO6392Code"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="iso_code3"
				DataType="ISO6392LanguageCode" />
		<TableCol Name="ISO6391Code"
				IsNullable="true"
				DefaultVisibility="true"
				DbName="iso_code2"
				DataType="ISO6391LanguageCode" />
		<StringCol Name="EnglishName"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="eng_name"
				MaxLen="64"
				ShowLines="1"
				InitValue="" />
		<PrimaryIndex Name="ISOLanguageIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="isolang_pk"
				ShortName="PIdx"
				Suffix="IdIdx"
				Label="LanguageIdIdx" >
			<IndexCol Name="ISOLanguageId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="ISOLanguage6392Idx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="isolang_x6392"
				ShortName="Code3"
				Suffix="Code3Idx"
				Label="ISO 639-2 Index" >
			<IndexCol Name="ISO6392Code" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ISOLanguage6391Idx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="isolang_x6391"
				ShortName="Code2"
				Suffix="Code2Idx"
				Label="ISO 639-1 Index" >
			<IndexCol Name="ISO6391Code" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="ISOTimezone"
			TableClassCode="ITZN"
			DbName="ISOTz"
			ShortName="ISOTz"
			Label="ISO Timezone"
			Description="ISO Timezone is a global static lookup, replicated to all nodes"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LookupIndex="ISOTimezoneUTZNameIdx"
			LoaderBehaviour="Update"
			SecScope="System" >
		<TableCol Name="ISOTimezoneId"
				Label="ISO Timezone Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="ISOTimezoneIdGen" />
		<StringCol Name="Iso8601"
				Label="ISO8601"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="6"
				ShowLines="1"
				InitValue="" />
		<StringCol Name="TZName"
				Label="Timezone Name"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="64"
				ShowLines="1"
				InitValue="" />
		<Int16Col Name="TZHourOffset"
				Label="Timezone Hour Offset"
				IsNullable="false"
				DefaultVisibility="true"
				MinValue="-12"
				MaxValue="12"
				InitValue="0" />
		<Int16Col Name="TZMinOffset"
				Label="Timezone Minute Offset"
				IsNullable="false"
				DefaultVisibility="true"
				MinValue="-59"
				MaxValue="59"
				InitValue="0" />
		<StringCol Name="Description"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="128"
				ShowLines="1"
				InitValue="" />
		<BoolCol Name="Visible"
				IsNullable="false"
				DefaultVisibility="true"
				InitValue="true" />
		<PrimaryIndex Name="ISOTimezoneIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="ITz_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="ISOTimezoneId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="ISOTimezoneOffsetIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="ITz_xoffset"
				ShortName="Offset"
				Suffix="OffsetIdx" >
			<IndexCol Name="TZHourOffset" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="TZMinOffset" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ISOTimezoneUTZNameIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="ITz_xuname"
				ShortName="TZName"
				Suffix="UTZNameIdx" >
			<IndexCol Name="TZName" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ISOTimezoneIso8601Idx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="ITz_xiso"
				ShortName="Iso8601"
				Suffix="Iso8601Idx" >
			<IndexCol Name="Iso8601" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="SecApp"
			TableClassCode="SAPP"
			DbName="SecApp"
			Label="Security Application"
			Description="Each application has a particular JEE mount point on each node providing service"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			PageData="true"
			LookupIndex="SecAppUJEEMountIdx"
			LoaderBehaviour="Update"
			SecScope="Cluster" >
		<TableCol Name="ClusterId"
				Label="Cluster Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="ClusterIdGen" />
		<TableCol Name="SecAppId"
				Label="Security Application Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="SecAppIdGen" />
		<StringCol Name="JEEMountName"
				Label="JEE Mount Name"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="192"
				ShowLines="1"
				InitValue="" />
		<PrimaryIndex Name="SecAppIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecApp_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecAppId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="SecAppClusterIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecApp_xcluster"
				ShortName="Clus"
				Suffix="ClusterIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecAppUJEEMountIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecApp_xujeemnt"
				ShortName="JEEMnt"
				Suffix="UJEEMountIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="JEEMountName" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="SecDevice"
			TableClassCode="SDEV"
			DbName="SecDev"
			Label="Security Device"
			Description="User device security configuration"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			PageData="true"
			LookupIndex="SecDeviceNameIdx"
			LoaderBehaviour="Insert"
			SecScope="System" >
		<TableCol Name="SecUserId"
				Label="Security User Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="SecUserIdGen" />
		<TableCol Name="DevName"
				Label="Device Name"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="DeviceName" />
		<TextCol Name="PubKey"
				Label="Device Public Key"
				IsNullable="true"
				DefaultVisibility="true"
				MaxLen="10000"
				ShowLines="10" />
		<PrimaryIndex Name="SecDeviceIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecDev_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="SecUserId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="DevName" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="SecDeviceNameIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecDev_nameidx"
				ShortName="NameIdx"
				Suffix="NameIdx" >
			<IndexCol Name="SecUserId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="DevName" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecDeviceUserIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecDev_usridx"
				ShortName="UserIdx"
				Suffix="UserIdx" >
			<IndexCol Name="SecUserId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="SecForm"
			TableClassCode="SFRM"
			DbName="SecForm"
			Label="Security Form"
			Description="Each form has a JEE servlet mapping name under the application mount point"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			PageData="true"
			LookupIndex="SecFormUJEEServletIdx"
			LoaderBehaviour="Update"
			SecScope="Cluster" >
		<TableCol Name="ClusterId"
				Label="Cluster Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="ClusterIdGen" />
		<TableCol Name="SecFormId"
				Label="Security Form Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="SecFormIdGen" />
		<TableCol Name="SecAppId"
				Label="Security Application Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="SecAppIdGen" />
		<StringCol Name="JEEServletMapName"
				Label="JEE Servlet Map Name"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="192"
				ShowLines="1"
				InitValue="" />
		<PrimaryIndex Name="SecFormIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecForm_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecFormId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="SecFormClusterIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecForm_xcluster"
				ShortName="Clus"
				Suffix="ClusterIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecFormSecAppIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecForm_xsecapp"
				ShortName="SecApp"
				Suffix="SecAppIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecAppId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecFormUJEEServletIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecForm_xujeesvlt"
				ShortName="JEEServlet"
				Suffix="UJEEServletIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecAppId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="JEEServletMapName" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="SecGroup"
			TableClassCode="SGRP"
			DbName="SecGrp"
			ShortName="Group"
			Label="Security Group"
			Description="Security groups in a cluster configuration gather user members, sub-groups, and form access grants"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LookupIndex="SecGroupUNameIdx"
			LoaderBehaviour="Insert"
			SecScope="Cluster" >
		<TableCol Name="ClusterId"
				Label="Cluster Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="ClusterIdGen" />
		<TableCol Name="SecGroupId"
				Label="Security Group Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="SecGroupIdGen" />
		<StringCol Name="Name"
				Label="Name"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="safe_name"
				MaxLen="64"
				ShowLines="1"
				InitValue="" />
		<BoolCol Name="IsVisible"
				IsNullable="false"
				DefaultVisibility="true"
				InitValue="false" />
		<PrimaryIndex Name="SecGroupIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecGroup_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecGroupId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="SecGroupClusterIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecGroup_xcluster"
				ShortName="Clus"
				Suffix="ClusterIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecGroupClusterVisIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecGroup_xclustervis"
				ShortName="ClusVis"
				Suffix="ClusterVisIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="IsVisible" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecGroupUNameIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecGroup_xuname"
				ShortName="UName"
				Suffix="UNameIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="Name" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="SecGroupForm"
			TableClassCode="SGFM"
			DbName="SecGrpFrm"
			ShortName="GroupForm"
			Label="Security Group Form"
			Description="Security group form existence grants members of the group access to the specified form"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			PageData="true"
			AltIndex="SecGroupFormUFormIdx"
			LoaderBehaviour="Insert"
			SecScope="Cluster" >
		<TableCol Name="ClusterId"
				Label="Cluster Id"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="ClusId"
				DataType="ClusterIdGen" />
		<TableCol Name="SecGroupFormId"
				Label="Security Group Form Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DbName="SecGrpFrmId"
				DataType="SecGroupFormIdGen" />
		<TableCol Name="SecGroupId"
				Label="Security Group Id"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="SecGrpId"
				DataType="SecGroupIdGen" />
		<TableCol Name="SecAppId"
				Label="Security Application Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="SecAppIdGen" />
		<TableCol Name="SecFormId"
				Label="Security Form Id"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="SecFrmId"
				DataType="SecFormIdGen" />
		<PrimaryIndex Name="SecGroupFormIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecGroupForm_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecGroupFormId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="SecGroupFormClusterIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecGroupForm_xcluster"
				ShortName="Clus"
				Suffix="ClusterIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecGroupFormGroupIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecGroupForm_xgroup"
				ShortName="Group"
				Suffix="GroupIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecGroupId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecGroupFormAppIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecGroupForm_xapp"
				ShortName="App"
				Suffix="AppIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecAppId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecGroupFormFormIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecGroupForm_xform"
				ShortName="Form"
				Suffix="FormIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecFormId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecGroupFormUFormIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecGroupForm_xuform"
				ShortName="UForm"
				Suffix="UFormIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecGroupId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecFormId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="SecGroupInclude"
			TableClassCode="SGNC"
			DbName="SecInc"
			ShortName="GroupInclude"
			Label="Security Group Include"
			Description="Security groups can include other groups"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			PageData="true"
			AltIndex="SecGroupIncludeUIncludeIdx"
			LoaderBehaviour="Insert"
			SecScope="Cluster" >
		<TableCol Name="ClusterId"
				Label="Cluster Id"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="ClusId"
				DataType="ClusterIdGen" />
		<TableCol Name="SecGroupIncludeId"
				Label="Security Group Include Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DbName="SecGrpIncId"
				DataType="SecGroupIncludeIdGen" />
		<TableCol Name="SecGroupId"
				Label="Security Group Id"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="SecGrpId"
				DataType="SecGroupIdGen" />
		<TableCol Name="IncludeGroupId"
				Label="Include Security Group Id"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="IncGrpId"
				DataType="SecGroupIdGen" />
		<PrimaryIndex Name="SecGroupIncludeIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecInclude_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecGroupIncludeId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="SecGroupIncludeClusterIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecInclude_xcluster"
				ShortName="Clus"
				Suffix="ClusterIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecGroupIncludeGroupIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecInclude_xgroup"
				ShortName="Group"
				Suffix="GroupIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecGroupId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecGroupIncludeIncludeIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecInclude_xinc"
				ShortName="Include"
				Suffix="IncludeIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="IncludeGroupId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecGroupIncludeUIncludeIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecInclude_xuinc"
				ShortName="UInclude"
				Suffix="UIncludeIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecGroupId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="IncludeGroupId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="SecGroupMember"
			TableClassCode="SGMB"
			DbName="SecMemb"
			ShortName="GroupMember"
			Label="Security Group Member"
			Description="Security group members tie the SecUser to specific groups"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			PageData="true"
			AltIndex="SecGroupMemberUUserIdx"
			LoaderBehaviour="Insert"
			SecScope="Cluster" >
		<TableCol Name="ClusterId"
				Label="Cluster Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="ClusterIdGen" />
		<TableCol Name="SecGroupMemberId"
				Label="Security Group Member Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="SecGroupMemberIdGen" />
		<TableCol Name="SecGroupId"
				Label="Security Group Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="SecGroupIdGen" />
		<TableCol Name="SecUserId"
				Label="Security User Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="SecUserIdGen" />
		<PrimaryIndex Name="SecGroupMemberIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecMember_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecGroupMemberId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="SecGroupMemberClusterIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecMember_xcluster"
				ShortName="Clus"
				Suffix="ClusterIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecGroupMemberGroupIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecMember_xgroup"
				ShortName="Group"
				Suffix="GroupIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecGroupId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecGroupMemberUserIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecMember_xuser"
				ShortName="User"
				Suffix="UserIdx" >
			<IndexCol Name="SecUserId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecGroupMemberUUserIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecMember_xuuser"
				ShortName="UUser"
				Suffix="UUserIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecGroupId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecUserId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="SecSession"
			TableClassCode="SESS"
			DbName="SecSess"
			ShortName="Sess"
			Label="Security Session"
			Description="Security sessions are valid throughout the cluster"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="false"
			HasAuditColumns="false"
			PageData="true"
			LoaderBehaviour="Insert"
			SecScope="System" >
		<TableCol Name="SecSessionId"
				Label="Security Session Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="SecSessionIdGen" />
		<TableCol Name="SecUserId"
				Label="Security User Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="SecUserIdGen" />
		<TableCol Name="SecDevName"
				Label="Sesion Device Name"
				IsNullable="true"
				DefaultVisibility="true"
				DbName="SecDevName"
				DataType="DeviceName" />
		<TimestampCol Name="Start"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="start_ts"
				InitValue="0001-01-01T00:00:00" />
		<TimestampCol Name="Finish"
				IsNullable="true"
				DefaultVisibility="true"
				DbName="finish_ts" />
		<TableCol Name="SecProxyId"
				Label="Security Proxy User Id"
				IsNullable="true"
				DefaultVisibility="true"
				DataType="SecUserIdGen" />
		<PrimaryIndex Name="SecSessionIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="Session_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="SecSessionId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="SessionSecUserIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Session_xsecuser"
				ShortName="SecUsr"
				Suffix="SecUserIdx" >
			<IndexCol Name="SecUserId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SessionSecDevIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Session_xsecdev"
				ShortName="SecDev"
				Suffix="SecDevIdx" >
			<IndexCol Name="SecUserId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecDevName" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SessionStartIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="Session_xstart"
				ShortName="Start"
				Suffix="StartIdx" >
			<IndexCol Name="SecUserId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="Start" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SessionFinishIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Session_xfnsh"
				ShortName="Finish"
				Suffix="FinishIdx" >
			<IndexCol Name="SecUserId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="Finish" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SessionSecProxyIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Session_xproxy"
				ShortName="SecProxy"
				Suffix="SecProxyIdx" >
			<IndexCol Name="SecProxyId" IsAscending="true" DefaultVisibility="true" />
		</Index>

		<JavaTableObjInterface>
	I$SecuritySchemaName$SecSessionObj getSystemSession();
</JavaTableObjInterface>

		<JavaTableObjImplementation>
	public I$SecuritySchemaName$SecSessionObj getSystemSession() {
		boolean transactionStarted = schema.beginTransaction();
		I$SecuritySchemaName$SecUserObj userObj;
		I$SecuritySchemaName$SecSessionObj sessionObj;
		try {
			userObj = schema.getSecUserTableObj().getSystemUser();
			sessionObj = readSecSessionByStartIdx( userObj.getRequiredSecUserId(),
				Calendar.getInstance() );
			if( sessionObj == null ) {
				sessionObj = newInstance();
				I$SecuritySchemaName$SecSessionEditObj sessionEdit = sessionObj.beginEdit();
				sessionEdit.setRequiredContainerSecUser( userObj );
				sessionEdit.setRequiredStart( Calendar.getInstance() );
				sessionEdit.setOptionalFinish( null );
				sessionObj = sessionEdit.create();
				sessionEdit.endEdit();
			}
			if( transactionStarted ) {
				schema.commit();
			}
		}
		catch( RuntimeException e ) {
			if( transactionStarted ) {
				try {
					schema.rollback();
				}
				catch( Exception e2 ) {
				}
			}
			throw e;
		}
		return( sessionObj );
	}
</JavaTableObjImplementation>

		<HPlusTableObjInterface>
	virtual I$SecuritySchemaName$SecSessionObj* getSystemSession() = 0;
</HPlusTableObjInterface>

		<CPlusTableObjInterface>
	virtual I$SecuritySchemaName$SecSessionObj* getSystemSession();
</CPlusTableObjInterface>

		<CPlusTableObjImplementation>
	I$SecuritySchemaName$SecSessionObj* $SchemaName$$TableName$TableObj::getSystemSession() {
		bool transactionStarted = schema-&gt;beginTransaction();
		I$SecuritySchemaName$SecUserObj* userObj;
		I$SecuritySchemaName$SecSessionObj* sessionObj;
		try {
			std::chrono::system_clock::time_point* ts = cflib::CFLib::getUTCTimestamp();
			userObj = schema-&gt;getSecUserTableObj()-&gt;getSystemUser();
			sessionObj = readSecSessionByStartIdx( userObj-&gt;getRequiredSecUserId(),
				*ts,
				true );
			if( sessionObj == NULL ) {
				sessionObj = newInstance();
				I$SecuritySchemaName$SecSessionEditObj* sessionEdit = sessionObj-&gt;beginEdit();
				sessionEdit-&gt;setRequiredContainerSecUser( userObj );
				sessionEdit-&gt;setRequiredStart( *ts );
				sessionEdit-&gt;setOptionalFinishNull();
				sessionObj = sessionEdit-&gt;create();
				sessionEdit-&gt;endEdit();
			}
			if( transactionStarted ) {
				schema-&gt;commit();
			}
			delete ts;
			ts = NULL;
		}
		catch( std::exception&amp; e ) {
			if( transactionStarted ) {
				try {
					schema-&gt;rollback();
				}
				catch( ... ) {
				}
			}
			throw e;
		}
		return( sessionObj );
	}
</CPlusTableObjImplementation>
	</Table>

	<Table Name="SecUser"
			TableClassCode="SUSR"
			DbName="SecUser"
			Label="Security User"
			Description="Login and security information is global amongst the clusters"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			PageData="true"
			LookupIndex="SecUserLoginIdx"
			LoaderBehaviour="Insert"
			SecScope="System" >
		<TableCol Name="SecUserId"
				Label="Security User Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="SecUserIdGen" />
		<StringCol Name="LoginId"
				Label="Login Id"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="login_id"
				MaxLen="32"
				ShowLines="1"
				InitValue="" />
		<StringCol Name="EMailAddress"
				Label="EMail Address"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="email_addr"
				MaxLen="192"
				ShowLines="1"
				InitValue="" />
		<UuidCol Name="EMailConfirmationUuid"
				Label="EMail Confirmation UUID"
				IsNullable="true"
				DefaultVisibility="true"
				DbName="em_confuuid" />
		<TableCol Name="DefaultDevSecUserId"
				Label="Default Device Security User Id"
				IsNullable="true"
				DefaultVisibility="true"
				DbName="DefDevUserId"
				DataType="SecUserIdGen" />
		<TableCol Name="DefaultDevName"
				Label="Default Device Name"
				IsNullable="true"
				DefaultVisibility="true"
				DbName="DefDevName"
				DataType="DeviceName" />
		<TableCol Name="PasswordHash"
				Label="Password Hash"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="pwd_hash"
				DataType="SHA512HexHash" />
		<UuidCol Name="PasswordResetUuid"
				Label="Password Reset UUID"
				IsNullable="true"
				DefaultVisibility="true"
				DbName="pwdrstuuid" />
		<PrimaryIndex Name="SecUserIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecUser_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="SecUserId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="SecUserLoginIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="SecUser_xulogin"
				ShortName="ULogin"
				Suffix="ULoginIdx" >
			<IndexCol Name="LoginId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecUserUEMailConfirmationIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecUser_xemconf"
				ShortName="EMailConf"
				Suffix="EMConfIdx" >
			<IndexCol Name="EMailConfirmationUuid" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecUserPasswordResetIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecUser_xpwdrst"
				ShortName="PwdReset"
				Suffix="PwdResetIdx" >
			<IndexCol Name="PasswordResetUuid" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="SecUserDefDevIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="SecUser_defdevidx"
				ShortName="DefDevIdx"
				Suffix="DefDevIdx" >
			<IndexCol Name="DefaultDevSecUserId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="DefaultDevName" IsAscending="true" DefaultVisibility="true" />
		</Index>

		<JavaTableObjInterface>
	I$SecuritySchemaName$SecUserObj getSystemUser();
</JavaTableObjInterface>

		<JavaTableObjImplementation>
	public I$SecuritySchemaName$SecUserObj getSystemUser() {
		boolean transactionStarted = schema.beginTransaction();
		I$SecuritySchemaName$SecUserObj secUserObj;
		try {
			secUserObj = schema.getSecUserTableObj().readSecUserByULoginIdx( &quot;system&quot; );
			if( secUserObj == null ) {
				secUserObj = newInstance();
				I$SecuritySchemaName$SecUserEditObj secUserEdit = secUserObj.beginEdit();
				secUserEdit.setRequiredEMailAddress( &quot;system&quot; );
				secUserObj = secUserEdit.create();
				secUserEdit.endEdit();
			}
			if( transactionStarted ) {
				schema.commit();
			}
		}
		catch( RuntimeException e ) {
			if( transactionStarted ) {
				try {
					schema.rollback();
				}
				catch( Exception e2 ) {
				}
			}
			throw e;
		}
		return( secUserObj );
	}
</JavaTableObjImplementation>

		<HPlusTableObjInterface>
	virtual I$SecuritySchemaName$SecUserObj* getSystemUser() = 0;
</HPlusTableObjInterface>

		<CPlusTableObjInterface>
	virtual I$SecuritySchemaName$SecUserObj* getSystemUser();
</CPlusTableObjInterface>

		<CPlusTableObjImplementation>
	I$SecuritySchemaName$SecUserObj* $SchemaName$$TableName$TableObj::getSystemUser() {
		static const std::string S_System( "system" );
		bool transactionStarted = schema-&gt;beginTransaction();
		I$SecuritySchemaName$SecUserObj* secUserObj;
		try {
			secUserObj = schema-&gt;getSecUserTableObj()-&gt;readSecUserByULoginIdx( S_System, true );
			if( secUserObj == NULL ) {
				secUserObj = newInstance();
				I$SecuritySchemaName$SecUserEditObj* secUserEdit = secUserObj-&gt;beginEdit();
				secUserEdit-&gt;setRequiredEMailAddress( S_System );
				secUserObj = secUserEdit-&gt;create();
				secUserEdit-&gt;endEdit();
			}
			if( transactionStarted ) {
				schema-&gt;commit();
			}
		}
		catch( std::exception&amp; e ) {
			if( transactionStarted ) {
				try {
					schema-&gt;rollback();
				}
				catch( ... ) {
				}
			}
			throw e;
		}
		return( secUserObj );
	}
</CPlusTableObjImplementation>
	</Table>

	<Table Name="Service"
			TableClassCode="HSVC"
			DbName="HostSvc"
			Label="Service"
			Description="A Service runs on a Host Node"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			PageData="true"
			AltIndex="ServiceUTypeIdx"
			LoaderBehaviour="Update"
			SecScope="Cluster" >
		<TableCol Name="ClusterId"
				Label="Cluster Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="ClusterIdGen" />
		<TableCol Name="ServiceId"
				Label="Service Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="ServiceIdGen" />
		<TableCol Name="HostNodeId"
				Label="Host Node Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="HostNodeIdGen" />
		<TableCol Name="ServiceTypeId"
				Label="Service Type Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="ServiceTypeIdGen" />
		<Int16Col Name="HostPort"
				Label="Host Port"
				IsNullable="false"
				DefaultVisibility="true"
				MinValue="0"
				InitValue="0" />
		<PrimaryIndex Name="ServiceIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="Service_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="ServiceId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="ServiceClusterIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Service_xcluster"
				ShortName="Clus"
				Suffix="ClusterIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ServiceHostNodeIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Service_xhost"
				ShortName="XHost"
				Suffix="HostIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="HostNodeId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ServiceTypeIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="Service_xtype"
				ShortName="XType"
				Suffix="TypeIdx" >
			<IndexCol Name="ServiceTypeId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ServiceUTypeIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="Service_xutype"
				ShortName="UType"
				Suffix="UTypeIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="HostNodeId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="ServiceTypeId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="ServiceUHostPort"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="Service_xuhpt"
				ShortName="UPort"
				Suffix="UHostPortIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="HostNodeId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="HostPort" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="ServiceType"
			TableClassCode="SVCT"
			DbName="SvcType"
			ShortName="SvcType"
			Label="Service Type"
			Description="Service Type is a global lookup"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LookupIndex="ServiceTypeUDescrIdx"
			LoaderBehaviour="Insert"
			SecScope="System" >
		<TableCol Name="ServiceTypeId"
				Label="Service Type Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="ServiceTypeIdGen" />
		<StringCol Name="Description"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="50"
				ShowLines="1"
				InitValue="" />
		<PrimaryIndex Name="ServiceTypeIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="ServiceType_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="ServiceTypeId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="ServiceTypeUDescrIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="ServiceType_xudsc"
				ShortName="UDescr"
				Suffix="UDescrIdx" >
			<IndexCol Name="Description" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="SysCluster"
			TableClassCode="SYSC"
			DbName="sysclus"
			ShortName="SysClus"
			Label="Cluster"
			Description="A Cluster is an MSS Code Factory installation"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="false"
			HasAuditColumns="false"
			LoaderBehaviour="Insert"
			SecScope="System" >
		<Int32Col Name="SingletonId"
				Label="Singleton"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="sgltn_id"
				MinValue="1"
				MaxValue="1"
				InitValue="1" />
		<TableCol Name="ClusterId"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="sys_clus_id"
				DataType="ClusterIdGen" />
		<PrimaryIndex Name="SysClusterIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="syscluster_pk"
				ShortName="PIdx"
				Suffix="IdIdx"
				Label="IdIdx" >
			<IndexCol Name="SingletonId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="SysClusterClusterIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="sysclus_xclus"
				ShortName="ClusIdx"
				Suffix="ClusterIdx"
				Label="Cluster Index" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="Tenant"
			TableClassCode="TENT"
			DbName="tenant"
			ShortName="Tenant"
			Label="Tenant"
			Description="A Cluster can have any number of Tenants"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			PageData="true"
			LookupIndex="TenantUNameIdx"
			LoaderBehaviour="Insert"
			SecScope="System" >
		<TableCol Name="ClusterId"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="ClusterIdGen" />
		<TableCol Name="Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="TenantIdGen" />
		<StringCol Name="TenantName"
				IsNullable="false"
				DefaultVisibility="true"
				MaxLen="192"
				ShowLines="1"
				InitValue="" />
		<PrimaryIndex Name="TenantIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="tenant_pk"
				ShortName="PIdx"
				Suffix="IdIdx"
				Label="IdIdx" >
			<IndexCol Name="Id" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="TenantClusterIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="tenant_xcluster"
				ShortName="Clus"
				Suffix="ClusterIdx"
				Label="ClusterIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="TenantUNameIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="tenant_xuname"
				ShortName="UName"
				Suffix="UNameIdx"
				Label="UNameIdx" >
			<IndexCol Name="ClusterId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="TenantName" IsAscending="true" DefaultVisibility="true" />
		</Index>

		<JavaTableObjInterface>
	I$SecuritySchemaName$TenantObj getSystemTenant();
</JavaTableObjInterface>

		<JavaTableObjImplementation>
	public I$SecuritySchemaName$TenantObj getSystemTenant() {
		boolean transactionStarted = schema.beginTransaction();
		I$SecuritySchemaName$TenantObj tenantObj;
		try {
			I$SecuritySchemaName$ClusterObj clusterObj = schema.getClusterTableObj().getSystemCluster();
			tenantObj = readTenantByUNameIdx( clusterObj.getRequiredId(), &quot;system&quot; );
			if( tenantObj == null ) {
				tenantObj = newInstance();
				I$SecuritySchemaName$TenantEditObj tenantEdit = tenantObj.beginEdit();
				tenantEdit.setRequiredContainerCluster( clusterObj );
				tenantEdit.setRequiredTenantName( &quot;system&quot; );
				tenantObj = tenantEdit.create();
				tenantEdit.endEdit();
			}
			if( transactionStarted ) {
				schema.commit();
			}
		}
		catch( RuntimeException e ) {
			if( transactionStarted ) {
				try {
					schema.rollback();
				}
				catch( Exception e2 ) {
				}
			}
			throw e;
		}
		return( tenantObj );
	}
</JavaTableObjImplementation>

		<HPlusTableObjInterface>
	virtual I$SecuritySchemaName$TenantObj* getSystemTenant() = 0;
</HPlusTableObjInterface>

		<CPlusTableObjInterface>
	virtual I$SecuritySchemaName$TenantObj* getSystemTenant();
</CPlusTableObjInterface>

		<CPlusTableObjImplementation>
	I$SecuritySchemaName$TenantObj* $SchemaName$$TableName$TableObj::getSystemTenant() {
		static const std::string S_System( "system" );
		bool transactionStarted = schema-&gt;beginTransaction();
		I$SecuritySchemaName$TenantObj* tenantObj;
		try {
			I$SecuritySchemaName$ClusterObj* clusterObj = schema-&gt;getClusterTableObj()-&gt;getSystemCluster();
			tenantObj = readTenantByUNameIdx( clusterObj-&gt;getRequiredId(), S_System, true );
			if( tenantObj == NULL ) {
				tenantObj = newInstance();
				I$SecuritySchemaName$TenantEditObj* tenantEdit = tenantObj-&gt;beginEdit();
				tenantEdit-&gt;setRequiredContainerCluster( clusterObj );
				tenantEdit-&gt;setRequiredTenantName( S_System );
				tenantObj = tenantEdit-&gt;create();
				tenantEdit-&gt;endEdit();
			}
			if( transactionStarted ) {
				schema-&gt;commit();
			}
		}
		catch( std::exception&amp; e ) {
			if( transactionStarted ) {
				try {
					schema-&gt;rollback();
				}
				catch( ... ) {
				}
			}
			throw e;
		}
		return( tenantObj );
	}
</CPlusTableObjImplementation>
	</Table>

	<Id32Gen Name="TSecGroupIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Tenant"
			Slice="117"
			BlockSize="1" />

	<Id64Gen Name="TSecGroupIncludeIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Tenant"
			Slice="119"
			BlockSize="1" />

	<Id64Gen Name="TSecGroupMemberIdGen"
			IsNullable="false"
			DefaultVisibility="true"
			MinValue="0"
			InitValue="0"
			NullValue="0"
			Dispenser="Tenant"
			Slice="118"
			BlockSize="1" />

	<Table Name="TSecGroup"
			TableClassCode="TGRP"
			DbName="TSecGrp"
			ShortName="TSecGroup"
			Label="Tenant Security Group"
			Description="Tenant Security groups in a tenant gather user members, sub-groups, and form access grants"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			LookupIndex="TSecGroupUNameIdx"
			LoaderBehaviour="Insert"
			SecScope="Tenant" >
		<TableCol Name="TenantId"
				Label="Tenant Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="TSecGroupId"
				Label="TSecurity Group Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="TSecGroupIdGen" />
		<StringCol Name="Name"
				Label="Name"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="safe_name"
				MaxLen="64"
				ShowLines="1"
				InitValue="" />
		<BoolCol Name="IsVisible"
				IsNullable="false"
				DefaultVisibility="true"
				InitValue="false" />
		<PrimaryIndex Name="TSecGroupIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="TSecGroup_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="TSecGroupId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="TSecGroupTenantIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="TSecGroup_xtenant"
				ShortName="Tenant"
				Suffix="TenantIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="TSecGroupTenantVisIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="TSecGroup_xtenantvis"
				ShortName="TenantVis"
				Suffix="TenantVisIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="IsVisible" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="TSecGroupUNameIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="TSecGroup_xuname"
				ShortName="UName"
				Suffix="UNameIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="Name" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="TSecGroupInclude"
			TableClassCode="TGNC"
			DbName="TSecInc"
			ShortName="TSecGrpIncl"
			Label="Tenant Security Group Include"
			Description="Tenant Security groups can include other groups"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			PageData="true"
			AltIndex="TSecGroupIncludeUIncludeIdx"
			LoaderBehaviour="Insert"
			SecScope="Tenant" >
		<TableCol Name="TenantId"
				Label="Tenant Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="TSecGroupIncludeId"
				Label="TSecurity Group Include Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DbName="TSecGrpIncId"
				DataType="TSecGroupIncludeIdGen" />
		<TableCol Name="TSecGroupId"
				Label="Tenant Security Group Id"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="TSecGrpId"
				DataType="TSecGroupIdGen" />
		<TableCol Name="IncludeGroupId"
				Label="Include Tenant Security Group Id"
				IsNullable="false"
				DefaultVisibility="true"
				DbName="IncGrpId"
				DataType="TSecGroupIdGen" />
		<PrimaryIndex Name="TSecGroupIncludeIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="TSecInclude_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="TSecGroupIncludeId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="TSecGroupIncludeTenantIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="TSecInclude_xtenant"
				ShortName="Tenant"
				Suffix="TenantIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="TSecGroupIncludeGroupIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="TSecInclude_xgroup"
				ShortName="Group"
				Suffix="GroupIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="TSecGroupId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="TSecGroupIncludeIncludeIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="TSecInclude_xinc"
				ShortName="Include"
				Suffix="IncludeIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="IncludeGroupId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="TSecGroupIncludeUIncludeIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="TSecInclude_xuinc"
				ShortName="UInclude"
				Suffix="UIncludeIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="TSecGroupId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="IncludeGroupId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<Table Name="TSecGroupMember"
			TableClassCode="TGMB"
			DbName="TSecMemb"
			ShortName="TSecGrpMemb"
			Label="Tenant Security Group Member"
			Description="Tenant Security group members tie the SecUser to specific groups"
			DefaultVisibility="true"
			IsInstantiable="true"
			HasHistory="true"
			HasAuditColumns="true"
			PageData="true"
			AltIndex="TSecGroupMemberUUserIdx"
			LoaderBehaviour="Insert"
			SecScope="Tenant" >
		<TableCol Name="TenantId"
				Label="Tenant Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TenantIdGen" />
		<TableCol Name="TSecGroupMemberId"
				Label="TSecurity Group Member Id"
				IsNullable="false"
				DefaultVisibility="true"
				GenerateId="true"
				DataType="TSecGroupMemberIdGen" />
		<TableCol Name="TSecGroupId"
				Label="TSecurity Group Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="TSecGroupIdGen" />
		<TableCol Name="SecUserId"
				Label="Security User Id"
				IsNullable="false"
				DefaultVisibility="true"
				DataType="SecUserIdGen" />
		<PrimaryIndex Name="TSecGroupMemberIdIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="TSecMember_pidx"
				ShortName="PIdx"
				Suffix="IdIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="TSecGroupMemberId" IsAscending="true" DefaultVisibility="true" />
		</PrimaryIndex>
		<Index Name="TSecGroupMemberTenantIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="TSecMember_xtenant"
				ShortName="Tenant"
				Suffix="TenantIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="TSecGroupMemberGroupIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="TSecMember_xgroup"
				ShortName="Group"
				Suffix="GroupIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="TSecGroupId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="TSecGroupMemberUserIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="false"
				DbName="TSecMember_xuser"
				ShortName="User"
				Suffix="UserIdx" >
			<IndexCol Name="SecUserId" IsAscending="true" DefaultVisibility="true" />
		</Index>
		<Index Name="TSecGroupMemberUUserIdx"
				DefaultVisibility="true"
				IsDbMapped="true"
				IsUnique="true"
				DbName="TSecMember_xuuser"
				ShortName="UUser"
				Suffix="UUserIdx" >
			<IndexCol Name="TenantId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="TSecGroupId" IsAscending="true" DefaultVisibility="true" />
			<IndexCol Name="SecUserId" IsAscending="true" DefaultVisibility="true" />
		</Index>
	</Table>

	<TableAddendum FromTable="Cluster">
		<Relation Name="ClusterHostNode"
				RelationType="Components"
				DbName="clus_hostnode"
				Label="Host Node"
				Suffix="HostNode"
				FromIndex="ClusterIdIdx"
				ToIndex="HostNode.HostNodeClusterIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="Id" ToCol="ClusterId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="ClusterTenant"
				RelationType="Components"
				DbName="clus_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="ClusterIdIdx"
				ToIndex="Tenant.TenantClusterIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="Id" ToCol="ClusterId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="ClusterSecApp"
				RelationType="Components"
				DbName="clus_secapp"
				Label="Security Application"
				Suffix="SecApp"
				FromIndex="ClusterIdIdx"
				ToIndex="SecApp.SecAppClusterIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="Id" ToCol="ClusterId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="ClusterSecGroup"
				RelationType="Components"
				DbName="clus_secgrp"
				Label="Security Group"
				Suffix="SecGroup"
				FromIndex="ClusterIdIdx"
				ToIndex="SecGroup.SecGroupClusterIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="Id" ToCol="ClusterId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="ClusterSysCluster"
				RelationType="Components"
				DbName="clus_sysclus"
				Label="System Cluster"
				Suffix="SysCluster"
				FromIndex="ClusterIdIdx"
				ToIndex="SysCluster.SysClusterClusterIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="Id" ToCol="ClusterId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="HostNode">
		<Relation Name="HostNodeCluster"
				RelationType="Container"
				DbName="hostnode_clus"
				Label="Cluster"
				Suffix="Cluster"
				FromIndex="HostNodeClusterIdx"
				ToIndex="Cluster.ClusterIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="HostNodeService"
				RelationType="Components"
				DbName="hostnode_svc"
				Label="Service"
				Suffix="Service"
				FromIndex="HostNodeIdIdx"
				ToIndex="Service.ServiceHostNodeIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="ClusterId" DefaultVisibility="true" />
			<RelationCol Name="HostNodeId" ToCol="HostNodeId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="ISOCountry">
		<Relation Name="ISOCountryCurrencies"
				RelationType="Components"
				DbName="isocntry_ccy"
				Label="Currency"
				Suffix="Currency"
				FromIndex="ISOCountryIdIdx"
				ToIndex="ISOCountryCurrency.ISOCountryCurrencyCountryIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="ISOCountryId" ToCol="ISOCountryId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="ISOCountryLanguages"
				RelationType="Components"
				DbName="isocntry_lang"
				Label="Language"
				Suffix="Language"
				FromIndex="ISOCountryIdIdx"
				ToIndex="ISOCountryLanguage.ISOCountryLanguageCountryIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="ISOCountryId" ToCol="ISOCountryId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="ISOCountryCurrency">
		<Relation Name="ISOCountryCurrencyCountry"
				RelationType="Container"
				DbName="isocntryccy_cntry"
				Label="Country"
				Suffix="Country"
				FromIndex="ISOCountryCurrencyCountryIdx"
				ToIndex="ISOCountry.ISOCountryIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ISOCountryId" ToCol="ISOCountryId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="ISOCountryCurrencyCurrency"
				RelationType="Parent"
				DbName="isocntryccy_ccy"
				Label="Currency"
				Suffix="Currency"
				FromIndex="ISOCountryCurrencyCurrencyIdx"
				ToIndex="ISOCurrency.ISOCurrencyIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ISOCurrencyId" ToCol="ISOCurrencyId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="ISOCountryLanguage">
		<Relation Name="ISOCountryLanguageCountry"
				RelationType="Container"
				DbName="isocntrylang_cntry"
				Label="Country"
				Suffix="Country"
				FromIndex="ISOCountryLanguageCountryIdx"
				ToIndex="ISOCountry.ISOCountryIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ISOCountryId" ToCol="ISOCountryId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="ISOCountryLanguageLanguage"
				RelationType="Parent"
				DbName="isocntrylang_lang"
				Label="Language"
				Suffix="Language"
				FromIndex="ISOCountryLanguageLanguageIdx"
				ToIndex="ISOLanguage.ISOLanguageIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ISOLanguageId" ToCol="ISOLanguageId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="ISOCurrency">
		<Relation Name="ISOCurrencyCountries"
				RelationType="Children"
				DbName="isoccy_cntrys"
				Label="Country"
				Suffix="Country"
				FromIndex="ISOCurrencyIdIdx"
				ToIndex="ISOCountryCurrency.ISOCountryCurrencyCurrencyIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="ISOCurrencyId" ToCol="ISOCurrencyId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="ISOLanguage">
		<Relation Name="ISOLanguageCountries"
				RelationType="Children"
				DbName="isolan_countrys"
				Label="Country"
				Suffix="Country"
				FromIndex="ISOLanguageIdIdx"
				ToIndex="ISOCountryLanguage.ISOCountryLanguageLanguageIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="ISOLanguageId" ToCol="ISOLanguageId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="SecApp">
		<Relation Name="SecAppCluster"
				RelationType="Container"
				DbName="secapp_clus"
				Label="Cluster"
				Suffix="Cluster"
				FromIndex="SecAppClusterIdx"
				ToIndex="Cluster.ClusterIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecAppForm"
				RelationType="Components"
				DbName="secapp_form"
				Label="Security Form"
				Suffix="Form"
				FromIndex="SecAppIdIdx"
				ToIndex="SecForm.SecFormSecAppIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="ClusterId" DefaultVisibility="true" />
			<RelationCol Name="SecAppId" ToCol="SecAppId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="SecDevice">
		<Relation Name="SecDeviceSecUser"
				RelationType="Container"
				DbName="secdev_secuser"
				Label="Security User"
				Suffix="SecUser"
				FromIndex="SecDeviceUserIdx"
				ToIndex="SecUser.SecUserIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="SecUserId" ToCol="SecUserId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="SecForm">
		<Relation Name="SecFormCluster"
				RelationType="Owner"
				DbName="secform_clus"
				Label="Cluster"
				Suffix="Cluster"
				FromIndex="SecFormClusterIdx"
				ToIndex="Cluster.ClusterIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecFormApplication"
				RelationType="Container"
				DbName="secform_app"
				Label="Application"
				Suffix="Application"
				FromIndex="SecFormSecAppIdx"
				ToIndex="SecApp.SecAppIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="ClusterId" DefaultVisibility="true" />
			<RelationCol Name="SecAppId" ToCol="SecAppId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="SecGroup">
		<Relation Name="SecGroupCluster"
				RelationType="Container"
				DbName="secgrp_clus"
				Label="Cluster"
				Suffix="Cluster"
				FromIndex="SecGroupClusterIdx"
				ToIndex="Cluster.ClusterIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecGroupInclude"
				RelationType="Components"
				DbName="secgrp_inc"
				Label="Sub Group"
				Suffix="Include"
				FromIndex="SecGroupIdIdx"
				ToIndex="SecGroupInclude.SecGroupIncludeGroupIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="ClusterId" DefaultVisibility="true" />
			<RelationCol Name="SecGroupId" ToCol="SecGroupId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecGroupMember"
				RelationType="Components"
				DbName="secgrp_memb"
				Label="Group Member"
				Suffix="Member"
				FromIndex="SecGroupIdIdx"
				ToIndex="SecGroupMember.SecGroupMemberGroupIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="ClusterId" DefaultVisibility="true" />
			<RelationCol Name="SecGroupId" ToCol="SecGroupId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecGroupIncludedByGroup"
				RelationType="Children"
				DbName="secgrp_incbygrp"
				Label="Included By Group"
				Suffix="IncByGroup"
				FromIndex="SecGroupIdIdx"
				ToIndex="SecGroupInclude.SecGroupIncludeIncludeIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="ClusterId" DefaultVisibility="true" />
			<RelationCol Name="SecGroupId" ToCol="IncludeGroupId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecGroupForm"
				RelationType="Components"
				DbName="secgrp_form"
				Label="Group Form Permission"
				Suffix="Form"
				FromIndex="SecGroupIdIdx"
				ToIndex="SecGroupForm.SecGroupFormGroupIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="ClusterId" DefaultVisibility="true" />
			<RelationCol Name="SecGroupId" ToCol="SecGroupId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="SecGroupForm">
		<Relation Name="SecGroupFormCluster"
				RelationType="Owner"
				DbName="secgrpfrm_clus"
				Label="Cluster"
				Suffix="Cluster"
				FromIndex="SecGroupFormClusterIdx"
				ToIndex="Cluster.ClusterIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecGroupFormGroup"
				RelationType="Container"
				DbName="secgrpfrm_grp"
				Label="Group"
				Suffix="Group"
				FromIndex="SecGroupFormGroupIdx"
				ToIndex="SecGroup.SecGroupIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="ClusterId" DefaultVisibility="true" />
			<RelationCol Name="SecGroupId" ToCol="SecGroupId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecGroupFormApp"
				RelationType="Parent"
				DbName="secgrpfrm_app"
				Label="App"
				Suffix="App"
				FromIndex="SecGroupFormAppIdx"
				ToIndex="SecApp.SecAppIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="ClusterId" DefaultVisibility="true" />
			<RelationCol Name="SecAppId" ToCol="SecAppId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecGroupFormForm"
				RelationType="Parent"
				DbName="secgrpfrm_frm"
				Label="Form"
				Suffix="Form"
				FromIndex="SecGroupFormFormIdx"
				ToIndex="SecForm.SecFormIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="ClusterId" DefaultVisibility="true" />
			<RelationCol Name="SecFormId" ToCol="SecFormId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="SecGroupInclude">
		<Relation Name="SecGroupIncludeCluster"
				RelationType="Owner"
				DbName="secgrpinc_clus"
				Label="Cluster"
				Suffix="Cluster"
				FromIndex="SecGroupIncludeClusterIdx"
				ToIndex="Cluster.ClusterIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecGroupIncludeGroup"
				RelationType="Container"
				DbName="secgrpinc_grp"
				Label="Group"
				Suffix="Group"
				FromIndex="SecGroupIncludeGroupIdx"
				ToIndex="SecGroup.SecGroupIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="ClusterId" DefaultVisibility="true" />
			<RelationCol Name="SecGroupId" ToCol="SecGroupId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecGroupIncludeSubGroup"
				RelationType="Parent"
				DbName="secgrpinc_subgrp"
				Label="SubGroup"
				Suffix="SubGroup"
				FromIndex="SecGroupIncludeIncludeIdx"
				ToIndex="SecGroup.SecGroupIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="ClusterId" DefaultVisibility="true" />
			<RelationCol Name="IncludeGroupId" ToCol="SecGroupId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="SecGroupMember">
		<Relation Name="SecGroupMemberCluster"
				RelationType="Owner"
				DbName="secgrpmem_clus"
				Label="Cluster"
				Suffix="Cluster"
				FromIndex="SecGroupMemberClusterIdx"
				ToIndex="Cluster.ClusterIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecGroupMemberGroup"
				RelationType="Container"
				DbName="secgrpmem_grp"
				Label="Group"
				Suffix="Group"
				FromIndex="SecGroupMemberGroupIdx"
				ToIndex="SecGroup.SecGroupIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="ClusterId" DefaultVisibility="true" />
			<RelationCol Name="SecGroupId" ToCol="SecGroupId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecGroupMemberUser"
				RelationType="Parent"
				DbName="secgrpmem_user"
				Label="User"
				Suffix="User"
				FromIndex="SecGroupMemberUserIdx"
				ToIndex="SecUser.SecUserIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="SecUserId" ToCol="SecUserId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="SecSession">
		<Relation Name="SecSessionUser"
				RelationType="Container"
				DbName="secsess_user"
				Label="Security User"
				Suffix="SecUser"
				FromIndex="SessionSecUserIdx"
				ToIndex="SecUser.SecUserIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="SecUserId" ToCol="SecUserId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecSessionProxy"
				RelationType="Parent"
				DbName="secsess_proxy"
				Label="Security Proxy User"
				Suffix="SecProxy"
				FromIndex="SessionSecProxyIdx"
				ToIndex="SecUser.SecUserIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="SecProxyId" ToCol="SecUserId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="SecUser">
		<Relation Name="SecUserSecDev"
				RelationType="Components"
				DbName="secuser_secdev"
				Label="Security Device"
				Suffix="SecDev"
				FromIndex="SecUserIdIdx"
				ToIndex="SecDevice.SecDeviceUserIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="SecUserId" ToCol="SecUserId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecUserDefDev"
				RelationType="Lookup"
				DbName="secuser_defdev"
				Label="Default Security Device"
				Suffix="DefDev"
				FromIndex="SecUserDefDevIdx"
				ToIndex="SecDevice.SecDeviceIdIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="DefaultDevSecUserId" ToCol="SecUserId" DefaultVisibility="true" />
			<RelationCol Name="DefaultDevName" ToCol="DevName" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecUserSecSession"
				RelationType="Components"
				DbName="secuser_secsess"
				Label="Security Session"
				Suffix="SecSess"
				FromIndex="SecUserIdIdx"
				ToIndex="SecSession.SessionSecUserIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="SecUserId" ToCol="SecUserId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecUserSecProxySession"
				RelationType="Children"
				DbName="secuser_secproxysess"
				Label="Security Proxy Session"
				Suffix="SecProxy"
				FromIndex="SecUserIdIdx"
				ToIndex="SecSession.SessionSecProxyIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="SecUserId" ToCol="SecProxyId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecUserSecGroupMember"
				RelationType="Children"
				DbName="secuser_secgrpmemb"
				Label="Security Group Members"
				Suffix="SecGroupMember"
				FromIndex="SecUserIdIdx"
				ToIndex="SecGroupMember.SecGroupMemberUserIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="SecUserId" ToCol="SecUserId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="SecUserTSecGroupMember"
				RelationType="Children"
				DbName="secuser_tsecgrpmemb"
				Label="Tenant Security Group Members"
				Suffix="TSecGroupMember"
				FromIndex="SecUserIdIdx"
				ToIndex="TSecGroupMember.TSecGroupMemberUserIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="SecUserId" ToCol="SecUserId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="Service">
		<Relation Name="ServiceCluster"
				RelationType="Owner"
				DbName="svc_cluster"
				Label="Cluster"
				Suffix="Cluster"
				FromIndex="ServiceClusterIdx"
				ToIndex="Cluster.ClusterIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="ServiceHost"
				RelationType="Container"
				DbName="svs_svchost"
				Label="Host"
				Suffix="Host"
				FromIndex="ServiceHostNodeIdx"
				ToIndex="HostNode.HostNodeIdIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="ClusterId" DefaultVisibility="true" />
			<RelationCol Name="HostNodeId" ToCol="HostNodeId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="ServiceSvcType"
				RelationType="Parent"
				DbName="svc_svctyp"
				Label="Service Type"
				Suffix="ServiceType"
				FromIndex="ServiceTypeIdx"
				ToIndex="ServiceType.ServiceTypeIdIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="ServiceTypeId" ToCol="ServiceTypeId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="ServiceType">
		<Relation Name="ServiceTypeDeployed"
				RelationType="Children"
				DbName="svctyp_deployed"
				Label="Deployed"
				Suffix="Deployed"
				FromIndex="ServiceTypeIdIdx"
				ToIndex="Service.ServiceTypeIdx"
				IsRequired="false"
				DefaultVisibility="true" >
			<RelationCol Name="ServiceTypeId" ToCol="ServiceTypeId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="SysCluster">
		<Relation Name="SysClusterCluster"
				RelationType="Container"
				DbName="sysclus_clus"
				Label="Cluster"
				Suffix="Cluster"
				FromIndex="SysClusterClusterIdx"
				ToIndex="Cluster.ClusterIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="TSecGroup">
		<Relation Name="TSecGroupTenant"
				RelationType="Container"
				DbName="tsecgrp_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="TSecGroupTenantIdx"
				ToIndex="Tenant.TenantIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="TSecGroupInclude"
				RelationType="Components"
				DbName="tsecgrp_inc"
				Label="Sub Group"
				Suffix="Include"
				FromIndex="TSecGroupIdIdx"
				ToIndex="TSecGroupInclude.TSecGroupIncludeGroupIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="TSecGroupId" ToCol="TSecGroupId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="TSecGroupMember"
				RelationType="Components"
				DbName="tsecgrp_memb"
				Label="Group Member"
				Suffix="Member"
				FromIndex="TSecGroupIdIdx"
				ToIndex="TSecGroupMember.TSecGroupMemberGroupIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="TSecGroupId" ToCol="TSecGroupId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="TSecGroupIncludedByGroup"
				RelationType="Children"
				DbName="tsecgrp_incbygrp"
				Label="Included By Group"
				Suffix="IncByGroup"
				FromIndex="TSecGroupIdIdx"
				ToIndex="TSecGroupInclude.TSecGroupIncludeIncludeIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="TSecGroupId" ToCol="IncludeGroupId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="TSecGroupInclude">
		<Relation Name="TSecGroupIncludeTenant"
				RelationType="Owner"
				DbName="tsecgrpinc_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="TSecGroupIncludeTenantIdx"
				ToIndex="Tenant.TenantIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="TSecGroupIncludeGroup"
				RelationType="Container"
				DbName="tsecgrpinc_grp"
				Label="Group"
				Suffix="Group"
				FromIndex="TSecGroupIncludeGroupIdx"
				ToIndex="TSecGroup.TSecGroupIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="TSecGroupId" ToCol="TSecGroupId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="TSecGroupIncludeSubGroup"
				RelationType="Parent"
				DbName="tsecgrpinc_subgrp"
				Label="SubGroup"
				Suffix="SubGroup"
				FromIndex="TSecGroupIncludeIncludeIdx"
				ToIndex="TSecGroup.TSecGroupIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="IncludeGroupId" ToCol="TSecGroupId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="TSecGroupMember">
		<Relation Name="TSecGroupMemberTenant"
				RelationType="Owner"
				DbName="tsecgrpmemb_tenant"
				Label="Tenant"
				Suffix="Tenant"
				FromIndex="TSecGroupMemberTenantIdx"
				ToIndex="Tenant.TenantIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="TSecGroupMemberGroup"
				RelationType="Container"
				DbName="tsecgrpmemb_grp"
				Label="Group"
				Suffix="Group"
				FromIndex="TSecGroupMemberGroupIdx"
				ToIndex="TSecGroup.TSecGroupIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="TenantId" ToCol="TenantId" DefaultVisibility="true" />
			<RelationCol Name="TSecGroupId" ToCol="TSecGroupId" DefaultVisibility="true" />
		</Relation>
		<Relation Name="TSecGroupMemberUser"
				RelationType="Parent"
				DbName="tsecgrpmemb_user"
				Label="User"
				Suffix="User"
				FromIndex="TSecGroupMemberUserIdx"
				ToIndex="SecUser.SecUserIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="SecUserId" ToCol="SecUserId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="Tenant">
		<Relation Name="TenantCluster"
				RelationType="Container"
				DbName="tenant_clus"
				Label="Cluster"
				Suffix="Cluster"
				FromIndex="TenantClusterIdx"
				ToIndex="Cluster.ClusterIdIdx"
				IsRequired="true"
				DefaultVisibility="true" >
			<RelationCol Name="ClusterId" ToCol="Id" DefaultVisibility="true" />
		</Relation>
		<Relation Name="TenantSecGroup"
				RelationType="Components"
				DbName="tenant_secgrp"
				Label="Tenant Security Group"
				Suffix="TSecGroup"
				FromIndex="TenantIdIdx"
				ToIndex="TSecGroup.TSecGroupTenantIdx"
				IsRequired="false"
				IsXsdContainer="true"
				DefaultVisibility="true" >
			<RelationCol Name="Id" ToCol="TenantId" DefaultVisibility="true" />
		</Relation>
	</TableAddendum>

	<TableAddendum FromTable="SecUser">
		<ClearDep Name="ClearSecUserDefDev" ClearDepChain="SecUserDefDev" />
	</TableAddendum>

	<TableAddendum FromTable="Cluster">
		<DelDep Name="DelHostNodes" DelDepChain="ClusterHostNode" />
		<DelDep Name="DelTenants" DelDepChain="ClusterTenant" />
		<DelDep Name="DelSecApps" DelDepChain="ClusterSecApp" />
		<DelDep Name="DelSecAppForms" DelDepChain="ClusterSecApp.SecAppForm" />
		<DelDep Name="DelSecGroups" DelDepChain="ClusterSecGroup" />
		<DelDep Name="DelSecGroupIncludes" DelDepChain="ClusterSecGroup.SecGroupInclude" />
		<DelDep Name="DelSecGroupMembers" DelDepChain="ClusterSecGroup.SecGroupMember" />
		<DelDep Name="DelSecGroupIncludedByGroup" DelDepChain="ClusterSecGroup.SecGroupIncludedByGroup" />
		<DelDep Name="DelSecGroupForms" DelDepChain="ClusterSecGroup.SecGroupForm" />
	</TableAddendum>

	<TableAddendum FromTable="HostNode">
		<DelDep Name="DelServices" DelDepChain="HostNodeService" />
	</TableAddendum>

	<TableAddendum FromTable="ISOCountry">
		<DelDep Name="DelCountryCurrencies" DelDepChain="ISOCountryCurrencies" />
		<DelDep Name="DelCountryLanguages" DelDepChain="ISOCountryLanguages" />
	</TableAddendum>

	<TableAddendum FromTable="SecApp">
		<DelDep Name="DelSecAppForms" DelDepChain="SecAppForm" />
	</TableAddendum>

	<TableAddendum FromTable="SecGroup">
		<DelDep Name="DelSecGroupIncludes" DelDepChain="SecGroupInclude" />
		<DelDep Name="DelSecGroupMembers" DelDepChain="SecGroupMember" />
		<DelDep Name="DelSecGroupIncludedByGroup" DelDepChain="SecGroupIncludedByGroup" />
		<DelDep Name="DelSecGroupForms" DelDepChain="SecGroupForm" />
	</TableAddendum>

	<TableAddendum FromTable="SecUser">
		<DelDep Name="DelSecDevices" DelDepChain="SecUserSecDev" />
		<DelDep Name="DelSecProxySessions" DelDepChain="SecUserSecProxySession" />
		<DelDep Name="DelSecSessions" DelDepChain="SecUserSecSession" />
		<DelDep Name="DelSecGroupMembers" DelDepChain="SecUserSecGroupMember" />
		<DelDep Name="DelTSecGroupMembers" DelDepChain="SecUserTSecGroupMember" />
	</TableAddendum>

	<TableAddendum FromTable="TSecGroup">
		<DelDep Name="DelGroupIncludes" DelDepChain="TSecGroupInclude" />
		<DelDep Name="DelGroupMembers" DelDepChain="TSecGroupMember" />
		<DelDep Name="DelIncludedByGroup" DelDepChain="TSecGroupIncludedByGroup" />
	</TableAddendum>

	<TableAddendum FromTable="Tenant">
		<DelDep Name="DelTSecGroups" DelDepChain="TenantSecGroup" />
		<DelDep Name="DelGroupIncludes" DelDepChain="TenantSecGroup.TSecGroupInclude" />
		<DelDep Name="DelGroupMembers" DelDepChain="TenantSecGroup.TSecGroupMember" />
		<DelDep Name="DelIncludedByGroup" DelDepChain="TenantSecGroup.TSecGroupIncludedByGroup" />
	</TableAddendum>
</SchemaDef>
						</MinorVersion>
					</MajorVersion>
				</SubProject>
			</TopProject>
		</TopDomain>
	</Tld>
</MSSBam>
