Have you considered integrating with FileIO? It might be as simple as this (and adding the FileIO-style load and save methods) after registering GPX.jl:
add_format(format"GPX", (), ".gpx")
add_loader(format"GPX", :GPX)
add_saver(format"GPX", :GPX)
https://github.com/JuliaIO/FileIO.jl