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>