net.sourceforge.msscodefactory.v2_4.CFBamXmlLoader.CFBamXmlLoader.java Source code

Java tutorial

Introduction

Here is the source code for net.sourceforge.msscodefactory.v2_4.CFBamXmlLoader.CFBamXmlLoader.java

Source

// Description: Java 7 XML SAX Parser for CFBam.

/*
 *   CFCli CFBamXmlLoader
 *
 *   Copyright (c) 2014-2015 Mark Sobkow
 *   
 *   This program is available as free software under the GNU GPL v3,
 *   or under a commercial license from Mark Sobkow.  For commercial
 *   licensing details, please contact msobkow@sasktel.net.
 *   
 *   You should have received copies of the complete license text for
 *   GPLv3.txt, containing the text of the GNU General Public License v 3.0.
 *   
 *   Under the terms of the GPL:
 *   
 *      This program 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 program 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 program.  If not, see <http://www.gnu.org/licenses/>.
 *   
 *      This source code incorporates modified modules originally licensed
 *      under the Apache 2.0 license by MSS Code Factory including CFSecurity
 *      (net-sourceforge-msscodefactory-2.0-cfsecurity.xml),
 *      CFInternet (net-sourceforge-msscodefactory-2.0-cfinternet.xml), and
 *      CFCrm 2.0 (net-sourceforge-msscodefactory-2.0-cfcrm.xml), with all of the
 *      required models being available as part of the MSS Code Factory 1.11
 *      distribution source and install zips.
 *   
 *      You can download installations of MSS Code Factory 1.11 from
 *      http://msscodefactory.sourceforge.net/
 *
 *   Based on code originally manufactured by MSS Code Factory 1.11 for
 *   CFBam 2.0.
 */

package net.sourceforge.msscodefactory.v2_4.CFBamXmlLoader;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.lang.reflect.*;
import java.math.*;
import java.net.URL;
import java.sql.*;
import java.text.*;
import java.util.*;

import javax.sql.*;

import net.sourceforge.msscodefactory.cflib.v2_3.CFLib.*;

import org.apache.commons.codec.binary.Base64;
import org.xml.sax.*;

import net.sourceforge.msscodefactory.cfbam.v2_4.CFBam.*;
import net.sourceforge.msscodefactory.cfbam.v2_4.CFBamObj.*;
import net.sourceforge.msscodefactory.cfbam.v2_4.CFBamMssCF.*;
import net.sourceforge.msscodefactory.v2_4.MSSBamCF.MSSBamCFEngine;
import net.sourceforge.msscodefactory.cfcore.v2_3.MssCF.MssCFSaxParser;

public class CFBamXmlLoader extends MssCFSaxParser implements ContentHandler {

    // The namespace URI of the supported schema
    public final static String SCHEMA_XMLNS = "uri://net.sourceforge.msscodefactory.cfbam.v2_3/cfbamloader";

    // The source for loading the supported schema
    public final static String SCHEMA_URI = "xsd/msbam-2.3.xsd";
    public final static String SCHEMA_ROOT_URI = "/xsd/mssbam-2.3.xsd";

    // The schema instance to load in to

    private ICFBamSchemaObj schemaObj = null;
    // Loader behaviour configuration attributes

    // Constructors

    public CFBamXmlLoader(MSSBamCFEngine engine, ICFLibMessageLog jLogger) {
        super(engine, jLogger);
        bamEngine = engine;
        setRootElementHandler(getSaxRootHandler());
        File file = new File(SCHEMA_URI);
        if (file.exists()) {
            addSchema(SCHEMA_URI);
        } else {
            URL url = engine.getClass().getResource(SCHEMA_ROOT_URI);
            if (url != null) {
                addSchema(url.toString());
            }
        }
        initParser();
    }

    /**
     *   The directories containing XML Models
     */
    protected static ArrayList<String> modelPath = new ArrayList<String>();

    protected ICFBamTenantObj tenant = null;

    protected ICFBamVersionObj definedProjectVersion = null;

    protected MSSBamCFEngine bamEngine = null;

    public MSSBamCFEngine getBamEngine() {
        return (bamEngine);
    }

    //   JVM Config: ModelPath

    /**
     *   Add an XML repository model directory the model path.
     */
    public static void addModelPath(String dirname) {
        assert ((dirname != null) && (dirname.length() == 0)) : "dirname (arg 1) is null or empty";
        Iterator<String> iter = modelPath.iterator();
        while (iter.hasNext()) {
            String match = iter.next();
            if (dirname.equals(match)) {
                return;
            }
        }
        modelPath.add(new String(dirname));
    }

    /**
     *   Get an iteration of the model path directories.
     *
     *   @return Iteration of Strings.
     */
    public static Iterator<String> getModelPathIterator() {
        Iterator<String> iter = modelPath.iterator();
        return (iter);
    }

    //   Results: Produced by a successful parse

    /**
     *   Get the tenant that contains the parse.
     *
     *   @return   The parsed MSSBam
     */
    public ICFBamTenantObj getTenant() {
        return (tenant);
    }

    /**
     *   Set the tenant to receive the parse
     */
    public void setTenant(ICFBamTenantObj value) {
        tenant = value;
    }

    /**
     *   Get the project version defined by the repository model.
     *
     *   @return   The ProjectVersion defined by the model.
     */
    public ICFBamVersionObj getDefinedProjectVersion() {
        return (definedProjectVersion);
    }

    //   Runtime: Load a MSSBam

    /**
     *   Load a MSSBam.
     *
     *   @param   modelName   The name of the model to be loaded
     */
    public ICFBamTenantObj loadTenant(String modelName) {

        //      Get the model path to be searched

        String modelNameDotXml;
        if (modelName.endsWith(".xml")) {
            modelNameDotXml = modelName;
        } else {
            modelNameDotXml = modelName + ".xml";
        }

        String tenantFileName = null;
        String tenantRootDir = null;
        InputStream tenantXml = null;

        Iterator<String> iterPath = getModelPathIterator();
        while ((tenantXml == null) && iterPath.hasNext()) {

            String modelDir = iterPath.next();
            int modelDirLen = modelDir.length();
            assert modelDirLen > 0 : "ModelPath directory entry is empty";
            char modelDirTail = modelDir.charAt(modelDirLen - 1);
            if ((modelDirTail == '/') || (modelDirTail == '\\')) {
                tenantRootDir = modelDir;
            } else {
                tenantRootDir = modelDir + File.separator;
            }

            tenantFileName = tenantRootDir + modelNameDotXml;
            try {
                tenantXml = new FileInputStream(tenantFileName);
            } catch (FileNotFoundException e) {
                tenantXml = null;
                tenantFileName = null;
                tenantRootDir = null;
            }
        }

        //      Did we find the model?

        if (tenantXml == null) {
            throw CFLib.getDefaultExceptionFactory().newRuntimeException(getClass(), "loadTenant",
                    getLocationInfo() + " Could not locate Repository Model \"" + modelName + "\"");
        } else {
            getBamEngine().getLog().message("Loading " + modelName);
        }

        //      Parse the model

        try {
            parse(tenantXml, tenantRootDir);
        } finally {
            try {
                tenantXml.close();
            } catch (Exception e) {
                throw CFLib.getDefaultExceptionFactory().newRuntimeException(getClass(), "loadTenant",
                        getLocationInfo() + " Could not close Business Application Model \"" + modelName + "\"", e);
            }
        }

        return (tenant);
    }

    public static boolean getProcessSchema(CFLibXmlCoreContext curContext) {
        final String S_ProcName = "getProcessSchema";
        boolean retval = false;
        CFLibXmlCoreContext workContext = curContext;

        Object obj = null;
        while ((obj == null) && (workContext != null)) {
            obj = workContext.getNamedValue("ProcessSchema");
            if (obj == null) {
                workContext = workContext.getPrevContext();
            }
        }

        if (obj == null) {
            retval = false;
        } else if (obj instanceof String) {
            String strval = (String) obj;
            if ("true".equals(strval)) {
                retval = true;
            } else if ("false".equals(strval)) {
                retval = false;
            } else {
                throw CFLib.getDefaultExceptionFactory().newInvalidArgumentException(CFBamXmlLoader.class,
                        S_ProcName, 0, "ProcessSchema", strval);
            }
        } else {
            CFLib.getDefaultExceptionFactory().newUnsupportedClassException(CFBamXmlLoader.class, S_ProcName,
                    "ProcessSchema", obj, "String");
        }

        return (retval);
    }

    // Element Handler instances

