code: @Override
      public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
          if (localName.compareToIgnoreCase(GPXTags.GPX) == 0) {
              version = attributes.getValue(GPXTags.VERSION);
              creator = attributes.getValue(GPXTags.CREATOR);
          } else if (localName.compareToIgnoreCase(GPXTags.BOUNDS) == 0) {
              minLat = Double.parseDouble(attributes.getValue(GPXTags.MINLAT));
              maxLat = Double.parseDouble(attributes.getValue(GPXTags.MAXLAT));
              minLon = Double.parseDouble(attributes.getValue(GPXTags.MINLON));
              maxLon = Double.parseDouble(attributes.getValue(GPXTags.MAXLON));
          }
          // Clear content buffer
  
          getContentBuffer()
                  .delete(0, getContentBuffer().length());
          // Store name of current element in stack
          getElementNames()
                  .push(qName);
      }
docs: Fires whenever an XML start markup is encountered. It takes general
  information about the document. It change the ContentHandler to parse
  specific informations when <wpt>, <rte> or <trk> markup are found.
  
  @param uri URI of the local element
  @param localName Name of the local element (without prefix)
  @param qName qName of the local element (with prefix)
  @param attributes Attributes of the local element (contained in the
  markup)
  @throws SAXException Any SAX exception, possibly wrapping another
  exception