docs: public void execute(Task task, Database dbModel, DescriptorRepository objModel) throws BuildException
      {
          if (_outputFile == null)
          {
              throw new BuildException("No output file specified");
          }
          if (_outputFile.exists() && !_outputFile.canWrite())
          {
              throw new BuildException("Cannot overwrite output file "+_outputFile.getAbsolutePath());
          }
  
          try
          {
              FileWriter           outputWriter = new FileWriter(_outputFile);
              DataDtdWriter        dtdWriter    = new DataDtdWriter();
              DdlUtilsDataHandling handling     = new DdlUtilsDataHandling();
  
              handling.setModel(dbModel, objModel);
              handling.getDataDTD(outputWriter);
              outputWriter.close();
              task.log("Written DTD to "+_outputFile.getAbsolutePath(), Project.MSG_INFO);
          }
          catch (Exception ex)
          {
              throw new BuildException("Failed to write to output file "+_outputFile.getAbsolutePath(), ex);
          }
      }