// ---------------------------------------------------------------------------
  private String buildResultTable_dojo_JD(java.util.List list)
      throws org.openeai.config.EnterpriseConfigurationObjectException {
    String result = new String();

    // generate XML from results
    Document aDoc = new DocumentImpl();
    Element t = aDoc.createElement("retroJobDetailTable_dojo");

    Element headEle = aDoc.createElement("Header");
    headEle.setAttribute("heffdate", "Effective Date");
    headEle.setAttribute("hjobchgcode", "Job Change Reason");
    headEle.setAttribute("hperschgdate", "Personnel Change Date");
    t.appendChild(headEle);

    ListIterator results = list.listIterator();
    while (results.hasNext()) {
      JobDetail jobDetail = (JobDetail) results.next();

      Element dataEle = aDoc.createElement("Data");
      dataEle.setAttribute(
          "effdate",
          jobDetail.getEffectiveDate() == null ? "" : formatDate(jobDetail.getEffectiveDate()));
      dataEle.setAttribute(
          "jobchgcode",
          jobDetail.getValidJobChangeReason() == null
              ? ""
              : jobDetail.getValidJobChangeReason().getDescription());
      dataEle.setAttribute(
          "perschgdate",
          jobDetail.getPersonnelChangeDate() == null
              ? ""
              : formatDate(jobDetail.getPersonnelChangeDate()));
      t.appendChild(dataEle);
    }

    aDoc.appendChild(t);
    dumpNode(aDoc);

    try {
      // transform XML using XSL file
      result = transform(aDoc, "jobselection.xsl");
      String tmp = new String("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>");
      result = result.substring(tmp.length());
    } catch (Exception e) {
      e.printStackTrace();
      result = "Error transforming results.";
    }
    logger.debug("The JobDetail table constructed by dojo");
    logger.debug("\t" + result);
    return result;
  }