code: public Hashtable getEnvironmentHash()
    {
      // Setup a hash to store various environment information in
      Hashtable hash = new Hashtable();
  
      // Call various worker methods to fill in the hash
      //  These are explicitly separate for maintenance and so 
      //  advanced users could call them standalone
      checkJAXPVersion(hash);
      checkProcessorVersion(hash);
      checkParserVersion(hash);
      checkAntVersion(hash);
      checkDOMVersion(hash);
      checkSAXVersion(hash);
      checkSystemProperties(hash);
  
      return hash;
    }
docs: Fill a hash with basic environment settings that affect Xalan.
  
  <p>Worker method called from various places.</p>
  <p>Various system and CLASSPATH, etc. properties are put into
  the hash as keys with a brief description of the current state
  of that item as the value.  Any serious problems will be put in
  with a key that is prefixed with {@link #ERROR 'ERROR.'} so it
  stands out in any resulting report; also a key with just that
  constant will be set as well for any error.</p>
  <p>Note that some legitimate cases are flaged as potential
  errors - namely when a developer recompiles xalan.jar on their
  own - and even a non-error state doesn't guaruntee that
  everything in the environment is correct.  But this will help
  point out the most common classpath and system property
  problems that we've seen.</p>
  
  @return Hashtable full of useful environment info about Xalan
  and related system properties, etc.