    private CFBamXmlLoaderBlobColHandler blobColHandler = null;
    private CFBamXmlLoaderBlobTypeHandler blobTypeHandler = null;
    private CFBamXmlLoaderBoolColHandler boolColHandler = null;
    private CFBamXmlLoaderBoolTypeHandler boolTypeHandler = null;
    private CFBamXmlLoaderChainHandler chainHandler = null;
    private CFBamXmlLoaderClearDepHandler clearDepHandler = null;
    private CFBamXmlLoaderDateColHandler dateColHandler = null;
    private CFBamXmlLoaderDateTypeHandler dateTypeHandler = null;
    private CFBamXmlLoaderDelDepHandler delDepHandler = null;
    private CFBamXmlLoaderDomainHandler domainHandler = null;
    private CFBamXmlLoaderDoubleColHandler doubleColHandler = null;
    private CFBamXmlLoaderDoubleTypeHandler doubleTypeHandler = null;
    private CFBamXmlLoaderEnumColHandler enumColHandler = null;
    private CFBamXmlLoaderEnumTagHandler enumTagHandler = null;
    private CFBamXmlLoaderEnumTypeHandler enumTypeHandler = null;
    private CFBamXmlLoaderFloatColHandler floatColHandler = null;
    private CFBamXmlLoaderFloatTypeHandler floatTypeHandler = null;
    private CFBamXmlLoaderId16GenHandler id16GenHandler = null;
    private CFBamXmlLoaderId32GenHandler id32GenHandler = null;
    private CFBamXmlLoaderId64GenHandler id64GenHandler = null;
    private CFBamXmlLoaderIndexHandler indexHandler = null;
    private CFBamXmlLoaderIndexColHandler indexColHandler = null;
    private CFBamXmlLoaderInt16ColHandler int16ColHandler = null;
    private CFBamXmlLoaderInt16TypeHandler int16TypeHandler = null;
    private CFBamXmlLoaderInt32ColHandler int32ColHandler = null;
    private CFBamXmlLoaderInt32TypeHandler int32TypeHandler = null;
    private CFBamXmlLoaderInt64ColHandler int64ColHandler = null;
    private CFBamXmlLoaderInt64TypeHandler int64TypeHandler = null;
    private CFBamXmlLoaderJavaMethodBodyHandler javaMethodBodyHandler = null;
    private CFBamXmlLoaderJavaSchemaObjInterfaceHandler javaSchemaObjInterfaceHandler = null;
    private CFBamXmlLoaderJavaSchemaObjMembersHandler javaSchemaObjMembersHandler = null;
    private CFBamXmlLoaderJavaSchemaObjImportHandler javaSchemaObjImportHandler = null;
    private CFBamXmlLoaderJavaSchemaObjImplementationHandler javaSchemaObjImplementationHandler = null;
    private CFBamXmlLoaderJavaDb2LUWSchemaObjMembersHandler javaDb2LUWSchemaObjMembersHandler = null;
    private CFBamXmlLoaderJavaDb2LUWSchemaObjImplHandler javaDb2LUWSchemaObjImplHandler = null;
    private CFBamXmlLoaderJavaDb2LUWSchemaObjImportHandler javaDb2LUWSchemaObjImportHandler = null;
    private CFBamXmlLoaderJavaMSSqlSchemaObjMembersHandler javaMSSqlSchemaObjMembersHandler = null;
    private CFBamXmlLoaderJavaMSSqlSchemaObjImplHandler javaMSSqlSchemaObjImplHandler = null;
    private CFBamXmlLoaderJavaMSSqlSchemaObjImportHandler javaMSSqlSchemaObjImportHandler = null;
    private CFBamXmlLoaderJavaMySqlSchemaObjMembersHandler javaMySqlSchemaObjMembersHandler = null;
    private CFBamXmlLoaderJavaMySqlSchemaObjImplHandler javaMySqlSchemaObjImplHandler = null;
    private CFBamXmlLoaderJavaMySqlSchemaObjImportHandler javaMySqlSchemaObjImportHandler = null;
    private CFBamXmlLoaderJavaOracleSchemaObjMembersHandler javaOracleSchemaObjMembersHandler = null;
    private CFBamXmlLoaderJavaOracleSchemaObjImplHandler javaOracleSchemaObjImplHandler = null;
    private CFBamXmlLoaderJavaOracleSchemaObjImportHandler javaOracleSchemaObjImportHandler = null;
    private CFBamXmlLoaderJavaPgSqlSchemaObjMembersHandler javaPgSqlSchemaObjMembersHandler = null;
    private CFBamXmlLoaderJavaPgSqlSchemaObjImplHandler javaPgSqlSchemaObjImplHandler = null;
    private CFBamXmlLoaderJavaPgSqlSchemaObjImportHandler javaPgSqlSchemaObjImportHandler = null;
    private CFBamXmlLoaderJavaSybaseSchemaObjMembersHandler javaSybaseSchemaObjMembersHandler = null;
    private CFBamXmlLoaderJavaSybaseSchemaObjImplHandler javaSybaseSchemaObjImplHandler = null;
    private CFBamXmlLoaderJavaSybaseSchemaObjImportHandler javaSybaseSchemaObjImportHandler = null;
    private CFBamXmlLoaderJavaRamSchemaObjMembersHandler javaRamSchemaObjMembersHandler = null;
    private CFBamXmlLoaderJavaRamSchemaObjImplHandler javaRamSchemaObjImplHandler = null;
    private CFBamXmlLoaderJavaRamSchemaObjImportHandler javaRamSchemaObjImportHandler = null;
    private CFBamXmlLoaderJavaXMsgSchemaImportHandler javaXMsgSchemaImportHandler = null;
    private CFBamXmlLoaderJavaXMsgSchemaFormattersHandler javaXMsgSchemaFormattersHandler = null;
    private CFBamXmlLoaderJavaXMsgClientSchemaImportHandler javaXMsgClientSchemaImportHandler = null;
    private CFBamXmlLoaderJavaXMsgClientSchemaBodyHandler javaXMsgClientSchemaBodyHandler = null;
    private CFBamXmlLoaderJavaXMsgRqstSchemaBodyHandler javaXMsgRqstSchemaBodyHandler = null;
    private CFBamXmlLoaderJavaXMsgRqstSchemaImportHandler javaXMsgRqstSchemaImportHandler = null;
    private CFBamXmlLoaderJavaXMsgRqstSchemaWireParsersHandler javaXMsgRqstSchemaWireParsersHandler = null;
    private CFBamXmlLoaderJavaXMsgRqstSchemaXsdElementListHandler javaXMsgRqstSchemaXsdElementListHandler = null;
    private CFBamXmlLoaderJavaXMsgRqstSchemaXsdSpecHandler javaXMsgRqstSchemaXsdSpecHandler = null;
    private CFBamXmlLoaderJavaXMsgRspnSchemaBodyHandler javaXMsgRspnSchemaBodyHandler = null;
    private CFBamXmlLoaderJavaXMsgRspnSchemaImportHandler javaXMsgRspnSchemaImportHandler = null;
    private CFBamXmlLoaderJavaXMsgRspnSchemaWireParsersHandler javaXMsgRspnSchemaWireParsersHandler = null;
    private CFBamXmlLoaderJavaXMsgRspnSchemaXsdElementListHandler javaXMsgRspnSchemaXsdElementListHandler = null;
    private CFBamXmlLoaderJavaXMsgRspnSchemaXsdSpecHandler javaXMsgRspnSchemaXsdSpecHandler = null;
    private CFBamXmlLoaderJavaObjMembersHandler javaObjMembersHandler = null;
    private CFBamXmlLoaderJavaObjInterfaceHandler javaObjInterfaceHandler = null;
    private CFBamXmlLoaderJavaObjImplementationHandler javaObjImplementationHandler = null;
    private CFBamXmlLoaderJavaEditObjMembersHandler javaEditObjMembersHandler = null;
    private CFBamXmlLoaderJavaEditObjInterfaceHandler javaEditObjInterfaceHandler = null;
    private CFBamXmlLoaderJavaEditObjImplementationHandler javaEditObjImplementationHandler = null;
    private CFBamXmlLoaderJavaDb2LUWTableImportHandler javaDb2LUWTableImportHandler = null;
    private CFBamXmlLoaderJavaMSSqlTableImportHandler javaMSSqlTableImportHandler = null;
    private CFBamXmlLoaderJavaMySqlTableImportHandler javaMySqlTableImportHandler = null;
    private CFBamXmlLoaderJavaOracleTableImportHandler javaOracleTableImportHandler = null;
    private CFBamXmlLoaderJavaPgSqlTableImportHandler javaPgSqlTableImportHandler = null;
    private CFBamXmlLoaderJavaSybaseTableImportHandler javaSybaseTableImportHandler = null;
    private CFBamXmlLoaderJavaRamTableImportHandler javaRamTableImportHandler = null;
    private CFBamXmlLoaderJavaObjImportHandler javaObjImportHandler = null;
    private CFBamXmlLoaderJavaEditObjImportHandler javaEditObjImportHandler = null;
    private CFBamXmlLoaderJavaSaxLoaderImportHandler javaSaxLoaderImportHandler = null;
    private CFBamXmlLoaderJavaTableImportHandler javaTableImportHandler = null;
    private CFBamXmlLoaderJavaTableObjImportHandler javaTableObjImportHandler = null;
    private CFBamXmlLoaderJavaTableMembersHandler javaTableMembersHandler = null;
    private CFBamXmlLoaderJavaTableInterfaceHandler javaTableInterfaceHandler = null;
    private CFBamXmlLoaderJavaTableImplementationHandler javaTableImplementationHandler = null;
    private CFBamXmlLoaderJavaTableObjMembersHandler javaTableObjMembersHandler = null;
    private CFBamXmlLoaderJavaTableObjInterfaceHandler javaTableObjInterfaceHandler = null;
    private CFBamXmlLoaderJavaTableObjImplementationHandler javaTableObjImplementationHandler = null;
    private CFBamXmlLoaderJavaDb2LUWTableMembersHandler javaDb2LUWTableMembersHandler = null;
    private CFBamXmlLoaderJavaDb2LUWTableImplementationHandler javaDb2LUWTableImplementationHandler = null;
    private CFBamXmlLoaderJavaMSSqlTableMembersHandler javaMSSqlTableMembersHandler = null;
    private CFBamXmlLoaderJavaMSSqlTableImplementationHandler javaMSSqlTableImplementationHandler = null;
    private CFBamXmlLoaderJavaMySqlTableMembersHandler javaMySqlTableMembersHandler = null;
    private CFBamXmlLoaderJavaMySqlTableImplementationHandler javaMySqlTableImplementationHandler = null;
    private CFBamXmlLoaderJavaOracleTableMembersHandler javaOracleTableMembersHandler = null;
    private CFBamXmlLoaderJavaOracleTableImplementationHandler javaOracleTableImplementationHandler = null;
    private CFBamXmlLoaderJavaPgSqlTableMembersHandler javaPgSqlTableMembersHandler = null;
    private CFBamXmlLoaderJavaPgSqlTableImplementationHandler javaPgSqlTableImplementationHandler = null;
    private CFBamXmlLoaderJavaSybaseTableMembersHandler javaSybaseTableMembersHandler = null;
    private CFBamXmlLoaderJavaSybaseTableImplementationHandler javaSybaseTableImplementationHandler = null;
    private CFBamXmlLoaderJavaRamTableMembersHandler javaRamTableMembersHandler = null;
    private CFBamXmlLoaderJavaRamTableImplementationHandler javaRamTableImplementationHandler = null;
    private CFBamXmlLoaderJavaSaxLoaderStartElementHandler javaSaxLoaderStartElementHandler = null;
    private CFBamXmlLoaderJavaSaxLoaderEndElementHandler javaSaxLoaderEndElementHandler = null;
    private CFBamXmlLoaderJavaXMsgTableImportHandler javaXMsgTableImportHandler = null;
    private CFBamXmlLoaderJavaXMsgTableFormattersHandler javaXMsgTableFormattersHandler = null;
    private CFBamXmlLoaderJavaXMsgRqstTableImportHandler javaXMsgRqstTableImportHandler = null;
    private CFBamXmlLoaderJavaXMsgRspnTableImportHandler javaXMsgRspnTableImportHandler = null;
    private CFBamXmlLoaderJavaXMsgClientTableImportHandler javaXMsgClientTableImportHandler = null;
    private CFBamXmlLoaderJavaXMsgRqstTableBodyHandler javaXMsgRqstTableBodyHandler = null;
    private CFBamXmlLoaderJavaXMsgRspnTableBodyHandler javaXMsgRspnTableBodyHandler = null;
    private CFBamXmlLoaderJavaXMsgClientTableBodyHandler javaXMsgClientTableBodyHandler = null;
    private CFBamXmlLoaderLicenseHandler licenseHandler = null;
    private CFBamXmlLoaderMajorVersionHandler majorVersionHandler = null;
    private CFBamXmlLoaderMinorVersionHandler minorVersionHandler = null;
    private CFBamXmlLoaderNmTokenColHandler nmTokenColHandler = null;
    private CFBamXmlLoaderNmTokenTypeHandler nmTokenTypeHandler = null;
    private CFBamXmlLoaderNmTokensColHandler nmTokensColHandler = null;
    private CFBamXmlLoaderNmTokensTypeHandler nmTokensTypeHandler = null;
    private CFBamXmlLoaderNumberColHandler numberColHandler = null;
    private CFBamXmlLoaderNumberTypeHandler numberTypeHandler = null;
    private CFBamXmlLoaderParamHandler paramHandler = null;
    private CFBamXmlLoaderPopDepHandler popDepHandler = null;
    private CFBamXmlLoaderPrimaryIndexHandler primaryIndexHandler = null;
    private CFBamXmlLoaderRelationHandler relationHandler = null;
    private CFBamXmlLoaderRelationColHandler relationColHandler = null;
    private CFBamXmlLoaderSchemaDefHandler schemaDefHandler = null;
    private CFBamXmlLoaderSchemaRefHandler schemaRefHandler = null;
    private CFBamXmlLoaderServerListFuncHandler serverListFuncHandler = null;
    private CFBamXmlLoaderServerObjFuncHandler serverObjFuncHandler = null;
    private CFBamXmlLoaderServerProcHandler serverProcHandler = null;
    private CFBamXmlLoaderSuperClassRelationHandler superClassRelationHandler = null;
    private CFBamXmlLoaderStringColHandler stringColHandler = null;
    private CFBamXmlLoaderStringTypeHandler stringTypeHandler = null;
    private CFBamXmlLoaderSubProjectHandler subProjectHandler = null;
    private CFBamXmlLoaderTZDateColHandler tZDateColHandler = null;
    private CFBamXmlLoaderTZDateTypeHandler tZDateTypeHandler = null;
    private CFBamXmlLoaderTZTimeColHandler tZTimeColHandler = null;
    private CFBamXmlLoaderTZTimeTypeHandler tZTimeTypeHandler = null;
    private CFBamXmlLoaderTZTimestampColHandler tZTimestampColHandler = null;
    private CFBamXmlLoaderTZTimestampTypeHandler tZTimestampTypeHandler = null;
    private CFBamXmlLoaderTableHandler tableHandler = null;
    private CFBamXmlLoaderTableAddendumHandler tableAddendumHandler = null;
    private CFBamXmlLoaderTableColHandler tableColHandler = null;
    private CFBamXmlLoaderTextColHandler textColHandler = null;
    private CFBamXmlLoaderTextTypeHandler textTypeHandler = null;
    private CFBamXmlLoaderTimeColHandler timeColHandler = null;
    private CFBamXmlLoaderTimeTypeHandler timeTypeHandler = null;
    private CFBamXmlLoaderTimestampColHandler timestampColHandler = null;
    private CFBamXmlLoaderTimestampTypeHandler timestampTypeHandler = null;
    private CFBamXmlLoaderTldHandler tldHandler = null;
    private CFBamXmlLoaderTokenColHandler tokenColHandler = null;
    private CFBamXmlLoaderTokenTypeHandler tokenTypeHandler = null;
    private CFBamXmlLoaderTopDomainHandler topDomainHandler = null;
    private CFBamXmlLoaderTopProjectHandler topProjectHandler = null;
    private CFBamXmlLoaderUInt16ColHandler uInt16ColHandler = null;
    private CFBamXmlLoaderUInt16TypeHandler uInt16TypeHandler = null;
    private CFBamXmlLoaderUInt32ColHandler uInt32ColHandler = null;
    private CFBamXmlLoaderUInt32TypeHandler uInt32TypeHandler = null;
    private CFBamXmlLoaderUInt64ColHandler uInt64ColHandler = null;
    private CFBamXmlLoaderUInt64TypeHandler uInt64TypeHandler = null;
    private CFBamXmlLoaderUuidColHandler uuidColHandler = null;
    private CFBamXmlLoaderUuidGenHandler uuidGenHandler = null;
    private CFBamXmlLoaderUuidTypeHandler uuidTypeHandler = null;
    private CFBamSaxRootHandler saxRootHandler = null;

    private CFBamSaxDocHandler saxDocHandler = null;

    // Schema object accessors

    // SchemaObj accessors

    public ICFBamSchemaObj getSchemaObj() {
        return (schemaObj);
    }

    public void setSchemaObj(ICFBamSchemaObj value) {
        schemaObj = value;
    }

    // Element Handler Resolver Factories

    protected CFBamXmlLoaderBlobColHandler getBlobColHandler() {
        if (blobColHandler == null) {
            blobColHandler = new CFBamXmlLoaderBlobColHandler(this);
        }
        return (blobColHandler);
    }

    protected CFBamXmlLoaderBlobTypeHandler getBlobTypeHandler() {
        if (blobTypeHandler == null) {
            blobTypeHandler = new CFBamXmlLoaderBlobTypeHandler(this);
        }
        return (blobTypeHandler);
    }

