/**
   * Decode EndField from XML.
   *
   * @return A new Field created with data read
   */
  public Header endElement(String qName) {
    logger.debug("end element " + qName);

    // in Field already ?
    if (inField) {
      myFieldFactory.endElement(qName);
      if (qName.equals(Element.TAG_ELEMENT_FIELD)) {
        logger.debug("Adding Field");
        inField = false;
        myHeader.add(myFieldFactory.endElement(qName));
      }
    }
    // is it a Header ?
    else if (qName.equals(Element.TAG_ELEMENT_HEADER)) {
      logger.debug("Ending : Header");
      inHeader = false;
      return myHeader;
    } else {
      logger.warn("Don't know how to deal with tag");
    }
    return null;
  }