Chapter 8. Example UDDF files

Table of Contents

Database of divers, dive spots, biology and other entities
Diver's data
Descriptions of dive spots
Biological population inventories
Breathing gases used
Dive profiles
Generation of ascent profiles, dive tables, and "maximum bottom time tables"
Calculation of ascent profiles
Calculation of dive tables
Computation of a "maximum bottom time table"
Configuration of, and reading data from dive computers
Configuration of a dive computer
Reading recorded data from a dive computer

In the following for the sake of an easier understanding some fictitious UDDF files are given. Many comments (beginning with "

<!--

", and ending with "

-->

") are inserted. Usually, the parameters are put in brackets, for example with

<city>Atown</city>

the city "Atown" is denoted. Some elements are implemented as a switch.

<acknowledge/>

e.g. defines that the diver has to acknowledge an alarm given by the dive computer.

Only a little selection of elements is given to not make the examples too long, and to keep them understandable. Indentations are made for humans only for the sake of better clearness. A machine made UDDF file needs not to have these indentations. Nevertheless, the authors strongly recommend indentations for computer generated UDDF files, too! By this readability is enhanced.

In the descriptions of the individual elements partly detailed examples are given.

Database of divers, dive spots, biology and other entities

Diver's data

<uddf version="3.1.0">
    <!-- the <generator> section has to appear in every UDDF file -->
    <generator>
        <!-- description of the program generating the UDDF file -->
        <name>DSL - Diver's Super Logbook</name>
        <type>logbook</type>
        <manufacturer>
            <name>Dive Heroes Company</name>
            <address>
                <!-- address data of manufacturer -->
            </address>
            <contact>
                <!-- contact data of manufacturer -->
            </contact>
        </manufacturer>
        <version>3.14159</version>
        <datetime>2004-09-30</datetime>
    </generator>
    <mediadata>
        <image id="img_flatfeet">
            <title>Arno's flatfeet...</title>
            <objectname>flatfeet.jpg</objectname>
        </image>
    </mediadata>
    <diver>
        <!-- first all own data are given (which are wished) ... -->
        <owner id="owner_arno">
            <!-- description of the owner of the UDDF file -->
            <!-- (so the own data are to be given here)    -->
            <personal>
                <firstname>Arno</firstname>
                <middlename>Albert</middlename>
                <lastname>Alzheimer</lastname>
                <honorific>Dr.</honorific>
                <sex>male</sex>
                <birthdate>
                    <datetime>1919-02-30</datetime>
                </birthdate
                <passport>987654321</passport>
                <height>1.8</height>
                <weight>86.0</weight>
                <smoking>0</smoking>
                <bloodgroup>A</bloodgroup>
                <numberofdives timeinterval="P13Y/2006-02-16" dives="1234"/>
                <membership organisation=="VDST/CMAS" memberid="123456"/>
            </personal>
            <address>
                <street>Auf der Heide 12</street>
                <city>Aheim</city>
                <postcode>12345</postcode>
                <country>Deutschland</country>
                <!-- province is omitted -->
            </address>
            <contact>
                <language>deutsch</language>
                <phone>01234/567890</phone>
                <email>arno@arno-alzheimer.org</email>
                <homepage>http://www.tieftauchen.info/arno</homepage>
            </contact>
            <medical>
                <examination>
                    <datetime>2003-04-12</datetime>
                    <doctor id="doctorDusel">
                        <personal>
                            <firstname>Dirk</firstname>
                            <lastname>Dusel</lastname>
                            <honorific>Dr.</honorific>
                            <sex>male</sex>
                            <birthdate>
                                <!-- if date of birthdate is known, it can be given here... -->
                            </birthdate
                        </personal>
                        <address>
                            <street>Duddelstr. 34</street>
                            <city>Dortmund</city>
                            <postcode>54321</postcode>
                            <country>Deutschland</country>
                            <province>Nordrhein-Westfalen</province>
                        </address>
                        <contact>
                            <language>deutsch</language>
                            <phone>01234/987654</phone>
                            <!-- neither email address nor homepage is known (no entries here) -->
                        </contact>
                    </doctor>
                    <examinationresult>passed</examinationresult>
                    <notes>
                        <para>
                            Flatfeet don't seem to affect dive fitness :-)
                        </para>
                        <link ref="img_flatfeet"/>
                    </notes>
                </examination>
                <examination>
                    <datetime>2004-04-20</datetime>
                    <!-- following a reference to the practising doctor, -->
                    <!-- the data are already given above                -->
                    <link ref="doctorDusel"/>
                    <examinationresult>passed</examinationresult>
                </examination>
            </medical>
            <education>
                <!-- all levels of the owner's dive education -> several -->
                <!-- <certification> elements one after the other     -->
                <certification>
                    <level>Bronze</level>
                    <organisation>VDST/CMAS</organisation>
                    <!-- because data of the then dive instructor were not -->
                    <!-- registered in an UDDF file, no reference via      -->
                    <!-- <link ref="..."/> can be made here             -->
                    <issuedate>
                        <datetime>1994-03-15</datetime>
                    </issuedate>
                </certification>
                <certification>
                    <specialty>Orientation</specialty>
                    <organisation>VDST/CMAS</organisation>
                    <!-- because data of the then dive instructor were not -->
                    <!-- registered in an UDDF file, no reference via      -->
                    <!-- <link ref="..."/> can be made here             -->
                    <issuedate>
                        <datetime>1994-03-15</datetime>
                    </issuedate>
                </certification>
                <certification>
                    <level>Silver</level>
                    <organisation>VDST/CMAS</organisation>
                    <!-- because data of the then dive instructor were not -->
                    <!-- registered in an UDDF file, no reference via      -->
                    <!-- <link ref="..."/> can be made here             -->
                    <issuedate>
                        <datetime>1997-11-26</datetime>
                    </issuedate>
                </certification>
                <certification>
                    <level>Gold</level>
                    <organisation>VDST/CMAS</organisation>
                    <!-- because data of the then dive instructor were not -->
                    <!-- registered in an UDDF file, no reference via      -->
                    <!-- <link ref="..."/> can be made here             -->
                    <issuedate>
                        <datetime>2000-05-10</datetime>
                    </issuedate>
                </certification>
            </education>
            <divepermissions>
                <!-- here any number of dive permissions can be listed -->
                <permit>
                    <name>DiveCard</name>
                    <region>Austria</region>
                    <issuedate>
                        <datetime>2004-08-24</datetime>
                    </issuedate>
                    <validdate>
                        <datetime>2005-08-23</datetime>
                    </validdate>
                </permit>
                <permit>
                    <name>Zeeland</name>
                    <region>Zeeland (The Netherlands)</region>
                    <issuedate>
                        <datetime>1996-09-03</datetime>
                    </issuedate>
                    <validdate>
                        <datetime>2001-08-31</datetime>
                    </validdate>
                </permit>
                <!-- here more dive permissions if necessary -->
            </divepermissions>
            <!-- because no additional dive insurances have been signed -->
            <!-- <diveinsurances>...</diveinsurances> is neglected here -->
        </owner>
        <!-- ... and now follow the data of all dive buddies -->
        <buddy id="buddy_bertie_the_airsucker">
            <!-- data of the first dive buddy -->
            <personal>
                <firstname>Bertie</firstname>
                <lastname>Bammel</lastname>
            </personal>
            <!-- no address data given - <address>...</address> is dropped -->
            <contact>
                <email>airsucker@deepdiving.info</email>
                <homepage>http://www.deepdiving.info/bertie</homepage>
            </contact>
        </buddy>
        <buddy id="buddyCarl">
            <!-- description of another dive buddy -->
            <personal>
                <firstname>Carl</firstname>
                <lastname>Cabuff</lastname>
            </personal>
            <!-- address data not known - <address>...</address> is dropped -->
            <contact>
                <email>lurchi@abcde.com</email>
                <homepage>http://www.deepdiving.info/carl</homepage>
            </contact>
        </buddy>
        <!-- here more descriptions of other dive buddies can be inserted -->
    </diver>
    <!-- here other sections, dive profiles, or data concerning  -->
    <!-- generation of dive tables e.g., can be given            -->
</uddf>
                    

Descriptions of dive spots

<uddf version="3.1.0">
    <!-- the <generator> section has to appear in every UDDF file -->
    <generator>
        <!-- description of the program generating the UDDF file -->
        ...
    </generator>
    <mediadata>
        <video id="video_red-sea-2003">
            <title>Red Sea 2003<title>
            <objectname>rs2003.avi</objectname>
        </video>
        <video id="video_dive-and-sail-2004">
            <title>Dive & Sail 2004<title>
            <objectname>dive-and-sail-2004.avi</objectname>
        </video>
    </mediadata>
    <divesite>
        <!-- FIRST, descriptions of all dive bases -->
        <divebase id="db_deep-down">
            <name>Deep Down</name>
            <contact>
                <email>info@deep-down-diving.com</email>
                <homepage>http://www.deep-down-diving.com</homepage>
            </contact>
            <priceperdive currency="USD">40.00</priceperdive>
            <pricedivepackage currency="USD" noofdives="10">350.00</pricedivepackage>
            <guide>
                <!-- dive guide already registered as <buddy>, therefore only cross-referencing here -->
                <link ref="buddy_Georg"/>
            </guide>
            <guide>
                <!-- 2. dive guide already described as <buddy> ... -->
                <link ref="buddy_Hansi_the_airsucker"/>
            </guide>
            <rating>
                <ratingvalue>7</ratingvalue>
            </rating>
        </divebase>
        <!-- FOLLOWING, descriptions of all dive spots -->
        <site id="site_Scapa_Brummer">
            <!-- description of the first registered dive spot -->
            <name>Brummer</name>
            <geography>
                <location>Scapa Flow</location>
                <address>
                    <province>Orkney Islands</province>
                    <country>UK</country>
                </address>
                <!-- degree of latitude: North > 0 / South < 0 -->
                <latitude>58.897222</latitude>
                <!-- degree of longitude: East > 0 / West < 0 -->
                <longitude>-3.1519444</longitude>
                <altitude>0.0</altitude>
            </geography>
            <sitedata>
                <maximumdepth>37.0</maximumdepth>
                <density>1030.0</density>   <!-- salt water -->
                <bottom>sandy ground</bottom>
                <wreck id="wreck_Brummer">
                    <name>SMS Brummer</name>
                    <shiptype>light cruiser</shiptype>
                    <nationality>German</nationality>
                    <built>
                        <shipyard>Vulcan, Stettin</shipyard>
                        <launchingdate>
                            <datetime>1916</datetime>
                        </launchingdate>
                    </built>
                    <shipdimension>
                        <length>140.0</length>
                        <beam>13.0</beam>
                        <draught>6.0</draught>
                        <displacement>4.385E6</displacement>
                    </shipdimension>
                    <sunk>
                        <datetime>1919-06-21T13:05</datetime>
                    </sunk>
                    <notes>
                        <para>German high sea fleet</para>
                    </notes>
                </wreck>
            </sitedata>
            <notes>
                <para>Really nice wreck dive!</para>
            </notes>
        </site>
        <!-- more dive spots -->
    </divesite>
    <divetrip>
        <!-- all documented dive trips are following -->
        <trip id="trip_holiday2003">
            <trippart type="hoteltrip, organizedtrip">
                <name>Dive club travel to Red Sea 2003</name>
                <dateoftrip startdate="2003-04-12" enddate="2003-04-19"/>
                <geography>
                    <location>Red Sea</location>
                    <address>
                        <city>Hurghada</city>
                        <country>Egypt</country>
                    </address>
                </geography>
                <accommodation>
                    <name>Hotel 1000 and 1 Night</name>
                    <category>hotel</category>
                    <contact>
                        <email>info@hotel-1000-and-1-night.com</email>
                        <homepage>http://www.hotel-1000-and-1-night.com</homepage>
                    </contact>
                    <rating>
                        <ratingvalue>6</ratingvalue>
                    </rating>
                </accommodation>
                <link ref="db_deep-down"/>   <!-- dive base for all dives of this trip -->
                <notes>
                    <para>Nice dive holiday - if there only were less other divers...</para>
                    <link ref="video_red-sea-2003"/>
                </notes>
            </trippart>
        </trip>
        <trip id="trip_holiday2004">
            <trippart type="boattrip, individualtrip">
                <name>Dive & Sail 2004</name>
                <dateoftrip startdate="2004-09-24" enddate="2004-10-03"/>
                <geography>
                    <province>Cote d'Azur</province>
                    <country>France</country>
                </geography>
                <vessel>
                    <name>Dorade</name>
                    <shiptype>sailing ship</shiptype>
                    <marina>Bormes les Mimosas</marina>
                    <shipdimension>
                        <!-- only these two data are known in this case -->
                        <length>14.6</length>
                        <beam>3.5</beam>
                    </shipdimension>
                </vessel>
                <relateddives>
                    <link ref="tg_530"/><link ref="tg_531"/><link ref="tg_532"/><link ref="tg_533"/>
                    <link ref="tg_534"/><link ref="tg_535"/><link ref="tg_536"/><link ref="tg_537"/>
                    <link ref="tg_538"/><link ref="tg_539"/><link ref="tg_540"/><link ref="tg_541"/>
                </relateddives>
                <notes>
                    <para>Our motto: We dive, what others are dreaming of!!! :-)</para>
                    <link ref="video_dive-and-sail-2004"/>
                </notes>
            </trippart>
        </trip">
        <trip id="trip_holiday2005">
            <name>Dive club trip to Corse 2005</name>
            <trippart type="boattrip, organizedtrip">
                <name>Dive club trip to Corse 2005 - 1 week Galiote</name>
                <dateoftrip startdate="2005-05-21" enddate="2005-05-28"/>
                <geography>
                    <location>Mediterranean Sea</location>
                    <address>
                        <country>Corse</country>
                    </address>
                </geography>
                <vessel>
                    <name>Galiote</name>
                    <shiptype>motoryacht</shiptype>
                    <!-- no other data available -->
                </vessel>
                <relateddives>
                    <link ref="dive_580"/><link ref="dive_581"/><link ref="dive_582"/><link ref="dive_583"/>
                    <link ref="dive_584"/><link ref="dive_585"/><link ref="dive_586"/><link ref="dive_587"/>
                    <link ref="dive_588"/><link ref="dive_589"/><link ref="dive_590"/><link ref="dive_591"/>
                </relateddives>
                <notes>
                    <para>Nice diving holiday with Günter and his crew!</para>
                    <link ref="video_galiote2005"/>
                </notes>
            </trippart>
            <trippart type="individualtrip">
                <name>Dive club trip to Corse 2005 - 1 week campingground and dive club Nemo</name>
                <dateoftrip startdate="2005-05-28" enddate="2005-06-05"/>
                <geography>
                    <address>
                        <country>Corse</country>
                    </address>
                </geography>
                <accommodation>
                    <name>Camping Corse</name>
                    <category>Camping</category>
                    <contact>
                        <email>info@camping-corse.com</email>
                        <homepage>http://www.camping-corse.com</homepage>
                    </contact>
                    <rating>
                        <ratingvalue>6</ratingvalue>
                    </rating>
                </accommodation>
                <relateddives>
                    <link ref="dive_592"/><link ref="dive_593"/><link ref="dive_594"/><link ref="dive_595"/>
                    <link ref="dive_596"/><link ref="dive_597"/><link ref="dive_598"/><link ref="dive_599"/>
                    <link ref="dive_600"/><link ref="dive_601"/><link ref="dive_602"/><link ref="dive_603"/>
                </relateddives>
                <notes>
                    <para>Nice second week of the diving holiday!</para>
                    <link ref="video_corse2005"/>
                </notes>
            </trippart>
        </trip">
    </divetrip>
    <!-- here other sections, dive profiles, or data concerning  -->
    <!-- generation of dive tables e.g., can be given            -->
