code: private void loadXmlConfiguration(URL url, I_CmsXmlConfiguration configuration) throws SAXException, IOException {
  
          // generate the file URL for the XML input
          URL fileUrl = new URL(url, configuration.getXmlFileName());
          CmsLog.INIT.info(Messages.get().getBundle().key(Messages.INIT_LOAD_CONFIG_XMLFILE_1, fileUrl));
          // Check transformation rule here so we have the XML file / XSLT file log output together
          boolean hasTransformation = hasTransformation();
  
          // create a backup of the configuration
          backupXmlConfiguration(configuration);
  
          // instantiate Digester and enable XML validation
          m_digester = new Digester();
          m_digester.setUseContextClassLoader(true);
          //TODO: For this to work with transformed configurations, we need to add the correct DOCTYPE declarations to the transformed files
          m_digester.setValidating(true);
          m_digester.setEntityResolver(new CmsXmlEntityResolver(null));
          m_digester.setRuleNamespaceURI(null);
          m_digester.setErrorHandler(new CmsXmlErrorHandler(fileUrl.getFile()));
  
          // add this class to the Digester
          m_digester.push(configuration);
  
          configuration.addXmlDigesterRules(m_digester);
  
          InputSource inputSource = null;
          if (hasTransformation) {
              try {
                  inputSource = transformConfiguration(url, configuration);
              } catch (Exception e) {
                  LOG.error("Error transforming " + configuration.getXmlFileName() + ": " + e.getLocalizedMessage(), e);
              }
          }
          if (inputSource == null) {
              inputSource = new InputSource(fileUrl.openStream());
          }
          // start the parsing process
          m_digester.parse(inputSource);
      }
docs: Loads the OpenCms configuration from the given XML URL.<p>
  
  @param url the base URL of the XML configuration to load
  @param configuration the configuration to load
  @throws SAXException in case of XML parse errors
  @throws IOException in case of file IO errors