POI Files | How do I create a GPX File?
Here's a brief explanation of the GPX formatting. The main structure is defined by Topografix.com's schema. The waypoint extension, as denoted with the namespace prefix "gpxx" is defined by Garmin's own schema. A file is not a valid GPX, if the structure of a file does not conform to the semantics defined by these two schemas.
For my explanation, I've included a sample location from one of my files.
Each location is designated by a node labeled "wpt" (as in Waypoint). It has two attributes for coordinates. The <name> element, which is how this location will shows up on your unit, is the only other element required (in addition to the 2 coordinates) to make this node valid. All other elements are optional.
The comment (<cmt>), description (<desc>), link (<link>), Symbol ( <sym>), Display mode (<gpxx:DisplayMode>), and Categories (<gpxx:Categories>) can be viewed in appropriate fields when you open the GPX with MapSource. They currently are not utilized by your GPSr. In my files, I use "state/city" info in the comment element. This way when I open the GPX in MapSource, I can see immediately where this is located. I also put store hours, direction hints, etc. in the description element, hoping that with future POI loader, these will be displayed in GPSr.
The whole address block is ignored by MapSource, but is used by the POI loader to be displayed in your GPSr.
Next comes the important element. If you have a phone number in the <gpxx:PhoneNumber> element, your bluetooth capable unit will associate the location with this dialable number (and see the dial icon). You can have zero or more phone numbers defined for each location (uniquely defined with an attribute), but your POI loader will use the default one without any attribute.
<wpt lat="33.50927" lon="-112.04624">
<link href="http://www.chipotle.com/faxmenus/543.pdf" />
<gpxx:StreetAddress>1660 E Camelback Rd</gpxx:StreetAddress>