</uddf>
                    

Biological population inventories

<uddf version="3.1.0">
    <!-- the <generator> section has to appear in every UDDF file -->
    <generator>
        <!-- description of the program generating the UDDF file -->
    </generator>
    <mediadata>
        <image id="img_red_gorgonia">
            <objectname>red_gorgonia.jpg</objectname>
            <!-- Additionally, information about specific image data can be given -->
            <!-- here inside <imagedata> (for example aperture, shutter speed, exposure -->
            <!-- compensation, focal length of lens, date and time). -->
            <!-- (of course, this is possible for all below listed images) -->
        </image>
        <image id="img_spiny-starfish"><objectname>spiny-starfish.jpg</objectname></image>
        <image id="img_5_groupers"><objectname>5_groupers.jpg</objectname></image>
        <image id="img_sea-lettuce_rainbow-wrasse"><objectname>sea-lettuce_rainbow-wrasse.jpg</objectname></image>
        <image id="img_heinz_close_to_3_groupers"><objectname>heinz_close_to_3_groupers.jpg</objectname></image>
        <image id="img_portrait_red-scorpionfish"><objectname>portrait_red-scorpionfish.jpg</objectname></image>
        <video id="video_shallow_040928"><objectname>shallow_040928.avi</objectname></video>
    </mediadata>
    <divesite>
        <!-- description of all dive spots -->
        <site id="site_Shallow_south_of_Gabiniere">
            <name>Shallow to the south of Ilot de la Gabiniere</name>
            <geography>
                <location>Ilot de la Gabiniere</location>
                <address>
                    <province>Cote d'Azur</province>
                    <country>France</country>
                </address>
                <!-- degree of latitude, and longitude, unknown -->
                <altitude>0.0</altitude>
            </geography>
            <ecology>
                <!-- listing of typically seen plants, and animals respectively -->
                <fauna>
                    <invertebrata>            <!-- invertebrates -->
                        <porifera>                <!-- sponges -->
                            <species>
                                <trivialname>Kidney sponge</trivialname>
                                <scientificname>Chondrosia reniformis</scientificname>
                            </species>
                            <species>
                                <trivialname>Orange-red encrusting sponge</trivialname>
                                <scientificname>Crambe crambe</scientificname>
                            </species>
                            <species>
                                <trivialname>Bluish encrusting sponge</trivialname>
                                <scientificname>Anchinoe</scientificname>
                            </species>
                        </porifera>
                        <cnidaria>                <!-- cnidarians -->
                            <species>
                                <trivialname>Purple gorgonian</trivialname>
                                <scientificname>Paramuricea clavata (chamaeleon)</scientificname>
                            </species>
                        </cnidaria>
                        <ascidiacea>              <!-- seasquirts -->
                            <species>
                                <trivialname>Red seasquirt</trivialname>
                                <scientificname>Halocynthia papillosa</scientificname>
                            </species>
                        </ascidiacea>
                        <echinodermata>           <!-- echinoderms -->
                            <species>
                                <trivialname>Purple Starfish</trivialname>
                                <scientificname>Echinaster sepositus</scientificname>
                            </species>
                        </echinodermata>
                    </invertebrata>
                    <vertebrata>              <!-- vertebrates -->
                        <osteichthyes>        <!-- bony fishes -->
                            <species>
                                <trivialname>Moray-eel</trivialname>
                                <scientificname>Muraena helena</scientificname>
                            </species>
                            <species>
                                <trivialname>Grouper</trivialname>
                                <scientificname>Epinephelus guaza</scientificname>
                            </species>
                            <species>
                                <trivialname>Striped grouper</trivialname>
                                <scientificname>Epinephelus alexandrinus</scientificname>
                            </species>
                            <species>
                                <trivialname>Red damselfish</trivialname>
                                <scientificname>Anthias anthias</scientificname>
                            </species>
                            <species>
                                <trivialname>Damselfish</trivialname>
                                <scientificname>Chromis chromis</scientificname>
                            </species>
                            <species>
                                <trivialname>Rainbow wrasse</trivialname>
                                <scientificname>Coris julis</scientificname>
                            </species>
                            <species>
                                <trivialname>Two-banded bream</trivialname>
                                <scientificname>Diplodus vulgaris</scientificname>
                            </species>
                            <species>
                                <trivialname>Toothed sparus</trivialname>
                                <scientificname>Oblada melanura</scientificname>
                            </species>
                             <species>
                                <trivialname>Peacock wrasse</trivialname>
                                <scientificname>Symphodus tinca</scientificname>
                            </species>
                        </osteichthyes>
                    </vertebrata>
                </fauna>
                <flora>
                    <rhodophyceae>      <!-- red algae -->
                        <species>
                            <trivialname>Peyssonnelia</trivialname>
                            <scientificname>Peyssonnelia squamaria</scientificname>
                        </species>
                    </rhodophyceae>
                    <chlorophyceae>     <!-- green algae -->
                        <species>
                            <trivialname>Sea lettuce</trivialname>
                            <scientificname>Ulva rigida</scientificname>
                        </species>
                        <species>
                            <trivialname>Ball alga</trivialname>
                            <scientificname>Codium bursa</scientificname>
                        </species>
                    </chlorophyceae>
                </flora>
            </ecology>
            <sitedata>
                <minimumdepth>18.0</minimumdepth>
                <maximumdepth>32.0</maximumdepth>
                <arealength>20.0</arealength>         <!-- length of examined rock -->
                <areawidth>8.0</areawidth>            <!-- width of rock -->
                <!-- (from the above given four values a volume can be calculated, if necessary) -->
                <density>1030.0</density>             <!-- salt water -->
                <bottom>rocks</bottom>
             </sitedata>
            <notes>
                <para>
                    First class dive spot! Due to currents often difficult to dive. Access either via
                    blue water descent from boat, or - with excellent knowledge of the topography! -
                    diving from the southern tip of Ilot de la Gabiniere in southwest direction.
                    Narrow, long ridge, both sides like steep walls. Dense growing of algae, sponges,
                    and gorgonians. Many fishes, first of all many groupers.
                </para>
                <link ref="img_red_gorgonia"/>
                <link ref="img_spiny-starfish"/>
                <link ref="img_5_groupers"/>
                <link ref="img_sea-lettuce_rainbow-wrasse"/>
                <link ref="img_heinz_close_to_3_groupers"/>
                <link ref="img_portrait_red-scorpionfish"/>
                <link ref="video_shallow_040928"/>
            </notes>
        </site>
    </divesite>
    <!-- more dive spots -->
</uddf>