code: String absolutize(String baseURI, String systemId, boolean nice)
              throws MalformedURLException, SAXException {
          // FIXME normalize system IDs -- when?
          // - Convert to UTF-8
          // - Map reserved and non-ASCII characters to %HH
  
          try {
              if (baseURI == null) {
                  if (XmlParser.uriWarnings) {
                      warn("No base URI; hope this SYSTEM id is absolute: "
                              + systemId);
                  }
                  return new URL(systemId).toString();
              } else {
                  return new URL(new URL(baseURI), systemId).toString();
              }
          } catch (MalformedURLException e) {
              // Let unknown URI schemes pass through unless we need
              // the JVM to map them to i/o streams for us...
              if (!nice) {
                  throw e;
              }
  
              // sometimes sysids for notations or unparsed entities
              // aren't really URIs...
              warn("Can't absolutize SYSTEM id: " + e.getMessage());
              return systemId;
          }
      }
docs: (temporarily) package-visible for external entity decls