    protected CFBamXmlLoaderBoolColHandler getBoolColHandler() {
        if (boolColHandler == null) {
            boolColHandler = new CFBamXmlLoaderBoolColHandler(this);
        }
        return (boolColHandler);
    }

    protected CFBamXmlLoaderBoolTypeHandler getBoolTypeHandler() {
        if (boolTypeHandler == null) {
            boolTypeHandler = new CFBamXmlLoaderBoolTypeHandler(this);
        }
        return (boolTypeHandler);
    }

    protected CFBamXmlLoaderChainHandler getChainHandler() {
        if (chainHandler == null) {
            chainHandler = new CFBamXmlLoaderChainHandler(this);
        }
        return (chainHandler);
    }

    protected CFBamXmlLoaderClearDepHandler getClearDepHandler() {
        if (clearDepHandler == null) {
            clearDepHandler = new CFBamXmlLoaderClearDepHandler(this);
        }
        return (clearDepHandler);
    }

    protected CFBamXmlLoaderDateColHandler getDateColHandler() {
        if (dateColHandler == null) {
            dateColHandler = new CFBamXmlLoaderDateColHandler(this);
        }
        return (dateColHandler);
    }

    protected CFBamXmlLoaderDateTypeHandler getDateTypeHandler() {
        if (dateTypeHandler == null) {
            dateTypeHandler = new CFBamXmlLoaderDateTypeHandler(this);
        }
        return (dateTypeHandler);
    }

    protected CFBamXmlLoaderDelDepHandler getDelDepHandler() {
        if (delDepHandler == null) {
            delDepHandler = new CFBamXmlLoaderDelDepHandler(this);
        }
        return (delDepHandler);
    }

    protected CFBamXmlLoaderDomainHandler getDomainHandler() {
        if (domainHandler == null) {
            domainHandler = new CFBamXmlLoaderDomainHandler(this);
            domainHandler.addElementHandler("SchemaDef", getSchemaDefHandler());
            domainHandler.addElementHandler("License", getLicenseHandler());
            domainHandler.addElementHandler("TopProject", getTopProjectHandler());
        }
        return (domainHandler);
    }

    protected CFBamXmlLoaderDoubleColHandler getDoubleColHandler() {
        if (doubleColHandler == null) {
            doubleColHandler = new CFBamXmlLoaderDoubleColHandler(this);
        }
        return (doubleColHandler);
    }

    protected CFBamXmlLoaderDoubleTypeHandler getDoubleTypeHandler() {
        if (doubleTypeHandler == null) {
            doubleTypeHandler = new CFBamXmlLoaderDoubleTypeHandler(this);
        }
        return (doubleTypeHandler);
    }

    protected CFBamXmlLoaderEnumColHandler getEnumColHandler() {
        if (enumColHandler == null) {
            enumColHandler = new CFBamXmlLoaderEnumColHandler(this);
            enumColHandler.addElementHandler("EnumTag", getEnumTagHandler());
        }
        return (enumColHandler);
    }

    protected CFBamXmlLoaderEnumTagHandler getEnumTagHandler() {
        if (enumTagHandler == null) {
            enumTagHandler = new CFBamXmlLoaderEnumTagHandler(this);
        }
        return (enumTagHandler);
    }

    protected CFBamXmlLoaderEnumTypeHandler getEnumTypeHandler() {
        if (enumTypeHandler == null) {
            enumTypeHandler = new CFBamXmlLoaderEnumTypeHandler(this);
            enumTypeHandler.addElementHandler("EnumTag", getEnumTagHandler());
        }
        return (enumTypeHandler);
    }

    protected CFBamXmlLoaderFloatColHandler getFloatColHandler() {
        if (floatColHandler == null) {
            floatColHandler = new CFBamXmlLoaderFloatColHandler(this);
        }
        return (floatColHandler);
    }

    protected CFBamXmlLoaderFloatTypeHandler getFloatTypeHandler() {
        if (floatTypeHandler == null) {
            floatTypeHandler = new CFBamXmlLoaderFloatTypeHandler(this);
        }
        return (floatTypeHandler);
    }

    protected CFBamXmlLoaderId16GenHandler getId16GenHandler() {
        if (id16GenHandler == null) {
            id16GenHandler = new CFBamXmlLoaderId16GenHandler(this);
        }
        return (id16GenHandler);
    }

    protected CFBamXmlLoaderId32GenHandler getId32GenHandler() {
        if (id32GenHandler == null) {
            id32GenHandler = new CFBamXmlLoaderId32GenHandler(this);
        }
        return (id32GenHandler);
    }

    protected CFBamXmlLoaderId64GenHandler getId64GenHandler() {
        if (id64GenHandler == null) {
            id64GenHandler = new CFBamXmlLoaderId64GenHandler(this);
        }
        return (id64GenHandler);
    }

    protected CFBamXmlLoaderIndexHandler getIndexHandler() {
        if (indexHandler == null) {
            indexHandler = new CFBamXmlLoaderIndexHandler(this);
            indexHandler.addElementHandler("IndexCol", getIndexColHandler());
        }
        return (indexHandler);
    }

    protected CFBamXmlLoaderIndexColHandler getIndexColHandler() {
        if (indexColHandler == null) {
            indexColHandler = new CFBamXmlLoaderIndexColHandler(this);
        }
        return (indexColHandler);
    }

    protected CFBamXmlLoaderInt16ColHandler getInt16ColHandler() {
        if (int16ColHandler == null) {
            int16ColHandler = new CFBamXmlLoaderInt16ColHandler(this);
        }
        return (int16ColHandler);
    }

    protected CFBamXmlLoaderInt16TypeHandler getInt16TypeHandler() {
        if (int16TypeHandler == null) {
            int16TypeHandler = new CFBamXmlLoaderInt16TypeHandler(this);
        }
        return (int16TypeHandler);
    }

    protected CFBamXmlLoaderInt32ColHandler getInt32ColHandler() {
        if (int32ColHandler == null) {
            int32ColHandler = new CFBamXmlLoaderInt32ColHandler(this);
        }
        return (int32ColHandler);
    }

    protected CFBamXmlLoaderInt32TypeHandler getInt32TypeHandler() {
        if (int32TypeHandler == null) {
            int32TypeHandler = new CFBamXmlLoaderInt32TypeHandler(this);
        }
        return (int32TypeHandler);
    }

    protected CFBamXmlLoaderInt64ColHandler getInt64ColHandler() {
        if (int64ColHandler == null) {
            int64ColHandler = new CFBamXmlLoaderInt64ColHandler(this);
        }
        return (int64ColHandler);
    }

    protected CFBamXmlLoaderInt64TypeHandler getInt64TypeHandler() {
        if (int64TypeHandler == null) {
            int64TypeHandler = new CFBamXmlLoaderInt64TypeHandler(this);
        }
        return (int64TypeHandler);
    }

    protected CFBamXmlLoaderJavaMethodBodyHandler getJavaMethodBodyHandler() {
        if (javaMethodBodyHandler == null) {
            javaMethodBodyHandler = new CFBamXmlLoaderJavaMethodBodyHandler(this);
        }
        return (javaMethodBodyHandler);
    }

    protected CFBamXmlLoaderJavaSchemaObjInterfaceHandler getJavaSchemaObjInterfaceHandler() {
        if (javaSchemaObjInterfaceHandler == null) {
            javaSchemaObjInterfaceHandler = new CFBamXmlLoaderJavaSchemaObjInterfaceHandler(this);
        }
        return (javaSchemaObjInterfaceHandler);
    }

    protected CFBamXmlLoaderJavaSchemaObjMembersHandler getJavaSchemaObjMembersHandler() {
        if (javaSchemaObjMembersHandler == null) {
            javaSchemaObjMembersHandler = new CFBamXmlLoaderJavaSchemaObjMembersHandler(this);
        }
        return (javaSchemaObjMembersHandler);
    }

    protected CFBamXmlLoaderJavaSchemaObjImportHandler getJavaSchemaObjImportHandler() {
        if (javaSchemaObjImportHandler == null) {
            javaSchemaObjImportHandler = new CFBamXmlLoaderJavaSchemaObjImportHandler(this);
        }
        return (javaSchemaObjImportHandler);
    }

    protected CFBamXmlLoaderJavaSchemaObjImplementationHandler getJavaSchemaObjImplementationHandler() {
        if (javaSchemaObjImplementationHandler == null) {
            javaSchemaObjImplementationHandler = new CFBamXmlLoaderJavaSchemaObjImplementationHandler(this);
        }
        return (javaSchemaObjImplementationHandler);
    }

    protected CFBamXmlLoaderJavaDb2LUWSchemaObjMembersHandler getJavaDb2LUWSchemaObjMembersHandler() {
        if (javaDb2LUWSchemaObjMembersHandler == null) {
            javaDb2LUWSchemaObjMembersHandler = new CFBamXmlLoaderJavaDb2LUWSchemaObjMembersHandler(this);
        }
        return (javaDb2LUWSchemaObjMembersHandler);
    }

    protected CFBamXmlLoaderJavaDb2LUWSchemaObjImplHandler getJavaDb2LUWSchemaObjImplHandler() {
        if (javaDb2LUWSchemaObjImplHandler == null) {
            javaDb2LUWSchemaObjImplHandler = new CFBamXmlLoaderJavaDb2LUWSchemaObjImplHandler(this);
        }
        return (javaDb2LUWSchemaObjImplHandler);
    }

    protected CFBamXmlLoaderJavaDb2LUWSchemaObjImportHandler getJavaDb2LUWSchemaObjImportHandler() {
        if (javaDb2LUWSchemaObjImportHandler == null) {
            javaDb2LUWSchemaObjImportHandler = new CFBamXmlLoaderJavaDb2LUWSchemaObjImportHandler(this);
        }
        return (javaDb2LUWSchemaObjImportHandler);
    }

    protected CFBamXmlLoaderJavaMSSqlSchemaObjMembersHandler getJavaMSSqlSchemaObjMembersHandler() {
        if (javaMSSqlSchemaObjMembersHandler == null) {
            javaMSSqlSchemaObjMembersHandler = new CFBamXmlLoaderJavaMSSqlSchemaObjMembersHandler(this);
        }
        return (javaMSSqlSchemaObjMembersHandler);
    }

    protected CFBamXmlLoaderJavaMSSqlSchemaObjImplHandler getJavaMSSqlSchemaObjImplHandler() {
        if (javaMSSqlSchemaObjImplHandler == null) {
            javaMSSqlSchemaObjImplHandler = new CFBamXmlLoaderJavaMSSqlSchemaObjImplHandler(this);
        }
        return (javaMSSqlSchemaObjImplHandler);
    }

    protected CFBamXmlLoaderJavaMSSqlSchemaObjImportHandler getJavaMSSqlSchemaObjImportHandler() {
        if (javaMSSqlSchemaObjImportHandler == null) {
            javaMSSqlSchemaObjImportHandler = new CFBamXmlLoaderJavaMSSqlSchemaObjImportHandler(this);
        }
        return (javaMSSqlSchemaObjImportHandler);
    }

    protected CFBamXmlLoaderJavaMySqlSchemaObjMembersHandler getJavaMySqlSchemaObjMembersHandler() {
        if (javaMySqlSchemaObjMembersHandler == null) {
            javaMySqlSchemaObjMembersHandler = new CFBamXmlLoaderJavaMySqlSchemaObjMembersHandler(this);
        }
        return (javaMySqlSchemaObjMembersHandler);
    }

    protected CFBamXmlLoaderJavaMySqlSchemaObjImplHandler getJavaMySqlSchemaObjImplHandler() {
        if (javaMySqlSchemaObjImplHandler == null) {
            javaMySqlSchemaObjImplHandler = new CFBamXmlLoaderJavaMySqlSchemaObjImplHandler(this);
        }
        return (javaMySqlSchemaObjImplHandler);
    }

    protected CFBamXmlLoaderJavaMySqlSchemaObjImportHandler getJavaMySqlSchemaObjImportHandler() {
        if (javaMySqlSchemaObjImportHandler == null) {
            javaMySqlSchemaObjImportHandler = new CFBamXmlLoaderJavaMySqlSchemaObjImportHandler(this);
        }
        return (javaMySqlSchemaObjImportHandler);
    }

    protected CFBamXmlLoaderJavaOracleSchemaObjMembersHandler getJavaOracleSchemaObjMembersHandler() {
        if (javaOracleSchemaObjMembersHandler == null) {
            javaOracleSchemaObjMembersHandler = new CFBamXmlLoaderJavaOracleSchemaObjMembersHandler(this);
        }
        return (javaOracleSchemaObjMembersHandler);
    }

    protected CFBamXmlLoaderJavaOracleSchemaObjImplHandler getJavaOracleSchemaObjImplHandler() {
        if (javaOracleSchemaObjImplHandler == null) {
            javaOracleSchemaObjImplHandler = new CFBamXmlLoaderJavaOracleSchemaObjImplHandler(this);
        }
        return (javaOracleSchemaObjImplHandler);
    }

    protected CFBamXmlLoaderJavaOracleSchemaObjImportHandler getJavaOracleSchemaObjImportHandler() {
        if (javaOracleSchemaObjImportHandler == null) {
            javaOracleSchemaObjImportHandler = new CFBamXmlLoaderJavaOracleSchemaObjImportHandler(this);
        }
        return (javaOracleSchemaObjImportHandler);
    }

