There are two common ways to store elevation data, the first is by point the second is by contour.
Storing a selection of points suffers because you're limited by the granularity of your data, if you only hold an elevation each metre of surface area you have to interpolate the distance in between. You also end up with a lot of redundant data (after all large portions of land are effectively flat).
If you look at almost any good mountaineering map you'll notice that height is not indicated by a sequence of dots in a grid. It's represented by contours, these lines (of varying size and shape circles encircle peaks and mountains. As you can imagine it's a lot more efficient to store a line of coordinates which are at the same height than every point on the globe.
In terms of actual data structures I would suggest the following:
<contours>
<contour height="123">
<point lng="53.2852" lat="-3.5788" />
<point lng="53.2952" lat="-3.5288" />
</contour>
</contours>
When your application is passed a point it should determine which is the innermost contour it lies within (perhaps add a ParentContourID to help?). That will be the height of your point (or you can interpolate from the nearest two).