code: public static boolean isAbsoluteURI(String systemId)
    {
       /** http://www.ietf.org/rfc/rfc2396.txt
        *   Authors should be aware that a path segment which contains a colon
        * character cannot be used as the first segment of a relative URI path
        * (e.g., "this:that"), because it would be mistaken for a scheme name.
       **/
       /** 
        * %REVIEW% Can we assume here that systemId is a valid URI?
        * It looks like we cannot ( See discussion of this common problem in 
        * Bugzilla Bug 22777 ). 
       **/
       //"fix" for Bugzilla Bug 22777
      if(isWindowsAbsolutePath(systemId)){
          return false;
       }
      
      final int fragmentIndex = systemId.indexOf('#');
      final int queryIndex = systemId.indexOf('?');
      final int slashIndex = systemId.indexOf('/');
      final int colonIndex = systemId.indexOf(':');
      
      //finding substring  before '#', '?', and '/' 
      int index = systemId.length() -1;
      if(fragmentIndex > 0) 
          index = fragmentIndex;
      if((queryIndex > 0) && (queryIndex <index)) 
          index = queryIndex;
      if((slashIndex > 0) && (slashIndex <index))
          index = slashIndex; 
      // return true if there is ':' before '#', '?', and '/'
      return ((colonIndex >0) && (colonIndex<index));
      
    }
docs: Return true if the systemId denotes an absolute URI .
  
  @param systemId The systemId string
  @return true if the systemId is an an absolute URI