docs: public void importThisArchive(File file)
      {
          String filename = file.getName();
          int iIndex = filename.lastIndexOf('.');
          if ((iIndex == -1)
              || (!filename.substring(iIndex).equalsIgnoreCase(".XML")))
                  return;   // This is not an XML file
          filename = filename.substring(0, iIndex);
          Record record = null;
          String className = file.getPath();
          className = className.substring(0, className.lastIndexOf('.'));
          int iStartClass = className.toUpperCase().indexOf(archiveRoot.toUpperCase()) + archiveRoot.length() + 1;
          className = className.substring(iStartClass);
          char chFileSeparator = System.getProperty("file.separator").charAt(0);
          className = className.replace(chFileSeparator, '.');
          String databaseName = className.substring(0, className.indexOf('.'));
          className = className.substring(className.indexOf('.') + 1);
          //x strClassName = Constants.ROOT_PACKAGE + strClassName;
          String strRecordClassName = className.substring(className.lastIndexOf('.') + 1);
          int iDatabaseType = DBConstants.SHARED_DATA;
          if ((databaseName != null) && (databaseName.length() > 0))
          {
              if (databaseName.endsWith(BaseDatabase.USER_SUFFIX))
              {
                  databaseName = databaseName.substring(0, databaseName.length() - BaseDatabase.USER_SUFFIX.length());
                  iDatabaseType = DBConstants.USER_DATA;
              }
              else if (databaseName.endsWith(BaseDatabase.SHARED_SUFFIX))
                  databaseName = databaseName.substring(0, databaseName.length() - BaseDatabase.SHARED_SUFFIX.length());
          }
          if (!DatabaseInfo.DATABASE_INFO_FILE.equalsIgnoreCase(strRecordClassName))
          {
          	BaseDatabase database = null;
              if ((databaseName != null) && (databaseName.length() > 0))
              	if (databaseName.contains("_"))	// Alternate database name
              		database = (BaseDatabase)((BaseApplication)this.getTask().getApplication()).getDatabase(databaseName, iDatabaseType, null);
              if (database == null)
              	record = Record.makeRecordFromClassName(className, this);
              else
              {
                  record = Record.makeRecordFromClassName(className, this, false, false);
                  /*BaseTable table =*/ database.makeTable(record);	// Force a table from this alternate database
                  record.init(this);
              }
          }
          else
          {
              className = DatabaseInfoModel.THICK_CLASS;
              record = Record.makeRecordFromClassName(className, this, false, true);
              ((DatabaseInfoModel)record).setDatabaseName(databaseName);
              record.init(this);
          } 
          if (record == null)
          {
          	if (Boolean.TRUE.toString().equalsIgnoreCase(this.getProperty("SkipIfNoRecord")))
          	{
          		System.out.println("Skipping record " + filename);
          		return;
          	}
              record = new XmlRecord();
              ((XmlRecord)record).setTableName(filename);
              ((XmlRecord)record).setDatabaseName(databaseName);
              ((XmlRecord)record).setDatabaseType(DBConstants.REMOTE);
              record.init(this);
          }
  //if (record.getDatabaseType() != DBConstants.TABLE)
  //    return;
          databaseName = record.getDatabaseName();
          Utility.getLogger().info("Record: " + filename + "  Database: " + databaseName);// + "  Path: " + fileDir.getPath());
          if (!this.importXML(record.getTable(), file.getPath(), null))
              System.exit(1);
          record.free();
      }