public RelationalGroup derive(final boolean preserveElementInstanceIds) {
    final RelationalGroup g = (RelationalGroup) super.derive(preserveElementInstanceIds);
    g.footer = (GroupFooter) footer.derive(preserveElementInstanceIds);
    g.header = (GroupHeader) header.derive(preserveElementInstanceIds);

    g.registerAsChild(g.footer);
    g.registerAsChild(g.header);
    return g;
  }
  /**
   * Clones this Element.
   *
   * @return a clone of this element.
   */
  public RelationalGroup clone() {
    final RelationalGroup g = (RelationalGroup) super.clone();
    g.footer = (GroupFooter) footer.clone();
    g.header = (GroupHeader) header.clone();

    g.registerAsChild(g.footer);
    g.registerAsChild(g.header);
    return g;
  }