    protected CFBamXmlLoaderJavaPgSqlSchemaObjMembersHandler getJavaPgSqlSchemaObjMembersHandler() {
        if (javaPgSqlSchemaObjMembersHandler == null) {
            javaPgSqlSchemaObjMembersHandler = new CFBamXmlLoaderJavaPgSqlSchemaObjMembersHandler(this);
        }
        return (javaPgSqlSchemaObjMembersHandler);
    }

    protected CFBamXmlLoaderJavaPgSqlSchemaObjImplHandler getJavaPgSqlSchemaObjImplHandler() {
        if (javaPgSqlSchemaObjImplHandler == null) {
            javaPgSqlSchemaObjImplHandler = new CFBamXmlLoaderJavaPgSqlSchemaObjImplHandler(this);
        }
        return (javaPgSqlSchemaObjImplHandler);
    }

    protected CFBamXmlLoaderJavaPgSqlSchemaObjImportHandler getJavaPgSqlSchemaObjImportHandler() {
        if (javaPgSqlSchemaObjImportHandler == null) {
            javaPgSqlSchemaObjImportHandler = new CFBamXmlLoaderJavaPgSqlSchemaObjImportHandler(this);
        }
        return (javaPgSqlSchemaObjImportHandler);
    }

    protected CFBamXmlLoaderJavaSybaseSchemaObjMembersHandler getJavaSybaseSchemaObjMembersHandler() {
        if (javaSybaseSchemaObjMembersHandler == null) {
            javaSybaseSchemaObjMembersHandler = new CFBamXmlLoaderJavaSybaseSchemaObjMembersHandler(this);
        }
        return (javaSybaseSchemaObjMembersHandler);
    }

    protected CFBamXmlLoaderJavaSybaseSchemaObjImplHandler getJavaSybaseSchemaObjImplHandler() {
        if (javaSybaseSchemaObjImplHandler == null) {
            javaSybaseSchemaObjImplHandler = new CFBamXmlLoaderJavaSybaseSchemaObjImplHandler(this);
        }
        return (javaSybaseSchemaObjImplHandler);
    }

    protected CFBamXmlLoaderJavaSybaseSchemaObjImportHandler getJavaSybaseSchemaObjImportHandler() {
        if (javaSybaseSchemaObjImportHandler == null) {
            javaSybaseSchemaObjImportHandler = new CFBamXmlLoaderJavaSybaseSchemaObjImportHandler(this);
        }
        return (javaSybaseSchemaObjImportHandler);
    }

    protected CFBamXmlLoaderJavaRamSchemaObjMembersHandler getJavaRamSchemaObjMembersHandler() {
        if (javaRamSchemaObjMembersHandler == null) {
            javaRamSchemaObjMembersHandler = new CFBamXmlLoaderJavaRamSchemaObjMembersHandler(this);
        }
        return (javaRamSchemaObjMembersHandler);
    }

    protected CFBamXmlLoaderJavaRamSchemaObjImplHandler getJavaRamSchemaObjImplHandler() {
        if (javaRamSchemaObjImplHandler == null) {
            javaRamSchemaObjImplHandler = new CFBamXmlLoaderJavaRamSchemaObjImplHandler(this);
        }
        return (javaRamSchemaObjImplHandler);
    }

    protected CFBamXmlLoaderJavaRamSchemaObjImportHandler getJavaRamSchemaObjImportHandler() {
        if (javaRamSchemaObjImportHandler == null) {
            javaRamSchemaObjImportHandler = new CFBamXmlLoaderJavaRamSchemaObjImportHandler(this);
        }
        return (javaRamSchemaObjImportHandler);
    }

    protected CFBamXmlLoaderJavaXMsgSchemaImportHandler getJavaXMsgSchemaImportHandler() {
        if (javaXMsgSchemaImportHandler == null) {
            javaXMsgSchemaImportHandler = new CFBamXmlLoaderJavaXMsgSchemaImportHandler(this);
        }
        return (javaXMsgSchemaImportHandler);
    }

    protected CFBamXmlLoaderJavaXMsgSchemaFormattersHandler getJavaXMsgSchemaFormattersHandler() {
        if (javaXMsgSchemaFormattersHandler == null) {
            javaXMsgSchemaFormattersHandler = new CFBamXmlLoaderJavaXMsgSchemaFormattersHandler(this);
        }
        return (javaXMsgSchemaFormattersHandler);
    }

    protected CFBamXmlLoaderJavaXMsgClientSchemaImportHandler getJavaXMsgClientSchemaImportHandler() {
        if (javaXMsgClientSchemaImportHandler == null) {
            javaXMsgClientSchemaImportHandler = new CFBamXmlLoaderJavaXMsgClientSchemaImportHandler(this);
        }
        return (javaXMsgClientSchemaImportHandler);
    }

    protected CFBamXmlLoaderJavaXMsgClientSchemaBodyHandler getJavaXMsgClientSchemaBodyHandler() {
        if (javaXMsgClientSchemaBodyHandler == null) {
            javaXMsgClientSchemaBodyHandler = new CFBamXmlLoaderJavaXMsgClientSchemaBodyHandler(this);
        }
        return (javaXMsgClientSchemaBodyHandler);
    }

    protected CFBamXmlLoaderJavaXMsgRqstSchemaBodyHandler getJavaXMsgRqstSchemaBodyHandler() {
        if (javaXMsgRqstSchemaBodyHandler == null) {
            javaXMsgRqstSchemaBodyHandler = new CFBamXmlLoaderJavaXMsgRqstSchemaBodyHandler(this);
        }
        return (javaXMsgRqstSchemaBodyHandler);
    }

    protected CFBamXmlLoaderJavaXMsgRqstSchemaImportHandler getJavaXMsgRqstSchemaImportHandler() {
        if (javaXMsgRqstSchemaImportHandler == null) {
            javaXMsgRqstSchemaImportHandler = new CFBamXmlLoaderJavaXMsgRqstSchemaImportHandler(this);
        }
        return (javaXMsgRqstSchemaImportHandler);
    }

    protected CFBamXmlLoaderJavaXMsgRqstSchemaWireParsersHandler getJavaXMsgRqstSchemaWireParsersHandler() {
        if (javaXMsgRqstSchemaWireParsersHandler == null) {
            javaXMsgRqstSchemaWireParsersHandler = new CFBamXmlLoaderJavaXMsgRqstSchemaWireParsersHandler(this);
        }
        return (javaXMsgRqstSchemaWireParsersHandler);
    }

    protected CFBamXmlLoaderJavaXMsgRqstSchemaXsdElementListHandler getJavaXMsgRqstSchemaXsdElementListHandler() {
        if (javaXMsgRqstSchemaXsdElementListHandler == null) {
            javaXMsgRqstSchemaXsdElementListHandler = new CFBamXmlLoaderJavaXMsgRqstSchemaXsdElementListHandler(
                    this);
        }
        return (javaXMsgRqstSchemaXsdElementListHandler);
    }

    protected CFBamXmlLoaderJavaXMsgRqstSchemaXsdSpecHandler getJavaXMsgRqstSchemaXsdSpecHandler() {
        if (javaXMsgRqstSchemaXsdSpecHandler == null) {
            javaXMsgRqstSchemaXsdSpecHandler = new CFBamXmlLoaderJavaXMsgRqstSchemaXsdSpecHandler(this);
        }
        return (javaXMsgRqstSchemaXsdSpecHandler);
    }

    protected CFBamXmlLoaderJavaXMsgRspnSchemaBodyHandler getJavaXMsgRspnSchemaBodyHandler() {
        if (javaXMsgRspnSchemaBodyHandler == null) {
            javaXMsgRspnSchemaBodyHandler = new CFBamXmlLoaderJavaXMsgRspnSchemaBodyHandler(this);
        }
        return (javaXMsgRspnSchemaBodyHandler);
    }

    protected CFBamXmlLoaderJavaXMsgRspnSchemaImportHandler getJavaXMsgRspnSchemaImportHandler() {
        if (javaXMsgRspnSchemaImportHandler == null) {
            javaXMsgRspnSchemaImportHandler = new CFBamXmlLoaderJavaXMsgRspnSchemaImportHandler(this);
        }
        return (javaXMsgRspnSchemaImportHandler);
    }

    protected CFBamXmlLoaderJavaXMsgRspnSchemaWireParsersHandler getJavaXMsgRspnSchemaWireParsersHandler() {
        if (javaXMsgRspnSchemaWireParsersHandler == null) {
            javaXMsgRspnSchemaWireParsersHandler = new CFBamXmlLoaderJavaXMsgRspnSchemaWireParsersHandler(this);
        }
        return (javaXMsgRspnSchemaWireParsersHandler);
    }

    protected CFBamXmlLoaderJavaXMsgRspnSchemaXsdElementListHandler getJavaXMsgRspnSchemaXsdElementListHandler() {
        if (javaXMsgRspnSchemaXsdElementListHandler == null) {
            javaXMsgRspnSchemaXsdElementListHandler = new CFBamXmlLoaderJavaXMsgRspnSchemaXsdElementListHandler(
                    this);
        }
        return (javaXMsgRspnSchemaXsdElementListHandler);
    }

    protected CFBamXmlLoaderJavaXMsgRspnSchemaXsdSpecHandler getJavaXMsgRspnSchemaXsdSpecHandler() {
        if (javaXMsgRspnSchemaXsdSpecHandler == null) {
            javaXMsgRspnSchemaXsdSpecHandler = new CFBamXmlLoaderJavaXMsgRspnSchemaXsdSpecHandler(this);
        }
        return (javaXMsgRspnSchemaXsdSpecHandler);
    }

    protected CFBamXmlLoaderJavaObjMembersHandler getJavaObjMembersHandler() {
        if (javaObjMembersHandler == null) {
            javaObjMembersHandler = new CFBamXmlLoaderJavaObjMembersHandler(this);
        }
        return (javaObjMembersHandler);
    }

    protected CFBamXmlLoaderJavaObjInterfaceHandler getJavaObjInterfaceHandler() {
        if (javaObjInterfaceHandler == null) {
            javaObjInterfaceHandler = new CFBamXmlLoaderJavaObjInterfaceHandler(this);
        }
        return (javaObjInterfaceHandler);
    }

    protected CFBamXmlLoaderJavaObjImplementationHandler getJavaObjImplementationHandler() {
        if (javaObjImplementationHandler == null) {
            javaObjImplementationHandler = new CFBamXmlLoaderJavaObjImplementationHandler(this);
        }
        return (javaObjImplementationHandler);
    }

    protected CFBamXmlLoaderJavaEditObjMembersHandler getJavaEditObjMembersHandler() {
        if (javaEditObjMembersHandler == null) {
            javaEditObjMembersHandler = new CFBamXmlLoaderJavaEditObjMembersHandler(this);
        }
        return (javaEditObjMembersHandler);
    }

    protected CFBamXmlLoaderJavaEditObjInterfaceHandler getJavaEditObjInterfaceHandler() {
        if (javaEditObjInterfaceHandler == null) {
            javaEditObjInterfaceHandler = new CFBamXmlLoaderJavaEditObjInterfaceHandler(this);
        }
        return (javaEditObjInterfaceHandler);
    }

    protected CFBamXmlLoaderJavaEditObjImplementationHandler getJavaEditObjImplementationHandler() {
        if (javaEditObjImplementationHandler == null) {
            javaEditObjImplementationHandler = new CFBamXmlLoaderJavaEditObjImplementationHandler(this);
        }
        return (javaEditObjImplementationHandler);
    }

    protected CFBamXmlLoaderJavaDb2LUWTableImportHandler getJavaDb2LUWTableImportHandler() {
        if (javaDb2LUWTableImportHandler == null) {
            javaDb2LUWTableImportHandler = new CFBamXmlLoaderJavaDb2LUWTableImportHandler(this);
        }
        return (javaDb2LUWTableImportHandler);
    }

    protected CFBamXmlLoaderJavaMSSqlTableImportHandler getJavaMSSqlTableImportHandler() {
        if (javaMSSqlTableImportHandler == null) {
            javaMSSqlTableImportHandler = new CFBamXmlLoaderJavaMSSqlTableImportHandler(this);
        }
        return (javaMSSqlTableImportHandler);
    }

    protected CFBamXmlLoaderJavaMySqlTableImportHandler getJavaMySqlTableImportHandler() {
        if (javaMySqlTableImportHandler == null) {
            javaMySqlTableImportHandler = new CFBamXmlLoaderJavaMySqlTableImportHandler(this);
        }
        return (javaMySqlTableImportHandler);
    }

    protected CFBamXmlLoaderJavaOracleTableImportHandler getJavaOracleTableImportHandler() {
        if (javaOracleTableImportHandler == null) {
            javaOracleTableImportHandler = new CFBamXmlLoaderJavaOracleTableImportHandler(this);
        }
        return (javaOracleTableImportHandler);
    }

    protected CFBamXmlLoaderJavaPgSqlTableImportHandler getJavaPgSqlTableImportHandler() {
        if (javaPgSqlTableImportHandler == null) {
            javaPgSqlTableImportHandler = new CFBamXmlLoaderJavaPgSqlTableImportHandler(this);
        }
        return (javaPgSqlTableImportHandler);
    }

