@Override
  public void generate(XmlWriter w, ExtensionProfile extProfile) throws IOException {

    ArrayList<XmlWriter.Attribute> attrs = new ArrayList<XmlWriter.Attribute>();

    if (label != null) {
      attrs.add(new XmlWriter.Attribute("label", label));
    }

    if (lat != null) {
      attrs.add(new XmlWriter.Attribute("lat", lat.toString()));
    }

    if (lon != null) {
      attrs.add(new XmlWriter.Attribute("lon", lon.toString()));
    }

    if (elev != null) {
      attrs.add(new XmlWriter.Attribute("elev", elev.toString()));
    }

    if (time != null) {
      attrs.add(new XmlWriter.Attribute("time", time.toString()));
    }

    generateStartElement(w, Namespaces.gNs, "geoPt", attrs, null);

    // Invoke ExtensionPoint.
    generateExtensions(w, extProfile);

    w.endElement(Namespaces.gNs, "geoPt");
  }