/**
   * This will return a clone of this <code>ProcessingInstruction</code>.
   *
   * @return <code>Object</code> - clone of this <code>ProcessingInstruction</code>.
   */
  @Override
  public ProcessingInstruction clone() {
    ProcessingInstruction pi = (ProcessingInstruction) super.clone();

    // target and rawdata are immutable and references copied by
    // Object.clone()

    // Create a new Map object for the clone (since Map isn't Cloneable)
    if (mapData != null) {
      pi.mapData = parseData(rawData);
    }
    return pi;
  }