    protected CFBamXmlLoaderJavaSybaseTableImportHandler getJavaSybaseTableImportHandler() {
        if (javaSybaseTableImportHandler == null) {
            javaSybaseTableImportHandler = new CFBamXmlLoaderJavaSybaseTableImportHandler(this);
        }
        return (javaSybaseTableImportHandler);
    }

    protected CFBamXmlLoaderJavaRamTableImportHandler getJavaRamTableImportHandler() {
        if (javaRamTableImportHandler == null) {
            javaRamTableImportHandler = new CFBamXmlLoaderJavaRamTableImportHandler(this);
        }
        return (javaRamTableImportHandler);
    }

    protected CFBamXmlLoaderJavaObjImportHandler getJavaObjImportHandler() {
        if (javaObjImportHandler == null) {
            javaObjImportHandler = new CFBamXmlLoaderJavaObjImportHandler(this);
        }
        return (javaObjImportHandler);
    }

    protected CFBamXmlLoaderJavaEditObjImportHandler getJavaEditObjImportHandler() {
        if (javaEditObjImportHandler == null) {
            javaEditObjImportHandler = new CFBamXmlLoaderJavaEditObjImportHandler(this);
        }
        return (javaEditObjImportHandler);
    }

    protected CFBamXmlLoaderJavaSaxLoaderImportHandler getJavaSaxLoaderImportHandler() {
        if (javaSaxLoaderImportHandler == null) {
            javaSaxLoaderImportHandler = new CFBamXmlLoaderJavaSaxLoaderImportHandler(this);
        }
        return (javaSaxLoaderImportHandler);
    }

    protected CFBamXmlLoaderJavaTableImportHandler getJavaTableImportHandler() {
        if (javaTableImportHandler == null) {
            javaTableImportHandler = new CFBamXmlLoaderJavaTableImportHandler(this);
        }
        return (javaTableImportHandler);
    }

    protected CFBamXmlLoaderJavaTableObjImportHandler getJavaTableObjImportHandler() {
        if (javaTableObjImportHandler == null) {
            javaTableObjImportHandler = new CFBamXmlLoaderJavaTableObjImportHandler(this);
        }
        return (javaTableObjImportHandler);
    }

    protected CFBamXmlLoaderJavaTableMembersHandler getJavaTableMembersHandler() {
        if (javaTableMembersHandler == null) {
            javaTableMembersHandler = new CFBamXmlLoaderJavaTableMembersHandler(this);
        }
        return (javaTableMembersHandler);
    }

    protected CFBamXmlLoaderJavaTableInterfaceHandler getJavaTableInterfaceHandler() {
        if (javaTableInterfaceHandler == null) {
            javaTableInterfaceHandler = new CFBamXmlLoaderJavaTableInterfaceHandler(this);
        }
        return (javaTableInterfaceHandler);
    }

    protected CFBamXmlLoaderJavaTableImplementationHandler getJavaTableImplementationHandler() {
        if (javaTableImplementationHandler == null) {
            javaTableImplementationHandler = new CFBamXmlLoaderJavaTableImplementationHandler(this);
        }
        return (javaTableImplementationHandler);
    }

    protected CFBamXmlLoaderJavaTableObjMembersHandler getJavaTableObjMembersHandler() {
        if (javaTableObjMembersHandler == null) {
            javaTableObjMembersHandler = new CFBamXmlLoaderJavaTableObjMembersHandler(this);
        }
        return (javaTableObjMembersHandler);
    }

    protected CFBamXmlLoaderJavaTableObjInterfaceHandler getJavaTableObjInterfaceHandler() {
        if (javaTableObjInterfaceHandler == null) {
            javaTableObjInterfaceHandler = new CFBamXmlLoaderJavaTableObjInterfaceHandler(this);
        }
        return (javaTableObjInterfaceHandler);
    }

    protected CFBamXmlLoaderJavaTableObjImplementationHandler getJavaTableObjImplementationHandler() {
        if (javaTableObjImplementationHandler == null) {
            javaTableObjImplementationHandler = new CFBamXmlLoaderJavaTableObjImplementationHandler(this);
        }
        return (javaTableObjImplementationHandler);
    }

    protected CFBamXmlLoaderJavaDb2LUWTableMembersHandler getJavaDb2LUWTableMembersHandler() {
        if (javaDb2LUWTableMembersHandler == null) {
            javaDb2LUWTableMembersHandler = new CFBamXmlLoaderJavaDb2LUWTableMembersHandler(this);
        }
        return (javaDb2LUWTableMembersHandler);
    }

    protected CFBamXmlLoaderJavaDb2LUWTableImplementationHandler getJavaDb2LUWTableImplementationHandler() {
        if (javaDb2LUWTableImplementationHandler == null) {
            javaDb2LUWTableImplementationHandler = new CFBamXmlLoaderJavaDb2LUWTableImplementationHandler(this);
        }
        return (javaDb2LUWTableImplementationHandler);
    }

    protected CFBamXmlLoaderJavaMSSqlTableMembersHandler getJavaMSSqlTableMembersHandler() {
        if (javaMSSqlTableMembersHandler == null) {
            javaMSSqlTableMembersHandler = new CFBamXmlLoaderJavaMSSqlTableMembersHandler(this);
        }
        return (javaMSSqlTableMembersHandler);
    }

    protected CFBamXmlLoaderJavaMSSqlTableImplementationHandler getJavaMSSqlTableImplementationHandler() {
        if (javaMSSqlTableImplementationHandler == null) {
            javaMSSqlTableImplementationHandler = new CFBamXmlLoaderJavaMSSqlTableImplementationHandler(this);
        }
        return (javaMSSqlTableImplementationHandler);
    }

    protected CFBamXmlLoaderJavaMySqlTableMembersHandler getJavaMySqlTableMembersHandler() {
        if (javaMySqlTableMembersHandler == null) {
            javaMySqlTableMembersHandler = new CFBamXmlLoaderJavaMySqlTableMembersHandler(this);
        }
        return (javaMySqlTableMembersHandler);
    }

    protected CFBamXmlLoaderJavaMySqlTableImplementationHandler getJavaMySqlTableImplementationHandler() {
        if (javaMySqlTableImplementationHandler == null) {
            javaMySqlTableImplementationHandler = new CFBamXmlLoaderJavaMySqlTableImplementationHandler(this);
        }
        return (javaMySqlTableImplementationHandler);
    }

    protected CFBamXmlLoaderJavaOracleTableMembersHandler getJavaOracleTableMembersHandler() {
        if (javaOracleTableMembersHandler == null) {
            javaOracleTableMembersHandler = new CFBamXmlLoaderJavaOracleTableMembersHandler(this);
        }
        return (javaOracleTableMembersHandler);
    }

    protected CFBamXmlLoaderJavaOracleTableImplementationHandler getJavaOracleTableImplementationHandler() {
        if (javaOracleTableImplementationHandler == null) {
            javaOracleTableImplementationHandler = new CFBamXmlLoaderJavaOracleTableImplementationHandler(this);
        }
        return (javaOracleTableImplementationHandler);
    }

    protected CFBamXmlLoaderJavaPgSqlTableMembersHandler getJavaPgSqlTableMembersHandler() {
        if (javaPgSqlTableMembersHandler == null) {
            javaPgSqlTableMembersHandler = new CFBamXmlLoaderJavaPgSqlTableMembersHandler(this);
        }
        return (javaPgSqlTableMembersHandler);
    }

    protected CFBamXmlLoaderJavaPgSqlTableImplementationHandler getJavaPgSqlTableImplementationHandler() {
        if (javaPgSqlTableImplementationHandler == null) {
            javaPgSqlTableImplementationHandler = new CFBamXmlLoaderJavaPgSqlTableImplementationHandler(this);
        }
        return (javaPgSqlTableImplementationHandler);
    }

    protected CFBamXmlLoaderJavaSybaseTableMembersHandler getJavaSybaseTableMembersHandler() {
        if (javaSybaseTableMembersHandler == null) {
            javaSybaseTableMembersHandler = new CFBamXmlLoaderJavaSybaseTableMembersHandler(this);
        }
        return (javaSybaseTableMembersHandler);
    }

    protected CFBamXmlLoaderJavaSybaseTableImplementationHandler getJavaSybaseTableImplementationHandler() {
        if (javaSybaseTableImplementationHandler == null) {
            javaSybaseTableImplementationHandler = new CFBamXmlLoaderJavaSybaseTableImplementationHandler(this);
        }
        return (javaSybaseTableImplementationHandler);
    }

    protected CFBamXmlLoaderJavaRamTableMembersHandler getJavaRamTableMembersHandler() {
        if (javaRamTableMembersHandler == null) {
            javaRamTableMembersHandler = new CFBamXmlLoaderJavaRamTableMembersHandler(this);
        }
        return (javaRamTableMembersHandler);
    }

    protected CFBamXmlLoaderJavaRamTableImplementationHandler getJavaRamTableImplementationHandler() {
        if (javaRamTableImplementationHandler == null) {
            javaRamTableImplementationHandler = new CFBamXmlLoaderJavaRamTableImplementationHandler(this);
        }
        return (javaRamTableImplementationHandler);
    }

    protected CFBamXmlLoaderJavaSaxLoaderStartElementHandler getJavaSaxLoaderStartElementHandler() {
        if (javaSaxLoaderStartElementHandler == null) {
            javaSaxLoaderStartElementHandler = new CFBamXmlLoaderJavaSaxLoaderStartElementHandler(this);
        }
        return (javaSaxLoaderStartElementHandler);
    }

    protected CFBamXmlLoaderJavaSaxLoaderEndElementHandler getJavaSaxLoaderEndElementHandler() {
        if (javaSaxLoaderEndElementHandler == null) {
            javaSaxLoaderEndElementHandler = new CFBamXmlLoaderJavaSaxLoaderEndElementHandler(this);
        }
        return (javaSaxLoaderEndElementHandler);
    }

    protected CFBamXmlLoaderJavaXMsgTableImportHandler getJavaXMsgTableImportHandler() {
        if (javaXMsgTableImportHandler == null) {
            javaXMsgTableImportHandler = new CFBamXmlLoaderJavaXMsgTableImportHandler(this);
        }
        return (javaXMsgTableImportHandler);
    }

    protected CFBamXmlLoaderJavaXMsgTableFormattersHandler getJavaXMsgTableFormattersHandler() {
        if (javaXMsgTableFormattersHandler == null) {
            javaXMsgTableFormattersHandler = new CFBamXmlLoaderJavaXMsgTableFormattersHandler(this);
        }
        return (javaXMsgTableFormattersHandler);
    }

    protected CFBamXmlLoaderJavaXMsgRqstTableImportHandler getJavaXMsgRqstTableImportHandler() {
        if (javaXMsgRqstTableImportHandler == null) {
            javaXMsgRqstTableImportHandler = new CFBamXmlLoaderJavaXMsgRqstTableImportHandler(this);
        }
        return (javaXMsgRqstTableImportHandler);
    }

    protected CFBamXmlLoaderJavaXMsgRspnTableImportHandler getJavaXMsgRspnTableImportHandler() {
        if (javaXMsgRspnTableImportHandler == null) {
            javaXMsgRspnTableImportHandler = new CFBamXmlLoaderJavaXMsgRspnTableImportHandler(this);
        }
        return (javaXMsgRspnTableImportHandler);
    }

    protected CFBamXmlLoaderJavaXMsgClientTableImportHandler getJavaXMsgClientTableImportHandler() {
        if (javaXMsgClientTableImportHandler == null) {
            javaXMsgClientTableImportHandler = new CFBamXmlLoaderJavaXMsgClientTableImportHandler(this);
        }
        return (javaXMsgClientTableImportHandler);
    }

    protected CFBamXmlLoaderJavaXMsgRqstTableBodyHandler getJavaXMsgRqstTableBodyHandler() {
        if (javaXMsgRqstTableBodyHandler == null) {
            javaXMsgRqstTableBodyHandler = new CFBamXmlLoaderJavaXMsgRqstTableBodyHandler(this);
        }
        return (javaXMsgRqstTableBodyHandler);
    }

    protected CFBamXmlLoaderJavaXMsgRspnTableBodyHandler getJavaXMsgRspnTableBodyHandler() {
        if (javaXMsgRspnTableBodyHandler == null) {
            javaXMsgRspnTableBodyHandler = new CFBamXmlLoaderJavaXMsgRspnTableBodyHandler(this);
        }
        return (javaXMsgRspnTableBodyHandler);
    }

    protected CFBamXmlLoaderJavaXMsgClientTableBodyHandler getJavaXMsgClientTableBodyHandler() {
        if (javaXMsgClientTableBodyHandler == null) {
            javaXMsgClientTableBodyHandler = new CFBamXmlLoaderJavaXMsgClientTableBodyHandler(this);
        }
        return (javaXMsgClientTableBodyHandler);
    }

    protected CFBamXmlLoaderLicenseHandler getLicenseHandler() {
        if (licenseHandler == null) {
            licenseHandler = new CFBamXmlLoaderLicenseHandler(this);
        }
        return (licenseHandler);
    }

