GPX is XML defined by an XML Schema from TopoGrafix. This page follows the
GPX 1.1 schema and the
GPX 1.0 schema, read
2026-11-12. Version 1.1 uses the namespace
http://www.topografix.com/GPX/1/1. Child elements must appear in the order
listed; all are optional unless marked.
gpx (root)
| Item | Type | Meaning |
|---|---|---|
@version | required, fixed 1.1 | Schema version. |
@creator | required string | The program or device that made the file. |
metadata | metadataType | About the file. |
wpt | wptType, any number | Waypoints. |
rte | rteType, any number | Routes. |
trk | trkType, any number | Tracks. |
extensions | extensionsType | Elements from other namespaces. |
metadata
| Element | Type | Meaning |
|---|---|---|
name | string | Name of the file. |
desc | string | Description. |
author | personType: name, email (@id, @domain), link | The person or organisation that made it. |
copyright | copyrightType: @author (required), year, license (URI) | Copyright and licence. |
link | linkType: @href (required), text, type (MIME type); any number | Related web pages. |
time | dateTime | When the file was made, in UTC (ISO 8601). |
keywords | string | For search engines. |
bounds | boundsType: @minlat, @minlon, @maxlat, @maxlon (all required) | Extent of the data. |
extensions |
Points: wpt, rtept, trkpt
All three are wptType.
| Item | Type | Meaning |
|---|---|---|
@lat | required latitudeType | Degrees, −90 to 90, WGS 84. |
@lon | required longitudeType | Degrees, −180 up to but not including 180. |
ele | decimal | Elevation in metres. |
time | dateTime | UTC time of the point. |
magvar | degreesType (0 to under 360) | Magnetic variation. |
geoidheight | decimal | Height of the geoid above the WGS 84 ellipsoid, in metres (as in NMEA GGA). |
name | string | The GPS name of the point. |
cmt | string | GPS comment, sent to the device. |
desc | string | Description for the user. |
src | string | Source of the data, such as a map or device. |
link | linkType, any number | Links about the point. |
sym | string | Symbol name shown on the device. |
type | string | A classification. |
fix | fixType | none, 2d, 3d, dgps or pps (military signal). none means no fix; absence means unknown. |
sat | non-negative integer | Satellites used. |
hdop, vdop, pdop | decimal | Horizontal, vertical and position dilution of precision. |
ageofdgpsdata | decimal | Seconds since the last DGPS update. |
dgpsid | dgpsStationType (0 to 1023) | DGPS station ID. |
extensions | Any elements from other namespaces (processed laxly). |
Routes and tracks
rte and trk share their first elements: name,
cmt, desc, src, link (any number),
number (GPS route or track number), type and
extensions. Then rte has any number of rtept,
and trk any number of trkseg.
trkseg holds trkpt elements in order, then
extensions.
Other types
The schema also defines ptType (@lat, @lon,
ele, time) and ptsegType (a list of
pt); no core element uses them.
GPX 1.0
Version 1.0, namespace http://www.topografix.com/GPX/1/0,
version="1.0", differs in these ways:
- No
metadataelement:name,desc,author,email,url,urlname,time,keywordsandboundsare children ofgpx. urlandurlnameinstead oflink.- Track points may have
courseandspeed. - No
extensionselement: elements from other namespaces may appear directly.