private static object getValueFromElement(Element e)
    {
      if (e.Datatype == Schema.Datatype.DATE || e.Datatype == Schema.Datatype.DATETIME)
      {
        return e.GetValueAsDatetime().ToSystemDateTime();
      }
      else if (e.Datatype == Schema.Datatype.STRING)
      {
        return e.GetValueAsString();
      }
      else if (e.Datatype == Schema.Datatype.CHAR)
      {
        return e.GetValueAsChar();
      }
      else if (e.Datatype == Schema.Datatype.INT32)
      {
        return e.GetValueAsInt32();
      }
      else if (e.Datatype == Schema.Datatype.INT64)
      {
        return e.GetValueAsInt64();
      }
      else if (e.Datatype == Schema.Datatype.FLOAT32)
      {
        return e.GetValueAsFloat32();
      }
      else if (e.Datatype == Schema.Datatype.FLOAT64)
      {
        return e.GetValueAsFloat64();
      }
      else
      {
        // unhandled return type
        return null;
      }

    }