    protected CFBamXmlLoaderMajorVersionHandler getMajorVersionHandler() {
        if (majorVersionHandler == null) {
            majorVersionHandler = new CFBamXmlLoaderMajorVersionHandler(this);
            majorVersionHandler.addElementHandler("SchemaDef", getSchemaDefHandler());
            majorVersionHandler.addElementHandler("License", getLicenseHandler());
            majorVersionHandler.addElementHandler("MinorVersion", getMinorVersionHandler());
        }
        return (majorVersionHandler);
    }

    protected CFBamXmlLoaderMinorVersionHandler getMinorVersionHandler() {
        if (minorVersionHandler == null) {
            minorVersionHandler = new CFBamXmlLoaderMinorVersionHandler(this);
            minorVersionHandler.addElementHandler("SchemaDef", getSchemaDefHandler());
            minorVersionHandler.addElementHandler("License", getLicenseHandler());
        }
        return (minorVersionHandler);
    }

    protected CFBamXmlLoaderNmTokenColHandler getNmTokenColHandler() {
        if (nmTokenColHandler == null) {
            nmTokenColHandler = new CFBamXmlLoaderNmTokenColHandler(this);
        }
        return (nmTokenColHandler);
    }

    protected CFBamXmlLoaderNmTokenTypeHandler getNmTokenTypeHandler() {
        if (nmTokenTypeHandler == null) {
            nmTokenTypeHandler = new CFBamXmlLoaderNmTokenTypeHandler(this);
        }
        return (nmTokenTypeHandler);
    }

    protected CFBamXmlLoaderNmTokensColHandler getNmTokensColHandler() {
        if (nmTokensColHandler == null) {
            nmTokensColHandler = new CFBamXmlLoaderNmTokensColHandler(this);
        }
        return (nmTokensColHandler);
    }

    protected CFBamXmlLoaderNmTokensTypeHandler getNmTokensTypeHandler() {
        if (nmTokensTypeHandler == null) {
            nmTokensTypeHandler = new CFBamXmlLoaderNmTokensTypeHandler(this);
        }
        return (nmTokensTypeHandler);
    }

    protected CFBamXmlLoaderNumberColHandler getNumberColHandler() {
        if (numberColHandler == null) {
            numberColHandler = new CFBamXmlLoaderNumberColHandler(this);
        }
        return (numberColHandler);
    }

    protected CFBamXmlLoaderNumberTypeHandler getNumberTypeHandler() {
        if (numberTypeHandler == null) {
            numberTypeHandler = new CFBamXmlLoaderNumberTypeHandler(this);
        }
        return (numberTypeHandler);
    }

    protected CFBamXmlLoaderParamHandler getParamHandler() {
        if (paramHandler == null) {
            paramHandler = new CFBamXmlLoaderParamHandler(this);
        }
        return (paramHandler);
    }

    protected CFBamXmlLoaderPopDepHandler getPopDepHandler() {
        if (popDepHandler == null) {
            popDepHandler = new CFBamXmlLoaderPopDepHandler(this);
        }
        return (popDepHandler);
    }

    protected CFBamXmlLoaderPrimaryIndexHandler getPrimaryIndexHandler() {
        if (primaryIndexHandler == null) {
            primaryIndexHandler = new CFBamXmlLoaderPrimaryIndexHandler(this);
            primaryIndexHandler.addElementHandler("IndexCol", getIndexColHandler());
        }
        return (primaryIndexHandler);
    }

    protected CFBamXmlLoaderRelationHandler getRelationHandler() {
        if (relationHandler == null) {
            relationHandler = new CFBamXmlLoaderRelationHandler(this);
            relationHandler.addElementHandler("RelationCol", getRelationColHandler());
        }
        return (relationHandler);
    }

    protected CFBamXmlLoaderRelationColHandler getRelationColHandler() {
        if (relationColHandler == null) {
            relationColHandler = new CFBamXmlLoaderRelationColHandler(this);
        }
        return (relationColHandler);
    }

    protected CFBamXmlLoaderSchemaDefHandler getSchemaDefHandler() {
        if (schemaDefHandler == null) {
            schemaDefHandler = new CFBamXmlLoaderSchemaDefHandler(this);
            schemaDefHandler.addElementHandler("SchemaRef", getSchemaRefHandler());
            schemaDefHandler.addElementHandler("Table", getTableHandler());
            schemaDefHandler.addElementHandler("TableAddendum", getTableAddendumHandler());
            schemaDefHandler.addElementHandler("BlobType", getBlobTypeHandler());
            schemaDefHandler.addElementHandler("BoolType", getBoolTypeHandler());
            schemaDefHandler.addElementHandler("Int16Type", getInt16TypeHandler());
            schemaDefHandler.addElementHandler("Id16Gen", getId16GenHandler());
            schemaDefHandler.addElementHandler("EnumType", getEnumTypeHandler());
            schemaDefHandler.addElementHandler("Int32Type", getInt32TypeHandler());
            schemaDefHandler.addElementHandler("Id32Gen", getId32GenHandler());
            schemaDefHandler.addElementHandler("Int64Type", getInt64TypeHandler());
            schemaDefHandler.addElementHandler("Id64Gen", getId64GenHandler());
            schemaDefHandler.addElementHandler("UInt16Type", getUInt16TypeHandler());
            schemaDefHandler.addElementHandler("UInt32Type", getUInt32TypeHandler());
            schemaDefHandler.addElementHandler("UInt64Type", getUInt64TypeHandler());
            schemaDefHandler.addElementHandler("FloatType", getFloatTypeHandler());
            schemaDefHandler.addElementHandler("DoubleType", getDoubleTypeHandler());
            schemaDefHandler.addElementHandler("NumberType", getNumberTypeHandler());
            schemaDefHandler.addElementHandler("StringType", getStringTypeHandler());
            schemaDefHandler.addElementHandler("TextType", getTextTypeHandler());
            schemaDefHandler.addElementHandler("NmTokenType", getNmTokenTypeHandler());
            schemaDefHandler.addElementHandler("NmTokensType", getNmTokensTypeHandler());
            schemaDefHandler.addElementHandler("TokenType", getTokenTypeHandler());
            schemaDefHandler.addElementHandler("DateCol", getDateColHandler());
            schemaDefHandler.addElementHandler("DateType", getDateTypeHandler());
            schemaDefHandler.addElementHandler("TimeCol", getTimeColHandler());
            schemaDefHandler.addElementHandler("TimeType", getTimeTypeHandler());
            schemaDefHandler.addElementHandler("TimestampCol", getTimestampColHandler());
            schemaDefHandler.addElementHandler("TimestampType", getTimestampTypeHandler());
            schemaDefHandler.addElementHandler("TZDateCol", getTZDateColHandler());
            schemaDefHandler.addElementHandler("TZDateType", getTZDateTypeHandler());
            schemaDefHandler.addElementHandler("TZTimeCol", getTZTimeColHandler());
            schemaDefHandler.addElementHandler("TZTimeType", getTZTimeTypeHandler());
            schemaDefHandler.addElementHandler("TZTimestampCol", getTZTimestampColHandler());
            schemaDefHandler.addElementHandler("TZTimestampType", getTZTimestampTypeHandler());
            schemaDefHandler.addElementHandler("UuidType", getUuidTypeHandler());
            schemaDefHandler.addElementHandler("UuidGen", getUuidGenHandler());
            schemaDefHandler.addElementHandler("JavaSchemaObjInterface", getJavaSchemaObjInterfaceHandler());
            schemaDefHandler.addElementHandler("JavaSchemaObjMembers", getJavaSchemaObjMembersHandler());
            schemaDefHandler.addElementHandler("JavaSchemaObjImport", getJavaSchemaObjImportHandler());
            schemaDefHandler.addElementHandler("JavaSchemaObjImplementation",
                    getJavaSchemaObjImplementationHandler());
            schemaDefHandler.addElementHandler("JavaDb2LUWSchemaObjMembers",
                    getJavaDb2LUWSchemaObjMembersHandler());
            schemaDefHandler.addElementHandler("JavaDb2LUWSchemaObjImpl", getJavaDb2LUWSchemaObjImplHandler());
            schemaDefHandler.addElementHandler("JavaDb2LUWSchemaObjImport", getJavaDb2LUWSchemaObjImportHandler());
            schemaDefHandler.addElementHandler("JavaMSSqlSchemaObjMembers", getJavaMSSqlSchemaObjMembersHandler());
            schemaDefHandler.addElementHandler("JavaMSSqlSchemaObjImpl", getJavaMSSqlSchemaObjImplHandler());
            schemaDefHandler.addElementHandler("JavaMSSqlSchemaObjImport", getJavaMSSqlSchemaObjImportHandler());
            schemaDefHandler.addElementHandler("JavaMySqlSchemaObjMembers", getJavaMySqlSchemaObjMembersHandler());
            schemaDefHandler.addElementHandler("JavaMySqlSchemaObjImpl", getJavaMySqlSchemaObjImplHandler());
            schemaDefHandler.addElementHandler("JavaMySqlSchemaObjImport", getJavaMySqlSchemaObjImportHandler());
            schemaDefHandler.addElementHandler("JavaOracleSchemaObjMembers",
                    getJavaOracleSchemaObjMembersHandler());
            schemaDefHandler.addElementHandler("JavaOracleSchemaObjImpl", getJavaOracleSchemaObjImplHandler());
            schemaDefHandler.addElementHandler("JavaOracleSchemaObjImport", getJavaOracleSchemaObjImportHandler());
            schemaDefHandler.addElementHandler("JavaPgSqlSchemaObjMembers", getJavaPgSqlSchemaObjMembersHandler());
            schemaDefHandler.addElementHandler("JavaPgSqlSchemaObjImpl", getJavaPgSqlSchemaObjImplHandler());
            schemaDefHandler.addElementHandler("JavaPgSqlSchemaObjImport", getJavaPgSqlSchemaObjImportHandler());
            schemaDefHandler.addElementHandler("JavaSybaseSchemaObjMembers",
                    getJavaSybaseSchemaObjMembersHandler());
            schemaDefHandler.addElementHandler("JavaSybaseSchemaObjImpl", getJavaSybaseSchemaObjImplHandler());
            schemaDefHandler.addElementHandler("JavaSybaseSchemaObjImport", getJavaSybaseSchemaObjImportHandler());
            schemaDefHandler.addElementHandler("JavaRamSchemaObjMembers", getJavaRamSchemaObjMembersHandler());
            schemaDefHandler.addElementHandler("JavaRamSchemaObjImpl", getJavaRamSchemaObjImplHandler());
            schemaDefHandler.addElementHandler("JavaRamSchemaObjImport", getJavaRamSchemaObjImportHandler());
            schemaDefHandler.addElementHandler("JavaXMsgSchemaImport", getJavaXMsgSchemaImportHandler());
            schemaDefHandler.addElementHandler("JavaXMsgSchemaFormatters", getJavaXMsgSchemaFormattersHandler());
            schemaDefHandler.addElementHandler("JavaXMsgClientSchemaImport",
                    getJavaXMsgClientSchemaImportHandler());
            schemaDefHandler.addElementHandler("JavaXMsgClientSchemaBody", getJavaXMsgClientSchemaBodyHandler());
            schemaDefHandler.addElementHandler("JavaXMsgRqstSchemaBody", getJavaXMsgRqstSchemaBodyHandler());
            schemaDefHandler.addElementHandler("JavaXMsgRqstSchemaImport", getJavaXMsgRqstSchemaImportHandler());
            schemaDefHandler.addElementHandler("JavaXMsgRqstSchemaWireParsers",
                    getJavaXMsgRqstSchemaWireParsersHandler());
            schemaDefHandler.addElementHandler("JavaXMsgRqstSchemaXsdElementList",
                    getJavaXMsgRqstSchemaXsdElementListHandler());
            schemaDefHandler.addElementHandler("JavaXMsgRqstSchemaXsdSpec", getJavaXMsgRqstSchemaXsdSpecHandler());
            schemaDefHandler.addElementHandler("JavaXMsgRspnSchemaBody", getJavaXMsgRspnSchemaBodyHandler());
            schemaDefHandler.addElementHandler("JavaXMsgRspnSchemaImport", getJavaXMsgRspnSchemaImportHandler());
            schemaDefHandler.addElementHandler("JavaXMsgRspnSchemaWireParsers",
                    getJavaXMsgRspnSchemaWireParsersHandler());
            schemaDefHandler.addElementHandler("JavaXMsgRspnSchemaXsdElementList",
                    getJavaXMsgRspnSchemaXsdElementListHandler());
            schemaDefHandler.addElementHandler("JavaXMsgRspnSchemaXsdSpec", getJavaXMsgRspnSchemaXsdSpecHandler());
        }
        return (schemaDefHandler);
    }

    protected CFBamXmlLoaderSchemaRefHandler getSchemaRefHandler() {
        if (schemaRefHandler == null) {
            schemaRefHandler = new CFBamXmlLoaderSchemaRefHandler(this);
        }
        return (schemaRefHandler);
    }

