Hi there and welcome to the forum!
I presume that you have read this FAQ:
http://www.airnavsystems.com/forum/index.php?topic=9.0The formats are as follows:
<MODESMESSAGE>
   <DATETIME>20070622141943</DATETIME> -  YYYYMMDDHHMMSS
   <MODES>400F2B</MODES> - 6 figure Hex code
   <CALLSIGN>BAW134</CALLSIGN> - Alpha numeric (7 chrs maximum)
   <ALTITUDE>120300</ALTITUDE> - Altitude in feet amsl (not a good example, must be a typing error or an incorrectly reading Mode S box!)
   <GROUNDSPEED>451</GROUNDSPEED> - In Nautical MPH
   <TRACK>234</TRACK> - Degrees magnetic relative to magnetic north
   <VRATE>0</VRATE> - > Rate of climb or descent in feet per minute with climb being “+” and descent “-“
   <AIRSPEED></AIRSPEED> - In Nautical MPH
   <LATITUDE>-14.1102</LATITUDE> - Decimal degrees of Latitude, with East being “+” and West “-“
   <LONGITUDE>-31.5789</LONGITUDE> - Decimal degrees of Longitude, with North being “+” and South “-“
</MODESMESSAGE>
And yes, the data is "optional" as some or all of it might be sent by the aircraft.  All units are standard aviation units.
Hope this helps.
Allocator