docs: public boolean importXML(BaseTable table, String filename, InputStream inStream)
      {
      	Record record = table.getRecord();
          XmlInOut.enableAllBehaviors(record, false, false);
          DocumentBuilder db = Utility.getDocumentBuilder();
          DocumentBuilder stringdb = Utility.getDocumentBuilder();
          // Parse the input file
          Document doc = null;
          try {
              synchronized (db)
              {
                  if (inStream != null)
                      doc = db.parse(inStream);
                  else
                      doc = db.parse(new File(filename));
              }
          } catch (FileNotFoundException e) {
          	Utility.getLogger().info("Table input file not found: " + filename);
              return false;   // Error
          } catch (SAXException e) {
              Debug.print(e);
              return false;   // Error
          } catch (IOException e) {
              Debug.print(e);
              return false;   // Error
          } catch (Exception e) {
              Debug.print(e);
              return false;   // Error
          }
  
          try {
              String databaseName = null;
              int iEndDB = filename.lastIndexOf(System.getProperty("file.separator", "/"));
              if (iEndDB == -1)
                  iEndDB = filename.lastIndexOf('/');
              if (iEndDB != -1)
              {
                  int iStartDB = filename.lastIndexOf(System.getProperty("file.separator", "/"), iEndDB - 1);
                  if (iStartDB == -1)
                      iStartDB = filename.lastIndexOf('/', iEndDB - 1);
                  iStartDB++;     // Start
                  databaseName = filename.substring(iStartDB, iEndDB);
              }
  
              if (record == null)
                  this.parseXSL();    // Parse the XSL/DTD and create the tables and structures
  
              Element elParent = doc.getDocumentElement();
              RecordParser parser = new RecordParser(elParent);
              while (parser.next(stringdb) != null)
              {
                  Node elChild = parser.getChildNode();
                  String strName = parser.getName();
                  this.parseRecord(stringdb, (Element)elChild, strName, databaseName, table, null, false);
              }
          } catch (Throwable t) {
              t.printStackTrace();
              return false;   // Error
          }
          XmlInOut.enableAllBehaviors(record, true, true);
          return true;    // Success
      }