    protected CFBamXmlLoaderServerListFuncHandler getServerListFuncHandler() {
        if (serverListFuncHandler == null) {
            serverListFuncHandler = new CFBamXmlLoaderServerListFuncHandler(this);
            serverListFuncHandler.addElementHandler("Param", getParamHandler());
            serverListFuncHandler.addElementHandler("JavaMethodBody", getJavaMethodBodyHandler());
        }
        return (serverListFuncHandler);
    }

    protected CFBamXmlLoaderServerObjFuncHandler getServerObjFuncHandler() {
        if (serverObjFuncHandler == null) {
            serverObjFuncHandler = new CFBamXmlLoaderServerObjFuncHandler(this);
            serverObjFuncHandler.addElementHandler("Param", getParamHandler());
            serverObjFuncHandler.addElementHandler("JavaMethodBody", getJavaMethodBodyHandler());
        }
        return (serverObjFuncHandler);
    }

    protected CFBamXmlLoaderServerProcHandler getServerProcHandler() {
        if (serverProcHandler == null) {
            serverProcHandler = new CFBamXmlLoaderServerProcHandler(this);
            serverProcHandler.addElementHandler("Param", getParamHandler());
            serverProcHandler.addElementHandler("JavaMethodBody", getJavaMethodBodyHandler());
        }
        return (serverProcHandler);
    }

    protected CFBamXmlLoaderStringColHandler getStringColHandler() {
        if (stringColHandler == null) {
            stringColHandler = new CFBamXmlLoaderStringColHandler(this);
        }
        return (stringColHandler);
    }

    protected CFBamXmlLoaderStringTypeHandler getStringTypeHandler() {
        if (stringTypeHandler == null) {
            stringTypeHandler = new CFBamXmlLoaderStringTypeHandler(this);
        }
        return (stringTypeHandler);
    }

    protected CFBamXmlLoaderSubProjectHandler getSubProjectHandler() {
        if (subProjectHandler == null) {
            subProjectHandler = new CFBamXmlLoaderSubProjectHandler(this);
            subProjectHandler.addElementHandler("SchemaDef", getSchemaDefHandler());
            subProjectHandler.addElementHandler("License", getLicenseHandler());
            subProjectHandler.addElementHandler("MajorVersion", getMajorVersionHandler());
        }
        return (subProjectHandler);
    }

    protected CFBamXmlLoaderSuperClassRelationHandler getSuperClassRelationHandler() {
        if (superClassRelationHandler == null) {
            superClassRelationHandler = new CFBamXmlLoaderSuperClassRelationHandler(this);
            superClassRelationHandler.addElementHandler("RelationCol", getRelationColHandler());
        }
        return (superClassRelationHandler);
    }

    protected CFBamXmlLoaderTZDateColHandler getTZDateColHandler() {
        if (tZDateColHandler == null) {
            tZDateColHandler = new CFBamXmlLoaderTZDateColHandler(this);
        }
        return (tZDateColHandler);
    }

    protected CFBamXmlLoaderTZDateTypeHandler getTZDateTypeHandler() {
        if (tZDateTypeHandler == null) {
            tZDateTypeHandler = new CFBamXmlLoaderTZDateTypeHandler(this);
        }
        return (tZDateTypeHandler);
    }

    protected CFBamXmlLoaderTZTimeColHandler getTZTimeColHandler() {
        if (tZTimeColHandler == null) {
            tZTimeColHandler = new CFBamXmlLoaderTZTimeColHandler(this);
        }
        return (tZTimeColHandler);
    }

    protected CFBamXmlLoaderTZTimeTypeHandler getTZTimeTypeHandler() {
        if (tZTimeTypeHandler == null) {
            tZTimeTypeHandler = new CFBamXmlLoaderTZTimeTypeHandler(this);
        }
        return (tZTimeTypeHandler);
    }

    protected CFBamXmlLoaderTZTimestampColHandler getTZTimestampColHandler() {
        if (tZTimestampColHandler == null) {
            tZTimestampColHandler = new CFBamXmlLoaderTZTimestampColHandler(this);
        }
        return (tZTimestampColHandler);
    }

    protected CFBamXmlLoaderTZTimestampTypeHandler getTZTimestampTypeHandler() {
        if (tZTimestampTypeHandler == null) {
            tZTimestampTypeHandler = new CFBamXmlLoaderTZTimestampTypeHandler(this);
        }
        return (tZTimestampTypeHandler);
    }

    protected CFBamXmlLoaderTableHandler getTableHandler() {
        if (tableHandler == null) {
            tableHandler = new CFBamXmlLoaderTableHandler(this);
            tableHandler.addElementHandler("ServerListFunc", getServerListFuncHandler());
            tableHandler.addElementHandler("ServerObjFunc", getServerObjFuncHandler());
            tableHandler.addElementHandler("ServerProc", getServerProcHandler());
            tableHandler.addElementHandler("Relation", getRelationHandler());
            tableHandler.addElementHandler("SuperClassRelation", getSuperClassRelationHandler());
            tableHandler.addElementHandler("TableCol", getTableColHandler());
            tableHandler.addElementHandler("BlobCol", getBlobColHandler());
            tableHandler.addElementHandler("BoolCol", getBoolColHandler());
            tableHandler.addElementHandler("Int16Col", getInt16ColHandler());
            tableHandler.addElementHandler("EnumCol", getEnumColHandler());
            tableHandler.addElementHandler("Int32Col", getInt32ColHandler());
            tableHandler.addElementHandler("Int64Col", getInt64ColHandler());
            tableHandler.addElementHandler("UInt16Col", getUInt16ColHandler());
            tableHandler.addElementHandler("UInt32Col", getUInt32ColHandler());
            tableHandler.addElementHandler("UInt64Col", getUInt64ColHandler());
            tableHandler.addElementHandler("FloatCol", getFloatColHandler());
            tableHandler.addElementHandler("DoubleCol", getDoubleColHandler());
            tableHandler.addElementHandler("NumberCol", getNumberColHandler());
            tableHandler.addElementHandler("StringCol", getStringColHandler());
            tableHandler.addElementHandler("TextCol", getTextColHandler());
            tableHandler.addElementHandler("NmTokenCol", getNmTokenColHandler());
            tableHandler.addElementHandler("NmTokensCol", getNmTokensColHandler());
            tableHandler.addElementHandler("TokenCol", getTokenColHandler());
            tableHandler.addElementHandler("DateCol", getDateColHandler());
            tableHandler.addElementHandler("TimeCol", getTimeColHandler());
            tableHandler.addElementHandler("TimestampCol", getTimestampColHandler());
            tableHandler.addElementHandler("TZDateCol", getTZDateColHandler());
            tableHandler.addElementHandler("TZTimeCol", getTZTimeColHandler());
            tableHandler.addElementHandler("TZTimestampCol", getTZTimestampColHandler());
            tableHandler.addElementHandler("UuidCol", getUuidColHandler());
            tableHandler.addElementHandler("Index", getIndexHandler());
            tableHandler.addElementHandler("PrimaryIndex", getPrimaryIndexHandler());
            tableHandler.addElementHandler("Chain", getChainHandler());
            tableHandler.addElementHandler("ClearDep", getClearDepHandler());
            tableHandler.addElementHandler("DelDep", getDelDepHandler());
            tableHandler.addElementHandler("JavaObjMembers", getJavaObjMembersHandler());
            tableHandler.addElementHandler("JavaObjInterface", getJavaObjInterfaceHandler());
            tableHandler.addElementHandler("JavaObjImplementation", getJavaObjImplementationHandler());
            tableHandler.addElementHandler("JavaEditObjMembers", getJavaEditObjMembersHandler());
            tableHandler.addElementHandler("JavaEditObjInterface", getJavaEditObjInterfaceHandler());
            tableHandler.addElementHandler("JavaEditObjImplementation", getJavaEditObjImplementationHandler());
            tableHandler.addElementHandler("JavaDb2LUWTableImport", getJavaDb2LUWTableImportHandler());
            tableHandler.addElementHandler("JavaMSSqlTableImport", getJavaMSSqlTableImportHandler());
            tableHandler.addElementHandler("JavaMySqlTableImport", getJavaMySqlTableImportHandler());
            tableHandler.addElementHandler("JavaOracleTableImport", getJavaOracleTableImportHandler());
            tableHandler.addElementHandler("JavaPgSqlTableImport", getJavaPgSqlTableImportHandler());
            tableHandler.addElementHandler("JavaSybaseTableImport", getJavaSybaseTableImportHandler());
            tableHandler.addElementHandler("JavaRamTableImport", getJavaRamTableImportHandler());
            tableHandler.addElementHandler("JavaObjImport", getJavaObjImportHandler());
            tableHandler.addElementHandler("JavaEditObjImport", getJavaEditObjImportHandler());
            tableHandler.addElementHandler("JavaSaxLoaderImport", getJavaSaxLoaderImportHandler());
            tableHandler.addElementHandler("JavaTableImport", getJavaTableImportHandler());
            tableHandler.addElementHandler("JavaTableObjImport", getJavaTableObjImportHandler());
            tableHandler.addElementHandler("JavaTableMembers", getJavaTableMembersHandler());
            tableHandler.addElementHandler("JavaTableInterface", getJavaTableInterfaceHandler());
            tableHandler.addElementHandler("JavaTableImplementation", getJavaTableImplementationHandler());
            tableHandler.addElementHandler("JavaTableObjMembers", getJavaTableObjMembersHandler());
            tableHandler.addElementHandler("JavaTableObjInterface", getJavaTableObjInterfaceHandler());
            tableHandler.addElementHandler("JavaTableObjImplementation", getJavaTableObjImplementationHandler());
            tableHandler.addElementHandler("JavaDb2LUWTableMembers", getJavaDb2LUWTableMembersHandler());
            tableHandler.addElementHandler("JavaDb2LUWTableImplementation",
                    getJavaDb2LUWTableImplementationHandler());
            tableHandler.addElementHandler("JavaMSSqlTableMembers", getJavaMSSqlTableMembersHandler());
            tableHandler.addElementHandler("JavaMSSqlTableImplementation",
                    getJavaMSSqlTableImplementationHandler());
            tableHandler.addElementHandler("JavaMySqlTableMembers", getJavaMySqlTableMembersHandler());
            tableHandler.addElementHandler("JavaMySqlTableImplementation",
                    getJavaMySqlTableImplementationHandler());
            tableHandler.addElementHandler("JavaOracleTableMembers", getJavaOracleTableMembersHandler());
            tableHandler.addElementHandler("JavaOracleTableImplementation",
                    getJavaOracleTableImplementationHandler());
            tableHandler.addElementHandler("JavaPgSqlTableMembers", getJavaPgSqlTableMembersHandler());
            tableHandler.addElementHandler("JavaPgSqlTableImplementation",
                    getJavaPgSqlTableImplementationHandler());
            tableHandler.addElementHandler("JavaSybaseTableMembers", getJavaSybaseTableMembersHandler());
            tableHandler.addElementHandler("JavaSybaseTableImplementation",
                    getJavaSybaseTableImplementationHandler());
            tableHandler.addElementHandler("JavaRamTableMembers", getJavaRamTableMembersHandler());
            tableHandler.addElementHandler("JavaRamTableImplementation", getJavaRamTableImplementationHandler());
            tableHandler.addElementHandler("JavaSaxLoaderStartElement", getJavaSaxLoaderStartElementHandler());
            tableHandler.addElementHandler("JavaSaxLoaderEndElement", getJavaSaxLoaderEndElementHandler());
            tableHandler.addElementHandler("JavaXMsgTableImport", getJavaXMsgTableImportHandler());
            tableHandler.addElementHandler("JavaXMsgTableFormatters", getJavaXMsgTableFormattersHandler());
            tableHandler.addElementHandler("JavaXMsgRqstTableImport", getJavaXMsgRqstTableImportHandler());
            tableHandler.addElementHandler("JavaXMsgRspnTableImport", getJavaXMsgRspnTableImportHandler());
            tableHandler.addElementHandler("JavaXMsgClientTableImport", getJavaXMsgClientTableImportHandler());
            tableHandler.addElementHandler("JavaXMsgRqstTableBody", getJavaXMsgRqstTableBodyHandler());
            tableHandler.addElementHandler("JavaXMsgRspnTableBody", getJavaXMsgRspnTableBodyHandler());
            tableHandler.addElementHandler("JavaXMsgClientTableBody", getJavaXMsgClientTableBodyHandler());
        }
        return (tableHandler);
    }

    protected CFBamXmlLoaderTableAddendumHandler getTableAddendumHandler() {
        if (tableAddendumHandler == null) {
            tableAddendumHandler = new CFBamXmlLoaderTableAddendumHandler(this);
            tableAddendumHandler.addElementHandler("ServerListFunc", getServerListFuncHandler());
            tableAddendumHandler.addElementHandler("ServerObjFunc", getServerObjFuncHandler());
            tableAddendumHandler.addElementHandler("ServerProc", getServerProcHandler());
            tableAddendumHandler.addElementHandler("SuperClassRelation", getSuperClassRelationHandler());
            tableAddendumHandler.addElementHandler("Relation", getRelationHandler());
            tableAddendumHandler.addElementHandler("Index", getIndexHandler());
            tableAddendumHandler.addElementHandler("Chain", getChainHandler());
            tableAddendumHandler.addElementHandler("ClearDep", getClearDepHandler());
            tableAddendumHandler.addElementHandler("DelDep", getDelDepHandler());
        }
        return (tableAddendumHandler);
    }

