Each UDDF file begins with the statement <uddf version="x.y.z"> (with x, y, and z integers), and ends with </uddf> as last statement. In-between these two statements all other sections are given.
To support cross-referencing on data a certain order of the sections is compulsory. Even if there are no cross-references in an UDDF file this order — see example below — must be kept!
The current version is 3.2.2.
<business>, <decomodel>, <divecomputercontrol>, <diver>, <divesite>, <divetrip>, <gasdefinitions>, <generator>, <maker>, <mediadata>, <profiledata>, <tablegeneration>
<uddf version="3.2.2"> <!-- The order given in this example is compulsory and must not be altered! --> <generator> <!-- "fingerprint" of the program generating the UDDF file --> </generator> <mediadata> <!-- declaration of all audio, image, and video files for later cross-referencing inside the UDDF file --> </mediadata> <maker> <!-- declaration of all manufacturer data for later cross-referencing inside the UDDF file --> </maker> <business> <!-- declaration of all shop data for later cross-referencing inside the UDDF file --> </business> <diver> <!-- description of the owner of this UDDF file and his five buddies --> </diver> <divesite> <!-- description of all dive spots --> </divesite> <gasdefinitions> <!-- description of the breathing gases used by the owner of the UDDF file --> </gasdefinitions> <decomodel> <!-- description of the decompression model parameters used --> </decomodel> <profiledata> <!-- description of the individual dive profiles --> </profiledata> <tablegeneration> <!-- parameters for the generation of different table types --> </tablegeneration> <divetrip> <!-- description of all dive trips --> </divetrip> <divecomputercontrol> <!-- statements for setting on data on a divecomputer, or downloading data from a dive computer --> </divecomputercontrol> </uddf>