    protected CFBamXmlLoaderTableColHandler getTableColHandler() {
        if (tableColHandler == null) {
            tableColHandler = new CFBamXmlLoaderTableColHandler(this);
        }
        return (tableColHandler);
    }

    protected CFBamXmlLoaderTextColHandler getTextColHandler() {
        if (textColHandler == null) {
            textColHandler = new CFBamXmlLoaderTextColHandler(this);
        }
        return (textColHandler);
    }

    protected CFBamXmlLoaderTextTypeHandler getTextTypeHandler() {
        if (textTypeHandler == null) {
            textTypeHandler = new CFBamXmlLoaderTextTypeHandler(this);
        }
        return (textTypeHandler);
    }

    protected CFBamXmlLoaderTimeColHandler getTimeColHandler() {
        if (timeColHandler == null) {
            timeColHandler = new CFBamXmlLoaderTimeColHandler(this);
        }
        return (timeColHandler);
    }

    protected CFBamXmlLoaderTimeTypeHandler getTimeTypeHandler() {
        if (timeTypeHandler == null) {
            timeTypeHandler = new CFBamXmlLoaderTimeTypeHandler(this);
        }
        return (timeTypeHandler);
    }

    protected CFBamXmlLoaderTimestampColHandler getTimestampColHandler() {
        if (timestampColHandler == null) {
            timestampColHandler = new CFBamXmlLoaderTimestampColHandler(this);
        }
        return (timestampColHandler);
    }

    protected CFBamXmlLoaderTimestampTypeHandler getTimestampTypeHandler() {
        if (timestampTypeHandler == null) {
            timestampTypeHandler = new CFBamXmlLoaderTimestampTypeHandler(this);
        }
        return (timestampTypeHandler);
    }

    protected CFBamXmlLoaderTldHandler getTldHandler() {
        if (tldHandler == null) {
            tldHandler = new CFBamXmlLoaderTldHandler(this);
            tldHandler.addElementHandler("TopDomain", getTopDomainHandler());
        }
        return (tldHandler);
    }

    protected CFBamXmlLoaderTokenColHandler getTokenColHandler() {
        if (tokenColHandler == null) {
            tokenColHandler = new CFBamXmlLoaderTokenColHandler(this);
        }
        return (tokenColHandler);
    }

    protected CFBamXmlLoaderTokenTypeHandler getTokenTypeHandler() {
        if (tokenTypeHandler == null) {
            tokenTypeHandler = new CFBamXmlLoaderTokenTypeHandler(this);
        }
        return (tokenTypeHandler);
    }

    protected CFBamXmlLoaderTopDomainHandler getTopDomainHandler() {
        if (topDomainHandler == null) {
            topDomainHandler = new CFBamXmlLoaderTopDomainHandler(this);
            topDomainHandler.addElementHandler("SchemaDef", getSchemaDefHandler());
            topDomainHandler.addElementHandler("License", getLicenseHandler());
            topDomainHandler.addElementHandler("Domain", getDomainHandler());
            topDomainHandler.addElementHandler("TopProject", getTopProjectHandler());
        }
        return (topDomainHandler);
    }

    protected CFBamXmlLoaderTopProjectHandler getTopProjectHandler() {
        if (topProjectHandler == null) {
            topProjectHandler = new CFBamXmlLoaderTopProjectHandler(this);
            topProjectHandler.addElementHandler("SchemaDef", getSchemaDefHandler());
            topProjectHandler.addElementHandler("License", getLicenseHandler());
            topProjectHandler.addElementHandler("MajorVersion", getMajorVersionHandler());
            topProjectHandler.addElementHandler("SubProject", getSubProjectHandler());
        }
        return (topProjectHandler);
    }

    protected CFBamXmlLoaderUInt16ColHandler getUInt16ColHandler() {
        if (uInt16ColHandler == null) {
            uInt16ColHandler = new CFBamXmlLoaderUInt16ColHandler(this);
        }
        return (uInt16ColHandler);
    }

    protected CFBamXmlLoaderUInt16TypeHandler getUInt16TypeHandler() {
        if (uInt16TypeHandler == null) {
            uInt16TypeHandler = new CFBamXmlLoaderUInt16TypeHandler(this);
        }
        return (uInt16TypeHandler);
    }

    protected CFBamXmlLoaderUInt32ColHandler getUInt32ColHandler() {
        if (uInt32ColHandler == null) {
            uInt32ColHandler = new CFBamXmlLoaderUInt32ColHandler(this);
        }
        return (uInt32ColHandler);
    }

    protected CFBamXmlLoaderUInt32TypeHandler getUInt32TypeHandler() {
        if (uInt32TypeHandler == null) {
            uInt32TypeHandler = new CFBamXmlLoaderUInt32TypeHandler(this);
        }
        return (uInt32TypeHandler);
    }

    protected CFBamXmlLoaderUInt64ColHandler getUInt64ColHandler() {
        if (uInt64ColHandler == null) {
            uInt64ColHandler = new CFBamXmlLoaderUInt64ColHandler(this);
        }
        return (uInt64ColHandler);
    }

    protected CFBamXmlLoaderUInt64TypeHandler getUInt64TypeHandler() {
        if (uInt64TypeHandler == null) {
            uInt64TypeHandler = new CFBamXmlLoaderUInt64TypeHandler(this);
        }
        return (uInt64TypeHandler);
    }

    protected CFBamXmlLoaderUuidColHandler getUuidColHandler() {
        if (uuidColHandler == null) {
            uuidColHandler = new CFBamXmlLoaderUuidColHandler(this);
        }
        return (uuidColHandler);
    }

    protected CFBamXmlLoaderUuidGenHandler getUuidGenHandler() {
        if (uuidGenHandler == null) {
            uuidGenHandler = new CFBamXmlLoaderUuidGenHandler(this);
        }
        return (uuidGenHandler);
    }

    protected CFBamXmlLoaderUuidTypeHandler getUuidTypeHandler() {
        if (uuidTypeHandler == null) {
            uuidTypeHandler = new CFBamXmlLoaderUuidTypeHandler(this);
        }
        return (uuidTypeHandler);
    }

    // Root Element Handler Resolver Factory

    protected CFBamSaxRootHandler getSaxRootHandler() {
        if (saxRootHandler == null) {
            saxRootHandler = new CFBamSaxRootHandler(this);
            saxRootHandler.addElementHandler("MSSBam", getSaxDocHandler());
        }
        return (saxRootHandler);
    }

    // Root Element Handler

    /*
     *   CFBamSaxRootHandler XML SAX Root Element Handler implementation
     */
    public class CFBamSaxRootHandler extends CFLibXmlCoreElementHandler {
        public CFBamSaxRootHandler(CFBamXmlLoader saxLoader) {
            super(saxLoader);
        }

        public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException {
        }

        public void endElement(String uri, String localName, String qName) throws SAXException {
        }
    }

    // Document Element Handler Resolver Factory

    protected CFBamSaxDocHandler getSaxDocHandler() {
        if (saxDocHandler == null) {
            saxDocHandler = new CFBamSaxDocHandler(this);
            saxDocHandler.addElementHandler("Tld", getTldHandler());
        }
        return (saxDocHandler);
    }

    // Document Element Handler

    /*
     *   CFBamSaxDocHandler XML SAX Doc Element Handler implementation
     */
    public class CFBamSaxDocHandler extends CFLibXmlCoreElementHandler {
        public CFBamSaxDocHandler(CFBamXmlLoader saxLoader) {
            super(saxLoader);
        }

        public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException {
            // AnyObj attributes
            String attrId = null;
            String attrDescription = null;
            String attrName = null;
            String attrRevision = null;
            String attrProjectRoot = null;

            // Attribute Extraction
            String attrLocalName;
            int numAttrs;
            int idxAttr;

            final String S_ProcName = "startElement";
            final String S_LocalNameIndex = "LocalName";

            assert qName.equals("MSSBam");

            CFBamXmlLoader saxLoader = (CFBamXmlLoader) getParser();
            if (saxLoader == null) {
                throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                        "getParser()");
            }

            ICFBamSchemaObj schemaObj = saxLoader.getSchemaObj();
            if (schemaObj == null) {
                throw CFLib.getDefaultExceptionFactory().newNullArgumentException(getClass(), S_ProcName, 0,
                        "getParser().getSchemaObj()");
            }

            numAttrs = attrs.getLength();
            for (idxAttr = 0; idxAttr < numAttrs; idxAttr++) {
                attrLocalName = attrs.getLocalName(idxAttr);
                if (attrLocalName.equals("Id")) {
                    if (attrId != null) {
                        throw CFLib.getDefaultExceptionFactory().newUniqueIndexViolationException(getClass(),
                                S_ProcName, S_LocalNameIndex, attrLocalName);
                    }
                    attrId = attrs.getValue(idxAttr);
                } else if (attrLocalName.equals("Description")) {
                    if (attrDescription != null) {
                        throw CFLib.getDefaultExceptionFactory().newUniqueIndexViolationException(getClass(),
                                S_ProcName, S_LocalNameIndex, attrLocalName);
                    }
                    attrDescription = attrs.getValue(idxAttr);
                } else if (attrLocalName.equals("Name")) {
                    if (attrName != null) {
                        throw CFLib.getDefaultExceptionFactory().newUniqueIndexViolationException(getClass(),
                                S_ProcName, S_LocalNameIndex, attrLocalName);
                    }
                    attrName = attrs.getValue(idxAttr);
                } else if (attrLocalName.equals("Revision")) {
                    if (attrRevision != null) {
                        throw CFLib.getDefaultExceptionFactory().newUniqueIndexViolationException(getClass(),
                                S_ProcName, S_LocalNameIndex, attrLocalName);
                    }
                    attrRevision = attrs.getValue(idxAttr);
                } else if (attrLocalName.equals("ProjectRoot")) {
                    if (attrProjectRoot != null) {
                        throw CFLib.getDefaultExceptionFactory().newUniqueIndexViolationException(getClass(),
                                S_ProcName, S_LocalNameIndex, attrLocalName);
                    }
                    attrProjectRoot = attrs.getValue(idxAttr);
                } else if (attrLocalName.equals("schemaLocation")) {
                    // ignored
                } else {
                    throw CFLib.getDefaultExceptionFactory().newUnrecognizedAttributeException(getClass(),
                            S_ProcName, getLocationInfo(), attrLocalName);
                }
            }

            if ((attrName == null) || (attrName.length() <= 0)) {
                throw CFLib.getDefaultExceptionFactory().newEmptyArgumentException(getClass(), S_ProcName, 0,
                        "Name");
            }

            if ((attrRevision == null) || (attrRevision.length() <= 0)) {
                throw CFLib.getDefaultExceptionFactory().newEmptyArgumentException(getClass(), S_ProcName, 0,
                        "Revision");
            }

            if ((attrDescription == null) || (attrDescription.length() <= 0)) {
                throw CFLib.getDefaultExceptionFactory().newEmptyArgumentException(getClass(), S_ProcName, 0,
                        "Description");
            }

            if ((attrProjectRoot == null) || (attrProjectRoot.length() <= 0)) {
                throw CFLib.getDefaultExceptionFactory().newEmptyArgumentException(getClass(), S_ProcName, 0,
                        "ProjectRoot");
            }

            getLog().message("Loading MSSBam Name=\"" + attrName + "\", Revision = \"" + attrRevision
                    + "\", Description=\"" + attrDescription + "\", ProjectRoot=\"" + attrProjectRoot + "\"\n");

            CFLibXmlCoreContext curContext = getParser().getCurContext();
            curContext.putNamedValue("Id", attrId);
            curContext.putNamedValue("Description", attrDescription);
            curContext.putNamedValue("Name", attrName);
            curContext.putNamedValue("Revision", attrRevision);
            curContext.putNamedValue("ProjectRoot", attrProjectRoot);

            curContext.putNamedValue("Object", getTenant());
        }

        public void endElement(String uri, String localName, String qName) throws SAXException {
            final String S_ProcName = "endElement";
            CFLibXmlCoreContext curContext = getParser().getCurContext();
            String projectRootName = (String) curContext.getNamedValue("ProjectRoot");
            String name = (String) curContext.getNamedValue("Name");
            String description = (String) curContext.getNamedValue("Description");
            ICFBamTenantObj tenant = (ICFBamTenantObj) curContext.getNamedValue("Object");
            if (tenant != null) {
                ICFLibAnyObj rootDef;
                try {
                    rootDef = tenant.getNamedObject(projectRootName);
                } catch (CFLibRuntimeException e) {
                    rootDef = null;
                }

                if (rootDef instanceof ICFBamVersionObj) {
                    definedProjectVersion = (ICFBamVersionObj) rootDef;
                    getLog().message("Parsed " + name + " " + description);
                } else {
                    definedProjectVersion = null;
                    throw CFLib.getDefaultExceptionFactory().newRuntimeException(getClass(), S_ProcName,
                            getLocationInfo() + " Loaded Business Application Model does not define Project Root \""
                                    + projectRootName + "\"");
                }
            }
        }
    }

    // Parse a file

    public void parseFile(String url) {
        parse(url);
    }
}