Inhaltsverzeichnis
Abbildungsverzeichnis
Das Universal Dive Data Format (UDDF) ist eine Weiterentwicklung des Universal Dive Computer Format (UDCF) und dient dazu, sämtliche anfallenden Tauchdaten — Planung, Loggen, Analyse von Tauchgängen (Apnoe, Kreislaufgeräte, offene Systeme, alle denkbaren Atemgasgemische), Logbuch, Erstellung von Austauchtabellen, Archivierung usw. — Hersteller- bzw. Plattform-unabhängig zu verwalten und untereinander austauschbar zu machen.
UDDF ist ein offenes Format und wird ständig erweitert. Alle interessierten Personen und Firmen/Hersteller sind aufgefordert zur Weiterentwicklung beizutragen. Dadurch wird ein Maximum an Flexibilität und der jeweils neueste Stand des Formats gewährleistet — auf wissenschaftliche und technische Neuentwicklungen kann so schnell reagiert werden.
UDDF kann frei verwendet werden. Ziel der Entwickler ist es, UDDF als Standard-Datenaustauschformat für alle Arten anfallender Tauchdaten weltweit zu etablieren.
In den letzten Jahren haben Tauchcomputer der verschiedensten Hersteller in der Sporttaucherszene Einzug gehalten. War es noch vor 15 Jahren etwas besonderes, mit Computer zu tauchen, so hat sich diese Situation heute vollkommen geändert. Die meisten Sporttaucher verwenden heute Tauchcomputer zur Planung und Durchführung von Tauchgängen. Aufgrund der Preisentwicklung der Tauchcomputer läßt sich heute sogar der Trend zum Zweitcomputer beobachten, der von vielen Tauchern als Reservegerät beim Tauchgang mitgeführt wird. Dies hat dazu geführt, daß viele Anfänger nicht mehr mit den verbreiteten Dekompressionstabellen umgehen (können?). Obwohl diese Entwicklung nicht wünschenswert ist — Tauchcomputer sind wie jedes Computersystem fehlerbehaftet —, läßt sie sich sicherlich nicht mehr aufhalten, zu groß sind die Vorteile beim praktischen Einsatz.
Die weite Verbreitung von Tauchcomputern hat aber nicht nur zu dem oben angesprochenen Problem geführt, sondern hat vor allem viele Vorteile gebracht. Neben leichter(er) Planung eines Tauchgangs sind heute auch Dekompressionsberechnungen bei der Verwendung von Nitrox als Atemgas Standard. Viele aktuelle Tauchcomputermodelle geben auch Auskunft über den noch zur Verfügung stehenden Flaschendruck und führen eine Sauerstofftoxizitätsberechnung durch. Auch gibt es mittlerweile Tauchcomputer, die Trimix als Atemgas verarbeiten können bzw. während des Tauchgangs den Wechsel des Atemgases zulassen und in der Dekoberechnung berücksichtigen.
Eine weitere Eigenschaft ist heutzutage bei praktisch jedem Tauchcomputer zu finden: der Profilspeicher. Dabei speichert der Tauchcomputer während des Tauchgangs in festen Zeitintervallen die aktuelle Tiefe und eventuell die Wassertemperatur sowie Warnungen. Obwohl diese Eigenschaft von Tauchcomputern auf den ersten Blick wie eine Spielerei aussieht, hat sich doch eine Vielzahl von Anwendungen dafür ergeben — auch solche, die dazu führen könnten, in der Zukunft das Tauchen noch sicherer zu machen.
Eine offensichtliche Anwendung der Profilspeicherung von Tauchcomputern ist die Implementation von elektronischen Logbüchern. Dabei wird ein (Mac-, PC-, PDA-, etc.)Programm dazu verwendet, die relevanten Daten eines Tauchgangs vom Tauchcomputer herunterzuladen und in eine Datenbank einzutragen. Der Taucher kann anschließend dieses Logbuch mit anderen Informationen anreichern, zum Beispiel Tauchpartner, besondere Beobachtungen oder verwendete Ausrüstungsgegenstände usw.
Ein Vielzahl von Programmen für diese Aufgabe ist schon verfügbar, die eine große Bandbreite von Plattformen (von PDAs bis Desktopmaschinen) abdeckt. Es sind sogar Online-Versionen zu finden (z.B. Itzchak Rehberg, phpDiveLog, 2004, http://www.qumran.org/homes/izzy/software/pdl/demo.php), die Sammlungen von Tauchgängen im WorldWideWeb verwalten. Diese Anwendung der Profilspeicherung ist natürlich ein willkommener Zusatznutzen von Tauchcomputern.
Eine andere Anwendung ist dagegen interessanter und viel wichtiger. In der modernen Dekompressionsforschung werden eine Vielzahl von statistischen Daten von Tauchgängen benötigt, um vorhandene Dekompressionsmethoden zu verifizieren oder um neue Algorithmen für die Dekompressionsberechnung zu entwickeln. Dies wurde durch Divers Alert Network (DAN) (Petar J. Denoble, DL7 Standard, DAN — Project Dive Exploration, 1998, http://www.diversalertnetwork.org/research/projects/pde/) schon sehr früh erkannt und umgesetzt. Dazu wurde das Format DL7 entwickelt, das neben den eigentlichen Tauchgangsdaten sehr viele medizinische Informationen enthält. Dieses Datenformat steht auch hinter vielen der ,,Send Data to DAN''-Funktionen der verbreiteten elektronischen Logbücher.
Alle Programme dieser Art haben einen gravierenden Nachteil: Daten können nicht oder nur sehr schwierig zwischen zwei verschiedenen Programmen ausgetauscht werden. Das heißt, wird ein Programm von Hersteller X verwendet, können die Daten nur unter (großen) Schwierigkeiten in ein Programm des Herstellers Y übernommen werden. Mit anderen Worten: Die heute verfügbare Software ist meist eine Insellösung, die den Benutzer unnötigen Beschränkungen unterwirft. Dabei ist es schwierig, seine Tauchgänge über lange Zeit zu verwalten. Insbesondere große Sammlungen von Tauchgängen, etwa für statistische Auswertungen, können nur unter großen Mühen angelegt werden. Aufgrund des Aufbaus von DL7, das offensichtlich für medizinische Anwendungen optimiert wurde und dessen Datenformat nicht mehr den modernen Erkenntnissen der Informatik entspricht, ist es für diesen Einsatzzweck auch kaum geeignet.
Nun könnte man sich natürlich mit einfachen Konverterprogrammen behelfen, die die Daten in das jeweilige andere Format übertragen. Dieser Ansatz hat aber zwei große Nachteile. Zum einen sind die intern verwendeten Datenformate der Hersteller meist nicht dokumentiert und damit für die Entwickler von Konvertern nicht verfügbar. Zum anderen müßte eine sehr große Anzahl von Konvertern entwickelt werden. Angenommen es gibt n verschiedene elektronische Logbücher, die unterstützt werden sollen. Um jedes der Datenformate in jedem anderen Programm einlesen zu können, müssen dann n * (n-1) verschiedene Konverter erstellt werden. Das bedeutet, bei zehn verschiedenen Herstellern müßten schon 90 verschiedene Konverter erstellt werden! Dies zeigt, daß eine solche Herangehensweise nicht zweckmäßig ist.
Viele Programme ermöglichen den Import beziehungsweise Export von sogenannten ,,Komma getrennten Textdateien`` (CSV-Dateien). Allerdings gibt es hier keinen Standard, so daß die exportierten Felder und deren Reihenfolge zwischen unterschiedlichen Programmen stark variieren. Ein weiterer großer Nachteil dieser Methode ist, daß es praktisch nicht möglich ist, zum Beispiel ein Logbuch inklusive Tauchprofil in einer CSV-Datei zu speichern. Einige Programme verzichten bei CSV ganz auf Profil-Daten, andere speichern diese Daten in separaten Dateien pro Tauchgang. Die Bedeutung der einzelnen Daten kann also nicht eindeutig zugeordnet werden. All dies erschwert einen Import der Daten in ein anderes Programm.
Ein anderer Ansatz ist wesentlich vielversprechender. Dazu wird ein universelles Format zum Austausch von Daten eingesetzt. In unserem obigen Beispiel müßten nun nur noch zehn Konverter beziehungsweise Konverterapplikationen zu diesem universellen Austauschformat entwickelt werden, um alle Kombinationen von elektronischen Logbüchern oder medizinischen Datensammlungsprogrammen zu unterstützen. Wird eine frei verfügbare Bibliothek zum Lesen und Schreiben eines solchen universellen Austauschformats entwickelt, so ist damit zu rechnen, daß viele Hersteller dieses Format unterstützen werden, da die Integration nahezu keinen Entwicklungsaufwand bedeutet und zu einem echten Mehrwert des Programms führt. Eine mögliche Implementierung dieses Ansatzes ist das Universal Dive Data Format, kurz UDDF.
Bei der Entwicklung eines solchen universellen Datenaustauschformats wie UDDF bietet es sich an, die Methoden der modernen Informatik einzusetzen. Aus diesem Grund ist ein Mittel der Wahl XML, die ,,Extensible Markup Language'' (WorldWideWeb Consortium W3C, Extensible Markup Language (XML), 1996 – 2003, http://www.w3.org/XML/). Sie wurde genau zum Zweck der universellen Austauschbarkeit entwickelt und wird heute in extrem vielen Anwendungen — von Textverarbeitungsprogrammen bis zu ganzen Redaktionssystemen und im WorldWideWeb — eingesetzt. Aus diesem Grund gibt es eine große Menge von Bearbeitungs- und Korrekturwerkzeugen, Programmbibliotheken und Literatur zum Thema XML. Deshalb wurde UDDF in die XML-Welt eingebettet, was eine leichte Benutzbarkeit für den Softwareentwickler zur Folge hat und damit zu einer breiten Verfügbarkeit, letztlich zum Nutzen des Anwenders, führen kann. Gleichzeitig ist XML ein textbasiertes Datenformat und kann auch durch den Menschen gelesen werden — die Garantie, daß Tauchgangsdaten also auch noch in 20 Jahren und später verarbeitet werden können. Daß dieses Konzept funktioniert, zeigen der Vorgänger UDCF (Steffen Reith, Kai Schröder, UDCF — Universal Dive Computer Format, http://www.streit.cc/dive/udcf_doc_ger.html), der bereits in einigen Anwendungen zum Einsatz kommt (zum Beispiel in Steffen Reiths EONTools, 2002, http://www.streit.cc/dive/index.html, und in Kai Schröders Tauch-Simulationsprogramm Tausim v0.99, http://www.achim-und-kai.de/kai/tausim/tausim.html) sowie Stephan Veigls Programm AquaDiveLog, http://www.aquadivelog.org, welches bereits eine erste Version des UDDF verwendet.
Inhaltsverzeichnis
Die Einführung des UDDF beseitigt alle oben angeführten Schwächen der momentan verbreiteten Formate und standardisiert den Datenaustausch zwischen den unterschiedlichsten Programmen — auch über Betriebssystemgrenzen hinweg.
UDDF stellt eine äußerst mächtige Sprache bereit, mit dem aufgezeichnete Tauchgangsprofile oder geplante beziehungsweise simulierte Tauchgänge genauso gut wie die elektronische Logbuchführung, aber auch die Generierung von (speziellen) Austauchtabellen aller Spielarten des Tauchens — Apnoe, Sporttauchen, Technisches Tauchen, Höhlentauchen etc. — zusammengeführt und weitergehend verwendet werden können. UDDF stellt dazu Sektionen und Elemente zur Verwaltung der persönlichen Daten, der Daten von Tauchpartnern, Ausrüstung, Tauchfahrten und Tauchplätzen zur Verfügung. Ebenso können Verweise auf (externe) Bilder, Internet-Seiten und dergleichen eingebaut werden.
Des weiteren wurden für die Sektion, in der die eigentlichen Tauchgangsprofil-Daten abgelegt werden, viele Elemente des schon früher entwickelten UDCF in UDDF übernommen. UDCF diente dazu, die Tauchgangsprofile verschiedener Tauchcomputer sowie unterschiedlicher Tauchsimulations-Programme untereinander auf einfache Art und Weise austauschbar zu machen. Mit UDCF war es möglich, mit beliebigen Tauchcomputern aufgezeichnete ,,reale`` Tauchgangs-Profile nach Konvertierung in das UDCF auf allen Computersystemen auszuwerten beziehungsweise mit anderen Dekompressionsmodellen oder geänderten Parametersätzen zu rechnen. Dennoch hatte es einige Schwächen bezüglich der XML-Konformität.
Mit der Einführung des UDDF sollte UDCF zugunsten des ersteren nicht mehr verwendet werden.
Ebenso wurde das ursprünglich als eigenständiges Format angedachte UDGF (Universal Dive Generation Format) (Raimundo F. Diez, unveröffentlicht) in UDDF inkorporiert. UDGF vereinheitlicht die Erzeugung von Austauchtabellen. Auch im Zeitalter von Tauchcomputern kann es wünschenswert oder sogar wichtig sein, eine ,,persönliche`` Austauchtabelle zu berechnen — beim Technischen Tauchen ist dies nach wie vor unentbehrlich.
Mit dem Universal Dive Data Format wird es somit erstmals möglich, sämtliche anfallenden Tauchdaten — Planung, Loggen, Analyse von Tauchgängen (Apnoe, Kreislaufgeräte, offene Systeme, alle denkbaren Atemgas-Gemische), Logbuch, Erstellung von Austauchtabellen, Archivierung usw. — hersteller- bzw. plattformunabhängig zu verwalten und untereinander austauschbar zu machen. Abbildung 1 veranschaulicht diesen Sachverhalt.
UDDF ist ein offenes Format und wird ständig erweitert. Für die Zukunft ist es wünschenswert, daß weitere Sektionen geschaffen werden, um die Anwendungsgebiete noch auszudehnen (zum Beispiel Erfassung von Prüfdaten bei Ausrüstungstests, archäologische Daten und weitere mehr). Dazu sind alle interessierten Personen sowie Firmen/Hersteller aufgefordert zur Weiterentwicklung beizutragen. Dadurch wird ein Maximum an Flexibilität und der jeweils neueste Stand des Formats gewährleistet — auf wissenschaftliche und technische Neuentwicklungen kann so schnell reagiert werden.
UDDF kann frei verwendet werden. Ziel der Entwickler ist es, UDDF als Standard-Datenaustauschformat für alle Arten anfallender Tauchdaten weltweit zu etablieren.
Im folgenden sollen anhand einiger Beispiele die (fast :-) ) grenzenlosen Einsatzmöglichkeiten des UDDF aufgezeigt und veranschaulicht werden. (Ausführliche Beispiele werden jeweils bei den einzelnen Sektionen angegeben.)
Die persönlichen und die Daten der Tauchpartner — soweit diese bekannt sind — werden in der <diver>-Sektion gespeichert. Hier können unter anderem Vor- und Nachname, Geburtsdatum, Geschlecht, Adresse, Ausbildungsstand und vieles mehr angegeben werden. Ist zum Beispiel das Geburtsdatum eines Tauchpartners unbekannt, entfällt diese Angabe in der UDDF-Datei einfach.
Die eigene Tauchausrüstung soll dokumentiert werden. Im Laufe der Jahre wird immer wieder einmal etwas neu angeschafft, anderes wird vielleicht verkauft etc. Um den Überblick darüber zu behalten, bietet UDDF die <equipment>>-Sektion innerhalb <diver> an. Hier können zu allen Ausrüstungsteilen die relevanten allgemeinen (Hersteller, Modell, Seriennummer, Kaufdatum, Händler, Preis etc.) und speziellen Daten (zum Beispiel Flaschenvolumen, Flasche nitroxtauglich? usw.) abgelegt werden. Die <equipment>>-Sektion kann nicht nur für den Besitzer (<owner>) der UDDF-Datei angelegt werden, sondern nach Belieben auch für jeden erfaßten Tauchpartner.
Außerdem wird eine Datensammlung der häufiger betauchten Seen angelegt. Dies geschieht in der <divesite>-Sektion, wo unter anderem das Land, gegebenenfalls der genaue Ort (Längen-, Breitengrad, Höhe über dem Meeresspiegel) und die maximale Tiefe des Gewässers (nicht die während eines Tauchgangs erreichte maximale Tiefe!) gespeichert werden können.
Ein Wrack-Liebhaber fügt selbstverständlich auch eine kleine Wrack-Datenbank hinzu. Aus Büchern und dem Internet wurden bereits Informationen zu einigen Schiffen zusammengetragen, wie zum Beispiel Name, Nationalität, Stapellauf, Tonnage, Datum des Untergangs, Position des Wracks usw., die in der UDDF-Datei gespeichert werden.
Bei (gegebenenfalls) nachfolgend aufgeführten Tauchgängen kann dann einfach auf die in der <diver>-Sektion angelegten Tauchpartner referenziert werden, so daß deren Daten nur ein einziges Mal angegeben werden müssen. Gleiches gilt natürlich für alle oben in der UDDF-Datei eingetragenen Ausrüstungsteile, Tauchplätze usw.
Eine Tauchkreuzfahrt im Roten Meer. Die Teilnehmer benutzen Tauchcomputer unterschiedlicher Hersteller. Obwohl die Gruppe mehr oder weniger dasselbe Tauchgangs-Profil absolviert, zeigen die Tauchcomputer beim Aufstieg verschieden lange oder gar keine Dekozeiten an, einige Tauchcomputer geben Warnungen für einen zu schnellen Aufstieg an. Zurück an Bord werden die Tauchcomputer auf ein Notebook ausgelesen und die Profile nach UDDF exportiert. Anschließend können sie zum Beispiel mit einem Hersteller-unabhängigen Tauchprogramm — eventuell mit unterschiedlichen Dekompressions-Modellen beziehungsweise mit verschiedenen Parameter-Einstellungen — nachgerechnet und analysiert werden.
UDDF eignet sich so auch hervorragend für die Erstellung von Lehrmaterial. Denn ohne großen Aufwand lassen sich Gewebesättigungen bei gegebenem Tauchprofil mit verschiedenen Programmen nachrechnen und/oder die unterschiedliche Sättigung bei der Verwendung verschiedener Atemgase demonstrieren.
Für einen geplanten Wrack-Tauchgang auf 95 Meter Tiefe mit Mischgas sollen Austauchtabellen berechnet werden. Dies soll sicherheitshalber mit verschiedenen Programmen beziehungsweise mit unterschiedlichen Dekompressions-Modellen durchgeführt werden. Sofern die verwendeten Programme UDDF unterstützen, braucht für diese Aufgabe lediglich eine (1) UDDF-Datei erzeugt zu werden. Diese wird dann mit dem jeweiligen Programm importiert, die Tabelle(n) gerechnet und die Ergebnisse anschließend zum Beispiel nach HTML (oder einem anderen unterstützen Format) exportiert.
Für einen geplanten Wrack-Tauch-Segeltörn vor der französischen Mittelmeerküste werden aus der Literatur lohnende Ziele ausgesucht und die Daten einiger Wracks im Vorfeld in einer UDDF-Datei abgelegt. Während des Segelns werden per GPS-Gerät genau der Kurs sowie die Positionen der Wracks festgehalten. Die Tauchgangs-Profile werden vom Tauchcomputer auf einen PDA heruntergeladen und nach UDDF exportiert. Wieder zu Hause werden alle Daten auf einen PC kopiert und mit einem Logbuch-Programm in einer einzigen UDDF-Datei zusammengeführt. Kommentare und Digitalfotos werden noch hinzugefügt, anschließend generiert das Logbuch-Programm aus der UDDF-Datei eine HTML-Datei zur Veröffentlichung im Internet!
Eine Tauch-Expedition soll ,,live'' im Internet dokumentiert werden. Nach einem Tauchgang werden die Daten der Tauchcomputer ausgelesen und nach UDDF exportiert. Die Software liest die UDDF-Datei ein und exportiert das Tauchgangs-Profil in eine Grafikdatei. Außerdem werden Fotos von der Vorbereitung des Tauchgangs und während des Tauchgangs angefertigte Video-Sequenzen und Fotos mit Kommentaren versehen zusammen in einer UDDF-Datei abgespeichert. Zu Anschauungszwecken wird für den nachfolgend geplanten Wrack-Tauchgang auf Grundlage der Sättigungs-Daten des vorangegangenen Tauchgangs eine Austauchtabelle berechnet beziehungsweise ein grafisches Auftauchprofil erstellt. Aus diesen gesamten Daten, zusammengefaßt in einer (1) UDDF-Datei, wird nun wiederum automatisch eine HTML-Datei erstellt, welche dann per Satellit auf die Homepage des Projektes übertragen wird. Fertig! :-)
Alle Werte werden im SI-System (Systeme International d'unites) angegeben. Siehe dazu auch http://www.tcaep.co.uk/science/siunits sowie Bureau International des Poids et Mesures. Die Verwendung anderer Einheitensysteme bleibt den Anwenderprogrammen überlassen.
Von dieser Regel gibt es nur dann eine Ausnahme, wenn ansonsten — z.B. bei Zeitangaben in Sekunden — riesig große Zahlen verwendet werden müßten (siehe z.B. <timezone> — hier brächte die Verwendung der Einheit Sekunden nur Nachteile).
Die verwendeten Einheiten sind:
Länge — Meter [m]
Masse — Kilogramm [kg]
Volumen — Kubikmeter [m3]
Dichte — Kilogramm pro Kubikmeter [kg/m3]
Druck — Pascal [Pa = N/m2]
Temperatur — Kelvin [K]
Zeit — Sekunden [s]
Umrechnungen:
1 m = 39.370079 inch = 3.280840 ft
1 kg = 10-3 Tonnen = 2.204623 pound = 35.273962 ounce
1 m3 = 1000 Liter = 35.314667 ft3
1 kg/m3 = 10-3 Tonnen/m3 = 0.036127 ⋅ 10-3 pound / cubic inch
1 Pa = 0.01 ⋅ 10-3 bar = 0.145038 ⋅ 10-3 psi
xK = x - 273.15 °C = x ⋅ 1.8 - 459.67 °F
Inhaltsverzeichnis
Die Intention bei der Entwicklung des UDDF war es, ein möglichst einfaches, aber mächtiges Format zum Datenaustausch zu entwickeln. Um die Programmierung von Parsern zu vereinfachen, wurde UDDF so entwickelt, daß gängige XML-Parser zum Einsatz kommen können.
Eine UDDF-Datei besteht aus verschiedenen (Gruppen von) Elementen und Schlüsselwörtern, die momentan Personendaten (eigene und von Tauchpartnern), Tauchausrüstung, Tauchplätze, Tauchfahrten, verwendete Atemgase, Tauchprofile sowie Vorgaben zur Generierung von Austauchtabellen eindeutig beschreiben. Dabei ist eine zwingende Reihenfolge vorgeschrieben. Diese richtet sich nach folgenden Gegebenheiten: allgemeine — also von einem bestimmten Tauchgang unabhängige - Daten (nachfolgende Punkte 3.) bis 5.)), zu einem Tauchgang gehörige Daten - Profildaten, Flaschendruck, Logbucheintrag u.a.m. — sowie anschließend Angaben zur Austauchtabellen-Generierung (damit die Sättigung durch vorangehende Tauchgänge einbezogen werden kann). Schlußendlich können Daten zu Tauchfahrten mit Referenzierungen auf alle vorher in der UDDF-Datei eingetragenen Daten erfolgen. Durch diese Reihenfolge wird gewährleistet, daß jeweils auf vorstehend gemachte Angaben weiter unten in der UDDF-Datei referenziert werden kann.
Bis auf Dateikopf und -ende sowie <generator> sind die anderen Angaben nur optional und können gegebenenfalls entfallen. Gruppen von Elementen werden als Sektion bezeichnet, diese enthalten dann weitere Elemente und/oder Sektionen.
Der generelle Aufbau einer UDDF-Datei ist folgender:
Dateikopf <uddf version="versionsnummer">
<generator>-Sektion (vorgeschrieben) — hier wird der ,,Fingerabdruck`` der die UDDF-Datei generierenden Software angegeben
<diver>-Sektion (optional) — zur Beschreibung des Besitzers der UDDF-Datei sowie seiner Tauchpartner
<divesite>-Sektion (optional) — zur Beschreibung aller betauchten oder zukünftig zu betauchenden Spots (soweit Informationen zu diesen Plätzen bereits verfügbar sind)
<gasdefinitions>-Sektion (optional) — Definition der verschiedenen vom Besitzer der UDDF-Datei verwendeten Atemgase
<profiledata>-Sektion (optional) — Beschreibung der Profildaten der einzelnen Tauchgänge sowie aller anderen speziellen, zu einem Tauchgang gehörenden Informationen (Logbucheinträge, verwendete Ausrüstungsteile, Atemgas, Flaschendruck zu Beginn und Ende des Tauchgangs bzw. Atemminutenvolumen und anderes mehr)
<tablegeneration>-Sektion (optional) — Vorgabe der Parameter zur Erzeugung von Aufstiegsprofilen (<calculateprofile>-Sektion), Austauchtabellen (<calculatetable>-Sektion) sowie ,,aximale-Grundzeit-Tabellen`` (<calculatebottomtimetable>-Sektion)
<divetrip>-Sektion (optional) — zur Beschreibung von Tauchfahrten
<divecomputercontrol>-Sektion (optional) — Setzen von Vorgaben für einen Tauchcomputer (z.B. Uhrzeit, Datum, verwendete Gasgemische, max. PO2, persönliche Daten des Besitzers etc.) (<setdcdata>-Sektion) bzw. Anweisungen zum Auslesen eines Tauchcomputers (<getdcdata>-Sektion).
Wenn <divecomputercontrol> in der UDDF-Datei verwendet wird, macht es (zur Zeit) nur beschränkt Sinn, die anderen Sektionen außer <generator> mit in die Datei zu schreiben. Es sei denn, daß zum Beispiel die in der <diver>-Sektion angegebenen Daten des Besitzers (<owner>) sollen/können direkt auf dem Tauchcomputer gespeichert werden.
Diese Sektion ist für zukünftige Anwendungen gedacht, wenn Tauchcomputer über UDDF konfiguriert und ausgelesen werden (können). (Siehe hierzu auch den Artikel von Kai Schröder, ,,Tauchcomputer — Die große Vereinheitlichung``, DIVEMASTER Heft 48 (2006).)
Dateiabschluß </uddf>
Die einzelnen Sektionen 2.) – 9.) dürfen nur genau einmal und nur in genau dieser Reihenfolge in der UDDF-Datei stehen, da in weiter hinten stehenden Sektionen auf vorherig aufgeführte Daten referenziert werden kann.
Eine UDDF-Datei trägt die Endung ,,.uddf`` als Kennzeichen.
Die Autoren hoffen, daß in naher Zukunft weitere Sektionen hinzukommen werden, um die Anwendungsmöglichkeiten noch zu steigern!
In UDDF gibt es viele Datensätze, die an unterschiedlichen Stellen wiederverwendet werden können. So brauchen z.B. Tauchplätze, Tauchpartner und Ausrüstungsteile nur einmal an einer globalen Stelle beschrieben zu werden. Wird z.B. ein Tauchpartner als Buddy für einen bestimmten Tauchgang eingetragen, so müssen seine Daten nicht nochmals gespeichert werden, sondern es wird eine Referenz auf den globalen Datensatz erstellt.
Der Elementname der Referenz setzt sich aus dem Elementnamen plus dem Suffix ,,ref/`` zusammen. Dieses Element besitzt ein Attribut ,,ref``, welches den Bezeichner (,,ID``) des zu referenzierenden Datensatzes enthält. Das folgende Beispiel veranschaulicht diesen Sachverhalt:
<diver> <buddy id="buddy_Alfons"> <personal> <firstname>Alfons</firstname> ... </personal> ... </buddy> <buddy id="buddy_Berta"> <personal> <firstname>Berta</firstname> ... </personal> ... </buddy> <!-- hier Beschreibungen weiterer Tauchpartner --> </diver> <profiledata> <repetitiongroup id="wg1"> <dive id="dive1"> <divenumber>1</divenumber> ... <buddyref ref="buddy_Alfons"/> ... </dive> <dive id="dive2"> <divenumber>2</divenumber> ... <buddyref ref="buddy_Berta"/> ... </dive> <dive id="dive3"> <divenumber>3</divenumber> ... <buddyref ref="buddy_Alfons"/> ... </dive> ... </repetitiongroup> </profiledata>
Damit wird z.B. angegeben, daß der Taucher mit der ID buddy_Alfons Tauchpartner bei den Tauchgängen 1 und 3 war. Die Taucherin buddy_Berta war Buddy bei Tauchgang Nr. 2.
Jedes Element, für das eine ID als Attribut gesetzt werden muß, kann — natürlich beliebig oft — referenziert werden.
Die ID eines Elements muß innerhalb einer UDDF-Datei eindeutig sein. Außerdem sollte sie, soweit möglich, auch global eindeutig sein. Zur leichteren Lesbarkeit sollte die ID mit dem Elementtyp beginnen, gefolgt von einer eindeutigen Zeichenfolge, die aus Schlüsseldaten des Elements generiert wird.
Nachfolgend einige Empfehlungen bzw. Anregungen, wie IDs generiert werden können (in eckige Klammern gesetzte Bezeichnungen sind hierbei optional) (zur besseren Lesbarkeit für den menschlichen Betrachter können auch Unterstriche ,,_´´ eingefügt werden):
site[Name][Gebiet / Gewässer][Region][Land]
site[Name][Längengrad in der Form gggmmss + N/S][Breitengrad]
buddy[Vorname][Familienname][Geburtsdatum in der Form YYYYMMDD]
buddy[Alias][laufende Nummer]
mask[Name][laufende Nummer]
regulator[Name][Hersteller][Seriennummer]
Damit wären also z.B. folgende IDs möglich:
siteRubisSüdfrankreich
site_Donator_Porquerolles
buddy_Elfriede_Elfenland
buddyLuftsauger
mask_6glaeser_123
regulator_Schnuller_Eigenbau_928374
Inhaltsverzeichnis
Nachfolgend werden die in den einzelnen Sektionen verfügbaren Elemente aufgeführt. Eine Beschreibung der Elemente findet sich in der alphabetischen Auflistung im Kapitel hiernach.
Einige Elemente, wie z.B. <date>, tauchen in mehreren Sektionen auf.
Elemente, die die gleiche Einrückung aufweisen, stehen in der Hierarchie ebenfalls auf gleicher Stufe und gehören als ,,Unterelemente`` zum Element bzw. der Sektion mit einer Einrückungsstufe weiter links. So gehören die Elemente <year>, <month>, <day> und <dayofweek> zum übergeordneten Element <date>. Das Abschluß-Element wird in diesen Beispielen nicht aufgeführt (</date> erscheint also, um beim obigen Beisipel zu bleiben, nicht!).
Es werden hier alle Elemente aufgeführt — unabhängig davon, ob im speziellen Fall vielleicht das eine oder andere Element nicht benötigt/gespeichert wird.
Das Element <notes> mit seinen untergeordneten Subelementen taucht innerhalb sehr vieler weiterer Elemente auf. Einer besseren Übersichtlichkeit halber wird es hier vor den eigentlichen Sektions-Elementen aufgeführt. Wenn ,,<notes>...`` also weiter unten erscheint, so können alle hier aufgeführten Unterelemente ebenso dort eingesetzt werden.
<notes> <image> <objectname> <imagedata> <aperture> <date> <exposurecompensation> <filmspeed> <focallength> <focusingdistance> <meteringmethod> <shutterspeed> <time> <audio> <objectname> <video> <objectname> <text> <para> <imageref/> <audioref/> <videoref/>
<generator> <name> <manufacturer> <version> <date> <year> <month> <day> <dayofweek> <time> <hour> <minute>
<owner> <buddy>
Innerhalb <diver> gibt es nur die beiden Elemente <owner> (muß als erstes und nur genau einmal (1) erscheinen) sowie <buddy> — letzteres kann beliebig oft wiederholt werden. Die nachfolgende Aufstellung an Elementen wird innerhalb beider Elemente verwendet. Die einzige Ausnahme ist das Element <student/>, welches nur innerhalb <buddy> verwendet werden darf und kennzeichnet, daß dieser Tauchpartner ein Tauchschüler ist (wenn der Besitzer — <owner> — der UDDF-Datei ein Tauchlehrer ist).
<diver> <owner> bzw. <buddy> <student/> (nur bei <buddy>) <personal> <firstname> <middlename> <lastname> <title> <sex> <birthdate> <year> <month> <day> <dayofweek> <passport> <address> <street> <city> <postcode> <country> <contact> <language> <phone> <mobilephone> <fax> <email> <homepage> <equipment> <buoyancycontroldevice> <name> <manufacturer> <model> <serialnumber> <purchase> <date> <year> <month> <day> <dayofweek> <price> <shop> <name> <address> <street> <city> <postcode> <country> <contact> <language> <phone> <mobilephone> <fax> <email> <homepage> <notes>... <serviceinterval> <nextservicedate> <date> <year> <month> <day> <dayofweek> <notes>... <boots> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <camera> <body> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <lens> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <housing> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <flash> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <compass> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <compressor> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <divecomputer> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <fins> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <gloves> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <knife> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <lead> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <light> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <mask> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <rebreather> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <regulator> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <scooter> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <suit> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <tank> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <tankmaterial> <variouspieces> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <videocamera> <body> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <lens> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <housing> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <watch> <alle Elemente, die unter <buoyancycontroldevice> aufgeführt sind, können auch hier stehen> <medical> <examination> <date> <year> <month> <day> <dayofweek> <doctor> <personal> <firstname> <middlename> <lastname> <title> <sex> <birthdate> <year> <month> <day> <dayofweek> <address> <street> <city> <postcode> <country> <contact> <language> <phone> <mobilephone> <fax> <email> <homepage> <examinationresult> <notes>... <education> <certification> <level> <specialty> <organization> <instructor> <firstname> <middlename> <lastname> <title> <sex> <birthdate> <date> <year> <month> <day> <dayofweek> <address> <street> <city> <postcode> <country> <contact> <language> <phone> <mobilephone> <email> <homepage> <issuedate> <date> <year> <month> <day> <dayofweek> <validdate> <date> <year> <month> <day> <dayofweek> <notes>... <divepermissions> <permit> <name> <region> <issuedate> <date> <year> <month> <day> <dayofweek> <validdate> <date> <year> <month> <day> <dayofweek> <notes>... <diveinsurances> <insurance> <name> <issuedate> <date> <year> <month> <day> <dayofweek> <validdate> <date> <year> <month> <day> <dayofweek> <notes>...
Innerhalb <divesite> gibt es nur das eine Element <site>, innerhalb dessen ein Tauchplatz genau beschrieben wird und welches beliebig oft wiederholt werden kann.
<site> <name> <geography> <location> <province> <country> <latitude> <longitude> <altitude> <timezone> <ecology> <fauna> <invertebrata> <porifera> <species> <trivialname> <scientificname> <lightintensity> <age> <abundance> <dominance> <sex> <size> <notes>... <coelenterata> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <cnidaria> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <ctenophora> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <plathelminthes> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <bryozoa> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <phoronidea> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <ascidiacea> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <echinodermata> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <mollusca> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <crustacea> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <invertebratavarious> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <vertebrata> <chondrichthyes> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <osteichthyes> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <mammalia> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <amphibia> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <reptilia> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <vertebratavarious> <alle Elemente, die unter <porifera> aufgeführt sind, können auch hier stehen> <flora> <rhodophyceae> <species> <trivialname> <scientificname> <lightintensity> <age> <abundance> <dominance> <sex> <lifestage> <size> <notes>... <phaeophyceae> <alle Elemente, die unter <rhodophyceae> aufgeführt sind, können auch hier stehen> <chlorophyceae> <alle Elemente, die unter <rhodophyceae> aufgeführt sind, können auch hier stehen> <spermatophyta> <alle Elemente, die unter <rhodophyceae> aufgeführt sind, können auch hier stehen> <floravarious> <alle Elemente, die unter <rhodophyceae> aufgeführt sind, können auch hier stehen> <sitedata> <arealength> <areawidth> <averagevisibility> <bottom> <density> <difficulty> <globallightintensity> <maximumdepth> <maximumvisibility> <minimumdepth> <minimumvisibility> <rating> <terrain> <wreck>
(das Element <wreck> kann auch innerhalb der nachfolgend genannten Elemente <indoor>, <lake>, <river> oder <shore> stehen und wird dort nicht gesondert aufgeführt)
<name> <shiptype> <nationality> <built> <shipyard> <launchingdate> <date> <year> <month> <day> <dayofweek> <shipdimension> <length> <beam> <draught> <displacement> <tonnage> <sunk> <date> <year> <month> <day> <dayofweek> <time> <hour> <minute> <notes>... <cave> <name> <notes>... <indoor> <name> <address> <street> <city> <postcode> <country> <contact> <language> <phone> <mobilephone> <fax> <email> <homepage> <notes>... <lake> <name> <notes>... <river> <name> <notes>... <shore> <name> <notes>... <notes>...
In dieser Sektion werden sämtliche verwendeten Atemgase sowie Tauchflaschen — soweit es um Angaben für eine Atemgasverbrauchsrechnung geht — beschrieben (allgemeine Angaben zu Tauchflaschen als Ausrüstungsbestandteil werden in der <tank>-Sektion innerhalb der <equipment>-Sektion abgelegt). Für jedes Atemgas muß eine eigene <mix>-Untersektion angelegt werden, ebenso für jede verwendete Flasche eine <tankdata>-Untersektion. <mix> und <tankdata> sind die einzigen Elemente innerhalb <gasdefitions> und können beliebig oft wiederholt werden. Es müssen zuerst sämtliche <mix>-Untersektionen aufgelistet werden und danach erst die <tankdata>-Untersektionen, da innerhalb letzterer auf die eingesetzten Gasgemische referenziert wird. Natürlich sind auch weitere Referenzierungen auf <tank>-Elemente innerhalb der Ausrüstungsspezifikation (<equipment>) möglich.
<mix> <name> <o2> <n2> <he> <ar> <h2> <priceperlitre> <maximumpo2> <maximumoperationdepth> <equivalentairdepth> <tankdata> <mixref/> <tankref/> <tankvolume> <tankpressurebegin> <tankpressureend> <breathingconsumptionvolume>
Innerhalb der <profiledata>-Sektion erfolgen die eigentlichen Angaben zu den einzelnen Tauchgangsprofilen. Einziges Element ist hier <repetitiongroup>, welches beliebig oft wiederholt werden kann. <repetitiongroup> klammert einen oder mehrere Tauchgänge (siehe <dive>). Der erste Tauchgang in einer <repetitiongroup> sollte (muß) ein ,,unendliches'' Oberflächenintervall aufweisen, das heißt, die Gewebe sollten vollkommen entsättigt sein. Da das ausführende Programm keine weiteren Informationen bezüglich der Zeit vor diesem ersten Tauchgang hat, muß es von einer vollständigen Entsättigung der Gewebe ausgehen.
Es ist weder vernünftig noch erlaubt die Sättigungsdaten des letzten Tauchgangs einer vorherigen <repetitiongroup>-Gruppe als ,,Sättigungsvorgeschichte'' zum ersten Tauchgang einer nachfolgenden <repetitiongroup>-Gruppe zu verwenden!
In Abhängigkeit vom verwendeten Dekompressionsmodell beziehungsweise dessen Parametern können unterschiedliche Zeitdauern für eine vollständige Entsättigung der Gewebe berechnet werden. Tauchgänge, die zum Beispiel innerhalb ein und desselben Urlaubs unternommen wurden, sollten daher auf jeden Fall alle zusammen in einer <repetitiongroup> abgelegt werden — auch dann, wenn zwischen ihnen einmal größere Abstände liegen sollten (wenn zum Beispiel einmal eine Tauchpause von zwei Tagen eingelegt wurde).
<repetitiongroup> <dive> <tripref/> <siteref/> <buddyref/> <date> <year> <month> <day> <dayofweek> <time> <hour> <minute> <divenumber> <altitude> <surfaceinterval> <infinity/> <passedtime> <wayaltitude> <airtemperature> <lowesttemperature> <greatestdepth> <density> <program> <samples> <depth> <observations> <fauna> <alle unter <fauna> bei <divesite> oben aufgeführten Elemente können auch hier stehen (aus Platzgründen werden sie hier nicht aufgeführt)> <flora> <alle unter <flora> bei <divesite> oben aufgeführten Elemente können auch hier stehen (aus Platzgründen werden sie hier nicht aufgeführt)> <notes>... <notes>...
In dieser Sektion erfolgen Anweisungen zur Berechnung bzw. Erzeugung von Aufstiegsprofilen (<_calculateprofile>), Austauchtabellen (<calculatetable>) und ,,Maximale Grundzeit''-Tabellen (<calculatebottomtimetable>). Es ist möglich, durch Referenzierung auf vorhergehende Tauchgänge noch bestehende Restsättigungen zu berücksichtigen. Selbstverständlich können verschiedene Atemgase in die Rechnungen einbezogen sowie die Aufstiegsprofile und Austauchtabellen mit unterschiedlichen Dekompressionsmodellen gerechnet werden (sofern die ausführende Software dies unterstützt).
Für eine gegebene Austauchtabelle kann zusätzlich eine ,,Maximale Grundzeit''-Tabelle erzeugt werden. Diese listet für verschiedene vorzugebende Atemminuten- und Flaschenvolumina die maximalen Grundzeiten für verschiedene Tauchtiefen auf. Eventuell dabei einzuhaltende Dekompressionsstopps werden in der Rechnung selbstverständlich berücksichtigt.
<calculateprofile> <profile> <diveref/> <repetitiongroupref/> <mixref/> <tankdataref/> <surfaceinterval> <infinity/> <passedtime> <wayaltitude> <density> <output> <lingo> <fileformat> <filename> <headline> <remark> <program> <decomodel> <deepstoptime> <maximumascendingrate> <inputprofile> <depth> <mixchange> <depth>
<calculatetable> <table> <diveref/> <repetitiongroupref/> <mixref/> <surfaceinterval> <infinity/> <passedtime> <wayaltitude> <density> <output> <lingo> <fileformat> <filename> <headline> <remark> <program> <decomodel> <deepstoptime> <maximumascendingrate> <tablescope> <altitude> <divedepthbegin> <divedepthend> <divedepthstep> <bottomtimemaximum> <bottomtimeminimum> <bottomtimestepbegin> <bottomtimestepend>
<calculatebottomtimetable> <bottomtimetable> <tableref/> <output> <lingo> <fileformat> <filename> <headline> <remark> <program> <bottomtimetablescope> <divedepthbegin> <divedepthend> <divedepthstep> <breathingconsumptionvolumebegin> <breathingconsumptionvolumeend> <breathingconsumptionvolumestep> <tankvolumebegin> <tankvolumeend> <tankvolumestep> <pfill> <preserve>
Innerhalb <divetrip> gibt es nur das eine Element <trip>, innerhalb dessen eine Tauchfahrt genau beschrieben wird und welches beliebig oft wiederholt werden kann.
<trip> <name> <startdate> <year> <month> <day> <dayofweek> <enddate> <year> <month> <day> <dayofweek> <geography> <location> <province> <country> <latitude> <longitude> <altitude> <timezone> <boattrip/> <hoteltrip/> <individualtrip/> <organizedtrip/> <vessel> <name> <shiptype> <marina> <notes>... <accommodation> <name> <category> <address> <street> <city> <postcode> <country> <contact> <language> <phone> <mobilephone> <fax> <email> <homepage> <notes>... <operator> <name> <address> <street> <city> <postcode> <country> <contact> <language> <phone> <mobilephone> <fax> <email> <homepage> <rating> <notes>... <divebase> <name> <address> <street> <city> <postcode> <country> <contact> <language> <phone> <mobilephone> <fax> <email> <homepage> <priceperdive> <pricedivepackage> <guide> <rating> <notes>... <relateddives> <diveref/> <repetitiongroupref/>
In dieser Sektion stehen Anweisungen zur Konfigurierung (<setdcdata>) oder zum Auslesen (<getdcdata>) von Tauchcomputern mittels UDDF. Voraussetzung zur Anwendung der <divecomputercontrol>-Sektion ist natürlich, daß der Tauchcomputer die Kommunikation mittels UDDF beherrscht. Da dies zur Zeit (noch) bei keinem am Markt erhältlichen Tauchcomputermodell der Fall ist, beanspruchen die hier aufgelisteten Elemente noch keine Vollständigkeit. In Zukunft werden sicherlich weitere Elemente hinzukommen, denn die technischen Möglichkeiten werden ebenfalls steigen. Insbesondere in dieser Sektion ist also die Mitarbeit von Tauchcomputer-Herstellern erwünscht und gefordert, damit der ,,Stand der Technik`` realisiert werden kann!
<setdcdata>
Alle Elemente dieser Sektion beginnen mit ,,setdc...`` (für ,,set dive computer ...``), um sie eindeutig von anderen ,,set``-Elementen anderer Sektionen zu unterscheiden. Unterelemente wiederum müssen nicht unbedingt mit ,,setdc...`` beginnen (wie zum Beispiel die Einstellungen zu Datum und Uhrzeit etc.).
<setdcpassword> <setdcownerdata/> und <setdcbuddydata>
Alle unter <owner> und <buddy> aufgeführten Elemente (Daten) werden mit obigen beiden Funktionen an den Tauchcomputer übertragen.
<setdcdate> <date> <year> <month> <day> <dayofweek> <setdctime> <time> <hour> <minute> <setdcalarmtime> <time> <hour> <minute> <dcalarm> <alarmtype> <acknowledge/> <period> <setdcdivedepthalarm> <dcalarmdepth> <dcalarm> <alarmtype> <acknowledge/> <period> <setdcdivepo2alarm> <maximumpo2> <dcalarm> <alarmtype> <acknowledge/> <period> <setdcdivetimealarm> <diveduration> <dcalarm> <alarmtype> <acknowledge/> <period> <setdcendndtalarm> <dcalarm> <alarmtype> <acknowledge/> <period> <setdcdecomodel> <name> <program> <setdcaltitude> <setdcpropdata>
<getdcdata>
Alle Elemente dieser Sektion beginnen mit ,,getdc...`` (für ,,get dive computer ...``).
<getdcalldata/> <getdcgeneratordata/> <getdcownerdata/> <getdcbuddydata/> <getdcgasdefinitionsdata/> <getdcdivesitedata/> <getdcdivetripdata/> <getdcprofiledata/>
Inhaltsverzeichnis
Nachfolgend werden beispielhaft zum leichteren Verständnis einige fiktive UDDF-Dateien,
mit vielen Kommentaren versehen (eingeleitet durch ,,<!--
`` und beendet mit der
Zeichenfolge ,,-->
``), aufgeführt. In der Regel werden die angegebenen Parameter
geklammert, zum Beispiel wird mittels <city>Aheim</city>
der
Städtename ,,Aheim`` angegeben. Manche Elemente sind auch als Schalter
implementiert. Mittels <acknowledge/>
wird zum Beispiel festgelegt, daß
ein vom Tauchcomputer gegebener Alarm vom Taucher quittiert werden muß.
Es wird jeweils nur eine kleine Auswahl an Elementen aufgeführt, damit das einzelne Beispiel nicht überfrachtet und zu lang wird. Die Einrückungen erfolgen nur der Übersichtlichkeit halber für den menschlichen Betrachter. Eine maschinell erstellte UDDF-Datei braucht nicht mit Einrückungen versehen zu werden. Dennoch empfehlen die Autoren auch für solchermaßen generierte UDDF-Dateien dringend eine die Lesbarkeit unterstützende Einrückung der logisch zusammengehörenden Elemente!
Bei den einzelnen Elementen sind weitere, teilweise ausführlichere Beispiele angegeben.
<uddf version="2.1.0"> <!-- die <generator>-Sektion muß in jeder UDDF-Datei stehen --> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> <name>STL - Super-Taucher-Logbuch</name> <manufacturer>Tauchhelden-Company</manufacturer> <version>3.14159</version> <date> <year>2004</year><month>9</month> <day>30</day><dayofweek>4</dayofweek> <!-- Donnerstag --> </date> </generator> <diver> <!-- hier werden zunächst die eigenen Daten (soweit gewünscht) abgelegt... --> <owner id="owner_arno"> <!-- Beschreibung des Besitzers der UDDF-Datei (also die --> <!-- eigenen Daten angegeben) --> <personal> <firstname>Arno</firstname> <middlename>Albert</middlename> <lastname>Alzheimer</lastname> <title>Dr.</title> <sex>m</sex> <birthdate> <year>1919</year> <month>2</month> <day>30</day> </birthdate <passport>987654321</passport> </personal> <address> <street>Auf der Heide 12</street> <city>Aheim</city> <postcode>12345</postcode> <country>Deutschland</country> </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> <date> <year>2003</year <month>4</month> <day>12</day> <dayofweek>6</dayofweek> <!-- Samstag --> </date> <doctor id="doctorDusel"> <personal> <firstname>Dirk</firstname> <lastname>Dusel</lastname> <title>Dr.</title> <sex>m</sex> <birthdate> <!-- falls Geburtsdaten bekannt, können sie hier angegeben werden --> </birthdate </personal> <address> <street>Duddelstr. 34</street> <city>Dortmund</city> <postcode>54321</postcode> <country>Deutschland</country> </address> <contact> <language>deutsch</language> <phone>01234/987654</phone> <!-- weder EMail-Adresse noch Homepage bekannt --> </contact> </doctor> <examinationresult>passed</examinationresult> <notes> <text> Plattfüße scheinen die Tauchtauglichkeit nicht zu beeinflussen :-) </text> <image><objectname>plattfuss.jpg</objectname></image> </notes> </examination> <examination> <date> <year>2004</year <month>4</month> <day>20</day> <dayofweek>2</dayofweek> <!-- Dienstag --> </date> <!-- nachfolgend eine Referenzierung auf den untersuchenden Arzt, --> <!-- da die Angaben zur Person bereits oben erfolgten --> <doctorref ref="doctorDusel"/> <examinationresult>passed</examinationresult> </examination> </medical> <education> <!-- alle Stufen der Tauchausbildung -> mehrere --> <!-- <certification>-Elemente hintereinander --> <certification> <level>Bronze</level> <organisation>VDST/CMAS</organisation> <!-- da der damalige Tauchlehrer nicht in einer UDDF-Datei --> <!-- eingetragen wurde, entfällt auch die Referenz darauf --> <!-- mittels <instructorref ref="..."/> --> <issuedate> <date> <year>1994</year <month>3</month> <day>15</day> <dayofweek>2</dayofweek> <!-- Dienstag --> </date> </issuedate> </certification> <certification> <level>Silber</level> <organisation>VDST/CMAS</organisation> <!-- da der damalige Tauchlehrer nicht in einer UDDF-Datei --> <!-- eingetragen wurde, entfällt auch die Referenz darauf --> <!-- mittels <instructorref ref="..."/> --> <issuedate> <date> <year>1997</year <month>11</month> <day>26</day> <dayofweek>3</dayofweek> <!-- Mittwoch --> </date> </issuedate> </certification> <certification> <level>Gold</level> <organisation>VDST/CMAS</organisation> <!-- da der damalige Tauchlehrer nicht in einer UDDF-Datei --> <!-- eingetragen wurde, entfällt auch die Referenz darauf --> <!-- mittels <instructorref ref="..."/> --> <issuedate> <date> <year>2000</year <month>5</month> <day>10</day> <dayofweek>3</dayofweek> <!-- Mittwoch --> </date> </issuedate> </certification> </education> <divepermissions> <!-- hier können beliebig viele Genehmigungen aufgelistet werden --> <permit> <name>DiveCard</name> <region>Österreich</region> <issuedate> <!-- Ausstellungsdatum --> <date> <year>2004</year <month>8</month> <day>24</day> <dayofweek>2</dayofweek> <!-- Dienstag --> </date> </issuedate> <validdate> <!-- Gültigkeitsdatum --> <date> <year>2005</year <month>8</month> <day>23</day> <dayofweek>2</dayofweek> <!-- Dienstag --> </date> </validdate> </permit> <permit> <name>Zeeland</name> <region>Zeeland (Niederlande)</region> <issuedate> <!-- Ausstellungsdatum --> </date> <year>1996</year <month>9</month> <day>3</day> <dayofweek>2</dayofweek> <!-- Dienstag --> </date> </issuedate> <validdate> <!-- Gültigkeitsdatum --> <date> <year>2001</year <month>8</month> <day>31</day> <dayofweek>5</dayofweek> <!-- Freitag --> </date> </validdate> </permit> <!-- hier gegebenenfalls weitere Genehmigungen --> </divepermissions> <!-- da keine zusätzlichen Tauchunfall-Versicherungen abgeschlossen --> <!-- wurden, entfällt <diveinsurances>...</diveinsurances> --> </owner> <!-- ... und nun folgen die Daten aller Tauchpartner (soweit bekannt) --> <buddy id="buddy_bert_der_luftsauger"> <!-- Daten des ersten Tauchpartners --> <personal> <firstname>Bert</firstname> <lastname>Bammel</lastname> </personal> <!-- keine Adreßdaten angegeben - <address>...</address> entfällt --> <contact> <email>luftsauger@tieftauchen.de</email> <homepage>http://www.tieftauchen.info/bert</homepage> </contact> </buddy> <buddy id="buddyCarsten"> <!-- Beschreibung eines weiteren Tauchpartners --> <personal> <firstname>Carsten</firstname> <lastname>Cabuff</lastname> </personal> <!-- Adreßdaten nicht bekannt - <address>...</address> entfällt --> <contact> <email>lurchi@abcde.com</email> <homepage>http://www.tieftauchen.info/carsten</homepage> </contact> </buddy> <!-- hier können noch Beschreibungen von weiteren Tauchpartnern eingefügt werden --> </diver> <!-- hier könnten weitere Sektionen folgen, z.B. die Tauchprofildaten --> <!-- oder zur Generierung von Austauchtabellen --> </uddf>
<uddf version="2.1.0"> <!-- die <generator>-Sektion muß in jeder UDDF-Datei stehen --> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> ... </generator> <divesite> <!-- Beschreibungen aller Tauchplätze --> <site id="site_Scapa_Brummer"> <!-- Beschreibung des ersten erfaßten Tauchplatzes --> <name>Brummer</name> <geography> <location>Scapa Flow</location> <province>Orkney Islands</province> <country>UK</country> <!-- Breitengrad: Nord > 0 / Süd < 0 --> <latitude>58.897222</latitude> <!-- Längengrad: Ost > 0 / West < 0 --> <longitude>-3.1519444</longitude> <altitude>0.0</altitude> </geography> <sitedata> <maximumdepth>37.0</maximumdepth> <density>1030.0</density> <!-- Salzwasser --> <bottom>Sandboden</bottom> <wreck id="wreck_Brummer"> <name>SMS Brummer</name> <shiptype>light cruiser</shiptype> <nationality>German</nationality> <built> <shipyard>Vulcan, Stettin</shipyard> <date> <year>1916</year> </date> </built> <shipdimension> <length>140.0</length> <beam>13.0</beam> <draught>6.0</draught> <displacement>4.385E6</displacement> </shipdimension> <sunk> <date> <year>1919</year> <month>6</month> <day>21</day> <dayofweek>6</dayofweek> <!-- Samstag --> </date> <time> <hour>13</hour> <minute>5</minute> </time> </sunk> <notes> <text>Deutsche Hochsee-Flotte</text> </notes> </wreck> </sitedata> <notes> <text>Sehr schöner Wrack-Tauchgang</text> </notes> </site> <!-- weitere Tauchspots --> </divesite> <divetrip> <!-- es folgen alle dokumentierten Tauchfahrten --> <trip id="urlaub2003"> <name>Vereinsfahrt Rotes Meer 2003</name> <startdate> <year>2003</year><month>4</month><day>12</day> </startdate> <enddate> <year>2003</year><month>4</month><day>19</day> </enddate> <geography> <location>Hurghada</location> <country>Ägypten</country> </geography> <organizedtrip/> <hoteltrip/> <accommodation> <name>Hotel 1000 und 1 Nacht</name> <category>4</category> <contact> <email>info@hotel-1000-und-1-nacht.com</email> <homepage>http://www.hotel-1000-und-1-nacht.com</homepage> </contact> <rating>6</rating> </accommodation> <divebase> <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> <!-- Tauchguide bereits als <buddy> beschrieben, deshalb hier nur Referenzierung --> <buddyref ref="buddy_Georg"/> </guide> <guide> <!-- 2. Tauchguide bereits ebenfalls als <buddy> beschrieben... --> <buddyref ref="buddy_Hansi_der_Luftschlucker"/> </guide> <rating>7</rating> </divebase> <notes> <text>schöner Tauchurlaub - wenn nicht so viele andere Taucher dort wären...</text> <video><objectname>rm2003.avi</objectname></video> </notes> </trip> <trip id="urlaub2004"> <name>Tauch-Segeltörn 2004</name> <startdate> <year>2004</year><month>9</month><day>24</day>dayofweek>5</dayofweek> </startdate> <enddate> <year>2004</year><month>10</month><day>3</day>dayofweek>7</dayofweek> <!-- </enddate> <geography> <province>Cote d'Azur</province> <country>Frankreich</country> </geography> <individualtrip/> <boattrip/> <vessel> <name>Dorade</name> <shiptype>Segelyacht</shiptype> <marina>Bormes les Mimosas</marina> </vessel> <relateddives> <diveref ref="tg_530"/><diveref ref="tg_531"/><diveref ref="tg_532"/><diveref ref="tg_533"/> <diveref ref="tg_534"/><diveref ref="tg_535"/><diveref ref="tg_536"/><diveref ref="tg_537"/> <diveref ref="tg_538"/><diveref ref="tg_539"/><diveref ref="tg_540"/><diveref ref="tg_541"/> </relateddives> <notes> <text>Unser Motto: Wir tauchen das, wovon andere träumen!!! :-)</text> <video><objectname>tst2004.avi</objectname></video> </notes> </trip"> </divetrip> <!-- hier können weitere Sektionen folgen, z.B. die Tauchprofildaten --> <!-- oder zur Generierung von Austauchtabellen --> </uddf>
<uddf version="2.1.0"> <!-- die <generator>-Sektion muß in jeder UDDF-Datei stehen --> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> </generator> <divesite> <!-- Beschreibungen aller Tauchplätze --> <site id="site_Untiefe_südlich_Gabiniere"> <name>Untiefe südlich des Ilot de la Gabiniere</name> <geography> <location>Ilot de la Gabiniere</location> <province>Cote d'Azur</province> <country>Frankreich</country> <!-- Breiten- und Längengrad nicht bekannt --> <altitude>0.0</altitude> </geography> <ecology> <!-- Aufzählung der typischerweise anzutreffenden Pflanzen und Tiere --> <fauna> <invertebrata> <!-- Wirbellose --> <porifera> <!-- Schwämme --> <species> <trivialname>Nierenschwamm</trivialname> <scientificname>Chondrosia reniformis</scientificname> </species> <species> <trivialname>Roter Krustenschwamm</trivialname> <scientificname>Crambe crambe</scientificname> </species> <species> <trivialname>Hellblauer Krustenschwamm</trivialname> <scientificname>Anchinoe</scientificname> </species> </porifera> <cnidaria> <!-- Nesseltiere --> <species> <trivialname>Rote Gorgonie</trivialname> <scientificname>Paramuricea clavata (chamaeleon)</scientificname> </species> </cnidaria> <ascidiacea> <!-- Seescheiden --> <species> <trivialname>Rote Seescheide</trivialname> <scientificname>Halocynthia papillosa</scientificname> </species> </ascidiacea> <echinodermata> <!-- Stachelhäuter --> <species> <trivialname>Purpurseestern</trivialname> <scientificname>Echinaster sepositus</scientificname> </species> </echinodermata> </invertebrata> <vertebrata> <!-- Wirbeltiere --> <osteichthyes> <!-- Knochenfische --> <species> <trivialname>Mittelmeer-Muräne</trivialname> <scientificname>Muraena helena</scientificname> </species> <species> <trivialname>Brauner Zackenbarsch</trivialname> <scientificname>Epinephelus guaza</scientificname> </species> <species> <trivialname>Spitzkopf-Zackenbarsch</trivialname> <scientificname>Epinephelus alexandrinus</scientificname> </species> <species> <trivialname>Roter Fahnenbarsch</trivialname> <scientificname>Anthias anthias</scientificname> </species> <species> <trivialname>Mönchsfisch</trivialname> <scientificname>Chromis chromis</scientificname> </species> <species> <trivialname>Meerjunker</trivialname> <scientificname>Coris julis</scientificname> </species> <species> <trivialname>Zweibindenbrassen</trivialname> <scientificname>Diplodus vulgaris</scientificname> </species> <species> <trivialname>Brandbrassen</trivialname> <scientificname>Oblada melanura</scientificname> </species> <species> <trivialname>Pfauenlippfisch</trivialname> <scientificname>Symphodus tinca</scientificname> </species> </osteichthyes> </vertebrata> </fauna> <flora> <rhodophyceae> <!-- Rotalgen --> <species> <trivialname>Peyssonnelia</trivialname> <scientificname>Peyssonnelia squamaria</scientificname> </species> </rhodophyceae> <chlorophyceae> <!-- Grünalgen --> <species> <trivialname>Meersalat</trivialname> <scientificname>Ulva rigida</scientificname> </species> <species> <trivialname>Meerball</trivialname> <scientificname>Codium bursa</scientificname> </species> </chlorophyceae> </flora> </ecology> <sitedata> <minimumdepth>18.0</minimumdepth> <maximumdepth>32.0</maximumdepth> <arealength>20.0</arealength> <!-- Länge des Felsens --> <areawidth>8.0</areawidth> <!-- Breite des Felsens --> <!-- (aus den obigen vier Angaben kann ggfs. auch ein Volumen berechnet werden) --> <density>1030.0</density> <!-- Salzwasser --> <bottom>Felsen</bottom> </sitedata> <notes> <text> Erstklassiger Tauchplatz! Aufgrund von Strömung oftmals nur schwierig zu betauchen. Erreichbar entweder im Freiwasser-Abstieg vom Boot oder - bei guter (!) Kenntnis der Geländebeschaffenheit - von der Südspitze des Ilot de la Gabiniere aus nach Südwesten tauchend. Recht schmaler, langgezogener Felskamm, auf beiden Seiten steilwandartig. Dichter Bewuchs mit Algen, Schwämmen, Gorgonien. Viele Fische, insbesondere zahlreich anzutreffende Zackenbarsche. </text> <image> <objectname>rote_gorgonie.jpg</objectname> <!-- Sofern vorhanden, könnten hier zusätzlich noch mittels <imagedata> --> <!-- weitere Informationen zu diesem Bild abgelegt werden (Blende, Verschlußzeit, --> <!-- Datum und Uhrzeit der Aufnahme, Objektivbrennweite, eingestellte Entfernung) --> <!-- (entsprechend bei den nachfolgend aufgelisteten Bildern) --> </image> <image><objectname>eisseestern.jpg</objectname></image> <image><objectname>5_zackis.jpg</objectname></image> <image><objectname>meersalat_meerjunker.jpg</objectname></image> <image><objectname>heinz_neben_3_zackis.jpg</objectname></image> <image><objectname>portrait_grosser_roter_drachenkopf.jpg</objectname></image> <video><objectname>untiefe_040928.avi</objectname></video> </notes> </site> </divesite> <!-- weitere Tauchspots --> </uddf>
<uddf version="2.1.0"> <!-- die <generator>-Sektion muß in jeder UDDF-Datei stehen --> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> <name>STL - Super-Taucher-Logbuch</name> <manufacturer>Tauchhelden-Company</manufacturer> <version>3.14159</version> <date> <year>2004</year><month>9</month><day>30</day> </date> </generator> <diver> <owner> <!-- Beschreibung des Besitzers der UDDF-Datei --> <personal> <!-- persönliche Daten (Name usw.) --> </personal> <address> <!-- Adreßdaten... --> </address> <!-- hier weitere Angaben zum Besitzer --> <equipment> <!-- Auflistung der Ausrüstungsteile des Besitzers der UDDF-Datei --> ... <tank id="flasche_1"> <name>Lieblingspulle</name> <manufacturer>Superflaschen-Hersteller</manufacturer> <model>Hart wie Stahl</model> <serialnumber>12345</serialnumber> <purchase> <date> <!-- Datum des Kaufs der Preßluftflasche --> </date> <price currency="DM">250.00</price> <shop> <!-- Angaben zum Geschäft, in dem die Flasche erworben wurde --> </shop> </purchase> <nextservicedate> <!-- Datum der nächsten fälligen TÜV-Abnahme --> </nextservicedate> <tankmaterial>steel</tankmaterial> <!-- Stahlflasche --> <notes> <image> <objectname>stahlpulle_neu.jpg</objectname> <imagedata> <!-- Datum der Aufnahme --> <date> <year>2001</year><month>5</month><day>2</day> </date> </imagedata> </image> <image> <objectname>stahlpulle_nach_2_jahren.jpg</objectname> <imagedata> <!-- Datum der Aufnahme --> <date> <year>2003</year><month>7</month><day>6</day> </date> </imagedata> </image> </notes> </tank> <!-- hier können noch Beschreibungen von weiteren Preßluftflaschen eingefügt werden --> </equipment> </owner> </diver> <gasdefinitions> <!-- alle verwendeten Atemgase --> <mix id="Sauerstoff_rein"> <name>pure oxygen</name> <!-- reiner Sauerstoff --> <o2>1.000</o2> <n2>0.000</n2> <he>0.000</he> <ar>0.000</ar> <h2>0.000</h2> </mix> <mix id="air"> <name>air</name> <!-- Luft --> <o2>0.210</o2> <n2>0.790</n2> <he>0.000</he> <ar>0.000</ar> <h2>0.000</h2> </mix> <mix id="nitrox6040"> <name>Nitrox60/40</name> <!-- Nitrox 60 % N2, 40 % O2 --> <o2>0.400</o2> <n2>0.600</n2> <he>0.000</he> <ar>0.000</ar> <h2>0.000</h2> </mix> <mix id="trimix"> <name>Trimix</name> <!-- Trimix 15 % O2, 40 % N2, 45 % He --> <o2>0.150</o2> <n2>0.400</n2> <he>0.450</he> <ar>0.000</ar> <h2>0.000</h2> </mix> <!-- hier können noch weitere <mix>-Elemente eingefügt werden --> <tankdata id="luft_1"> <!-- luftgefüllte 15 Liter-Flasche, Fülldruck zu Beginn 200 bar, Atemminutenvolumen 12 bar * Liter --> <mixref ref="air"/> <tankref ref="flasche_1"/> <tankvolume>0.015</tankvolume> <tankpressurebegin>20000000.0</tankpressurebegin> <breathingconsumptionvolume>0.0002</breathingconsumptionvolume> </tankdata> <tankdata id="luft_2"> <!-- eine andere luftgefüllte Flasche... --> <mixref ref="air"/> <tankvolume>0.01</tankvolume> <tankpressurebegin>20000000.0</tankpressurebegin> <breathingconsumptionvolume>0.0003333333333</breathingconsumptionvolume> <!-- [m^3/s] ^= 20 ba </tankdata> <tankdata id="nitrox_pülleken"> <mixref ref="nitrox6040"/> <tankvolume>0.01</tankvolume> <tankpressurebegin>220000000.0</tankpressurebegin> <breathingconsumptionvolume>0.00025</breathingconsumptionvolume> <!-- [m^3/s] ^= 15 ba </tankdata> <tankdata id="o2_flasche"> <mixref ref="Sauerstoff_rein"/> <tankvolume>0.008</tankvolume> <tankpressurebegin>20000000.0</tankpressurebegin> <breathingconsumptionvolume>0.0002</breathingconsumptionvolume> <!-- [m^3/s] ^= 12 ba </tankdata> <!-- hier können noch weitere <tankdata>-Elemente eingefügt werden --> </gasdefinitions> </uddf>
<uddf version="2.2.0"> <!-- die <generator>-Sektion muß in jeder UDDF-Datei stehen --> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> <name>Tausim v1.0</name> <manufacturer>Kai Schröder</manufacturer> <version>1.0</version> <date> <year>2006</year><month>4</month><day>28</day> </date> </generator> <divesite> <site id="site_tausim_0.0_1030.0"> <geography> <altitude>0.0</altitude> <!-- Meereshöhe --> </geography> <sitedata> <density>1030.0</density> <!-- Salzwasser --> </sitedata> </site> </divesite> <gasdefinitions> <!-- alle verwendeten Atemgase --> <mix id="air"> <name>air</name> <!-- Luft --> <o2>0.210</o2> <n2>0.790</n2> <he>0.000</he> <ar>0.000</ar> <h2>0.000</h2> </mix> <tankdata> <mixref ref="air"/> <tankvolume>0.015</tankvolume> <tankpressurebegin>20000000.0</tankpressurebegin> <breathingconsumptionvolume>12.0</breathingconsumptionvolume> </tankdata> </gasdefinitions> <profiledata> <!-- hier ein (1) beispielhaft aufgezeichnetes Tauchprofil --> <repetitiongroup> <dive id="dive_tausim_060428_1549"> <siteref ref="site_tausim_0.0_1030.0"/> <date><year>2006</year><month>4</month><day>28</day></date> <time><hour>15</hour><minute>49</minute></time> <surfaceinterval> <infinity/> </surfaceinterval> <!-- die Temperatur spielt keine Rolle bei "Tausim", aber die größte erreichte --> <!-- Tiefe des (simulierten) Tauchgangs wird zusätzlich in die UDDF-Datei ausgegeben --> <greatestdepth>53.0</greatestdepth> <program> <!-- Innerhalb dieser Sektion stehen Software-spezifische Daten, --> <!-- die nur für das Tauchgangsprofil erzeugende Programm - in --> <!-- diesem Fall "Tausim" - relevant sind und von anderen --> <!-- Programmen ignoriert werden können --> <tausim> <pres>4000000.0</pres> <timeinc>10</timeinc> <depthinc>10</depthinc> <durdep>9</durdep> <nstatic>18</nstatic> <rls>50</rls> <decomodel>ZH-L16</decomodel> <buehl>5</buehl> <tissues>16</tissues> <ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70 <ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70 <ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70 <ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70000</ip><ip>75073.70 </tausim> </program> <timedepthmode/> <samples> <depth divetime="0.0" switchmix="air">0.0</depth> <depth divetime="300.0">50.0</depth> <depth divetime="420.0">50.0</depth> <depth divetime="480.0">46.0</depth> <depth divetime="600.0">46.0</depth> <depth divetime="660.0">53.0</depth> <depth divetime="720.0">48.0</depth> <depth divetime="900.0">48.0</depth> <depth divetime="960.0">38.0</depth> <depth divetime="1260.0">38.0</depth> <depth divetime="1380.0">25.0</depth> <depth divetime="1560.0">21.0</depth> <depth divetime="1860.0">11.0</depth> <depth divetime="2220.0">11.0</depth> <depth divetime="2340.0">5.0</depth> <depth divetime="2580.0">5.0</depth> <depth divetime="2640.0">3.0</depth> <depth divetime="4140.0">3.0</depth> <depth divetime="4500.0">0.0</depth> </samples> </dive> <!-- end dive_tausim_060428_1549 --> <!-- hier können noch weitere <dive>-Sektionen eingefügt werden --> </repetitiongroup> <!-- hier können noch weitere <repetitiongroup>-Sektionen eingefügt werden --> </profiledata> <tablegeneration> <!-- hier folgen Parameter zur Generierung von Austauchtabellen --> </tablegeneration> </uddf>
<uddf version="2.1.0"> <!-- die <generator>-Sektion muß in jeder UDDF-Datei stehen --> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> <name>TG-Planer</name> <manufacturer>Zackenbarsch GmbH</manufacturer> <version>1.41421</version> <date> <year>2006</year><month>6</month><day>20</day> </date> </generator> <gasdefinitions> <mix id="sauerstoff"> <name>pure oxygen</name> <!-- reiner Sauerstoff --> <o2>1.000</o2> <n2>0.000</n2> <he>0.000</he> <ar>0.000</ar> <h2>0.000</h2> </mix> <mix id="noaa1"> <name>NOAA1</name> <!-- 32 % O2, 68 % N2 --> <o2>0.320</o2> <n2>0.680</n2> <he>0.000</he> <ar>0.000</ar> <h2>0.000</h2> </mix> <mix id="trimix"> <name>Trimix</name> <!-- Trimix 16 % O2, 40 % N2, 44 % He --> <o2>0.160</o2> <n2>0.400</n2> <he>0.440</he> <ar>0.000</ar> <h2>0.000</h2> </mix> <mix id="heliox"> <name>Heliox</name> <!-- 12 % O2, 88 % He --> <o2>0.120</o2> <n2>0.000</n2> <he>0.880</he> <ar>0.000</ar> <h2>0.000</h2> </mix> </gasdefinitions> <tablegeneration> <!-- hier folgen Parameter zur Generierung von Austauchtabellen --> <profile> <!-- <diveref ref="..."/> oder <repetitiongroupref ref="..."/> entfallen, --> <!-- da Gewebe entsprechend Umgebungsdruck gesättigt --> <!-- <tankdataref ref="..."/> entfällt, da keine Gasverbrauchsberechnung durchgeführt werden soll --> <mixref ref="sauerstoff"/> <mixref ref="noaa1"/> <mixref ref="trimix"/> <mixref ref="heliox"/> <surfaceinterval> <!-- Gewebe entsprechend Umgebungsdruck gesättigt, es braucht keine --> <!-- Restsättigung eines vorherigen Tauchgangs berücksichtigt zu werden. --> <infinity/> </surfaceinterval> <density>1030.0</density> <!-- Salzwasser --> <output> <lingo>en</lingo> <fileformat>pdf</fileformat> <filename>beispiel_profil_1</filename> <headline>100 m Beispiel-TG</headline> <remark> Dies ist eine Beispiel-Rechnung für einen TG auf 100 m Tiefe in Salzwasser. </remark> </output> <!-- Softwarespezifische Angaben, die ein UDDF-Parser nicht weiter auswertet --> <program>...</program> <!-- Vorgabe des zu verwendenden Dekomodells --> <!-- Falls das ausführende Programm dieses Dekomodell nicht unterstützt, muß das --> <!-- Standard-Modell der Software verwendet werden - dies sollte dem Benutzer --> <!-- dann selbstverständlich zur Kenntnis gebracht werden! :-) --> <decomodel>ZH-L16</decomodel> <!-- "Deep Stops" sollen einbezogen werden; diese sollen 1 min lang sein --> <deepstoptime>60.0</deepstoptime> <!-- maximale Aufstiegsgeschwindigkeit in Meter pro Sekunden --> <!-- hier: 10 m/min ^= 0.1666... m/s --> <maximumascendingrate>0.16666666667</maximumascendingrate> <!-- Vorgabe, auf welchen Tiefen jeweils das Atemgas gewechselt werden soll --> <mixchange> <!-- Atemgaswechsel beim Abstieg --> <descent> kai <!-- Beginn des TGs mit Nitrox NOAA I (32 % O2, 68 % N2) --> <d> 0.0</d><switchmix>noaa1</switchmix> <!-- auf 35 m Tiefe Wechsel auf das Trimix-Gemisch --> <d>35.0</d><switchmix>trimix</switchmix> <!-- auf 80 m Tiefe Wechsel auf Heliox --> <d>80.0</d><switchmix>heliox</switchmix> </descent> <!-- Atemgaswechsel beim nachfolgenden Aufstieg --> <ascent> <d>85.0</d><switchmix>trimix</switchmix> <d>40.0</d><switchmix>noaa1</switchmix> <d> 5.0</d><switchmix>sauerstoff</switchmix> </ascent> </mixchange> <!-- Vorgabe des Abstiegs-Profiles, auf dessen Grundlage das Aufstiegsprofil berechnet werden soll --> <inputprofile> <!-- Jeder Tauchgang beginnt bei 0 min an der Oberfläche! :-) --> <t> 0.0</t><d> 0.0</d> <!-- einfaches Profil: --> <!-- Abstieg innerhalb von 5 min auf 100 m --> <t>300.0</t><d>100.0</d> <!-- auf der Tiefe soll 10 min verblieben werden --> <t>900.0</t><d>100.0</d> <!-- jetzt beginnt der Aufstieg, für den die Software das Profil berechnen soll --> </inputprofile> </profile> </tablegeneration> </uddf>
<uddf version="2.1.0"> <!-- die <generator>-Sektion muß in jeder UDDF-Datei stehen --> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> <name>STL - Super-Taucher-Logbuch</name> <manufacturer>Tauchhelden-Company</manufacturer> <version>3.14159</version> <date> <year>2004</year><month>9</month><day>30</day> </date> </generator> <gasdefinitions> <!-- --> </gasdefinitions> <profiledata> <!-- alle aufgezeichneten Tauchprofile --> </profiledata> <tablegeneration> <!-- hier folgen Parameter zur Generierung von Austauchtabellen --> </tablegeneration> </uddf>
<uddf version="2.1.0"> <!-- die <generator>-Sektion muß in jeder UDDF-Datei stehen --> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> <name>MGT</name> <manufacturer>Kai Schröder</manufacturer> <version>0.6</version> <date> <year>2004</year><month>9</month><day>30</day> </date> </generator> <gasdefinitions> <!-- nur Luft wird verwendet --> <mix id="luft"> <name>Luft</name> <o2>21.000</o2> <n2>79.000</n2> <he> 0.000</he> <ar> 0.000</ar> <h2> 0.000</h2> </mix> </gasdefinitions> <profiledata> <!-- alle aufgezeichneten Tauchprofile - in diesem Fall wird keines benötigt --> </profiledata> <tablegeneration> <calculatebottomtimetable> <bottomtimetable id="DECO2000"> <tableref ref="deco2000"/> <output> <!-- Ausgabesprache ,,deutsch`` vorgeben --> <lingo>de</lingo> <!-- Format der Ausgabedatei, hier ASCII --> <fileformat>ascii</fileformat> <!-- Name der auszugebenden Datei --> <filename>mgt_deco2000</filename> <!-- Überschrift für die Tabelle --> <headline>Tabelle fuer 0 m bis 700 muedM (DECO 2000)</headline> <!-- Bemerkungen zur Tabelle --> <remark> Maximale Grundzeit in Minuten bei verschiedenen Flaschenvolumina, Tauchtiefen und Atemminutenvolumen (AMV) unter Beruecksichtigung von notwendigen Dekompressionsstopps Wird die Nullzeit bei einem Tauchgang ueberschritten, so wird der max. Grundzeit ein "d" (fuer Deko-Tauchgang) vorangestellt. Ist die maximale Grundzeit laenger als die Nullzeit, aber dafuer in der Tabelle kein Dekostopp angegeben, so wird die Nullzeit als maximale Grundzeit angegeben und dieser ein "s" (fuer "Sicher- heitsstopp") vorangestellt. In diesem Fall obliegt es dem Taucher, einen Sicherheitsstopp von z.B. 3 min auf 5 m (oder laenger) zu machen. Muss die maximale Grundzeit auf die laengste in der Tabelle enthaltene Grundzeit gesetzt werden (weil fuer laengere Grundzeiten keine Dekostopps mehr berechnet wurden), wird dem Wert ein "t" vorangestellt. In diesem Fall ist die theoretisch moegliche maximale Grundzeit laenger als die angegebene, aber dafuer existieren keine Dekostopp-Angaben mehr. Grundzeiten berechnet mit Hilfe der Austauchtabelle DECO 2000 (0 -- 700 muedM) von Max Hahn; Aufstiegsgeschwindigkeit 10 m/min </remark> </output> <bottomtimetablescope> <!-- niedrigste Tiefe 5 m --> <divedepthbegin>5.0</divedepthbegin> <!-- tiefste Tiefe 60 m --> <divedepthend>60.0</divedepthend> <!-- Schrittweite für Tiefe 5 m --> <divedepthstep>5.0</divedepthstep> <!-- die Tabelle soll auch für verschiedene Atemminutenvolumina gerechnet werden... --> <!-- Beginn mit einem AMV von 10 l/min --> <breathingconsumptionvolumebegin>0.00016666667</breathingconsumptionvolumebegin> <!-- Ende mit 30 l/min --> <breathingconsumptionvolumeend>0.0005</breathingconsumptionvolumeend> <!-- Schrittweite 5 l/min --> <breathingconsumptionvolumestep>8.3333333e-5</breathingconsumptionvolumestep> <!-- ... und auch für verschiedene Flaschenvolumina... --> <!-- Beginn mit einem Flaschenvolumen von 10 Litern ^= 0.01 m^3 --> <tankvolumebegin>0.01</tankvolumebegin> <!-- Ende mit 20 Litern --> <tankvolumeend>0.02</tankvolumeend> <!-- Schrittweite 5 Liter --> <tankvolumestep>0.005</tankvolumestep> <!-- Fülldruck zu Beginn des Tauchgangs 200 bar --> <pfill>20000000.0</pfill> <!-- zu berücksichtigender Reservedruck am Ende des TGs, --> <!-- der nicht angebrochen werden darf (40 bar) --> <preserve>40000.0</preserve> </bottomtimetablescope> </bottomtimetable> </calculatebottomtimetable> </tablegeneration> </uddf>
Die Ausgabe zu obigen Anweisungen könnte ein Programm wie folgt generieren:
MGT - Maximale Grundzeit-Tabellen-Berechnung v0.6 vom 27.3.2006, Autor: Kai Schroeder Maximale Grundzeit in Minuten bei verschiedenen Flaschenvolumina, Tauchtiefen und Atemminutenvolumen (AMV) unter Beruecksichtigung von notwendigen Dekompressionsstopps Wird die Nullzeit bei einem Tauchgang ueberschritten, so wird der max. Grundzeit ein "d" (fuer Deko-Tauchgang) vorangestellt. Ist die maximale Grundzeit laenger als die Nullzeit, aber dafuer in der Tabelle kein Dekostopp angegeben, so wird die Nullzeit als maximale Grundzeit angegeben und dieser ein "s" (fuer "Sicher- heitsstopp") vorangestellt. In diesem Fall obliegt es dem Taucher, einen Sicherheitsstopp von z.B. 3 min auf 5 m (oder laenger) zu machen. Muss die maximale Grundzeit auf die laengste in der Tabelle enthaltene Grundzeit gesetzt werden (weil fuer laengere Grundzeiten keine Dekostopps mehr berechnet wurden), wird dem Wert ein "t" vorangestellt. In diesem Fall ist die theoretisch moegliche maximale Grundzeit laenger als die angegebene, aber dafuer existieren keine Dekostopp-Angaben mehr. Grundzeiten berechnet mit Hilfe der Austauchtabelle DECO 2000 (0 -- 700 muedM) von Max Hahn; Aufstiegsgeschwindigkeit 10 m/min Tabelle fuer 0 m bis 700 muedM (DECO 2000) ---------------------------------------------------------------------------------------------------- | maximale Grundzeit [min] |-------------------------------------------------------------------------------------------- | Flaschenvolumen Tauch | 10 Liter | 15 Liter | 20 Liter tiefe | | | [m] | AMV [l/min] | AMV [l/min] | AMV [l/min] | 10 15 20 25 30 | 10 15 20 25 30 | 10 15 20 25 30 -------+------------------------------+------------------------------+------------------------------ 5 | 106 71 53 42 35 | 160 106 80 64 53 | 213 142 106 85 71 10 | 80 53 40 32 26 | 120 80 60 48 40 | s142 106 80 64 53 15 | 64 42 32 25 21 | t 84 64 48 38 32 | t 84 d 82 64 51 42 20 | d 48 d 34 26 21 17 | t 61 d 48 d 37 d 31 26 | t 61 t 61 d 48 d 40 d 34 25 | d 38 d 27 d 21 d 18 15 | t 46 d 38 d 30 d 25 d 21 | t 46 t 46 d 38 d 31 d 27 30 | d 33 d 23 d 18 d 15 13 | t 36 d 33 d 25 d 21 d 18 | t 36 t 36 d 33 d 27 d 23 35 | d 27 d 19 d 14 d 13 d 10 | t 33 d 27 d 21 d 18 d 14 | t 33 t 33 d 27 d 22 d 19 40 | d 22 d 16 d 13 d 10 d 9 | t 25 d 22 d 18 d 15 d 13 | t 25 t 25 d 22 d 19 d 16 45 | d 20 d 14 d 12 d 10 d 8 | t 22 d 20 d 16 d 13 d 12 | t 22 t 22 d 20 d 17 d 14 50 | t 18 d 13 d 10 d 8 d 7 | t 18 t 18 d 14 d 12 d 10 | t 18 t 18 t 18 d 14 d 13 55 | t 16 d 11 d 9 d 8 d 6 | t 16 t 16 d 12 d 10 d 9 | t 16 t 16 t 16 d 13 d 11 60 | t 14 d 10 d 8 d 6 d 6 | t 14 t 14 d 11 d 9 d 8 | t 14 t 14 t 14 d 12 d 10
<uddf version="2.1.0"> <!-- die <generator>-Sektion muß in jeder UDDF-Datei stehen --> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> <name>Tauchcomputer-Konfigurierung</name> <manufacturer>Tauchhelden-Company</manufacturer> <version>2.71828</version> <date> <year>2006</year><month>5</month><day>14</day> </date> </generator> <divecomputercontrol> <setdcdata> <!-- Einstellen des Datums --> <setdcdate> <date> <year>2006</year><month>5</month><day>18</day> </date> </setdcdate> <!-- Einstellen der Uhrzeit --> <setdctime> <time> <hour>14</hour><minute>21</minute> </time> </setdctime> <!-- Einstellen eines Alarms, den der Tauchcomputer um 16.30 Uhr geben soll --> <setdcalarmtime> <time> <hour>16</hour> <minute>30</minute> </time> <dcalarm> <!-- den Typ Alarm geben, der im Tauchcomputermodell mit ,,1`` belegt ist --> <alarmtype>1</alarmtype> <!-- der Alarm muß quittiert werden --> <acknowledge/> </dcalarm> </setdcalarmtime> <setdcdivedepthalarm> <!-- erster Tiefenalarm für 35 m Tiefe --> <dcalarmdepth>35.0</dcalarmdepth> <dcalarm> <!-- den Typ Alarm geben, der im Tauchcomputermodell mit ,,2`` belegt ist --> <alarmtype>2</alarmtype> <!-- Alarm für 5 Sekunden erzeugen --> <period>5.0</period> </dcalarm> </setdcdivedepthalarm> <setdcdivedepthalarm> <!-- zweiter Tiefenalarm für 40 m Tiefe --> <dcalarmdepth>40.0</dcalarmdepth> <dcalarm> <!-- den Typ Alarm geben, der im Tauchcomputermodell mit ,,3`` belegt ist --> <alarmtype>3</alarmtype> <!-- dieser Alarm muß quittiert werden :-) --> <acknowledge/> </dcalarm> </setdcdivedepthalarm> <!-- akustischen Hinweis geben, wenn die Nullzeit abgelaufen ist --> <setdcendndtalarm> <dcalarm> <!-- den Typ Alarm geben, der im Tauchcomputermodell mit ,,4`` belegt ist --> <alarmtype>4</alarmtype> <!-- Alarm für 5 Sekunden erzeugen --> <period>5.0</period> </dcalarm> </setdcendndtalarm> </setdcdata> </divecomputercontrol> </uddf>
<uddf version="2.1.0"> <!-- die <generator>-Sektion muß in jeder UDDF-Datei stehen --> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> <name>Tauchcomputer-Konfigurierung</name> <manufacturer>Tauchhelden-Company</manufacturer> <version>2.71828</version> <date> <year>2006</year><month>5</month><day>14</day> </date> </generator> <!-- andere Sektionen machen hier keinen Sinn und werden vom Tauchcomputer ggfs. ignoriert --> <divecomputercontrol> <getdcdata> <!-- sämtliche im Tauchcomputer gespeicherten Daten übertragen --> <getdcalldata/> </getdcdata> </divecomputercontrol> </uddf>
<uddf version="2.1.0"> <!-- die <generator>-Sektion muß in jeder UDDF-Datei stehen --> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> <name>Tauchcomputer-Konfigurierung</name> <manufacturer>Tauchhelden-Company</manufacturer> <version>2.71828</version> <date> <year>2006</year><month>5</month><day>14</day> </date> </generator> <!-- andere Sektionen machen hier keinen Sinn und werden vom Tauchcomputer ggfs. ignoriert --> <divecomputercontrol> <getdcdata> <!-- nur Atemgasdefinitionsinitionen und Tauchgangsprofildaten übertragen --> <getdcgasdefinitionsdata/> <getdcprofiledata/> </getdcdata> </divecomputercontrol> </uddf>
Inhaltsverzeichnis
quality=exact | estimated
Dieses Attribut gibt die "Genauigkeit" an, mit der die Angabe der Individuenzahl erfolgt. Erlaubte
Werte sind hier exact im Falle, daß die Individuenzahl exakt bestimmt werden konnte, oder
estimated, wenn es sich nur um eine geschätzte Zahl handelt (z.B. bei einem Schwarm).
occurrence=Art des Auftretens von Tieren (solitär, Schwarm, Kolonie etc.)
Erlaubte Integer-Werte für die Beschreibung der Art des Auftretens von Tieren sind:
0 — nicht feststellbar bzw. keine Angabe, 1 — solitär, 2 — loser Verband, 3 — Schwarm,
4 — Kolonie.
Gibt die Individuenzahl der beobachteten Art als ganze Zahl (Integer) an. Kann die Individuenzahl nicht ermittelt werden, so kann abundance entweder weggelassen werden oder <abundance>0</abundance> wird angegeben. Das Attribut quality verweist auf die "Genauigkeit" der Angabe der Individuenzahl. Im Fall der Beschreibung eines Tieres kann zusätzlich das Attribut occurrence angegeben werden. Zur Angabe des Bedeckungsgrades bei Pflanzen steht <dominance> zur Verfügung.
<species>
<!-- Individuenzahl konnte nicht festgestellt werden --> <!-- (in diesem Fall kann die Anweisung auch einfach weggelassen werden) --> <abundance>0</abundance>
<!-- 10 Individuen (Tiere oder Pflanzen) beobachtet --> <abundance>10</abundance>
<!-- 10 Individuen (Tiere oder Pflanzen) beobachtet --> <!-- (diese Form unter Angabe des Attributs quality="exact" entspricht der obigen, da bei dieser --> <!-- insgesamt geringen Anzahl anzunehmen ist, daß der Wert exakt bestimmt werden konnte) --> <abundance quality="exact">10</abundance>
<!-- Schwarm von 30 Tieren beobachtet, wobei die Anzahl nicht wirklich exakt ermittelt werden konnte --> <abundance occurrence="3" quality="estimated">30</abundance>
Innerhalb <accommodation> werden Daten zur Unterbringung während der Tauchfahrt angegeben.
<divetrip>
<divetrip>
<accommodation> <name>hotel of the 1000 stars</name> <category>Camping</category> <address> <!-- Adresse des Hotels/Campingplatzes --> </address> <contact> <!-- Kontaktdaten (EMail-Adresse, Homepage etc.) des Hotels/Campingplatzes --> </contact> <rating>7</rating> <notes> <text>nettes "zu Hause" für die Woche</text> <image height="1000" width="2000" format="jpg"> <objectname>zelt.jpg</objectname> </image> </notes> </accommodation>
<acknowledge/> ist ein Schalter, mit dem angegeben wird, daß ein vom Tauchcomputer zu einem bestimmten Ereignis zu gebender Alarm vom Taucher quittiert werden muß. Das Alarmsignal — mittels <alarmtype> vorgegeben — wird solange wiederholt, bis der Taucher dieses durch Druck auf eine bestimmte Taste des Tauchcomputers quittiert hat.
Wird weder <acknowledge/> noch <period> angegeben, erzeugt der Tauchcomputer das Alarmsignal eine bestimmte Zeit lang; eine Quittierung ist dann nicht nötig.
<dcalarm>
<dcalarm>
siehe <dcalarm>
Gibt das festgestellte Alter in Jahren (als ganze Zahl) des beobachteten Tieres oder einer Pflanze an.
<species>
<species>
Gibt die gemessene Lufttemperatur in Kelvin zu Beginn des Tauchgangs als reelle Zahl an.
<dive>
<dive>
Mittels <alarm> werden Alarmmeldungen des Tauchcomputers zu einem Wegpunkt (<waypoint>) geklammert. Es können mehrere <alarm>-Elemente innerhalb einer <waypoint>-Anweisung aufgeführt werden, für jeden Alarmgrund eine Anweisung.
Zur Zeit werden folgende Schlüsselwörter erkannt:
Schlüsselwort Warnmeldung des Tauchcomputers -------------------------------------------------------------------- rbt verbleibende Grundzeit ist überschritten error allgemeiner Fehler (deko-stop verpaßt, etc.) ascent zu schneller Aufstieg deco Computer meldet "Deko-Stop" notwendig breath zu hohe Atemfrequenz surface Oberfläche erreicht
<waypoint>
<waypoint>
Mittels des <alarmtype>-Elementes wird der Typ des vom Tauchcomputer zu einem bestimmten Ereignis auszugebenden Alarms vorgegeben. Zur Zeit ist dies einfach ein Integer-Wert, der in der Hardware einem bestimmten Alarmmuster zugewiesen ist. Kennt die Hardware den angegebenen Typ nicht, wird der Standard-Alarm ausgelöst.
<dcalarm>
<dcalarm>
Mit <altitude> wird die Höhe über normal Null in Metern (als reelle Zahl) angegeben. Die Höhe kann die eines allgemein beschriebenen Tauchplatzes sein, dann steht <altitude> innerhalb <geography> (<divesite> -> <site> -> <geography>), oder die des Einstiegs bei einem bestimmten Tauchgang. In diesem Fall steht <altitude> innerhalb der <dive>-Sektion (<profiledata> -> <repetitiongroup> -> <dive>). <altitude> wird außerdem verwendet, um die Höhe anzugeben, für die eine Austauchtabelle gerechnet werden soll. In diesem dritten Fall steht <altitude> innerhalb <tablescope> (<calculatetable> -> <table> -> <tablescope>). Wenn <altitude> innerhalb <tablescope> nicht angegeben wird, wird die Tabelle für Meereshöhe, 0 m, berechnet.
<dive>, <geography>, <tablescope>
Mittels <aperture> wird die bei einem Foto verwendete Blende geklammert. Es wird direkt der Blendenwert als Dezimalzahl geschrieben.
<date>, <exposurecompensation>, <filmspeed>, <focallength>, <focusingdistance>, <image>, <imagedata>, <meteringmethod>, <shutterspeed>, <time>
Klammerung von zusätzlichen, programmspezifischen Informationen, die zur Auswertung der Gewebesättigung notwendig sind bzw. programminterne Parameter zur grafischen Darstellung der Daten.
Ein UDDF-Parser wertet die Daten zwischen <applicationdata> und </applicationdata> nicht aus, sondern gibt sie ohne jede weitere Bearbeitung an das rufende Programm weiter. Damit wird es Programmen ermöglicht spezifische Meta-Informationen abzulegen, die UDDF nicht bekannt sind. Die einzige Konvention ist, daß jedes Programm seine Meta-Informationen innerhalb <applicationdata> ... </applicationdata> ablegen muß.
Anmerkung für Programmierer: bitte dokumentiert, in welcher Form ihr eure Daten zur Gewebesättigung oder andere wichtige Parameter kodiert, damit sie von anderen Programmen korrekt gelesen und weiterverarbeitet werden können!
Zur Zeit werden folgende Elemente verwendet: <tausim>.
<dive>
<tausim>
siehe <tausim>
Gibt den Argon-Anteil eines (Atem-)Gases an. Die Angabe erfolgt als (Volumen-)Prozentangabe, wobei die Prozentangabe als reelle Zahl kleiner oder gleich 1.0 erfolgt.
<mix>
Gibt die Länge der einen Seite einer untersuchten Fläche (Rechteck) zum Beispiel einer archäologischen Fundstelle oder bei einer biologischen Kartierung in Metern als reelle Zahl an.
<sitedata>
<areawidth>, <maximumdepth>, <minimumdepth>, <sitedata>
Gibt die Länge der einen Seite einer untersuchten Fläche (Rechteck) zum Beispiel einer archäologischen Fundstelle oder bei einer biologischen Kartierung in Metern als reelle Zahl an.
<sitedata>
<arealength>, <maximumdepth>, <minimumdepth>, <sitedata>
Innerhalb <ascent> wird für ein (ggfs. zu berechnendes) Aufstiegsprofil der Wechsel der Atemgase definiert.
<waypoint>
siehe <mixchange>
Mittels <audioref ref="bezeichner_der_zu_referenzierenden_audiodatendatei"/> wird auf die unter diesem Bezeichner gespeicherte Audiodatei zugegriffen. So kann in einen Text eine Audiodatei eingebunden werden, welche vor der Textsektion innerhalb <notes> abgelegt wurde.
<text>
Gibt die durchschnittliche Sichtweite an diesem Tauchplatz in Metern als reelle Zahl an.
<sitedata>
(siehe auch <sitedata>)
<!-- durchschnittliche Sichtweite 5 Meter --> <averagevisibility>5.0</averagevisibility>
Mit <beam> wird die Breite des Schiffs (jetzt Wrack :-) ) in Metern als reelle Zahl geklammert.
siehe <shipdimension> und <wreck>
<camera>, <videocamera>
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
<camera>, <videocamera>
siehe <camera>
Mittels <bodyref ref="bezeichner_des_zu_referenzierenden_uw-gehäuses"/> wird auf die unter diesem Bezeichner gespeicherten UW-Gehäuse-Daten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <body id="mein_uwgehaeuse"> <!-- Beschreibung des UW-Gehäuses --> </body> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- UW-Gehäuse: --> <bodyref ref="mein_uwgehaeuse"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
Innerhalb <boots> erfolgen die Angaben zu verwendeten Füßlingen.
Es können mehrere <boots>-Elemente hintereinander aufgeführt werden. Im Falle, daß weitere Ausrüstungsteile aufgelistet werden, sollten gleiche Teile der besseren Übersicht wegen direkt aufeinander folgen!
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
<equipment> <boots id="meine_fuesslinge"> <name>noname</name> <manufacturer>Keine Ahnung</manufacturer> <model>Größe 48</model> <!-- Seriennummer gibt es hier nicht :-) --> <purchase> <date> <year>1970</year><month>10</month><day>7</day><dayofweek>3</dayofweek> <!-- Mittwoch --> </date> <price currency="DM">10.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <!-- besser einmal pro Monat waschen... ;-) --> <serviceinterval>30</serviceinterval> <!-- genaues "Serviceintervall" existiert nicht ;-) --> </boots> </equipment>
Mittels <bootsref ref="bezeichner_der_zu_referenzierenden_füßlinge"/> wird auf die unter diesem Bezeichner gespeicherten Füßlingsdaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <boots id="meine_fuesslinge"> <!-- Beschreibung der Füßlinge --> </boots> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Füßlinge: --> <bootsref ref="meine_fuesslinge"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
Mit <bottom> wird die allgemeine Beschaffenheit des Grundes des Tauchplatzes angegeben.
<sitedata>
<sitedata>
siehe <sitedata>
<bottomtimemaximum> gibt die maximale Grundzeit in Sekunden (als reelle Zahl) an, die bei der Tabellenausgabe bei der minimalen Tauchtiefe berücksichtigt werden soll.
<bottomtimeminimum> gibt die minimale Grundzeit in Sekunden (als reelle Zahl) an, die bei der Tabellenausgabe bei der maximalen Tauchtiefe berücksichtigt werden soll.
<bottomtimestepbegin> gibt die Schrittweite in Sekunden (als reelle Zahl) für das Inkrement der Grundzeit an, die bei der Tabellenausgabe bei der minimalen Tauchtiefe berücksichtigt werden soll.
<bottomtimestepend> gibt die Schrittweite in Sekunden (als reelle Zahl) für das Inkrement der Grundzeit an, die bei der Tabellenausgabe bei der maximalen Tauchtiefe berücksichtigt werden soll.
Innerhalb der <bottomtimetable>-Sektion werden die Parameter zur Erzeugung einer bestimmten ,,Maximale Grundzeit``-Tabelle geklammert.
<bottomtimetablescope>, <output>, <program>, <tableref/>
<tablegeneration> <calculatetable> <!-- hier können noch weitere Anweisungen zur Tabellenberechnung stehen --> ... <table id="austauchtabelle_luft_0m"> <!-- hier stehen die Anweisungen zur Berechnung einer --> <!-- Austauchtabelle für Luft als Atemgas für Meeresniveau --> </table> <!-- hier können noch weitere Anweisungen zur Tabellenberechnung stehen --> ... </calculatetable> <calculatebottomtimetable> <!-- hier können noch weitere Anweisungen zur MG-Tabellenberechnung stehen --> ... <bottomtimetable id="max_grundzeit_tabelle_luft_0m"> <!-- Verweis auf die vorher berechnete Austauchtabelle, auf Grundlage --> <!-- derer nun die "Maximale Grundzeit"-Tabelle gerechnet werden soll --> <tableref ref="austauchtabelle_luft_0m"/> <!-- nachfolgend Anweisungen zur Ausgabe in eine Datei --> <output> <!-- Ausgabe in deutscher Sprache --> <lingo>de</lingo> <!-- ASCII-Format (-> Dateiendung ".txt") --> <fileformat>ascii</fileformat> <!-- Name der Ausgabedatei (Endung ".txt" darf nicht angegeben werden!) --> <filename>kais_mg-tabelle</filename> <!-- Überschrift für die Tabelle --> <headline>Kais Maximale Grundzeit-Tabelle für Meereshöhe</headline> <!-- erklärender Text oder sonstige Bemerkungen --> <remark> Dies ist Kais "Maximale Grundzeit"-Tabelle für TGs im Meer mit Luft als Atemgas. Falls der Taucher bei Ausnutzung der vollen Grundzeit nachfolgend Dekompressionsstopps durchführen muß, wird der Zahlenangabe ein "d" vorangestellt. Diese notwendigen Dekostopps sind bereits in der berechneten Grundzeit berücksichtigt. </remark> </output> <program> <!-- hier software-spezifische Angaben --> </program> <bottomtimetablescope> <!-- Beginn der Tauchtiefe mit 5 m, größte Tiefe 60 m, Schrittweite 5 m --> <divedepthbegin>5.0</divedepthbegin> <divedepthend>60.0</divedepthend> <divedepthstep>5.0</divedepthstep> <!-- Tabelle für verschiedene Atemminutenvolumina berechnen: --> <!-- Beginn mit 10 Liter pro Minute, größtes AMV 30 l/min, Schrittweite 5 l/min --> <!-- UDDF verwendet nur SI-Einheiten => l/min -> m^3/s --> <breathingconsumptionvolumebegin>0.00016666667</breathingconsumptionvolumebegin> <breathingconsumptionvolumeend>0.0005</breathingconsumptionvolumeend> <breathingconsumptionvolumestep>0.000083333333</breathingconsumptionvolumestep> <!-- Beginn mit einem Flaschenvolumen von 10 Litern, max. 20 l, Schrittweite 5 l --> <tankvolumebegin>0.01</tankvolumebegin> <tankvolumeend>0.02</tankvolumeend> <tankvolumestep>0.005</tankvolumestep> <!-- Fülldruck 200 bar, Reservedruck 40 bar --> <pfill>2.0e7</pfill> <preserve>4.0e6</preserve> </bottomtimetablescope> </bottomtimetable> <!-- hier können noch weitere Anweisungen zur MG-Tabellenberechnung stehen --> ... </calculatebottomtimetable> </tablegeneration>
Innerhalb des <bottomtimetablescope>-Elements (bottom time table scope) werden die Bereichs-Parameter zur Erzeugung von "Maximale Grundzeit"-Tabellen geklammert.
<breathingconsumptionvolumebegin>, <breathingconsumptionvolumeend>, <breathingconsumptionvolumestep>, <divedepthbegin>, <divedepthend>, <divedepthstep>, <pfill>, <preserve>, <tankvolumebegin>, <tankvolumeend>, <tankvolumestep>
siehe <bottomtimetable>
Gibt das Atemminutenvolumen für dieses Atemgas an. Die hier zu verwendende Einheit ist Kubikmeter pro Sekunde [m^3/s]! Eine Umrechnung in die bei Tauchtabellenwerken übliche Einheit ,,Liter pro Minute'' bleibt dem ausführenden Programm vorbehalten — UDDF verwendet nur SI-Einheiten.
<tankdata>
<tankdata>
Gibt das Atemminutenvolumen in Kubikmeter pro Sekunde [m^3/s] als reelle Zahl an, mit dem die ,,Maximale Grundzeit''-Tabellenausgabe beginnen soll. (Hinweis zur verwendeten Einheit: Eine Umrechnung in die bei Tauchtabellenwerken übliche Einheit ,,Liter pro Minute'' bleibt dem ausführenden Programm vorbehalten — UDDF verwendet nur SI-Einheiten.)
Gibt das Atemminutenvolumen in Kubikmeter pro Sekunde [m^3/s] als reelle Zahl an, mit dem die ,,Maximale Grundzeit''-Tabellenausgabe enden soll. (Hinweis zur verwendeten Einheit: Eine Umrechnung in die bei Tauchtabellenwerken übliche Einheit ,,Liter pro Minute'' bleibt dem ausführenden Programm vorbehalten — UDDF verwendet nur SI-Einheiten.)
Gibt die Schrittweite für das Inkrement des Atemminutenvolumens in Kubikmeter pro Sekunde [m^3/s] als reelle Zahl an, mit dem die ,,Maximale Grundzeit''-Tabellenausgabe vorgenommen werden soll. (Hinweis zur verwendeten Einheit: Eine Umrechnung in die bei Tauchtabellenwerken übliche Einheit ,,Liter pro Minute'' bleibt dem ausführenden Programm vorbehalten — UDDF verwendet nur SI-Einheiten.)
Innerhalb der <buddy>-Sektion werden sämtliche bekannten Daten eines Tauchpartners angegeben. Es können beliebig viele <buddy>-Elemente hintereinander stehen, die dann die verschiedenen Tauchpartner des Besitzers (<owner>) der UDDF-Datei beschreiben.
<diver>
<address>, <certification>, <contact>, <diveinsurances>, <divepermissions>, <equipment>, <medical>, <notes>, <personal>, <student/>
<uddf version="2.2.0"> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> </generator> <diver> <owner id="robertpeterroth"> <!-- Beschreibung des Besitzers der UDDF-Datei --> </owner> <buddy id="Linda"> <personal> <firstname>Linda</firstname> <lastname>Pink</lastname> <sex>f</sex> <birthdate> <year>1974</year> </birthdate> </personal> <address> <country>Australia</country> </address> <contact> <language>English</language> <mobilephone>0321/987654</mobilephone> <fax>0321/987653</fax> <email>linda.pink@buddybase.org</email> </contact> <equipment> <!-- Auflistung der Ausrüstungsteile von Linda --> </equipment> <medical> <!-- Auflistung von Lindas TTUen - falls bekannt --> </medical> <education> <certification> <level>Gold</level> <organisation>CMAS</organisation> </certification> </education> <notes> <image> <objectname>linda1.jpg</objectname> <!-- Bilddaten unbekannt, <imagedata> entfällt deswegen --> </image> <image> <objectname>linda2.jpg</objectname> <!-- Bilddaten unbekannt, <imagedata> entfällt deswegen --> </image> <video> <objectname>video_von_linda_great_barrier_reef.avi</objectname> </video> </notes> </buddy> <buddy id="Helmut"> <!-- Beschreibung des Tauchpartners Helmut --> </buddy> <!-- hier können weitere Tauchpartner aufgeführt werden --> </diver> <!-- hier weitere Sektionen --> </uddf>
Mittels <buddyref ref="id_des_zu_referenzierenden_tauchpartners"/> wird auf die Daten eines vorher in der UDDF-Datei gespeicherten Tauchpartners Bezug genommen. Auf diese Weise müssen die Daten nur ein einziges Mal in der UDDF-Datei abgelegt werden. Anschließend können an verschiedenen Stellen in der UDDF-Datei diese Daten "abgerufen" werden.
<dive>
<buddy>
(siehe auch <buddy>)
<uddf version="2.2.0"> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> </generator> <diver> <owner id="robertpeterroth"> <!-- Beschreibung des Besitzers der UDDF-Datei --> </owner> <buddy id="Linda"> <!-- Beschreibung von Tauchpartnerin Linda --> </buddy> <buddy id="Manuela"> <!-- Beschreibung von Tauchpartnerin Manuela --> </buddy> </diver> <!-- hier weitere UDDF-Sektionen --> <repgroup> <dive id="tg_321"> <!-- bei diesem Tauchgang war Linda die Partnerin; da ihre Daten bereits --> <!-- oben angegeben wurden, braucht an dieser Stelle nur darauf --> <!-- referenziert zu werden --> <buddyref ref="Linda"/> <!-- weitere Daten zum Tauchgang Nr. 321 --> </dive> <dive id="tg_322"> <!-- diesen Tauchgang haben Linda und Manuela begleitet... --> <buddyref ref="Linda"/> <buddyref ref="Mauela"/> <!-- weitere Daten zum Tauchgang Nr. 322 --> </dive> <!-- hier können weitere Tauchgänge stehen --> </repgroup> </uddf>
Innerhalb <buoyancycontroldevice> erfolgen die Angaben zu einem verwendeten Jacket. Es können mehrere <buoyancycontroldevice>-Elemente hintereinander aufgeführt werden. Im Falle, daß weitere Ausrüstungsteile aufgelistet werden, sollten gleiche Teile der besseren Übersicht wegen direkt aufeinander folgen!
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
<equipment> <buoyancycontroldevice id="mein_jacket"> <name>ABC</name> <manufacturer>Hans Müller</manufacturer> <model>Underwater Camping Team</model> <serialnumber>123456789</serialnumber> <purchase> <date> <year>1960</year><month>5</month><day>31</day>dayofweek>2</dayofweek> </date> <price currency="DM">100.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <!-- Wartung jedes Jahr --> <serviceinterval>365</serviceinterval> <nextservicedate> <date> <!-- damals gab's noch Qualität! ;-) --> <year>2006</year><month>5</month><day>31</day> </date> </nextservicedate> </buoyancycontroldevice> </equipment>
Mittels <buoyancycontroldeviceref ref="bezeichner_des_zu_referenzierenden_jackets"/> wird auf die unter diesem Bezeichner gespeicherten Jacketdaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <buoyancycontroldevice id="mein_jacket"> <!-- Beschreibung des Jackets --> </buoyancycontroldevice> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Jacket: --> <buoyancycontroldeviceref ref="mein_jacket"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
Innerhalb <calculatebottomtimetable> werden Angaben zu einer oder mehreren zu berechnenden Maximale-Grundzeit-Tabelle(n) gemacht.
Das <calculatebottomtimetable>-Element steht innerhalb der <tablegeneration>-Sektion (zwingend) nach einer <calculatetable>-Anweisung. In letzterer muß zumindest eine Dekompressionstabelle berechnet worden sein, aufgrund welcher nachfolgend eine Maximale-Grundzeit-Tabelle gerechnet werden kann.
Einziges Element innerhalb <calculatebottomtimetable> ist <tableref/>, welches beliebig oft wiederholt werden kann.
Innerhalb <calculateprofile> werden Angaben zu einem zu berechnenden Aufstiegsprofil gemacht.
Das <calculateprofile>-Element steht innerhalb der <tablegeneration>-Sektion genau einmal (sofern angegeben). Es gibt noch die beiden folgenden Elemente innerhalb <tablegeneration>: <calculatebottomtimetable> (Berechnung von "Maximale Grundzeit"-Tabellen) und <calculatetable> (zur Generierung von Austauchtabellen).
Einziges Element innerhalb <calculateprofile> ist <profile> (welches beliebig oft wiederholt werden kann).
<profile>
<calculateprofile> <profile id="aufstiegsprofil_tg_lusitania_zhl16> <!-- Aufstiegsprofil berechnet mit Dekomodell ZH-L16 --> <> </> </profile> <profile id="aufstiegsprofil_tg_lusitania_rgbm> <!-- Aufstiegsprofil berechnet mit Dekomodell RGBM --> <> </> </profile> <profile id="aufstiegsprofil_tg_lusitania_zhl16ds> <!-- Aufstiegsprofil berechnet mit Dekomodell ZH-L16 plus Deep Stops--> <> </> </profile> <!-- hier können noch weitere Anweisungen zur Berechnung von Aufstiegsprofilen folgen --> ... </calculateprofile>
Innerhalb <calculatetable> werden Angaben zu einer zu berechnenden Dekompressionstabelle gemacht.
Das <calculatetable>-Element steht innerhalb der <tablegeneration>-Sektion und kann beliebig oft wiederholt werden. Einzige weitere Elemente gleicher Hierarchiestufe innerhalb <tablegeneration> sind <calculateprofile> und <calculatebottomtimetable>. Diese Elemente sollten bei mehrmaliger Benutzung nicht abwechselnd verwendet werden. (<calculatebottomtimetable> muß hierbei nach <calculatetable> stehen.)
Einziges Element innerhalb <calculatetable> ist <table>, welches beliebig oft wiederholt werden kann.
<table>
<calculatetable> <table id="austauchtabelle-1"> <!-- nachfolgend alle Anweisungen zur Berechnung von "austauchtabelle-1" --> <> </> </table> <table id="austauchtabelle-2"> <!-- nachfolgend alle Anweisungen zur Berechnung von "austauchtabelle-2" --> <> </> </table> <table id="austauchtabelle-3"> <!-- nachfolgend alle Anweisungen zur Berechnung von "austauchtabelle-3" --> <> </> </table> <!-- hier können noch weitere Anweisungen zur Berechnung von Austauchtabellen stehen --> ... </calculatetable>
Innerhalb <camera> erfolgen die Angaben zu einer verwendeten Fotokamera (mit nachfolgend bezeichnetem UW-Gehäuse — <housing> —, verwendetem Blitzgerät — <flash> — und Objektiven — <lens>).
<equipment> <camera id="Analog-Fotokamera"> <body id="Nikonos_V"> <name>Nikonos V</name> <manufacturer>Nikon</manufacturer> <model>V</model> <serialnumber>987654321</serialnumber> <purchase> <date> <year>1997</year><month>6</month><day>12</day><dayofweek>4</dayofweek> </date> <price currency="DM">850.00</price> <shop> <name>Fotoladen</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <serviceinterval>365</serviceinterval> <nextservicedate> <date> <year>2007</year><month>3</month><day>11</day> </date> </nextservicedate> </body> <lens id="Nikonos_35mm"> <name>35 mm Objektiv</name> <manufacturer>Nikon</manufacturer> <model>35mm</model> <serialnumber>123459876</serialnumber> <purchase> <date> <year>1997</year><month>6</month><day>12</day><dayofweek>4</dayofweek> </date> <price currency="DM">430.00</price> <shop>Fotoladen</shop> </purchase> <serviceinterval>365</serviceinterval> <nextservicedate> <date> <year>2007</year><month>3</month><day>11</day> </date> </nextservicedate> </lens> <lens id="Nikonos_20mm"> <name>20 mm Objektiv</name> <manufacturer>Nikon</manufacturer> <model>20 mm</model> <serialnumber>567890123</serialnumber> <purchase> <date> <year>1999</year><month>11</month><day>23</day><dayofweek>2</dayofweek> </date> <price currency="DM">900.00</price> <shop>zweite Hand</shop> </purchase> <serviceinterval></serviceinterval> <nextservicedate> <date> <year></year><month></month><day></day> </date> </nextservicedate> </lens> <flash id="Ikelite_200"> <name>Substrobe 200</name> <manufacturer>Ikelite</manufacturer> <model>200</model> <serialnumber>0987654321</serialnumber> <purchase> <date> <year>1998</year><month>12</month><day>26</day><dayofweek>6</dayofweek> </date> <price currency="DM">1350.00</price> <shop>Tauchterminal</shop> </purchase> </flash> </camera> <camera id="Digital-Fotokamera"> <body id="Olympus"> <name>Digitalkamera</name> <manufacturer>Olympus</manufacturer> <model>7070</model> <serialnumber>123789</serialnumber> <purchase> <date> <year>2000</year><month>2</month><day>30</day> </date> <price currency="EUR">500.00</price> <shop>Tauchtwas</shop> </purchase> <serviceinterval>365</serviceinterval> </body> <lens id="Olympus_Zoom_in_Body"> <name>Zoomobjektiv</name> <manufacturer>Olympus</manufacturer> <model>10-1000</model> <serialnumber>01928374</serialnumber> <purchase> <date> <year>2000</year><month>2</month><day>30</day> </date> <price currency="EUR">500.00</price> <shop>Tauchtwas</shop> </purchase> </lens> <housing id="Olympus_kunststoff"> </housing> </camera> </equipment>
Mittels <cameraref ref="bezeichner_der_zu_referenzierenden_kamera"/> wird auf die unter diesem Bezeichner gespeicherten Kameradaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <camera id="meine_kamera"> <!-- Beschreibung der Kamera --> </camera> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Kamera: --> <cameraref ref="meine_kamera"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
Innerhalb <cave> werden genauere Angaben zu einer Höhle gemacht.
Dieses Element ist noch in der Entwicklung begriffen! Hier ist Eure Mitarbeit gefragt!
<sitedata>
<sitedata>
Innerhalb <certification> werden Daten bzgl. einer Brevetierung des Tauchers angegeben. Es können belliebig viele <certification>-Elemente nacheinander folgen.
<instructor>, <issuedate>, <level>, <organization>, <specialty>, <validdate>
<certification> <level>Bronze</level> <organization>VDST</organization> <instructor> <firstname>Ingo</firstname> <middlename>Jürgen</middlename> <lastname>Knattermann</lastname> <sex>m</sex> <birthdate> <!-- Geburtsdatum unbekannt -> wird weggelassen --> </birthdate> <address> <!-- Adresse unbekannt -> wird weggelassen --> </address> <contact> <language>deutsch</language> <!-- Telefonnummer unbekannt -> <phone>-Element entfällt --> <email>ijk@knattermanns_tauchschule.de</email> <homepage>http://www.knattermanns_tauchschule.de</homepage> </contact> </instructor> <issuedate> <date> <year>2005</year> <month>6</month> <day>26</day> <dayofweek>7</dayofweek> <!-- Sonntag --> </date> </issuedate> <></> </certification>
<certification> <specialty>Strömungstauchen</specialty> <organization>VDST</organization> <instructor> <firstname>Ingo</firstname> <middlename>Jürgen</middlename> <lastname>Knattermann</lastname> <sex>m</sex> <birthdate> <!-- Geburtsdatum unbekannt -> wird weggelassen --> </birthdate> <address> <!-- Adresse unbekannt -> wird weggelassen --> </address> <contact> <language>deutsch</language> <!-- Telefonnummer unbekannt -> <phone>-Element entfällt --> <email>ijk@knattermanns_tauchschule.de</email> <homepage>http://www.knattermanns_tauchschule.de</homepage> </contact> </instructor> <issuedate> <date> <year>2005</year> <month>8</month> <day>27</day> <dayofweek>6</dayofweek> <!-- Samstag --> </date> </issuedate> </certification>
Innerhalb <chlorophyceae> werden alle gesichteten bzw. gesammelten und später bestimmten Grünalgen aufgelistet.
<flora>
<species>
siehe <flora>
Innerhalb <chondrichthyes> werden alle gesichteten Knorpelfische (Haie, Rochen) aufgelistet.
<species>
<fauna>, <invertebrata>, <species>, <vertebrata>
siehe <vertebrata> und <fauna>
Innerhalb <cnidaria> werden alle gesichteten bzw. gesammelten und später bestimmten Nesseltiere aufgelistet.
<species>
<fauna>, <invertebrata>, <species>, <vertebrata>
siehe <fauna>
Innerhalb <coelenterata> werden alle gesichteten bzw. gesammelten und später bestimmten Hohltiere aufgelistet.
<species>
<fauna>, <invertebrata>, <species>, <vertebrata>
siehe <fauna>
Innerhalb <compass> erfolgen die Angaben zu einem verwendeten Kompass. Es können mehrere <compass>-Elemente hintereinander aufgeführt werden.
<name>, <manufacturer>, <model>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
<equipment> <compass id="mein_kompass"> <name>Superkompass</name> <manufacturer>Kompassmeister</manufacturer> <model>Meister I</model> <serialnumber>12345</serialnumber> <purchase> <date> <year>1965</year><month>3</month><day>8</day><dayofweek>1</dayofweek> </date> <price currency="DM">20.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> </compass> </equipment>
Mittels <compassref ref="bezeichner_des_zu_referenzierenden_kompasses"/> wird auf die unter diesem Bezeichner gespeicherten Kompaßdaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <compass id="mein_kompass"> <!-- Beschreibung des Kompasses --> </compass> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Kompaß: --> <compassref ref="mein_kompass"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
Innerhalb <compressor> erfolgen die Angaben zu einem verwendeten Kompressor. Es können mehrere <compressor>-Elemente hintereinander aufgeführt werden.
<name>, <manufacturer>, <model>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
<equipment> <compressor id="unser_bulle"> <name>Maxluft</name> <manufacturer>Kompressorluft</manufacturer> <model>Stier</model> <serialnumber>007</serialnumber> <purchase> <date> <year>1968</year><month>4</month><day>19</day><dayofweek>6</dayofweek> </date> <price currency="DM">1500.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <serviceinterval>365</serviceinterval> <nextservicedate> <date> <year>2006</year><month>4</month> </date> </nextservicedate> </compressor> </equipment>
Mittels <compressorref ref="bezeichner_des_zu_referenzierenden_kompressors"/> wird auf die unter diesem Bezeichner gespeicherten Flossendaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <compressor id="mein_kompressor"> <!-- Beschreibung des Kompressors --> </compressor> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Kompressor: --> <compressorref ref="mein_kompressor"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
Innerhalb <contact> werden Daten bzgl. der Kontaktaufnahme, wie Telefonnummer, EMail-Adresse und Sprache, angegeben.
Mit <country> wird das Land, in dem eine Stadt oder in welchem der Tauchplatz liegt, geklammert. Im ersten Fall steht <country> innerhalb der <address>-Sektion. Im zweiten Fall steht das <country>-Element innerhalb von <geography>.
<!-- <country> als Angabe innerhalb <address> --> <address> <street>Kornstr. 24</street> <city>Unna</city> <postcode>59625</postcode> <country>Deutschland</country> </address>
<!-- <country> als Angabe innerhalb <geography> --> <geography> <location>Möhnesee</location> <province>Nordrhein-Westfalen</province> <country>Deutschland</country> <!-- hier weitere Angaben zur geographischen Breite und Länge --> </geography>
<date> bezeichnet allgemein ein Datum, bestehend aus der Jahresangabe (<year>), der Monatsangabe (<month>) und des Tages (<day>). Zusätzlich kann der Tag der Woche (<dayofweek>) angegeben werden. Diese Reihenfolge ist — wegen der Übersichtlichkeit — einzuhalten.
Nicht in jedem Fall ist das komplette Datum bekannt. In solchen Fällen ist es möglich, <dayofweek>, <day> und <month> — in dieser Reihenfolge! — wegzulassen.
<time>
(siehe z.B. auch <examination> oder <imagedata>)
<repetitiongroup> <dive> ... <!-- Datum 6. April 1999 (ein Dienstag) --> <date><year>1999</year><month>4</month><day>6</day><dayofweek>2</dayofweek></date> <!-- hier weitere Anweisungen --> ... </dive> <!-- hier können weitere Tauchgänge folgen --> ... </repetitiongroup>
Der Tag des Monats. Die Angabe erfolgt als ganze Zahl (integer). Wenn der Tag angegeben wird, müssen ebenso <year> und <month> erscheinen. <dayofweek> muß dagegen nicht unbedingt angegeben werden.
Die Reihenfolge <year>, <month>, <day> sowie <dayofweek> ist vorgeschrieben.
<date>
siehe <date>
Der Tag der Woche (,,day of week``) des angegebenen Datums. Die Angabe erfolgt als ganze Zahl (integer). Dem Montag als erstem Tag einer Woche ist dabei die ,,1`` zugeordnet, entsprechend dem Mittwoch die ,,3``, dem Samstag die ,,6``und dem Sonntag die ,,7`` usw.
Die Angabe von <dayofweek> ist optional, erfolgt aber immer als letzte innerhalb von <date>.
Es macht keinen Sinn, den Tag der Woche anzugeben ohne vorher das Datum genau spezifiziert zu haben. Wenn <dayofweek> angegeben wird, müssen vorher <year>, <month> und <day> angegeben worden sein.
<date>
siehe <date>
Mittels <dcalarm> wird der vom Tauchcomputer bzgl. eines bestimmten Ereignisses zu erzeugende Alarmtyp festgelegt.
<setdcalarmtime>, <setdcdivetimealarm>, <setdcdivedepthalarm>, <setdcdivepo2alarm>, <setdcendndtalarm>
<acknowledge/>, <alarmtype>, <period>
Innerhalb <dcalarmdepth> wird die Tiefe in Metern als reelle Zahl mit einer Nachkomastelle angegeben, bei der der Tauchcomputer ein mittels <dcalarm> spezifiziertes Alarmsignal ausgeben soll.
siehe <setdcdivedepthalarm>
Gibt das für die Berechnung des Aufstiegsprofiles oder der Austauchtabelle anzuwendende Dekompressionsmodell an.
Gibt die Dauer in Sekunden für den zu berücksichtigenden "Deep Stop" an. Traditionell erfolgt der "Deep Stop" auf halber Tiefe zwischen der tiefsten Tiefe und der Tiefe des ersten durchzuführenden Dekostopps beziehungsweise auf halber Tiefe zwischen zwei Dekostopps.
<deepstoptime> steht innerhalb der <profile>-Sektion, wenn es um die Berechnung eines Aufstiegsprofiles geht oder in der <table>-Sektion, wenn eine Austauchtabelle berechnet werden soll (letzteres Vorkommen sollte eher ungewöhnlich sein).
Die Dichte des Wassers in kg/m^3.
Reines Süßwasser hat eine Dichte von 1000.0 kg/m^3, die mittlere Dichte von Meerwasser (Salzwasser) beträgt 1030.0 kg/m^3.
<sitedata>
<sitedata>
Innerhalb <depth> erfolgt eine Tiefenangabe in Metern als reelle Zahl zu einem Wegpunkt (<waypoint>).
<waypoint>
<waypoint>
Innerhalb <descent> wird für ein vorgegebenes Abstiegsprofil der Wechsel der Atemgase definiert.
<waypoint>
siehe <mixchange>
Innerhalb <difficulty> wird eine (mehr oder weniger) persönliche Bewertung der Schwierigkeitsverhältnisse dieses Tauchplatzes angegeben — dies betrifft die allgemein hier vorzufindenen Verhältnisse, nicht die bei einem speziellen Tauchgang vorgefundenen. Die Bewertungsskala geht von ,,1'' (sehr einfach zu betauchen) bis ,,10'' (äußerst schwierig).
<sitedata>
<sitedata>
siehe <sitedata>
Mit <displacement> wird die Verdrängung des Schiffs (jetzt Wrack) in kg als reelle Zahl geklammert.
<shipdimension>, <wreck>
siehe <shipdimension> und <wreck>
Mit <dive> werden innerhalb einer <repetitiongroup>-Anweisung die Daten zu einem Tauchgangs-Profil angegeben. Sind mehrere Tauchgangs-Profile innerhalb von <repetitiongroup> angegeben, so wird jedes Profil einzeln mit <dive> gekapselt; es stehen dann mehrere <dive>-Sektionen hintereinander.
<airtemperature>, <altitude>, <buddyref/>, <date>, <density>, <divenumber>, <greatestdepth>, <lowesttemperature>, <notes>, <observations>, <program>, <samples>, <siteref/>, <surfaceinterval>, <time>, <tripref/>
(siehe auch <repetitiongroup>)
<repetitiongroup> <dive id="tg543_19990406"> <place>Illes Medes, Küste, Torbogen</place> <divenumber>123</divenumber> <date><year>1999</year<month>4</month><day>6</day><dayofweek>2</dayofweek></date> <time><hour>16</hour><minute>21</minute></time> <surfaceinterval> <passedtime>17580.0</passedtime> </surfaceinterval> <lowesttemperature>285.2</lowesttemperature> <greatestdepth>25.8</greatestdepth> <density>1030.0</density> <altitude>0.0</altitude> <!-- hier Referenzierung zu den verwendeten Atemgasen --> <samples> <!-- hier Zeit-/Tiefenangaben zum Profil --> </samples> <notes> <text> <!-- hier Text der Logbucheintragung --> </text> <image> <!-- hier Beschreibung eines während des TGs gemachten Fotos --> </image> <!-- hier können beliebig viele Fotos mittels <image> eingefügt werden --> <!-- hier können beliebig viele Audiodateien mittels <audio> eingefügt werden --> <!-- hier können beliebig viele Videodateien mittels <video> eingefügt werden --> </notes> </dive> <dive id="tg544_19990407"> <!-- Ort, Datum, Uhrzeit, Atemgas, eigentliche Profildaten --> </dive> <!-- hier können noch weitere TG-Profile abgelegt werden --> </repetitiongroup>
Innerhalb <divebase> werden Daten zu einer Tauchbasis, bei der die Tauchgänge einer Tauchfahrt durchgeführt wurden, angegeben.
<divetrip>
<address>, <contact>, <guide>, <name>, <notes>, <pricedivepackage>, <priceperdive>, <rating>
<divetrip>
(siehe auch <divetrip>)
<divebase> <name>Top Diving</name> <address> <!-- Adresse der Tauchbasis --> </address> <contact> <!-- EMail-Adresse, Homepage der Tauchbasis --> </contact> <priceperdive currency="EUR">35.0</priceperdive> <pricedivepackage currency="EUR" noofdives="10">320.0</pricedivepackage> <guide> <!-- Guide Emil in einer <buddy>-Sektion bereits --> <!-- beschrieben, deshalb hier nur eine Referenzierung --> <buddyref ref="buddy_Emil_TL2"/> </guide> <guide> <!-- Guide Franka in einer <buddy>-Sektion bereits --> <!-- beschrieben, deshalb hier nur eine Referenzierung --> <buddyref ref="buddy_Franka"/> </guide> <rating>8</rating> <notes> <text>familiäre Atmosphäre, sehr freundlich und zuvorkommend</text> </notes> </divebase>
Innerhalb <divecomputer> erfolgen die Angaben zu einem verwendeten Tauchcomputer. Es können mehrere <divecomputer>-Elemente hintereinander aufgeführt werden.
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
(siehe auch <equipment>)
<equipment> <divecomputer id="mein_tauchcomputer"> <name>Tauchfee</name> <manufacturer>Eigenbau</manufacturer> <model>mein_seiner</model> <serialnumber>001</serialnumber> <purchase> <date> <year>1994</year><month>5</month><day>28</day><dayofweek>6</dayofweek> </date> <price currency="DM">400.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> </divecomputer> </equipment>
Innerhalb der <divecomputercontrol>-Sektion stehen Anweisungen zur Konfigurierung eines Tauchcomputers (<setdcdata>) bzw. zum Auslesen der Tauchcomputerdaten (<getdcdata>).
Die <divecomputercontrol>-Sektion steht als letzte Sektion in einer UDDF-Datei, da in ihr auf vorherige Sektionen bzw. Elemente darin referenziert werden kann.
<uddf>
<uddf version="2.2.0"> <generator> <!-- hier Angaben zum Programm --> </generator> <divecomputercontrol> <setdcdata> <!-- Setzen von Datum und Uhrzeit --> <setdcdate> <date> <year>2007</year> <month>8</month> <day>24</day> </date> </setdcdate> <setdctime> <!-- 9:00 Uhr --> <time> <hour>9</hour> <minute>0</minute> </time> </setdctime> <!-- Setzen des zu verwendenden Dekompressionsmodelles --> <setdcdecomodel> <name>RGBM</name> <program> <!-- hier zusätzliche herstellerinterne Daten zum angegebenen Dekomodell --> </program> </setdcdecomodel> <!-- Setzen des/r zu verwendenden Atemgase/s --> <setdcgasdefinitionsdata/> <!-- Setzen eines Alarms beim Erreichen des Endes der Nullzeit --> <setdcendndtalarm> <dcalarm> <!-- Alarm muß quittiert werden --> <acknowledge/> <alarmtype>2</alarmtype> </dcalarm> </setdcendndtalarm> <!-- Daten von Tauchpartner Alfons an den Tauchcomputer übertragen --> <setdcbuddydata buddy="alfons"/> </setdcdata> <!-- hier können weitere Daten an den Tauchcomputer übertragen werden --> </divecomputercontrol> </uddf>
<uddf version="2.2.0"> <generator> <!-- hier Angaben zum die Daten abrufenden Programm --> </generator> <divecomputercontrol> <getdcdata> <!-- sämtliche im Tauchcomputer gespeicherten Daten --> <!-- werden an das aufrufende Programm gesendet --> <getdcalldata/> </getdcdata> </divecomputercontrol> </uddf>
<uddf version="2.2.0"> <generator> <!-- hier Angaben zum die Daten abrufenden Programm --> </generator> <divecomputercontrol> <getdcdata> <!-- nur die Daten im Tauchcomputer betreffend die definierten --> <!-- Atemgasgemische sowie sämtliche TG-Profildaten sollen --> <!-- an das aufrufende Programm gesendet werden --> <getdcgasdefinitionsdata/> <getdcprofiledata/> </getdcdata> </divecomputercontrol> </uddf>
Mittels <divecomputerref ref="bezeichner_des_zu_referenzierenden_tauchcomputers"/> wird auf die unter diesem Bezeichner gespeicherten Tauchcomputerdaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <divecomputer id="mein_tc"> <!-- Beschreibung des Tauchcomputers --> </divecomputer> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Tauchcomputer: --> <divecomputerref ref="mein_tc"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
<divedepthbegin> gibt die geringste Tauchtiefe in Metern (als reelle Zahl) an, mit der die Tabellenausgabe beginnen soll.
<divedepthend>, <divedepthstep>, <tablescope>
(siehe auch <tablescope>)
<!-- geringste Tauchtiefe 9 m, mit der die Tabellenausgabe beginnen soll --> <divedepthbegin>9.0</divedepthbegin>
<divedepthend> gibt die größte Tauchtiefe in Metern (als reelle Zahl) an, mit der die Tabellenausgabe enden soll.
Wenn <divedepthend> ,,vergessen`` wurde, liegt es im Ermessen des ausführenden Programmes, bei welcher Tiefe die Ausgabe ,,sinnvollerweise`` endet.
<divedepthbegin>, <divedepthstep>, <tablescope>
(siehe auch <tablescope>)
<!-- größte Tauchtiefe 60 m, mit der die Tabellenausgabe enden soll --> <divedepthend>60.0</divedepthend>
<divedepthstep> gibt die Schrittweite für das Inkrement der Tauchtiefe in Metern (als reelle Zahl) an, mit der die Tabellenausgabe erfolgen soll.
Wenn <divedepthstep> ,,vergessen`` wurde, ist es die Aufgabe des ausführenden Programmes, eine ,,sinnvolle`` Schrittweite zu verwenden.
<divedepthbegin>, <divedepthend>, <tablescope>
(siehe auch <tablescope>)
<!-- Schrittweite 5 m, mit der die Tabellenausgabe erfolgen soll --> <divedepthstep>5.0</divedepthstep>
<diveduration> setzt die absolute Zeitspanne in Sekunden (als reelle Zahl), nach deren Ablauf der Tauchcomputer ein Alarmsignal (spezifiziert mittels <dcalarm>) geben soll.
(siehe auch <setdcdivetimealarm>)
<!-- Tauchgangsdauer 45 Minuten --> <diveduration>2700.0</diveduration>
Mit <divenumber> wird die aktuelle Nummer dieses Tauchgangs als ganze Zahl (Integer) geklammert. Es kann der Vollständigkeit halber angegeben werden.
<dive>
<dive>
siehe <dive>
<permit>
Innerhalb der <diver>-Sektion werden sämtliche bekannten Daten bezüglich des Besitzers (<owner>) der UDDF-Datei und seiner Tauchpartner (<buddy>) gespeichert.
Während es nur einen (1) <owner> geben kann, können beliebig viele <buddy>-Elemente in der <diver>-Sektion angegeben werden. <owner> ist hierbei das erste anzugebende Element, danach folgen alle <buddy>-Elemente.
<uddf>
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="kai"> <!-- Beschreibung des Besitzers der UDDF-Datei --> </owner> <buddy id="gerd"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <buddy id="dieter"> <!-- Beschreibung des zweiten Tauchpartners --> </buddy> <buddy id="elmar"> <!-- Beschreibung des dritten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen (<divesite>, <gasdefinitions>, <profiledata> etc.) stehen --> </uddf>
Mittels <diveref ref="tg_abc"/> wird auf sämtliche unter dem Tauchgang mit dem eindeutigen Bezeichner "tg_abc" gespeicherte Daten referenziert. So kann auf einfache Art und Weise z.B. auf die Daten sämtlicher während eines Tauchurlaubs gemachter Tauchgänge zugegriffen werden oder kann bei der Tauchtabellengenerierung die Gewebesättigung durch vorhergegangene Tauchgänge berücksichtigt werden.
<relateddives>, <profile>, <table>
<dive>, <profile>, <relateddives>, <repetitiongroupref/>, <table>, <trip>
(siehe auch <relateddives>)
<uddf version="2.2.0"> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> </generator> <!-- hier weitere UDDF-Sektionen --> <profiledata> <repetitiongroup> <dive id="tg_321"> <!-- hier sämtliche Daten zum Tauchgang Nr. 321 --> </dive> <dive id="tg_322"> <!-- hier sämtliche Daten zum Tauchgang Nr. 322 --> </dive> <dive id="tg_323"> <!-- hier sämtliche Daten zum Tauchgang Nr. 323 --> </dive> <!-- hier können weitere Tauchgänge stehen --> </repetitiongroup> <!-- hier können weitere </repetitiongroup>-Sektionen mit weiteren TGs aufgeführt werden --> </profiledata> <divetrip> <trip> <!-- andere Angaben zu dieser Tauchfahrt... --> <!-- während dieser Tauchfahrt unternommene Tauchgänge: --> <diveref ref="tg_321"/> <diveref ref="tg_322"/> <diveref ref="tg_323"/> </trip> <!-- hier können weitere Tauchfahrten beschrieben sein --> </divetrip> </uddf>
Innerhalb der <divesite>-Sektion werden sämtliche Daten zu Tauchplätzen — Geografie, tauchgangsrelevante Daten etc. — angegeben.
Die <divesite>-Sektion steht nach der <diver>-Sektion und vor der <divetrip>-Sektion.
Einziges Element innerhalb <divesite> ist <site>, welches beliebig oft wiederholt werden kann.
<uddf>
<site>
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <divesite> <site id="site-1"> <!-- Beschreibung des ersten Tauchplatzes --> </site> <site id="site-2"> <!-- Beschreibung des zweiten Tauchplatzes --> </site> <site id="site-3"> <!-- Beschreibung des dritten Tauchplatzes --> </site> <!-- hier können weitere <site>-Elemente stehen, wenn notwendig --> </divesite> <!-- hier können weitere Sektionen (<divetrip>, <gasdefinitions>, <profiledata> etc.) stehen --> </uddf>
Die absolut seit dem Beginn des Tauchgangs vergangene Zeit in Sekunden, angegeben als reelle Zahl.
<waypoint>
<waypoint>
(siehe auch <waypoint>)
<!-- 26 min seit Beginn des Tauchgangs vergangen --> <divetime>1560.0</divetime>
Innerhalb der <divetrip>-Sektion werden sämtliche Daten zu Tauchfahrten angegeben.
Die <divetrip>-Sektion steht nach der <divesite>-Sektion und vor der <gasdefinitions>-Sektion.
Das einzige Element innerhalb <divetrip> ist <trip>, welches beliebig oft wiederholt werden kann.
<uddf>
<trip>
<divesite>, <gasdefinitions>, <uddf>
<divetrip> <trip id="trip_1"> <!-- Angaben zur ersten gespeicherten Tauchfahrt --> <name>Rotes Meer 2000</name> ... </trip> <trip id="trip_2"> <!-- Angaben zur zweiten gespeicherten Tauchfahrt --> <name>Rotes Meer 2001</name> ... </trip> <trip id="trip_3"> <!-- Angaben zur dritten gespeicherten Tauchfahrt --> <name>Elba 2002</name> ... </trip> <!-- hier können weitere Tauchfahrten angegeben werden --> </divetrip>
Innerhalb <doctor> werden Angaben zum untersuchenden Arzt der Tauchtauglichkeits-Untersuchung geklammert.
(siehe auch <examination>)
<doctor> <personal> <firstname>Dirk</firstname> <lastname>Dusel</lastname> <title>Dr.</title> <sex>m</sex> <birthdate> <!-- falls Geburtsdaten bekannt, können sie hier angegeben werden --> </birthdate </personal> <address> <street>Duddelstr. 34</street> <city>Dortmund</city> <postcode>54321</postcode> <country>Deutschland</country> </address> <contact> <language>deutsch</language> <phone>01234/987654</phone> <!-- weder EMail-Adresse noch Homepage bekannt --> </contact> </doctor>
Mittels <doctorref ref="bezeichner_des_zu_referenzierenden_arztes"/> wird auf die unter diesem Bezeichner gespeicherten Daten des Arztes zugegriffen. So kann z.B. bei wiederholten Tauchtauglichkeitsuntersuchungen bei ein und demselben Arzt das erneute Abspeichern dessen Daten eingespart werden.
(siehe auch <examination>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <examination> <!-- erste gespeicherte Untersuchung --> <doctor id="dr_dusel"> <!-- Daten des Arztes --> </doctor> <!-- weitere Beschreibung dieser Untersuchung --> </examination> <examination> <!-- zweite gespeicherte Untersuchung --> <!-- da Arztdaten von vorheriger <examination>-Anweisung bekannt, --> <!-- braucht hier nur referenziert zu werden --> <doctorref ref="dr_dusel"/> <!-- weitere Beschreibung dieser Untersuchung --> </examination> </owner> <!-- hier weitere Anweisungen --> </diver> </uddf>
Gibt bei Pflanzen den Bedeckungsgrad (Dominanz) des Auftretens der Art an. Erlaubte Zeichen-Werte sind: 0 — nicht feststellbar, 1 — kleiner 1/20, 2 — 1/20 bis 1/4, 3 — 1/4 bis 1/2, 4 — 1/2 bis 3/4, 5 — größer 3/4 sowie "+", wenn es sich um einzelne Individuen handelt (Einteilung nach Emschermann, P., Hoffrichter, O., Körner, H., Zissler, D. (Hrsg.), Meeresbiologische Exkursion, Gustav Fischer Verlag, Stuttgart, Jena, 1992, ISBN 3-437-20414-9, Seite 46).
Kann der Bedeckungsgrad nicht ermittelt werden, so kann <dominance> entweder weggelassen werden oder <dominance>0</dominance> wird angegeben.
<species>
<!-- Bedeckungsgrad konnte nicht festgestellt werden --> <!-- (in diesem Fall kann die Anweisung auch einfach weggelassen werden) --> <dominance>0</dominance>
<!-- Bedeckungsgrad zwischen 1/4 bis 1/2 der untersuchten Fläche --> <dominance>3</dominance>
<!-- nur einzelne Individuen --> <dominance>+</dominance>
Mit <draught> wird der Tiefgang des Schiffs (jetzt Wrack) in Metern als reelle Zahl geklammert.
<shipdimension>, <wreck>
siehe <shipdimension> und <wreck>
Innerhalb <ecology> werden Informationen zur Ökologie des Tauchplatzes beschrieben. Hier werden z.B. typischerweise anzutreffende Tier- und Pflanzenarten gespeichert.
<site>
<site>
<geography> <!-- hier geografische Angaben zu diesem Tauchplatz --> </geography> <ecology> <fauna> <!-- hier typischerweise an diesem Tauchplatz anzutreffende Tiere --> </fauna> <flora> <!-- hier typischerweise an diesem Tauchplatz vorzufindende Pflanzen --> </flora> </ecology> <sitedata> <!-- hier weitere Angaben zu diesem Tauchplatz --> </sitedata>
Innerhalb <education> werden Daten bzgl. des Ausbildungsstandes des Tauchers angegeben. Einziges Element innerhalb <education> ist <certification>, welches beliebig oft wiederholt werden kann.
(siehe auch <owner> und <buddy>)
<education> <!-- alle Stufen der Tauchausbildung -> mehrere --> <!-- <certification>-Elemente hintereinander --> <certification> <level>Bronze</level> <organisation>VDST/CMAS</organisation> <!-- da der damalige Tauchlehrer nicht in einer UDDF-Datei --> <!-- eingetragen wurde, entfällt auch die Referenz darauf --> <!-- mittels <instructorref ref="..."/> --> <issuedate> <date> <year>1994</year <month>3</month> <day>15</day> <dayofweek>2</dayofweek> <!-- Dienstag --> </date> </issuedate> </certification> <certification> <level>Silber</level> <organisation>VDST/CMAS</organisation> <!-- da der damalige Tauchlehrer nicht in einer UDDF-Datei --> <!-- eingetragen wurde, entfällt auch die Referenz darauf --> <!-- mittels <instructorref ref="..."/> --> <issuedate> <date> <year>1997</year <month>11</month> <day>26</day> <dayofweek>3</dayofweek> <!-- Mittwoch --> </date> </issuedate> </certification> <certification> <level>Gold</level> <organisation>VDST/CMAS</organisation> <!-- da der damalige Tauchlehrer nicht in einer UDDF-Datei --> <!-- eingetragen wurde, entfällt auch die Referenz darauf --> <!-- mittels <instructorref ref="..."/> --> <issuedate> <date> <year>2000</year <month>5</month> <day>10</day> <dayofweek>3</dayofweek> <!-- Mittwoch --> </date> </issuedate> </certification> </education>
Innerhalb <enddate> wird das Datum des Endes der Tauchfahrt angegeben. Siehe auch <startdate>.
<trip>
siehe <trip>
Innerhalb der <equipment>-Sektion werden sämtliche Daten zur vorhandenen Tauchausrüstung abgespeichert.
Die <equipment>-Sektion steht innerhalb <owner>. Zusätzlich kann sie ebenfalls als weitere Information zu jedem Tauchpartner in einem <buddy>-Element angegeben werden.
<boots>, <buoyancycontroldevice>, <camera>, <compass>, <compressor>, <divecomputer>, <fins>, <gloves>, <knife>, <lead>, <light>, <mask>, <rebreather>, <regulator>, <scooter>, <suit>, <tank>, <variouspieces>, <videocamera>, <watch>
<equipment> <!-- Auflistung der Ausrüstungsteile des Besitzers der UDDF-Datei --> <buoyancycontroldevice id="mein_jacket"> <name>ABC</name> <manufacturer>Hans Müller</manufacturer> <model>Underwater Camping Team</model> <serialnumber>123456789</serialnumber> <purchase> <date> <year>1960</year><month>5</month><day>31</day>dayofweek>2</dayofweek> </date> <price currency="DM">100.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <!-- Wartung jedes Jahr --> <serviceinterval>365</serviceinterval> <nextservicedate> <date> <!-- damals gab's noch Qualität! ;-) --> <year>2006</year><month>5</month><day>31</day> </date> </nextservicedate> </buoyancycontroldevice> <boots id="meine_fuesslinge"> <name>noname</name> <manufacturer>Keine Ahnung</manufacturer> <model>Größe 48</model> <!-- Seriennummer gibt es hier nicht :-) --> <purchase> <date> <year>1970</year><month>10</month><day>7</day><dayofweek>3</dayofweek> <!-- Mittwoch --> </date> <price currency="DM">10.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <!-- besser einmal pro Monat waschen... ;-) --> <serviceinterval>30</serviceinterval> <!-- genaues "Serviceintervall" existiert nicht ;-) --> </boots> <camera id="Analog-Fotokamera"> <body id="Nikonos_V"> <name>Nikonos V</name> <manufacturer>Nikon</manufacturer> <model>V</model> <serialnumber>987654321</serialnumber> <purchase> <date> <year>1997</year><month>6</month><day>12</day><dayofweek>4</dayofweek> </date> <price currency="DM">850.00</price> <shop> <name>Fotoladen</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <serviceinterval>365</serviceinterval> <nextservicedate> <date> <year>2007</year><month>3</month><day>11</day> </date> </nextservicedate> </body> <lens id="Nikonos_35mm"> <name>35 mm Objektiv</name> <manufacturer>Nikon</manufacturer> <model>35mm</model> <serialnumber>123459876</serialnumber> <purchase> <date> <year>1997</year><month>6</month><day>12</day><dayofweek>4</dayofweek> </date> <price currency="DM">430.00</price> <shop> <name>Fotoladen</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <serviceinterval>365</serviceinterval> <nextservicedate> <date> <year>2007</year><month>3</month><day>11</day> </date> </nextservicedate> </lens> <lens id="Nikonos_20mm"> <name>20 mm Objektiv</name> <manufacturer>Nikon</manufacturer> <model>20 mm</model> <serialnumber>567890123</serialnumber> <purchase> <date> <year>1999</year><month>11</month><day>23</day><dayofweek>2</dayofweek> </date> <price currency="DM">900.00</price> <shop> <name>zweite Hand</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <serviceinterval></serviceinterval> <nextservicedate> <date> <year></year><month></month><day></day> </date> </nextservicedate> </lens> <flash id="Ikelite_200"> <name>Substrobe 200</name> <manufacturer>Ikelite</manufacturer> <model>200</model> <serialnumber>0987654321</serialnumber> <purchase> <date> <year>1998</year><month>12</month><day>26</day><dayofweek>6</dayofweek> </date> <price currency="DM">1350.00</price> <shop> <name>Tauchterminal</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> </flash> </camera> <camera id="Digital-Fotokamera"> <body id="Olympus"> <name>Digitalkamera</name> <manufacturer>Olympus</manufacturer> <model>7070</model> <serialnumber>123789</serialnumber> <purchase> <date> <year>2000</year><month>2</month><day>30</day> </date> <price currency="EUR">500.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <serviceinterval>365</serviceinterval> </body> <lens id="Olympus_Zoom_in_Body"> <name>Zoomobjektiv</name> <manufacturer>Olympus</manufacturer> <model>10-1000</model> <serialnumber>01928374</serialnumber> <purchase> <date> <year>2000</year><month>2</month><day>30</day> </date> <price currency="EUR">500.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> </lens> </camera> <!-- hier können noch weitere Beschreibungen von anderen Ausrüstungsteilen stehen --> <tank id="flasche_1"> <name>Lieblingspulle</name> <manufacturer>Superflaschen-Hersteller</manufacturer> <model>Hart wie Stahl</model> <serialnumber>12345</serialnumber> <purchase> <date> <!-- Datum des Kaufs der Preßluftflasche --> </date> <price currency="DM">250.00</price> <shop> <!-- Angaben zum Geschäft, in dem die Flasche erworben wurde --> </shop> </purchase> <nextservicedate> <!-- Datum der nächsten fälligen TÜV-Abnahme --> </nextservicedate> <tankmaterial>steel</tankmaterial> <!-- Stahlflasche --> <notes> <image><objectname>stahlpulle_neu.jpg</objectname></image> <image><objectname>stahlpulle_nach_2_jahren.jpg</objectname></image> </notes> </tank> <!-- hier können noch Beschreibungen von weiteren Preßluftflaschen eingefügt werden --> <!-- hier können noch weitere Beschreibungen von anderen Ausrüstungsteilen stehen --> </equipment>
Gibt die äquivalente Lufttiefe (Equivalent Air Depth) eines Atemgases an. Die Angabe erfolgt als reelle Zahl in Metern.
<mix>
(siehe auch <mix> bzw. <gasdefinitions>)
<-- 40.0 Meter äquivalente Lufttiefe --> <equivalentairdepth>40.0</equivalentairdepth>
Innerhalb <examination> werden Daten zu einer Tauchtauglichkeits-Untersuchung gespeichert. Es können beliebig viele <examination>-Elemente hintereinander aufgeführt werden.
<medical>
<date>, <doctor>, <doctorref/>, <examinationresult>, <notes>
<medical>
(siehe auch <medical>)
<examination> <date> <year>2003</year<month>4</month><day>12</day><dayofweek>6</dayofweek> </date> <doctor> <personal> <firstname>Dirk</firstname> <lastname>Dusel</lastname> <title>Dr.</title> <sex>m</sex> <birthdate> <!-- falls Geburtsdaten bekannt, können sie hier angegeben werden --> </birthdate </personal> <address> <street>Duddelstr. 34</street> <city>Dortmund</city> <postcode>54321</postcode> <country>Deutschland</country> </address> <contact> <language>deutsch</language> <phone>01234/987654</phone> <email>dusels_dirk@taucherarzt-dirk-dusel.de</email> <homepage>http://www.taucherarzt-dirk-dusel.de</homepage> </contact> </doctor> <examinationresult>passed</examinationresult> <notes> <text> Plattfüße scheinen die Tauchtauglichkeit nicht zu beeinflussen :-) </text> <image><objectname>plattfuss.jpg</objectname></image> </notes> </examination>
Mit <examinationresult> wird angegeben, ob eine Tauchtauglichkeits-Untersuchung bestanden oder nicht bestanden wurde. Erlaubte Werte sind passed (bestanden) sowie failed (nicht bestanden).
(siehe auch <examination>)
<!-- Untersuchung bestanden --> <examinationresult>passed</examinationresult>
<!-- Untersuchung nicht bestanden --> <examinationresult>failed</examinationresult>
Mittels <exposurecompensation> wird die bei einem Foto verwendete Belichtungskorrektur geklammert. Der Wert wird angegeben in LW-Stufen (Lichtwert-Stufen) und liegt normalerweise im Bereich von ±3 Blendenstufen (LW-Stufen). Für UDDF muß dieser Wert in eine Dezimalzahl umgewandelt werden.
<filmspeed>, <focallength>, <focusingdistance>, <imagedata>, <meteringmethod>, <shutterspeed>
Innerhalb <fauna> erfolgen Angaben zu normalerweise an einem Tauchplatz anzutreffenden oder zu während eines Tauchgangs beobachteten Tieren. Sofern die Zugehörigkeit dieser zu Klassen bzw. Stämmen bekannt ist, können die Angaben in den jeweiligen Elementen vorgenommen werden. Sind die Klassen bzw. Stämme nicht bekannt, werden die Namen der Tiere einfach mit dem Element <text> innerhalb <notes> geklammert (siehe Beispiel).
<fauna> steht innerhalb <ecology> (zur Beschreibung allgemein an einem Tauchplatz anzutreffender Tiere und Pflanzen) sowie <observations> (wenn Beobachtungen während eines Tauchgangs festgehalten werden sollen).
<ecology>, <observations>
<invertebrata> (Wirbellose — weiter unterteilt, siehe dort), <notes>, <vertebrata> (Wirbeltiere — weiter unterteilt, siehe dort)
<ecology>, <flora>, <observations>
<fauna> <invertebrata> <!-- Wirbellose --> <porifera> <!-- Schwämme --> </porifera> <coelenterata> <!-- Hohltiere --> </coelenterata> <cnidaria> <!-- Nesseltiere --> </cnidaria> <ctenophora> <!-- Rippenquallen --> </ctenophora> <plathelminthes> <!-- Plattwürmer --> </plathelminthes> <bryozoa> <!-- Moostiere --> </bryozoa> <phoronidea> <!-- Hufeisenwürmer --> </phoronidea> <ascidiacea> <!-- Seescheiden --> </ascidiacea> <echinodermata> <!-- Stachelhäuter --> </echinodermata> <mollusca> <!-- Weichtiere --> </mollusca> <crustacea> <!-- Krebstiere --> </crustacea> <invertebratavarious> <!-- andere Wirbellose--> </invertebratavarious> </invertebrata> <vertebrata> <!-- Wirbeltiere --> <chondrichthyes> <!-- Knorpelfische - Haie, Rochen --> </chondrichthyes> <osteichthyes> <!-- Knochenfische --> </osteichthyes> <mammalia> <!-- Säugetiere --> </mammalia> <amphibia> <!-- Amphibien --> </amphibia> <reptilia> <!-- Reptilien --> </reptilia> <vertebratavarious> <!-- andere Wirbeltiere--> </vertebratavarious> </vertebrata> </fauna>
<fauna> <!-- keine Lust, im Bestimmungsbuch nachzugucken... --> <notes> <text> Goldschwamm, Nierenschwamm, Meerjunker, Mönchsfisch, Geweihschleimfisch </text> <!-- hier könnten auch noch Bilder, Videodateien etc. aufgeführt werden --> </notes> </fauna>
Mit <fileformat> wird das Ausgabeformat des zu erzeugenden Outputs spezifiziert. Mögliche Formate sind: ASCII, HTML, (La)TeX, PDF, Postscript, DocBook... Wird das vorgegebene Format vom erzeugenden Programm nicht unterstützt oder ist die <fileformat>-Anweisung nicht gegeben worden, erfolgt die Ausgabe im ASCII-Format.
Durch das Ausgabeformat ist gleichzeitig die Endung der Ausgabedatei bestimmt (siehe auch <filename>):
Format Schlüsselwort Dateiendung ----------------------------------------------- ASCII ascii .txt (La)TeX (la)tex .tex PDF pdf .pdf Postscript postscript .ps HTML html .html DocBook docbook .xml
<fileformat> darf nur genau einmal angegeben werden.
<output>
(siehe auch <output>)
<!-- Ausgabe im ASCII-Format --> <fileformat>ascii</fileformat>
<!-- es soll eine TeX-Tabelle erstellt werden --> <fileformat>tex</fileformat>
<!-- Ausgabe im PDF-Format --> <fileformat>pdf</fileformat>
<!-- Ausgabe nach DocBook --> <fileformat>docbook</fileformat>
Mit <filename> wird ein Name für die zu erzeugende Ausgabedatei vorgegeben. Wird das Element nicht angegeben, wird der Dateiname vom Programm automatisch erzeugt.
Eine Dateiendung braucht/darf nicht angegeben werden, da die Endung durch das Ausgabeformat vorgegeben wird (siehe auch <fileformat>):
Format Dateiendung ----------------------- ASCII .txt (La)TeX .tex PDF .pdf Postscript .ps HTML .html DocBook .xml
<filename> darf nur genau einmal angegeben werden.
<output>
<fileformat>, <headline>, <lingo>, <remark>
(siehe auch <output>)
<!-- ein sehr fantasievoller Name... :-) --> <!-- die Dateiendung darf NICHT angegeben werden, --> <!-- denn sie wird durch das Ausgabeformat bestimmt --> <filename>tabelle-1</filename>
Mittels <filmspeed> wird die bei einem bestimmten Foto aktuelle Filmempfindlichkeit geklammert. Anzugeben ist der ISO (ASA)-Wert als ganze Zahl (integer).
<aperture>, <exposurecompensation>, <focallength>, <focusingdistance>, <image>, <imagedata>, <meteringmethod>, <shutterspeed>
(siehe auch <image>)
<!-- Filmempfindlichkeit 100 ASA (ISO) --> <filmspeed>100</filmspeed>
Innerhalb <fins> erfolgen die Angaben zu verwendeten Flossen. Es können mehrere <fins>-Elemente hintereinander aufgeführt werden.
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
(siehe auch <equipment>)
<equipment> <fins id="meine_roten_flossen"> <name>Schnelltaucher</name> <manufacturer>Schneller Tauchen</manufacturer> <model>Lichtgeschwindigkeit</model> <!-- keine Seriennummer --> <purchase> <date> <year>1960</year><month>10</month><day>12</day><dayofweek>3</dayofweek> </date> <price currency="DM">80.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <!-- kein Serviceinterval --> </fins> </equipment>
Mittels <finsref ref="bezeichner_der_zu_referenzierenden_flossen"/> wird auf die unter diesem Bezeichner gespeicherten Flossendaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <fins id="meine_flossen"> <!-- Beschreibung der Flossen --> </fins> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Flossen: --> <finsref ref="meine_flossen"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
<camera>
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
siehe <camera>
Mittels <flashref ref="bezeichner_des_zu_referenzierenden_blitzes"/> wird auf die unter diesem Bezeichner gespeicherten Blitzdaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <flash id="mein_blitz"> <!-- Beschreibung des Blitzes --> </flash> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Blitz: --> <flashref ref="mein_blitz"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
Innerhalb <flora> erfolgen Angaben zu gesichteten Pflanzen. Sofern die Zugehörigkeit dieser zu Klassen bzw. Abteilungen bekannt ist, können die Angaben in den jeweiligen Elementen vorgenommen werden. Sind die Klassen bzw. Abteilungen nicht bekannt, werden die Namen der Pflanzen einfach mit dem Element <text> innerhalb <notes> geklammert (siehe Beispiel).
<flora> steht innerhalb <ecology> (zur Beschreibung allgemein an einem Tauchplatz anzutreffender Tiere und Pflanzen) sowie <observations>.
<ecology>, <observations>
<chlorophyceae> (Grünalgen), <floravarious> (alle anderen nicht den vorigen Elementen zugeordneten Pflanzen), <notes>, <phaeophyceae> (Braunalgen), <rhodophyceae> (Rotalgen), <spermatophyta> (Blütenpflanzen)
<ecology>, <fauna>, <observations>
<flora> <rhodophyceae> <!-- Rotalgen --> </rhodophyceae> <phaeophyceae> <!-- Braunalgen --> </phaeophyceae> <chlorophyceae> <!-- Grünalgen --> </chlorophyceae> <spermatophyta> <!-- Blütenpflanzen --> </spermatophyta> <floravarious> <!-- alles andere --> </floravarious> </flora>
<flora> <!-- keine Lust im Bestimmungsbuch nachzugucken... --> <notes> <text> Schirmchenalge, Trichteralge, Meersalat, Neptunsgras </text> </notes> </flora>
Innerhalb <floravarious> werden alle gesichteten bzw. gesammelten und später bestimmten Blütenpflanzen aufgelistet, die nicht den anderen Elementen dieser Ebene (<rhodophyceae> (Rotalgen), <phaeophyceae> (Braunalgen), <chlorophyceae> (Grünalgen), <spermatophyta> (Blütenpflanzen)) zugeordnet werden können.
<flora>
<species>
<flora>
siehe <flora>
Mittels <focallength> wird die Brennweite des bei einem bestimmten Foto verwendeten Objektivs geklammert. Anzugeben ist der Brennweitenwert als reelle Zahl in Metern (!).
<exposurecompensation>, <filmspeed>, <focusingdistance>, <image>, <imagedata>, <meteringmethod>, <shutterspeed>
Mittels <focusingdistance> wird die (manuell oder automatisch) eingestellte Entfernung (Schärfeebene) des Fotos geklammert. Anzugeben ist die Entfernung als reelle Zahl in Metern.
<exposurecompensation>, <filmspeed>, <focallength>, <image>, <imagedata>, <meteringmethod>, <shutterspeed>
(siehe auch <image>)
<!-- Objektiv scharf gestellt auf 3,2 m Entfernung --> <focusingdistance>3.2</focusingdistance>
Innerhalb der <gasdefinitions>-Sektion erfolgt die Definition der verschiedenen vom Besitzer (<owner>) der UDDF-Datei verwendeten Atemgase.
<gasdefinitions> steht nach der <divesite>-Sektion und vor <profiledata>.
Einzige Elemente innerhalb <gasdefinitions> — die aber beliebig oft wiederholt werden dürfen — sind <mix> und <tankdata>. Zuerst müssen alle <mix>-Elemente aufgeführt werden, danach erst folgen sämtliche <tankdata>-Elemente. Dies ist notwendig, da in letzteren Referenzierungen auf in <mix>-Anweisungen definierte Atemgasgemische stehen können.
<uddf>
<gasdefinitions> <!-- alle verwendeten Atemgase --> <mix id="Sauerstoff_rein"> <name>pure oxygen</name> <!-- reiner Sauerstoff --> <o2>1.000</o2> <n2>0.000</n2> <he>0.000</he> <ar>0.000</ar> <h2>0.000</h2> </mix> <mix id="air"> <name>air</name> <!-- Luft --> <o2>0.210</o2> <n2>0.790</n2> <he>0.000</he> <ar>0.000</ar> <h2>0.000</h2> </mix> <mix id="nitrox6040"> <name>Nitrox60/40</name> <!-- Nitrox 60 % N2, 40 % O2 --> <o2>0.400</o2> <n2>0.600</n2> <he>0.000</he> <ar>0.000</ar> <h2>0.000</h2> </mix> <mix id="trimix"> <name>Trimix</name> <!-- Trimix 15 % O2, 40 % N2, 45 % He --> <o2>0.150</o2> <n2>0.400</n2> <he>0.450</he> <ar>0.000</ar> <h2>0.000</h2> </mix> <tankdata id="luft_1"> <!-- luftgefüllte 15 Liter-Flasche, Fülldruck zu Beginn 200 bar, Atemminutenvolumen 12 Liter/Minute --> <mixref ref="air"/> <tankvolume>0.015</tankvolume> <tankpressurebegin>20000000.0</tankpressurebegin> <breathingconsumptionvolume>0.0002</breathingconsumptionvolume> <!-- Einheit ist [m^3/s]! --> </tankdata> <tankdata id="luft_2"> <!-- eine andere luftgefüllte Flasche... --> <mixref ref="air"/> <tankvolume>0.01</tankvolume> <tankpressurebegin>20000000.0</tankpressurebegin> <breathingconsumptionvolume>0.00033333</breathingconsumptionvolume> <!-- Einheit ist [m^3/s]! --> </tankdata> <tankdata id="nitrox_pülleken"> <mixref ref="nitrox6040"/> <tankvolume>0.01</tankvolume> <tankpressurebegin>220000000.0</tankpressurebegin> <breathingconsumptionvolume>0.00025</breathingconsumptionvolume> <!-- Einheit ist [m^3/s]! --> <tankmaterial>aluminium</tankmaterial> </tankdata> <tankdata id="o2_flasche"> <mixref ref="Sauerstoff_rein"/> <!-- Nachfolgende Anweisung setzt voraus, daß in der <equipment>-Sektion innerhalb --> <!-- <diver><buddy> mittels <tank id="Pulle_O2_rein"> Daten abgelegt wurden. --> <tankref ref="Pulle_O2_rein"/> <tankvolume>0.008</tankvolume> <tankpressurebegin>20000000.0</tankpressurebegin> <breathingconsumptionvolume>0.0002</breathingconsumptionvolume> <!-- Einheit ist [m^3/s]! --> <tankmaterial>steel</tankmaterial> </tankdata> </gasdefinitions>
In der <generator>-Sektion werden Angaben zum die UDDF-Datei erzeugenden Programm gemacht.
Steht als erste Sektion direkt nach dem UDDF-Dateikopf noch vor der <diver>-Sektion.
<uddf>
<date> <manufacturer>, <name>, <time>, <version>
<uddf>
<uddf version="2.1.0"> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> <name>STL - Super-Taucher-Logbuch</name> <manufacturer>Tauchhelden-Company</manufacturer> <version>3.14159</version> <date> <!-- Erstellungsdatum der UDDF-Datei --> <year>2004</year><month>9</month><day>30</day><dayofweek>4</dayofweek> </date> <time> <!-- Uhrzeit der Erstellung der UDDF-Datei --> <hour>15</hour><minute>21</minute> </time> </generator> <diver> <!-- Beschreibung des Besitzers und seiner Tauchpartner --> </diver> <!-- hier weitere UDDF-Sektionen --> </uddf>
Innerhalb <geography> wird der geografische Ort des Tauchplatzes oder das Ziel einer Tauchfahrt genau beschrieben.
Das <geography>-Element steht innerhalb von <site> oder — bei einer Tauchfahrt — innerhalb <trip>.
<site> <!-- hier vorherige Angaben zur Beschreibung des Tauchplatzes --> <geography> <location>Scapa Flow</location> <province>Orkney Islands</province> <country>UK</country> <!-- Breitengrad: Nord > 0 / Süd < 0 --> <latitude>58.897222</latitude> <!-- Längengrad: Ost > 0 / West < 0 --> <longitude>-3.1519444</longitude> <altitude>0.0</altitude> <!-- Differenz zu GMT in Stunden --> <timezone>0.0</timezone> </geography> <!-- hier weitere Angaben zur Beschreibung des Tauchplatzes --> </site>
Mittels <getdcalldata> werden die gesamten auf dem Tauchcomputer gespeicherten Daten angefordert.
(siehe auch <divecomputercontrol>)
<uddf version="2.2.0"> <generator> <!-- hier Angaben zum die Daten abrufenden Programm --> </generator> <divecomputercontrol> <getdcdata> <!-- sämtliche im Tauchcomputer gespeicherten Daten --> <!-- werden an das aufrufende Programm gesendet --> <getdcalldata/> </getdcdata> </divecomputercontrol> </uddf>
Mittels <getdcbuddydata/> werden die Daten aller gespeicherten Tauchpartner des Eigentümers des Tauchcomputers angefordert.
(siehe auch <divecomputercontrol>)
<uddf version="2.2.0"> <generator> <!-- hier Angaben zum die Daten abrufenden Programm --> </generator> <divecomputercontrol> <getdcdata> <!-- im Tauchcomputer gespeicherte Daten von Tauchpartnern --> <!-- werden an das aufrufende Programm gesendet --> <getdcbuddydata/> </getdcdata> </divecomputercontrol> </uddf>
Mittels <getdcdata> wird der Tauchcomputer angewiesen, Daten an das rufende Programm zu senden. Stehen innerhalb der <getdcdata>-Sektion keine weiteren Elemente, so werden sämtliche Daten — aller gespeicherten Tauchgänge — übertragen.
Innerhalb der <getdcdata>-Sektion können aber auch nur ausgesuchte Daten angefordert werden. Dazu dienen die folgenden Elemente:
<getdcalldata/> — Anfordern sämtlicher im Tauchcomputer gespeicherter Daten
<getdcgeneratordata/> — Anfordern der Herstellerdaten des Tauchcomputers (siehe auch <generator>)
<getdcownerdata/> — Daten des Eigentümers (<owner>) (siehe auch <diver>)
<getdcbuddydata/> — Daten der eingetragenen Tauchpartner (<buddy>) (siehe auch <diver>)
<getdcgasdefinitionsdata/> — alle Daten zu gespeicherten Atemgasen werden übertragen (siehe auch <gasdefinitions>)
<getdcdivesitedata/> — Tauchplatzbeschreibungen (siehe auch <divesite>)
<getdcdivetripdata/> — Anforderung der Beschreibungen von Tauchfahrten (siehe auch <divetrip>)
<getdcprofiledata/> — eigentliche Tauchgangsadaten (siehe auch <profiledata>)
<getdcalldata/>, <getdcbuddydata/>, <getdcdivesitedata/>, <getdcdivetripdata/>, <getdcgasdefinitionsdata/>, <getdcgeneratordata/>, <getdcownerdata/>, <getdcprofiledata/>
Mittels <getdcdivesitedata/> werden die Daten zu Tauchplatzbeschreibungen vom Tauchcomputer angefordert.
(siehe auch <divecomputercontrol>)
<uddf version="2.2.0"> <generator> <!-- hier Angaben zum die Daten abrufenden Programm --> </generator> <divecomputercontrol> <getdcdata> <!-- im Tauchcomputer gespeicherte Daten von Tauchplätzen --> <!-- werden an das aufrufende Programm gesendet --> <getdcdivesitedata/> </getdcdata> </divecomputercontrol> </uddf>
Mittels <getdcdivetripdata/> werden Daten zu Tauchfahrten vom Tauchcomputer angefordert.
(siehe auch <divecomputercontrol>)
<uddf version="2.2.0"> <generator> <!-- hier Angaben zum die Daten abrufenden Programm --> </generator> <divecomputercontrol> <getdcdata> <!-- im Tauchcomputer gespeicherte Daten von Tauchfahrten --> <!-- werden an das aufrufende Programm gesendet --> <getdcdivetripdata/> </getdcdata> </divecomputercontrol> </uddf>
Mittels <getdcgasdefinitionsdata/> wird der Tauchcomputer angewiesen, die Daten zu gespeicherten Atemgasen an das rufende Programm/Gerät zu senden.
(siehe auch <divecomputercontrol>)
<uddf version="2.2.0"> <generator> <!-- hier Angaben zum die Daten abrufenden Programm --> </generator> <divecomputercontrol> <getdcdata> <!-- im Tauchcomputer gespeicherte Daten von Atemgasen --> <!-- werden an das aufrufende Programm gesendet --> <getdcgasdefinitionsdata/> </getdcdata> </divecomputercontrol> </uddf>
(siehe auch <divecomputercontrol>),
<uddf version="2.2.0"> <generator> <!-- hier Angaben zum die Daten abrufenden Programm --> </generator> <divecomputercontrol> <getdcdata> <!-- im Tauchcomputer gespeicherte Hersteller-Daten --> <!-- werden an das aufrufende Programm gesendet --> <getdcgeneratordata/> </getdcdata> </divecomputercontrol> </uddf>
Mittels <getdcownerdata/> werden die Daten des Eigentümers des Tauchcomputers angefordert.
(siehe auch <divecomputercontrol>)
<uddf version="2.2.0"> <generator> <!-- hier Angaben zum die Daten abrufenden Programm --> </generator> <divecomputercontrol> <getdcdata> <!-- im Tauchcomputer gespeicherte Daten des Tauchcomputerbesitzers --> <!-- werden an das aufrufende Programm gesendet --> <getdcownerdata/> </getdcdata> </divecomputercontrol> </uddf>
Mittels <getdcprofiledata/> werden die eigentlichen Tauchgangsdaten vom Tauchcomputer angefordert.
(siehe auch <divecomputercontrol>)
<uddf version="2.2.0"> <generator> <!-- hier Angaben zum die Daten abrufenden Programm --> </generator> <divecomputercontrol> <getdcdata> <!-- im Tauchcomputer gespeicherte Tauchgangsprofil-Daten --> <!-- werden an das aufrufende Programm gesendet --> <getdcprofiledata/> </getdcdata> </divecomputercontrol> </uddf>
Klammert die mittlere, "globale" Lichtintensität des Tauchplatzes. Erlaubte Werte sind hier: 0 — nicht ermittelt, 1 — Sonne, 2 — Halbschatten, 3 — Schatten, 4 — kein Licht vorhanden (z.B. in einer Höhle). Im Gegensatz zu <lightintensity> kann bei <globallightintensity> kein Attribut zur genauen gemessenen Lichtstärke in Lux angegeben werden.
<sitedata>
<lightintensity>, <sitedata>
(siehe auch <sitedata>)
<!-- sonniger Tauchplatz (Flachwasser), keine Abschattungen vorhanden --> <globallightintensity>1</globallightintensity>
Innerhalb <gloves> erfolgen die Angaben zu verwendeten Handschuhen. Es können mehrere <gloves>-Elemente hintereinander aufgeführt werden.
<manufacturer>, <model>, <name>, <nextservicedate> <notes>, <purchase>, <serialnumber>, <serviceinterval>
(siehe auch <equipment>)
<equipment> <gloves id="meine_handschuhe"> <name>Fingerwärmer</name> <manufacturer>Warmfinger</manufacturer> <model>Heißheiß</model> <serialnumber>007</serialnumber> <purchase> <date> <year>1966</year><month>8</month><day>1</day><dayofweek>1</dayofweek> </date> <price currency="DM">15.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <!-- kein Serviceinterval --> </gloves> </equipment>
Mittels <glovesref ref="bezeichner_der_zu_referenzierenden_handschuhe"/> wird auf die unter diesem Bezeichner gespeicherten Handschuhdaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <gloves id="meine_handschuhe"> <!-- Beschreibung der Handschuhe --> </gloves> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Handschuhe: --> <glovesref ref="meine_handschuhe"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
Innerhalb <greatestdepth> wird die größte während eines Tauchgangs erreichte Tiefe in Metern angegeben (nicht die maximal mögliche Tiefe an diesem Tauchplatz — siehe <maximumdepth>!).
<dive>
<dive>
<dive> <!-- größte erreichte Tiefe bei diesem Tauchgang --> <!-- (die maximal erreichbare Tiefe an diesem Tauchplatz könnte z.B. 60 m sein --> <!-- und würde dann mittels <maximumdepth> innerhalb <sitedata> angegeben werden) --> <greatestdepth>48.5 </greatestdepth> <!-- restliche TG-Daten --> </dive>
Innerhalb <guide> wird ein Guide einer Tauchbasis spezifiziert. Es können beliebig viele <guide>-Elemente hintereinander aufgeführt werden.
<divebase>
siehe <divebase>
Gibt den Wasserstoff-Anteil des Atemgases an. Die Angabe erfolgt als (Volumen-)Prozentangabe, wobei die Prozentangabe als reelle Zahl kleiner oder gleich 1.0 erfolgt.
<mix>
<mix>
Gibt den Helium-Anteil des Atemgases an. Die Angabe erfolgt als (Volumen-)Prozentangabe, wobei die Prozentangabe als reelle Zahl kleiner oder gleich 1.0 erfolgt.
<mix>
<mix>
Innerhalb <headline> kann eine Überschrift für ein/e zu erzeugende/s Aufstiegsprofil bzw. eine Austauch- oder ,,Maximale Grundzeit''-Tabelle angegeben werden.
<output>
<output>, <tablegeneration>
(siehe auch <tablegeneration>)
<headline>Tabelle für nächsten Tauchgang auf 2000 m Höhe</headline>
Mit <homepage> wird die Angabe eines URLs (Unified Resource Locator) einer Heimseite — in neu-deutsch: Homepage ;-) — geklammert. Es können beliebig viele <homepage>-Elemente aufgeführt werden.
<contact>
<contact>
Der Schalter <hoteltrip/> gibt an, daß es sich um eine Tauchfahrt mit Übernachtung im Hotel handelt.
<divetrip>
<divetrip>
siehe <divetrip>
Gibt die volle Stunde bei einer Zeitangabe an. Die Angabe erfolgt als ganze Zahl (integer).
Während <hour> bei der Zeitangabe zwingend vorgeschrieben ist, kann <minute> gegebenenfalls auch entfallen.
<time>
siehe <time>
Mit <housing> wird ein UW-Gehäuse für eine Foto- (<camera>) oder Videokamera (<videocamera>) geklammert.
<camera>, <videocamera>
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
<camera>, <videocamera>
siehe <videocamera>
Mittels <housingref ref="bezeichner_des_zu_referenzierenden_uw-gehaeuses"/> wird auf die unter diesem Bezeichner gespeicherten UW-Gehäusedaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
(siehe auch <camera> und <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <housing id="mein_uw-gehaeuse"> <!-- Beschreibung des UW-Gehäuses --> </housing> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- UW-Gehäuse: --> <housingref ref="mein_uw-gehaeuse"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
height=Höhe des Bildes in Pixeln
width=Breite des Bildes in Pixeln
format=verwendetes Bildformat (GIF, JPG, PNG, TIF etc.)
Mit <image> werden Daten zu einer Bilddatei — beliebigen Typs — geklammert. Die Art der Anzeige des Bildes bleibt dem Anwenderprogramm überlassen, ebenso, ob das verwendete Programm den Typ der Grafikdatei darstellen kann. Zur Unterstützung des Anwenderprogrammes können <image> die Höhe (height), die Breite (width) des Bildes sowie das Bildformat (format) als Attribute beigefügt werden. Die Anweisung kann beliebig oft wiederholt werden.
<notes>
<imagedata>, <objectname>
<notes>
(siehe auch <notes>)
<!-- die einfachste Form des Verweises auf ein Bild --> <!-- (in diesem Fall liegt die Bilddatei im selben Verzeichnis wie die UDDF-Datei) --> <image> <objectname>bild1.jpg</objectname> </image>
<!-- <image> werden die Bildparameter als Attribute übergeben --> <image height="1500" width="2000" format="jpg"> <!-- hier wird ein absoluter Pfad (Windows-Welt) für die Bilddatei angegeben --> <objectname>d:/abc/bild2.jpg</objectname> </image>
<!-- einige Bilddaten angegeben --> <image height="1500" width="2000"> <!-- absoluter Pfad (Unix-Welt) --> <objectname>/home/kai/tauchen/bild3.jpg</objectname> <imagedata> <aperture>4.0</aperture> <!-- Blende 4 --> <filmspeed>100</filmspeed> <!-- Filmempfindlichkeit 100 ASA --> <shutterspeed>0.008</shutterspeed> <!-- 1/125 s Belichtungszeit --> <focallength>0.02</focallength> <!-- 20 mm Objektivbrennweite --> </imagedata> </image>
<!-- alle Bilddaten angegeben --> <image height="4000" width="3000" format="jpg"> <!-- absoluter Pfad (Unix-Welt) --> <objectname>/home/kai/tauchen/bild4.jpg</objectname> <imagedata> <date> <year>2007</year><month>1</month><day>6</day> </date> <time> <hour>10</hour><minute>17</minute> <time> <aperture>2.8</aperture> <!-- Blende 2.8 --> <!-- Belichtungskorrektur -1 Blendenstufe --> <exposurecompensation>-1.0</exposurecompensation> <filmspeed>400</filmspeed> <!-- Filmempfindlichkeit 400 ASA --> <shutterspeed>0.002</shutterspeed> <!-- 1/500 s Belichtungszeit --> <focallength>0.035</focallength> <!-- 35 mm Objektivbrennweite --> <focusingdistance>1.3</focusingdistance> <!-- Objektiv scharf gestellt auf 1,3 m Entfernung --> <meteringmethod>spot</meteringmethod> <!-- Spot-Belichtungsmessung --> </imagedata> </image>
<image>
<aperture>, <date>, <exposurecompensation>, <filmspeed>, <focallength>, <focusingdistance>, <meteringmethod>, <shutterspeed>, <time>
<image>
siehe <image>
Mittels <imageref ref="bezeichner_der_zu_referenzierenden_bilddatei"/> wird auf das unter diesem Bezeichner gespeicherte Bild zugegriffen. So können in einen Text Bilder eingebunden werden, welche vor der Textsektion innerhalb <notes> abgelegt wurden.
<text>
Der Schalter <individualtrip/> gibt an, daß es sich um eine individuell durchgeführte Tauchfahrt (keine Pauschalreise) handelt.
<divetrip>
<divetrip>
siehe <divetrip>
Innerhalb <indoor> werden genauere Angaben zu einem von Menschenhand gemachten Tauchgewässer bzw. Tauchplatz (z.B. Tauch-Gasometer im Landschaftspark Duisburg-Nord) gemacht.
<sitedata>
<sitedata>
(siehe auch <sitedata>)
<indoor> <name>monte mare</name> <address> <street>Münstereifeler Straße 69</street> <city>Rheinbach</city> <postcode>53359</postcode> <country>Deutschland</country> </address> <contact> <language>deutsch</language> <phone>02226/9030-0</phone> <email>rheinbach@montemare.de</email> <homepage>http://www.monte-mare.de/de/rheinbach.html</homepage> </contact> <notes> <image><objectname>montemare_1.jpg</objectname></image> <image><objectname>montemare_2.jpg</objectname></image> <image><objectname>montemare_3.jpg</objectname></image> <video><objectname>vereinsfahrt1846.avi</objectname></video> </notes> </indoor>
Das Element <infinity/> repräsentiert den Wert ,,unendlich`` in UDDF. Da die numerische Darstellung des Wertes ,,unendlich`` auf verschiedenen Rechnersystemen unterschiedlich ist, wird dieses Schlüsselelement verwendet.
siehe <surfaceinterval>
Innerhalb <inputprofile> erfolgen die genauen Angaben zu einem Abstiegsprofil (siehe auch <calculateprofile>), für das ein Aufstiegsprofil gerechnet werden soll.
Prinzipiell ist es möglich, innerhalb <inputprofile> auch einen kompletten vorangegangenen Tauchgang mit der zugehörigen Oberflächenpause (<surfaceinterval>) zu modellieren bzw. die Profildaten mittels <diveref/> zu referenzieren.
<profile>
<diveref/>, <repetitiongroupref/>, <surfaceinterval>, <waypoint>
<calculateprofile>, <profile>
(siehe auch <profile>)
<inputprofile> <!-- jeder Tauchgang beginnt bei 0 min an der Oberfläche! :-) --> <waypoint> <depth>0.0</depth> <divetime0.0</divetime> </waypoint> <!-- einfaches Profil: --> <!-- Abstieg innerhalb von 5 min auf 100 m --> <waypoint> <depth>100.0</depth> <divetime>300.0</divetime> </waypoint> <!-- auf der Tiefe soll 10 min verblieben werden --> <waypoint> <depth>100.0</depth> <divetime>900.0</divetime> </waypoint> <!-- jetzt beginnt der Aufstieg, für den die Software das Profil berechnet --> </inputprofile>
<inputprofile> <!-- jeder Tauchgang beginnt bei 0 min an der Oberfläche! :-) --> <waypoint> <depth>0.0</depth> <divetime>0.0</divetime> </waypoint> <!-- Abstieg innerhalb von 5 min auf 80 m --> <waypoint> <depth>80.0</depth> <divetime>300.0</divetime> </waypoint> <!-- auf 80 m Tiefe soll 5 min verblieben werden --> <waypoint> <depth>80.0</depth> <divetime>600.0</divetime> </waypoint> <!-- Höhertauchen innerhalb 1 min auf 70 m --> <waypoint> <depth>70.0</depth> <divetime>660.0</divetime> </waypoint> <!-- Verbleiben auf 70m 5 min --> <waypoint> <depth>70.0</depth> <divetime>960.0</divetime> </waypoint> <!-- Tiefertauchen auf 75 m in 1 min--> <waypoint> <depth>75.0</depth> <divetime>1020.0</divetime> </waypoint> <!-- Aufenthalt auf 75 m weitere 10 min --> <waypoint> <depth>75.0</depth> <divetime>1620.0</divetime> </waypoint> <!-- jetzt beginnt der Aufstieg, für den die Software das Profil berechnet --> </inputprofile>
Innerhalb <instructor> werden Daten des Tauchlehrers angegeben, bei dem die entsprechende Brevetierung erfolgte.
(siehe auch <certification>)
<certification> <!-- hier Angaben zur Brevet-Stufe und des ausstellenden Tauchverbandes --> <instructor id="tl2_ijk"> <!-- Beschreibung des Tauchlehrers --> <personal> <firstname>Ingo</firstname> <middlename>Jürgen</middlename> <lastname>Knattermann</lastname> <sex>m</sex> <birthdate> <!-- Geburtsdatum unbekannt -> Datumselemente weggelassen --> </birthdate> </personal> <address> <!-- Adresse unbekannt -> Adreßelemente weggelassen --> </address> <contact> <language>deutsch</language> <!-- Telefonnummer ist nicht bekannt -> <phone>-Element weggelassen --> <email>ijk@knattermanns_tauchschule.de</email> <homepage>http://www.knattermanns_tauchschule.de</homepage> </contact> <notes> <!-- hier weitere Text-Informationen, Bilder etc. --> </notes> </instructor> <!-- hier folgen Angaben zum Ausstellungsdatum --> </certification>
Innerhalb <insurance> werden Daten bzgl. einer bestimmten (Taucher)versicherung angegeben. Das Element kann beliebig oft wiederholt werden.
Innerhalb <invertebrata> werden alle gesichteten Wirbellosen aufgelistet. Die Sektion ist in weitere Elemente unterteilt.
<fauna>
<ascidiacea>, <bryozoa>, <cnidaria>, <coelenterata>, <crustacea>, <ctenophora>, <echinodermata>, <invertebratavarious>, <mollusca>, <phoronidea>, <plathelminthes>, <porifera>
<fauna>
(siehe auch <fauna>)
<invertebrata> <porifera> <!-- hier gesichtete Schwämme --> </porifera> <coelenterata> <!-- hier gesichtete Hohltiere --> </coelenterata> <cnidaria> <!-- hier gesichtete Nesseltiere --> </cnidaria> <ctenophora> <!-- hier gesichtete Rippenquallen --> </ctenophora> <plathelminthes> <!-- hier gesichtete Plattwürmer --> </plathelminthes> <bryozoa> <!-- hier gesichtete Moostiere --> </bryozoa> <phoronidea> <!-- hier gesichtete Hufeisenwürmer --> </phoronidea> <ascidiacea> <!-- hier gesichtete Seescheiden --> </ascidiacea> <echinodermata> <!-- hier gesichtete Stachelhäuter --> </echinodermata> <mollusca> <!-- hier gesichtete Weichtiere --> </mollusca> <crustacea> <!-- hier gesichtete Krebstiere --> </crustacea> <invertebratavarious> <!-- hier alle anderen gesichteten Invertebraten, die oben nicht erfaßt werden --> </invertebratavarious> </invertebrata>
Innerhalb <invertebratavarious> werden alle gesichteten Wirbellosen aufgelistet, die keiner der anderen in UDDF bekannten Wirbellosen-Ordnungen (<porifera>, <coelenterata>, <cnidaria>, <ctenophora>, <plathelminthes>, <bryozoa>, <phoronidea>, <ascidiacea>, <echinodermata>, <mollusca> und <crustacea>) zugeordnet werden können.
<species>
siehe <invertebrata>
<date>
(siehe auch <certification>)
<issuedate> <date> <year>2003</year><month>3</month><day>2</day><dayofweek>7</dayofweek> <!-- Sonntag --> </date> </issuedate>
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
(siehe auch <equipment>)
<equipment> <knife id="scharfes_ding"> <name>Titanmesser</name> <manufacturer>Weichmacher</manufacturer> <model>Stumpf</model> <serialnumber>546372</serialnumber> <purchase> <date> <year>1968</year><month>4</month><day>16</day><dayofweek>2</dayofweek> </date> <price currency="DM">160.00</price> <shop> <name>Tauchterminal</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <!-- kein festes Serviceinterval --> </knife> </equipment>
Mit <latitude> wird der Breitengrad (als reelle Zahl) des Tauchplatzes geklammert. Ein positives Vorzeichen (oder keines) gibt eine östliche Breite, ein negatives Vorzeichen entsprechend einen westlichen Breitengrad an.
siehe <geography>
Innerhalb <lead> erfolgen die Angaben zu verwendetem Blei. Es können mehrere <lead>-Elemente hintereinander aufgeführt werden.
<manufacturer>, <model>, <name>, <nextservicedate> <notes>, <purchase>, <serialnumber>, <serviceinterval>
(siehe auch <equipment>)
<equipment> <lead id="mein_blei"> <name>Blei</name> <manufacturer>Bleihersteller</manufacturer> <purchase> <date> <year>1967</year><month>7</month><day>9</day><dayofweek>7</dayofweek> <!-- Sonntag --> </date> <price currency="DM">6.00</price> <shop> <name>Eigenbau</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <!-- kein Serviceinterval --> </lead> </equipment>
Mit <lens> wird ein an der Foto- oder Videokamera verwendetes Objektiv näher bezeichnet.
<camera>, <videocamera>
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
<camera>, <videocamera>
siehe <camera>
Mit <level> wird eine Brevetierung angegeben, z.B. Bronze, Silber, Gold oder OWD, AOWD, Divemaster etc.
Bezeichnet das Lebensstadium eines Tieres (oder einer Pflanze). Erlaubte Werte sind larva (Larvenstadium), juvenile (Jungtier) und adult (erwachsenes Tier).
<species>
<species>
Innerhalb <light> erfolgen die Angaben zu einer verwendeten Unterwasserleuchte. Es können mehrere <light>-Elemente hintereinander aufgeführt werden.
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
(siehe auch <equipment>)
<equipment> <light id="mein_uwlicht"> <name>Sonne unter Wasser</name> <manufacturer>Sonnenlicht</manufacturer> <model>Helles Licht</model> <serialnumber>345678</serialnumber> <purchase> <date> <year>1976</year><month>4</month><day>13</day><dayofweek>2</dayofweek> </date> <price currency="DM">100.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <serviceinterval>365</serviceinterval> <nextservicedate> <date> <year>2006</year><month>4</month><day>13</day> </date> </nextservicedate> </light> </equipment>
lux=gemessene Lichtintensität in Lux (reelle Zahl)
Gibt die gemessene Lichtintensität in Lux als reelle Zahl an — zur genaueren Spezifizierung.
Klammert die festgestellte Lichtintensität an einem Ausschnitt des Tauchplatzes (z.B. dem Standort eines sessilen Tieres). Erlaubte Werte sind hier: 0 — nicht ermittelt, 1 — Sonne, 2 — Halbschatten, 3 — Schatten, 4 — kein Licht vorhanden (z.B. in einer Höhle). Als Attribut kann <lightintensity> der genaue, gemessene Wert der Lichtintensität beigefügt werden.
<dive>, <globallightintensity>, <species>
(siehe auch <sitedata>)
<!-- sonniger Tauchplatz, keine Abschattungen vorhanden --> <lightintensity>1</lightintensity>
<!-- sonniger Tauchplatz, Lichtintensität zusätzlich bestimmt und angegeben --> <lightintensity lux="5000.0">1</lightintensity>
Mit <lingo> wird die Ausgabesprache vorgegeben. Die Codierung der Ausgabesprache erfolgt mittels des ISO 639-Codes bestehend aus zwei Buchstaben (siehe hierzu Code for the Representation of the Names of Languages. From ISO 639, revised 1989). Wird das Element nicht angegeben oder unterstützt das ausführende Programm die vorgegebene Sprache nicht, wird standardmäßig englischer Output erzeugt. ,,Gebräuchliche`` Sprachen und ihre Codierung sind z.B.:
Englisch - en Spanisch - es Deutsch - de Französisch - fr Italienisch - it Russisch - ru Portugiesisch - pt Schwedisch - sv
<lingo> darf nur genau einmal angegeben werden.
<output>
<fileformat>, <filename>, <headline>, <output>, <remark>
(siehe auch <output>)
<!-- Englisch --> <lingo>en</lingo>
<!-- Deutsch --> <lingo>de</lingo>
<!-- Spanisch --> <lingo>es</lingo>
<!-- Griechisch --> <lingo>el</lingo>
<!-- Quechua :-) --> <lingo>qu</lingo>
Mit <longitude> wird der Längengrad (als reelle Zahl) des Tauchplatzes geklammert. Ein positives Vorzeichen (oder keines) gibt eine nördliche Länge, ein negatives Vorzeichen entsprechend einen südlichen Längengrad an.
siehe <geography>
Die niedrigste Wassertemperatur während des Tauchgangs, falls bekannt. Ist diese unbekannt, entfällt das Feld <lowesttemperature>. Die Temperatur wird als reelle Zahl in Kelvin angegeben.
<dive>
<dive>
(siehe auch <dive>)
<!-- niedrigste Wassertemperatur 12 Grad Celsius --> <lowesttemperature>285.2</lowesttemperature>
<boots>, <buoyancycontroldevice>, <camera>, <compass>, <compressor>, <divecomputer>, <fins>, <gloves>, <knife>, <lead>, <light>, <mask>, <rebreather>, <regulator>, <scooter>, <suit>, <tank>, <variouspieces>, <videocamera>, <watch>
siehe z.B. <buoyancycontroldevice>
Innerhalb <mask> erfolgen die Angaben zu einer verwendeten Tauchmaske. Es können mehrere <mask>-Elemente hintereinander aufgeführt werden.
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
(siehe auch <equipment>)
<equipment> <mask id="meine_maske"> <name>Klare Sicht</name> <manufacturer>UW-Gucker</manufacturer> <model>Sieh-alles</model> <!-- keine Seriennummer erkennbar --> <purchase> <date> <year>1981</year><month>2</month><day>5</day><dayofweek>4</dayofweek> </date> <price currency="DM">20.00</price> <shop> <name>Tauchterminal</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <!-- kein Serviceintervall --> </mask> </equipment>
Mit <maximumascendingrate> wird die maximale Aufstiegsgeschwindigkeit in Meter pro Sekunde (nicht Meter pro Minute! — die Umrechnung bleibt dem ausführenden Programm vorbehalten) als reelle Zahl geklammert.
Das <maximumascendingrate>-Element steht innerhalb von <profile> (sofern es sich um die Berechnung eines Aufstiegsprofiles handelt) oder <table> (wenn es sich um die für die Austauchtabellenberechnung zugrunde gelegte maximale Aufstiegsgeschwindigkeit handelt).
Innerhalb <maximumdepth> wird die maximale Tiefe in Metern dieses Tauchplatzes geklammert (nicht die größte erreichte Tiefe während eines Tauchgangs — siehe <greatestdepth>!).
<sitedata>
<arealength>, <areawidth>, <greatestdepth>, <minimumdepth>, <sitedata>
(siehe auch <sitedata>)
<!-- maximale Tiefe (Grund) am Tauchplatz 42 m --> <maximumdepth>42.0<maximumdepth>
Gibt die maximale Einsatztiefe (Maximum Operation Depth — MOD) eines Atemgases an. Die Angabe erfolgt als reelle Zahl in Metern.
Steht innerhalb der <mix>-Sektion. Wenn <maximumoperationdepth> angegeben wird, darf <maximumpo2> nicht aufgeführt werden, da sich aus <maximumoperationdepth> zusammen mit der Atemgaszusammensetzung der maximale Sauerstoff-Partialdruck ergibt.
<mix>
<mix>, <maximumpo2>
(siehe auch <mix> bzw. <gasdefinitions>)
<-- 40.0 Meter maximale Einsatztiefe (MOD) --> <maximumoperationdepth>40.0</maximumoperationdepth>
Gibt den — mehr oder weniger willkürlich gewählten — Grenzwert des Sauerstoff-Partialdrucks an, ab dem der Sauerstoff-Gehalt dieses Atemgases giftig wird. Die Angabe erfolgt als reelle Zahl mit einer Nachkommastelle. Gebräuchliche Werte liegen zwischen 1.4 und 1.7.
Steht innerhalb der <mix>-Sektion. Wenn <maximumpo2> angegeben wird, darf <maximumoperationdepth> nicht ebenfalls aufgeführt werden, da sich über die Angabe von <maximumpo2> die MOD (Maximum Operation Depth — maximale Einsatztiefe) ergibt.
<mix>
<maximumoperationdepth>, <mix>
Gibt die maximal zu erwartende Sichtweite an diesem Tauchplatz in Metern als reelle Zahl an.
<sitedata>
(siehe auch <sitedata>)
<!-- maximal zu erwartende Sichtweite 10 Meter --> <maximumvisibility>10.0</maximumvisibility>
Innerhalb <medical> werden medizinische Daten gespeichert. Das <medical>-Element steht innerhalb von <owner> und <buddy>.
Mittels <meteringmethod> wird die bei einem bestimmten Foto verwendete Belichtungsmethode geklammert. Erlaubte Werte sind zur Zeit spot (Spotmessung), centerweighted (mittenbetonte Messung), matrix (Matrixmessung).
<date>, <exposurecompensation>, <filmspeed>, <focallength>, <focusingdistance>, <imagedata>, <shutterspeed>, <time>
(siehe auch <image>)
<!-- Spot-Belichtungsmessung --> <meteringmethod>spot</meteringmethod>
Innerhalb <minimumdepth> wird die minimale Tiefe in Metern dieses Tauchplatzes geklammert. Siehe auch <arealength>, <areawidth> und <maximumdepth>.
<sitedata>
<arealength>, <areawidth>, <maximumdepth>, <sitedata>
(siehe auch <sitedata>)
<!-- minimale Tiefe 22 m (da der höchste Punkt der Untiefe diese Tiefe aufweist) --> <minimumdepth>22.0<minimumdepth>
Gibt die minimal angetroffene Sichtweite an diesem Tauchplatz in Metern als reelle Zahl an.
<sitedata>
(siehe auch <sitedata>)
<!-- minimale Sichtweite 30 Zentimeter --> <minimumvisibility>0.3</minimumvisibility>
Die Minuten der Stunde. Die Angabe erfolgt als ganze Zahl (integer).
Während <hour> bei der Zeitangabe zwingend vorgeschrieben ist, kann <minute> gegebenenfalls auch entfallen.
<time>
siehe <time>
Die in <mix> eingeschlossenen Anweisungen definieren ein verwendetes Atemgas. Werden mehrere verschiedene Atemgase benutzt, so stehen mehrere <mix>-Sektionen hintereinander.
In nachfolgenden <tankdata>-Sektionen kann auf die hier angegebenen Atemgase referenziert werden.
Die das Atemgas eindeutig spezifizierenden Elemente sind die folgenden: <ar>, <equivalentairdepth>, <h2>, <he>, <n2>, <name>, <maximumoperationdepth>, <maximumpo2>, <o2>, <priceperlitre>
<gasdefinitions>, <tankdata>
(siehe auch <gasdefinitions>)
<mix id="air"> <name>air</name> <!-- Luft --> <o2>0.210</o2> <n2>0.790</n2> <he>0.000</he> <ar>0.000</ar> <h2>0.000</h2> <priceperlitre currency="EUR">0.50</priceperlitre> <!-- Über die Angabe der MOD kann der maximal erlaubte PO2 berechnet werden, --> <!-- deshalb braucht diese Anweisung hier nicht zusätzlich angegeben zu werden. --> <maximumoperationdepth>50.0</maximumoperationdepth> </mix>
Die in <mixchange> eingeschlossenen Anweisungen für den Abstieg (<descent>) und den Aufstieg (<ascent>) definieren die in den verschiedenen Tiefenbereichen zu verwendenden Atemgase.
<profile>
<inputprofile>, <profile>
(siehe auch <profile> und <inputprofile>)
<!-- (Atemgaswechsel beim) Abstieg --> <inputprofile> <waypoint> <depth>0.0</depth> <divetime>0.0</divetime> <switchmix>luft</switchmix> </waypoint> <waypoint> <depth>35.0</depth> <divetime>210.0</divetime> <switchmix>Trimix1</switchmix> </waypoint> <waypoint> <depth>50.0</depth> <divetime>300.0</divetime> <switchmix>Trimix2</switchmix> </waypoint> <waypoint> <depth>80.0</depth> <divetime>480.0</divetime> <switchmix>Heliox</switchmix> </waypoint> <waypoint> <!-- am Grund wird 10 Minuten verblieben, dann soll der Aufstieg erfolgen --> <depth>80.0</depth> <divetime>1080.0</divetime> </waypoint> </inputprofile> <!-- Atemgaswechsel beim nachfolgenden Aufstieg --> <!-- (da das Aufstiegsprofil ja erst berechnet wird, stehen jetzt keine --> <!-- <divetime>-Elemente innerhalb der <waypoint>-Anweisungen) --> <mixchange> <ascent> <waypoint> <depth>80.0</depth> <switchmix>Trimix2</switchmix> </waypoint> <waypoint> <depth>50.0</depth> <switchmix>Trimix1</switchmix> </waypoint> <waypoint> <depth>35.0</depth> <switchmix>Nitrox4060</switchmix> <depth switchmix="Nitrox4060">35.0</depth> </waypoint> <waypoint> <depth>15.0</depth> <switchmix>Nitrox2080</switchmix> </waypoint> <waypoint> <depth>5.0</depth> <switchmix>Sauerstoff</switchmix> </waypoint> </ascent> </mixchange>
Innerhalb von <model> steht der Modellname eines aufgeführten Tauchausrüstungsteiles. Steht innerhalb einer der unter <equipment> aufgeführten Ausrüstungsteil-Sektionen.
<boots>, <buoyancycontroldevice>, <camera>, <compass>, <compressor>, <divecomputer>, <fins>, <gloves>, <knife>, <lead>, <light>, <mask>, <rebreather>, <regulator>, <scooter>, <suit>, <tank>, <variouspieces>, <videocamera>, <watch>
siehe z.B. <buoyancycontroldevice>
Der Monat bei einer Datumsangabe. Die Angabe erfolgt als ganze Zahl (integer) zwischen 1 und 12.
<date>
siehe <date>
Gibt den Stickstoff-Anteil des Atemgases an. Die Angabe erfolgt als (Volumen-)Prozentangabe, wobei die Prozentangabe als reelle Zahl kleiner oder gleich 1.0 erfolgt.
<mix>
<mix>
(siehe auch <mix>)
<mix id="alfreds_nitrox"> <name>mein_nitrox</name> <!-- 37,5 % Sauerstoff-Gehalt --> <o2>0.375</o2> <!-- 62,5 % Stickstoff-Gehalt --> <n2>0.625</n2> <!-- keine weiteren Atemgasbestandteile --> <he>0.0</he> <ar>0.0</ar> <h2>0.0</h2> </mix>
Innerhalb <name> wird allgemein ein Name (z.B. eines Ausrüstungsteiles, eines Geschäftes oder eines Tauchplatzes) angegeben.
<accomodation>, <body>, <boots>, <buoyancycontroldevice>, <camera>, <cave>, <compass>, <compressor>, <divebase>, <divecomputer>, <fins>, <flash>, <generator>, <gloves>, <housing>, <knife>, <indoor>, <insurance>, <lead>, <lake>, <lens>, <light>, <mask>, <mix>, <operator>, <permit>, <rebreather>, <regulator>, <river>, <scooter>, <setdcdecomodelname>, <shop>, <shore>, <site>, <suit>, <tank>, <trip>, <variouspieces>, <vessel>, <videocamera>, <watch>, <wreck>
Innerhalb <nextservicedate> wird das Datum der nächsten Wartung des Ausrüstungsteiles angegeben.
<boots>, <buoyancycontroldevice>, <camera>, <compass>, <compressor>, <divecomputer>, <fins>, <gloves>, <knife>, <lead>, <light>, <mask>, <rebreather>, <regulator>, <scooter>, <suit>, <tank>, <variouspieces>, <videocamera>, <watch>
<date>
Innerhalb <notes> können zusätzliche Daten, wie z.B. Anmerkungen (Text), Verweise zu Fotos, Audio- und Video-Dateien angegeben werden.
Elemente innerhalb <notes> sind: <audio>, <video>, <image> und <text>. Die ersten drei Elemente können beliebig oft erscheinen. <text> hingegen darf maximal genau einmal aufgeführt werden. Soll Text formatiert werden, so muß innerhalb <text> mit <para> gearbeitet werden. Sollen die ebenfalls innerhalb dieser <notes>-Anweisung aufgeführten Bild-, Audio- und Video-Dateien in den Text formatiert werden, so muß das <text>-Element als letztes innerhalb <notes> erscheinen.
Für zukünftige UDDF-Versionen kann angedacht werden, ein <docbook>-Element innerhalb <text> einzufügen, um weitere Freiheiten in der Gestaltung von Texten zu erlangen.
<accomodation>, <body>, <boots>, <buddy>, <buoyancycontroldevice>, <camera>, <cave>, <compass>, <compressor>, <divebase>, <divecomputer>, <fins>, <flash>, <generator>, <gloves>, <housing>, <knife>, <indoor>, <insurance>, <lead>, <lake>, <lens>, <light>, <mask>, <mix>, <observations>, <operator>, <owner>, <permit>, <rebreather>, <regulator>, <river>, <scooter>, <shop>, <shore>, <site>, <suit>, <tank>, <trip>, <variouspieces>, <vessel>, <videocamera>, <watch>, <wreck>
(siehe auch die unter den Eltern-Elementen angegebenen Elemente)
<!-- Bei diesem ersten Beispiel bleibt es dem ausführenden Programm überlassen, --> <!-- in welcher Art und Weise es die innerhalb <notes> aufgeführten Informationen --> <!-- zur Anzeige bringt (Formatierung des Textes, Reihenfolge von Text und den --> <!-- weiteren Medien-Dateien etc.) --> <notes> <text> <para> Dies ist ein Text innerhalb des Text-Elementes. In dieser Form sind keine weitergehenden Formatierungen möglich. Text-Einträge werden vom ausführenden Programm formatiert. </para> </text> <!-- Hier kann kein weiterer Text mehr eingefügt werden! --> <image> <objectname>bild_1.jpg</objectname> <!-- bei diesem Bild keine weiteren Daten angegeben --> </image> <image height="3000" width="2000" format="jpg"> <!-- absoluter Pfad (Unix-Welt) --> <objectname>/home/kai/tauchen/bild_2.jpg</objectname> <imagedata> <date> <year>2007</year><month>1</month><day>6</day> </date> <time> <hour>10</hour><minute>17</minute> <time> <aperture>2.8</aperture> <!-- Blende 2.8 --> <!-- Belichtungskorrektur -1 Blendenstufe --> <exposurecompensation>-1.0</exposurecompensation> <filmspeed>400</filmspeed> <!-- Filmempfindlichkeit 400 ASA --> <shutterspeed>0.002</shutterspeed> <!-- 1/500 s Belichtungszeit --> <focallength>0.035</focallength> <!-- 35 mm Objektivbrennweite --> <focusingdistance>1.3</focusingdistance> <!-- Objektiv scharf gestellt auf 1,3 m Entfernung --> <meteringmethod>spot</meteringmethod> <!-- Spot-Belichtungsmessung --> </imagedata> </image> <!-- hier können weitere Bilder eingefügt werden --> <audio> <objectname>meine_tauchjubilaeumsrede.wav</objectname> </audio> <!-- hier können weitere Audiodateien eingefügt werden --> <video> <objectname>mein_1111_tauchgang.avi</objectname> </video> <!-- hier können weitere Videodateien eingefügt werden --> </notes>
<!-- In diesem zweiten Beispiel werden die (zwingenderweise!) vorher aufgeführten --> <!-- Bild-, Audio- und Videodateien in den nachfolgenden Text integriert. Der Text --> <!-- selbst ist in mehrere Abschnitte untergliedert. --> <notes> <image height="3000" width="2000" format="jpg" id="irgendein-bild"> <!-- absoluter Pfad (Unix-Welt) --> <objectname>/home/kai/tauchen/bild_2.jpg</objectname> <imagedata> <date> <year>2007</year><month>1</month><day>6</day> </date> <time> <hour>10</hour><minute>17</minute> <time> <aperture>2.8</aperture> <!-- Blende 2.8 --> <!-- Belichtungskorrektur -1 Blendenstufe --> <exposurecompensation>-1.0</exposurecompensation> <filmspeed>400</filmspeed> <!-- Filmempfindlichkeit 400 ASA --> <shutterspeed>0.002</shutterspeed> <!-- 1/500 s Belichtungszeit --> <focallength>0.035</focallength> <!-- 35 mm Objektivbrennweite --> <focusingdistance>1.3</focusingdistance> <!-- Objektiv scharf gestellt auf 1,3 m Entfernung --> <meteringmethod>spot</meteringmethod> <!-- Spot-Belichtungsmessung --> </imagedata> </image> <!-- hier können weitere Bilder eingefügt werden --> <audio id="audiodata_1"> <objectname>meine_tauchjubilaeumsrede.wav</objectname> </audio> <!-- hier können weitere Audiodateien eingefügt werden --> <video id="video_1"> <objectname>mein_1111_tauchgang.avi</objectname> </video> <!-- hier können weitere Videodateien eingefügt werden --> <!-- für formatierten Text ist folgende Form zu verwenden: --> <text> <para> Dies ist ein erster Abschnitt in einem Logbuch-Eintrag. </para> <!-- zwischen den ersten beiden Textabschnitten soll dieses Bild eingefügt werden... --> <imageref ref="irgendein-bild"/> <!-- ... und ebenso diese .wav-Datei --> <audioref ref="audiodata_1"/> <para> Das ist jetzt der zweite Abschnitt. Davor wird vom ausführenden Programm das Bild "bild_2.jpg" (mit der ID "irgendein-bild") sowie die Audiodatei "meine_tauchjubilaeumsrede.wav" (mit der ID "audiodata_1" eingesetzt. </para> <!-- Vor dem dritten Textabschnitt soll nun das Video eingefügt werden --> <videoref ref="video_1"/> <para> Dies ist ein dritter Abschnitt. Auf diese Art und Weise können in UDDF auch einfach formatierte Logbucheinträge realisiert werden! </para> </text> <!-- Hier kann kein weiterer Text mehr eingefügt werden! --> </notes>
Gibt den Sauerstoff-Anteil des Atemgases an. Die Angabe erfolgt als (Volumen-)Prozentangabe, wobei die Prozentangabe als reelle Zahl kleiner oder gleich 1.0 erfolgt.
<mix>
<ar> <equivalentairdepth> <h2> <he> <maximumoperationdepth> <maximumpo2> <mix>, <name>, <n2>, <priceperlitre>
(siehe auch <mix>)
<mix id="alfreds_nitrox"> <name>mein_nitrox</name> <!-- 37,5% Sauerstoff-Gehalt --> <o2>0.375</o2> <!-- 62,5% Stickstoff-Gehalt --> <n2>0.625</n2> <!-- keine weiteren Atemgasbestandteile --> <he>0.0</he> <ar>0.0</ar> <h2>0.0</h2> </mix>
Innerhalb <objectname> wird der Name einer Bilddatei, Audiodatei oder Videodatei geklammert. Es können sowohl relative als auch absolute Pfade angegeben werden. Die Pfade werden mit ,,/`` (Unix-Notation) als Trennzeichen zwischen Verzeichnissen angegeben.
(siehe auch <image>)
<!-- Angabe eines relativen Pfades --> <objectname>../abc/tauchen.jpg</objectname>
<!-- Angabe eines absoluten Pfades (Windows-Welt) --> <objectname>d:/abc/tauchen.jpg</objectname>
<!-- Angabe eines absoluten Pfades (Unix-Welt) - Beispiel 1 --> <objectname>~/abc/tauchen.jpg</objectname>
<!-- Angabe eines absoluten Pfades (Unix-Welt) - Beispiel 2 --> <objectname>/home/kai/abc/tauchen.jpg</objectname>
<!-- das Bild liegt im selben Verzeichnis wie die UDDF-Datei (absoluter Pfad) --> <objectname>tauchen.jpg</objectname>
Innerhalb <observations> können verschiedene während des Tauchgangs gemachte Beobachtungen aufgeführt werden.
<dive>
<dive>
(siehe auch <dive>)
<observations> <fauna> <!-- hier alle während dieses TGs beobachteten Tiere --> </fauna> <flora> <!-- hier alle während des TGs gesehenen Pflanzen --> </flora> <notes> <!-- hier zusätzliche Informationen (Textergänzungen, Bilder etc.) </notes> </observations>
<divetrip>
<divetrip>
(siehe auch <divetrip>)
<operator> <name>Sunrise Tours</name> <address> <!-- Adresse des Reiseveranstalters --> </address> <contact> <!-- EMail-Adresse, Homepage des Reiseveranstalters --> </contact> <rating>1</rating> <!-- unterste Stufe der Bewertungsskala :-) --> <notes> <text>Nie mehr wieder!!!</text> </notes> </operator>
Mit <organization> wird der Tauchverband angegeben, bei dem die entsprechende Brevetierung erfolgte.
Der Schalter <organizedtrip/> gibt an, daß es sich um eine organisierte Tauchfahrt (Pauschalreise o.ä.) handelt.
<divetrip>
<divetrip>
siehe <divetrip>
Innerhalb <output> werden Vorgaben zum Erstellen einer Ausgabedatei gemacht. Wenn die entsprechenden Kind-Elemente nicht angegeben sind, muß das ausführende Programm dafür sorgen, daß dafür Standardwerte gesetzt werden bzw. automatisch ein Dateiname generiert wird.
<lingo>, <fileformat>, <filename>, <headline>, <remark>
(siehe z.B. auch <calculatetable>)
<output> <!-- englisch als Ausgabesprache --> <lingo>en</lingo> <fileformat>TeX</fileformat> <!-- die Dateiendung (Extension) darf nicht angegeben werden, da sie --> <!-- durch das in der Zeile darüber spezifizierte Format festgelegt ist --> <filename>kais_tab1</filename> <headline>Kais Spezial-Austauchtabelle</headline> <remark> Die beste Austauchtabelle, die jemals gerechnet wurde!!! ;-) </remark> </output>
<!-- Da das Format nicht vorgegeben wird, wird standardmäßig ASCII-Output erzeugt, --> <!-- die Dateiendung ist damit auf ".txt" festgelegt und darf unter <filename> --> <!-- nicht zusätzlich angegeben werden! --> <output> <!-- deutsch als Ausgabesprache --> <lingo>de</lingo> <filename>alfons_dekotabelle</filename> <headline>Alfons tolle Dekotabelle</headline> </output>
<!-- nur die Sprache (italienisch) wird vorgegeben; die Ausgabe erfolgt im --> <!-- ASCII-Format, der Dateiname wird vom erzeugenden Programm automatisch --> <!-- gesetzt (mit der Endung ".txt" --> <output> <lingo>it</lingo> </output>
Innerhalb des <owner>-Elementes werden sämtliche Daten des Besitzers angegeben. Es darf nur ein (1) <owner>-Element innerhalb der <diver>-Sektion stehen. <owner> muß das erste Element innerhalb <diver> sein.
Das Attribut dient dazu, beim Datenimport aus einer UDDF-Datei in eine andere den Besitzer der importierten Datei nun als Tauchpartner eindeutig zuweisen zu können.
<diver>
<address>, <contact>, <diveinsurances> <divepermissions>, <education>, <equipment>, <medical>, <notes>, <personal>
(siehe auch <buddy>)
<uddf version="2.2.0"> <generator> <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes --> </generator> <diver> <owner id="robertpeterroth"> <personal> <firstname>Robert</firstname> <middlename>Peter</middlename> <lastname>Roth</lastname> <title>Dr.</title> <sex>m</sex> <birthdate> <year>1954</year> <month>7</month> <day>22</month> <dayofweek>4</dayofweek> </birthdate> </personal> <address> <street>Einsteinstr. 123</street> <city>Heisenbergdorf</city> <postcode>54345</postcode> <country>Deutschland</country> </address> <contact> <language>deutsch</language> <phone>0123/456789</phone> <mobilephone>0321/987654</mobilephone> <fax>0123/456780</fax> <email>robert-dieter.roth@robert-dieter-roth.org</email> <homepage>http://www.robert-dieter-roth.org</homepage> </contact> <equipment> <!-- Auflistung der Ausrüstungsteile des Besitzers der UDDF-Datei --> <!-- Atemregler --> <regulator id="roberts_bestes_stück"> <name>Black Shark</name> <manufacturer>Neptun</manufacturer> <model>Black Shark 5</model> <serialnumber>111111</serialnumber> <purchase> <date> <year>1967</year <month>10</month> <day>13</day> <dayofweek>5</dayofweek> <!-- Freitag :-) --> </date> <price currency="DM">230.00</price> <shop> <name>Tauchbedarf Müller</name> <address> <street>Heinzstr. 46</street> <city>Udorf</city> <postcode>87678</postcode> <country>Deutschland</country> </address> <contact> <language>deutsch</language> <phone>0345/123123</phone> </contact> </shop> </purchase> <nextservicedate> <!-- Datum der nächsten fälligen TÜV-Abnahme --> </nextservicedate> </regulator> <!-- Taucheruhr --> <watch id="roberts_taucheruhr"> <name>Tigerhai-Taucheruhr</name> <manufacturer>Neptun</manufacturer> <model>Tigerhai</model> <serialnumber>007</serialnumber> <purchase> <date> <year>1969</year <month>9</month> <day>13</day> <dayofweek>6</dayofweek> <!-- Samstag --> </date> <price currency="DM">180.00</price> <shop> <notes> <text> Meine erste Taucheruhr, hart zusammengespart! Leider weiß ich nicht mehr, wo ich sie damals gekauft habe! </text> </notes> </shop> </watch> <!-- Jacket --> <buoyancycontroldevice id="roberts_jacket"> <name>TiefUnten</name> <manufacturer>BestBCD</manufacturer> <model>Tauchkönig</model> <serialnumber>23456</serialnumber> <purchase> <date> <year>1988</year <month>5</month> <day>13</day> <dayofweek>5</dayofweek> <!-- ;-) --> </date> <price currency="DM">500.00</price> <shop> <name>Tauch Hier</name> <address> <street>Emmastr. 3</street> <city>Odorf</city> <postcode>98789</postcode> <country>Deutschland</country> </address> <contact> <language>deutsch</language> <phone>0234/234543</phone> <fax>0234/234544</fax> <email>info@tauch-hier.com</email> <homepage>http://www.tauch-hier.com</homepage> </contact> </shop> </purchase> <nextservicedate> <!-- Datum der nächsten fälligen TÜV-Abnahme --> </nextservicedate> </buoyancycontroldevice> <!-- Druckluftflasche --> <tank id="flasche_1"> <name>Lieblingspulle</name> <manufacturer>Superflaschen-Hersteller</manufacturer> <model>Hart wie Stahl</model> <serialnumber>12345</serialnumber> <purchase> <date> <!-- Datum des Kaufs der Preßluftflasche --> </date> <price currency="DM">250.00</price> <shop> <!-- Angaben zum Geschäft, in dem die Flasche erworben wurde --> </shop> </purchase> <nextservicedate> <!-- Datum der nächsten fälligen TÜV-Abnahme --> </nextservicedate> <tankmaterial>steel</tankmaterial> <!-- Stahlflasche --> <notes> <image> <objectname>stahlpulle_neu.jpg</objectname> <imagedata> <!-- Datum der Aufnahme --> <date> <year>2001</year><month>5</month><day>2</day> </date> </imagedata> </image> <image> <objectname>stahlpulle_nach_2_jahren.jpg</objectname> <imagedata> <!-- Datum der Aufnahme --> <date> <year>2003</year><month>7</month><day>6</day> </date> </imagedata> </image> </notes> </tank> <!-- Hier können weitere Beschreibungen von Ausrüstungsteilen eingefügt werden. --> <!-- Es können selbstverständlich auch mehrere gleiche Teile beschrieben werden, --> <!-- zum Beispiel mehrere Atemregler, Flossen usw. --> </equipment> <medical> <examination> <date> <year>2003</year <month>4</month> <day>12</day> <dayofweek>6</dayofweek> <!-- Samstag --> </date> <doctor id="doctorDusel"> <personal> <firstname>Dirk</firstname> <lastname>Dusel</lastname> <title>Dr.</title> <sex>m</sex> <birthdate> <!-- falls Geburtsdaten bekannt, können sie hier angegeben werden --> </birthdate </personal> <address> <street>Duddelstr. 34</street> <city>Dortmund</city> <postcode>54321</postcode> <country>Deutschland</country> </address> <contact> <language>deutsch</language> <phone>01234/987654</phone> <!-- kein Handy, weder EMail-Adresse noch Homepage bekannt --> </contact> </doctor> <examinationresult>passed</examinationresult> <notes> <text> Plattfüße scheinen die Tauchtauglichkeit nicht zu beeinflussen :-) </text> <image> <objectname>plattfuss.jpg</objectname> </image> </notes> </examination> <examination> <date> <year>2004</year <month>4</month> <day>20</day> <dayofweek>2</dayofweek> <!-- Dienstag --> </date> <!-- nachfolgend eine Referenzierung auf den untersuchenden Arzt, --> <!-- da die Angaben zur Person bereits oben erfolgten --> <doctorref ref="doctorDusel"/> <examinationresult>passed</examinationresult> </examination> </medical> <education> <!-- alle Stufen der Tauchausbildung -> mehrere --> <!-- <certification>-Elemente hintereinander --> <certification> <level>Bronze</level> <organisation>VDST/CMAS</organisation> <!-- da der damalige Tauchlehrer nicht in einer UDDF-Datei --> <!-- eingetragen wurde, entfällt auch die Referenz darauf --> <!-- mittels <instructorref ref="..."/> --> <issuedate> <year>1994</year <month>3</month> <day>15</day> <dayofweek>2</dayofweek> <!-- Dienstag --> </issuedate> </certification> <certification> <level>Silber</level> <organisation>VDST/CMAS</organisation> <!-- da der damalige Tauchlehrer nicht in einer UDDF-Datei --> <!-- eingetragen wurde, entfällt auch die Referenz darauf --> <!-- mittels <instructorref ref="..."/> --> <issuedate> <year>1997</year <month>11</month> <day>26</day> <dayofweek>3</dayofweek> <!-- Mittwoch --> </issuedate> </certification> <certification> <level>Gold</level> <organisation>VDST/CMAS</organisation> <!-- da der damalige Tauchlehrer nicht in einer UDDF-Datei --> <!-- eingetragen wurde, entfällt auch die Referenz darauf --> <!-- mittels <instructorref ref="..."/> --> <issuedate> <year>2000</year <month>5</month> <day>10</day> <dayofweek>3</dayofweek> <!-- Mittwoch --> </issuedate> </certification> </education> <divepermissions> <!-- hier können beliebig viele Genehmigungen aufgelistet werden --> <permit> <name>DiveCard</name> <region>Österreich</region> <issuedate> <!-- Ausstellungsdatum --> <year>2004</year <month>8</month> <day>24</day> <dayofweek>2</dayofweek> <!-- Dienstag --> </issuedate> <validdate> <!-- Gültigkeitsdatum --> <year>2005</year <month>8</month> <day>23</day> <dayofweek>2</dayofweek> <!-- Dienstag --> </validdate> </permit> <permit> <name>Zeeland</name> <region>Zeeland (Niederlande)</region> <issuedate> <!-- Ausstellungsdatum --> <year>1996</year <month>9</month> <day>3</day> <dayofweek>2</dayofweek> <!-- Dienstag --> </issuedate> <validdate> <!-- Gültigkeitsdatum --> <year>2001</year <month>8</month> <day>31</day> <dayofweek>5</dayofweek> <!-- Freitag --> </validdate> </permit> <!-- hier gegebenenfalls weitere Genehmigungen --> </divepermissions> <diveinsurances> <insurance> <name>Tauchen-Total</name> <issuedate> <year>2004</year <month>2</month> <day>30</day> </issuedate> <validdate> <year>2005</year <month>2</month> <day>29</day> </validdate> </insurance> </diveinsurances> <notes> <image> <objectname>meine_ausruestung_und_ich_1978.jpg</objectname> <!-- Bilddaten unbekannt, <imagedata> entfällt deswegen --> </image> <image> <objectname>mein_erster_tauchcomputer_1992.jpg</objectname> <!-- Bilddaten unbekannt, <imagedata> entfällt deswegen --> </image> <image> <objectname>gruppenfoto_1111ster_tg.jpg</objectname> <!-- Bilddaten unbekannt, <imagedata> entfällt deswegen --> </image> <audio> <objectname>ansprache_888ster_tg.wav</objectname> </audio> <video> <objectname>feier_1000ster_tg.avi</objectname> </video> </notes> </owner> <buddy id="buddy_1"> <!-- Beschreibung des ersten aufgeführten Tauchpartners --> </buddy> <buddy id="buddy_2"> <!-- Beschreibung des zweiten aufgeführten Tauchpartners --> </buddy> <!-- hier können weitere Tauchpartner aufgeführt werden --> </diver> <!-- hier weitere Sektionen --> </uddf>
Mit <para> wird ein Text-Abschnitt innerhalb <text> geklammert. Mit Version 2.2.0 muß jeder Text mittels <para> geklammert werden — auch wenn nur ein einziger Abschnitt angegeben wird.
<text>
<text>
(siehe auch <notes>)
<notes> <image id="foto_1"> <!-- hier Daten des Bildes --> </image> <text> <para> Dies ist ein erster Abschnitt. </para> <para> Das ist der zweite Abschnitt. </para> <imageref ref="foto_1"/> <para> Und dies ist nun der dritte Abschnitt. Davor wird per <imageref>-Anweisung ein Foto in den Text eingesetzt. </para> </text> </notes>
Das Oberflächenintervall zwischen zwei aufeinander folgenden Tauchgängen.
Ist der auf einen Tauchgang folgende Tauchgang ein ,,Wiederholungs-Tauchgang`` (Gewebe noch nicht vollständig entsättigt), so wird das Oberflächenintervall in Sekunden als reelle Zahl von <passedtime> geklammert. Sind die Gewebe bei dem nachfolgenden Tauchgang dagegen vollständig entsättigt, so muß anstatt <passedtime> <infinity/> verwendet werden.
<infinity/>, <surfaceinterval>
(siehe auch <surfaceinterval>)
<!-- Oberflächenintervall 36 Minuten --> <passedtime>2160.0</passedtime>
Mit <period> wird die Dauer in Sekunden (angegeben als reelle Zahl) des vom Tauchcomputer zu einem bestimmten Ereignis zu gebenden Alarms festgelegt. Das Alarmsignal — mittels <alarmtype> vorgegeben — braucht hierbei nicht quittiert zu werden.
Hinweis: Ein Alarm, der quittiert werden soll, muß mittels des <acknowledge/>-Schalters gekennzeichnet werden.
Wird weder <acknowledge/> noch <period> angegeben, erzeugt der Tauchcomputer das Alarmsignal eine bestimmte Zeit lang; eine Quittierung ist dann nicht nötig.
<dcalarm>
<dcalarm>
Innerhalb <permit> werden Daten bzgl. einer bestimmten Taucherlaubnis angegeben.
Das <permit>-Element steht innerhalb von <divepermissions> und kann dort beliebig oft wiederholt werden.
(siehe auch <owner> und <buddy>)
<permit> <name>DiveCard</name> <region>Österreich</region> <issuedate> <!-- Ausstellungsdatum --> <date> <year>2004</year <month>8</month> <day>24</day> <dayofweek>6</dayofweek> </date> </issuedate> <validdate> <!-- Gültigkeitsdatum --> <date> <year>2005</year <month>8</month> <day>23</day> <dayofweek>2</dayofweek> </date> </validdate> </permit>
Innerhalb <personal> können Name(n), etwaige Titel sowie Geschlecht und Geburtsdatum der zu beschreibenden Person angegeben werden.
<buddy>, <instructor>, <owner>
<buddy>, <instructor>, <owner>
(siehe auch <owner> und <buddy>)
<personal> <firstname>Arno</firstname> <middlename>Albert</middlename> <lastname>Alzheimer</lastname> <title>Dr.</title> <sex>male</sex> <birthdate> <date> <year>1919</year> <month>2</month> <day>30</day> </date> </birthdate> <passport>123456789</passport> </personal>
Innerhalb <phaeophyceae> werden alle gesichteten bzw. gesammelten und später bestimmten Braunalgen aufgelistet.
<flora>
<species>
<flora>
siehe <flora>
Innerhalb <porifera> werden alle gesichteten bzw. gesammelten und später bestimmten Schwämme aufgelistet.
<fauna>
<species>
<fauna>
siehe <fauna>
Mit <price> wird der Preis (angegeben als reelle Zahl) in der als Attribut übergebenen Währung eines Ausrüstungsteiles geklammert.
<purchase>
<purchase>
currency=eindeutiger Bezeichner einer Währung (sollte drei Buchstaben lang sein)
noofdives=Anzahl der Tauchgänge, für die dieser (Sonder-?)Preis gilt
Mit <pricedivepackage> wird der Preis als reelle Zahl für ein Tauchpaket bei einer Tauchbasis geklammert. Als Attribute werden die Währung sowie die Anzahl Tauchgänge, die dieses Tauchpaket beinhaltet, angegeben.
<divebase>
<divebase>
(siehe auch <divebase>)
<!-- Na, ob 500 Euro als Sonderpreis für 10 TGs zu bezeichnen ist??? :-) --> <pricedivepackage currency="EUR" noofdives="10">500.0</pricedivepackage>
Mit <priceperdive> wird der Preis als reelle Zahl für einen (1) Tauchgang bei einer Tauchbasis geklammert.
<divebase>
<divebase>
(siehe auch <divebase>)
<!-- ein "stolzer" Preis von 50 Euro für einen Tauchgang :-) --> <priceperdive currency="EUR">50.0</priceperdive>
Mit <priceperlitre> wird der Preis als reelle Zahl für einen (1) Liter eines Atemgases geklammert.
<mix>
<mix>
Innerhalb der <profile>-Sektion werden die Parameter zur Erzeugung eines bestimmten Aufstiegsprofiles geklammert.
<profile> steht als einziges Element innerhalb <calculateprofile> und kann dort beliebig oft wiederholt werden.
<decomodel>, <deepstoptime>, <density>, <diveref/>, <inputprofile>, <maximumascendingrate>, <mixchange>, <output>, <program>, <repetitiongroupref/>, <surfaceinterval>
(siehe auch <tablegeneration>)
<calculateprofile> <profile id="beispiel_profil"> <surfaceinterval> <!-- 1. TG - kein Wiederholungs-Tauchgang --> <infinity/> </surfaceinterval> <!-- Süßwasser --> <density>1000.0</density> <!-- max. Aufstiegsgeschwindigkeit 5 m/min --> <maximumascendingrate>0.08333333333</maximumascendingrate> <output> <lingo>en</lingo> <fileformat>pdf</fileformat> <filename>RonsProfile</filename> <headline>Ron's 100 m Trimix Deep Dive</headline> <remark> This is an ascent profile especially generated for Ron's 100 m Trimix Dive on Sunday. </remark> </output> <mixchange> <!-- Bitte beachten: Sämtliche Atemgase müssen innerhalb der <gasdefinitions>-Sektion --> <!-- deklariert worden sein - ansonsten muß der UDDF-Parser eine Fehlermeldung ausgeben! --> <!-- Atemgaswechsel beim Abstieg --> <descent> <waypoint> <!-- Beginn des TGs mit Nitrox NOAA I (32 % O2, 68 % N2) --> <depth>0.0</depth> <switchmix>noaa1</switchmix> </waypoint> <waypoint> <!-- auf 35 m Tiefe Wechsel auf das Trimix-Gemisch --> <depth>35.0</depth> <switchmix>trimix</switchmix> </waypoint> <waypoint> <!-- auf 80 m Tiefe Wechsel auf Heliox --> <depth>80.0</depth> <switchmix>heliox</switchmix> </waypoint> </descent> <!-- Atemgaswechsel beim nachfolgenden Aufstieg --> <ascent> <waypoint> <depth>85.0</depth> <switchmix>trimix</switchmix> <(waypoint> <waypoint> <depth>40.0</depth> <switchmix>noaa1</switchmix> </waypoint> <waypoint> <depth>5.0</depth> <switchmix>oxygen</switchmix> </waypoint> </ascent> </mixchange> <!-- Vorgabe des Abstiegs-Profiles, auf dessen Grundlage das Aufstiegsprofil berechnet werden soll --> <inputprofile> <waypoint> <!-- jeder Tauchgang beginnt bei 0 min an der Oberfläche! :-) --> <depth>0.0</depth> <divetime>0.0</divetime> </waypoint> <waypoint> <!-- einfaches Profil: --> <!-- Abstieg innerhalb von 5 min auf 100 m --> <depth>100.0</depth> <divetime>300.0</divetime> </waypoint> <waypoint> <!-- auf der Tiefe soll 10 min verblieben werden --> <depth>100.0</depth> <divetime>900.0</divetime> </waypoint> <!-- jetzt beginnt der Aufstieg, für den die Software das Profil berechnet --> </inputprofile> </profile> </calculateprofile>
Innerhalb der <profiledata>-Sektion werden die Beschreibung der Profildaten der einzelnen Tauchgänge sowie aller anderen speziellen, zu den einzelnen Tauchgängen gehörenden Informationen (Logbucheinträge, verwendete Ausrüstungsteile, Atemgase, Flaschendruck zu Beginn und Ende des Tauchgangs bzw. Atemminutenvolumen und weiteres mehr) angegeben.
Die <profiledata>-Sektion steht nach <gasdefinitions> und vor <tablegeneration>.
Einziges Element innerhalb <profiledata> ist <repetitiongroup>, welches beliebig oft wiederholt werden kann.
<uddf>
<uddf>
(siehe auch <repetitiongroup>)
<uddf version="2.2.0"> <!-- hier andere Sektionen --> <gasdefinitions> <!-- hier Definition der bei den nachfolgend aufgeführten Tauchgängen verwendeten Atemgase --> </gasdefinitions> <profiledata> <repetitiongroup> <!-- der erste Tauchgang innerhalb einer <repetitiongroup>-Sektion sollte ein --> <!-- unendliches Oberflächenintervall aufweisen --> <dive id="tg1_2002"> <surfaceinterval> <infinity/> </surfaceinterval> <!-- weitere TG-Daten --> </dive> <!-- alle nachfolgenden Tauchgänge einer <repetitiongroup> weisen jeweils ein endliches Oberflächenintervall auf --> <dive id="tg2_2002"> <surfaceinterval> <passedtime>17580.0</passedtime> </surfaceinterval> <!-- weitere TG-Daten --> </dive> <dive id="tg3_2002"> <!-- Ort, Datum, Uhrzeit, Atemgas, eigentliche Profildaten --> </dive> <!-- hier können weitere Tauchgänge stehen --> </repetitiongroup> <repetitiongroup> <!-- der erste Tauchgang innerhalb einer <repetitiongroup>-Sektion sollte ein --> <!-- unendliches Oberflächenintervall aufweisen --> <dive id="tg1_2003"> <surfaceinterval> <infinity/> </surfaceinterval> <!-- weitere TG-Daten --> </dive> <!-- hier können weitere Tauchgänge (jeweils mit endlichem Oberflächenintervall) stehen --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Sektionen aufgeführt werden --> </profiledata> <tablegeneration> <!-- hier weitere Definitionen zur Tabellenberechnung (z.B. auf Grundlage --> <!-- der unter <profiledata> gegebenen Tauchprofildaten) --> </tablegeneration> </uddf>
Klammerung von zusätzlichen, Programm-spezifischen Informationen, die zur Auswertung der Gewebesättigung notwendig sind bzw. Programm-interne Parameter zur grafischen Darstellung der Daten.
Ein UDDF-Parser wertet die Daten zwischen <program> und </program> nicht aus, sondern gibt sie ohne jede weitere Bearbeitung an das rufende Programm weiter. Damit wird es Programmen ermöglicht, spezifische Meta-Informationen abzulegen, die UDDF nicht bekannt sind. Die einzige Konvention ist, daß jedes Programm seine Meta-Informationen mit <program> </program> klammert.
Anmerkung für Programmierer: bitte dokumentiert, in welcher Form ihr eure Daten zur Gewebesättigung oder andere wichtige Parameter kodiert, damit sie von anderen Programmen korrekt gelesen und weiterverarbeitet werden können! Bitte schickt die Informationen an Kai Schröder <kai_schroeder at gmx.net>, damit sie in die Dokumentation einfließen können.
Zur Zeit werden folgende Elemente verwendet (es werden hoffentlich bald deutlich mehr werden! :-) ): <tausim>
<dive>
<setdcdecomodel>, <tausim>
<dive>
siehe <tausim>
Mit <province> wird die Bezeichnung der Provinz oder eines Bundeslandes usw. geklammert.
(siehe auch <geography>)
<!-- der Tauchplatz liegt im Bundesland Bayern --> <province>Bayern</province>
Innerhalb <purchase> erfolgen die Angaben zum Kauf eines verwendeten Ausrüstungsteiles.
<boots>, <buoyancycontroldevice>, <camera>, <compass>, <compressor>, <divecomputer>, <fins>, <gloves>, <knife>, <lead>, <light>, <mask>, <rebreather>, <regulator>, <scooter>, <suit>, <tank>, <variouspieces>, <videocamera>, <watch>
(siehe auch <equipment>)
<purchase> <date> <year>2002</year><month>5</month><day>4</day><dayofweek>6</dayofweek> </date> <price currency="EUR">16.95</price> <shop> <name>Wassersport-Freizeit Mader</name> <address> <street>Kornstr. 24</street> <city>Unna</city> <postcode>59625</postcode> <country>Deutschland</country> </address> <contact> <language>deutsch</language> <phone>02303/16514</phone> <email>tauchsport-zentrale.mader@t-online.de</email> <homepage>http://www.wassersport-freizeit-mader.de</homepage> </contact> </shop> </purchase>
Mit <rating> wird eine (mehr oder weniger) persönliche Bewertung der Qualität des Tauchplatzes geklammert — dies betrifft die allgemein hier vorzufindenden Bedingungen, nicht die bei einem speziellen Tauchgang an diesem Ort vorgefundenen. Die Bewertungsskala geht von ,,1'' (niedrigste Qualitätsstufe) bis ,,10'' (höchste Qualität).
<sitedata>
<sitedata>
Innerhalb <rebreather> erfolgen die Angaben zu einem verwendeten Kreislaufgerät. Es können mehrere <rebreather>-Elemente hintereinander aufgeführt werden.
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
(siehe auch <equipment>)
<equipment> <rebreather id="kreisel"> <name>Kreisel II</name> <manufacturer>Witwenmacher</manufacturer> <model>II</model> <serialnumber>002</serialnumber> <purchase> <date> <year>2004</year><month>11</month><day>13</day><dayofweek>6</dayofweek> <!-- Samstag --> </date> <price currency="EUR">3000.00</price> <shop> <name>will nicht genannt werden</name> </shop> </purchase> <serviceinterval>31</serviceinterval> </rebreather> </equipment>
Mittels <rebreatherref ref="bezeichner_des_zu_referenzierenden_kreislaufgerätes"/> wird auf die unter diesem Bezeichner gespeicherten Kreislaufgerätdaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <rebreather id="mein_ccr"> <!-- Beschreibung des Kreislaufgerätes --> </rebreather> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Kreislaufgerät: --> <rebreatherref ref="mein_ccr"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
Innerhalb <regulator> erfolgen die Angaben zu einem verwendeten Atemregler. Es können mehrere <regulator>-Elemente hintereinander aufgeführt werden.
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
<equipment>-Sektion.
(siehe auch <equipment>)
<equipment> <regulator id="mein_bester_atemregler"> <name>Luftgeber</name> <manufacturer>Schlurchi</manufacturer> <model>Saug viel - Gib wenig</model> <serialnumber>345678</serialnumber> <purchase> <date> <year>1988</year><month>7</month><day>28</day><dayofweek>4</dayofweek> <!-- Donnerstag --> </date> <price currency="DM">400.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <serviceinterval>365</serviceinterval> <nextservicedate> <date> <year>2006</year><month>7</month><day>31</day> </date> </nextservicedate> </regulator> </equipment>
Mittels <regulatorref ref="bezeichner_des_zu_referenzierenden_atemreglers"/> wird auf die unter diesem Bezeichner gespeicherten Atemreglerdaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <regulator id="mein_atemregler"> <!-- Beschreibung des Atemreglers --> </regulator> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Atemregler: --> <regulatorref ref="mein_atemregler"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
<trip>
(siehe auch <trip>)
<relateddives> <!-- sechs TGs in diesem Kontext --> <diveref ref="dive_45"/> <diveref ref="dive_46"/> <diveref ref="dive_47"/> <diveref ref="dive_48"/> <diveref ref="dive_49"/> <diveref ref="dive_50"/> </relateddives>
<relateddives> <!-- Referenzierung auf alle Tauchgänge, die innerhalb <repetitiongroup id="wg4"> gespeichert sind --> <repetitiongroupref ref="wg4"/> </relateddives>
Innerhalb <remark> kann eine Beschreibung bzw. ein Kommentar für ein/e zu erzeugende/s Aufstiegsprofil bzw. eine Austauch- oder ,,Maximale Grundzeit''-Tabelle gegeben werden.
<output>
<output>
(siehe auch <output>)
<remark> Maximale Grundzeit in Minuten bei verschiedenen Flaschenvolumina, Tauchtiefen und Atemminutenvolumina (AMV) unter Berücksichtigung von notwendigen Dekompressionsstopps. ... </remark>
Mit <repetitiongroup> werden ,,zusammengehörige Tauchgänge`` geklammert. Mit ,,zusammengehörig`` sind hier Tauchgänge gemeint, die ein endliches Oberflächenintervall aufweisen (außer dem ersten Tauchgang) und z.B. alle während eines Urlaubes durchgeführt wurden. Die einzelnen Tauchgänge innerhalb <repetitiongroup> werden mit dem Element <dive> voneinander getrennt.
In einer UDDF-Datei können mehrere <repetitiongroup>-Sektionen hintereinander stehen. Innerhalb einer <repetitiongroup>-Sektion muß mindestens ein (1) Tauchgangs-Profil enthalten sein. Der erste in einer <repetitiongroup> abgelegte Tauchgang sollte ein ,,unendliches`` Oberflächenintervall aufweisen, das heißt, die Gewebe sollten bezüglich Umgebungsdruck gesättigt sein.
Das Attribut ermöglicht es, nicht nur einzelne Tauchgänge zu referenzieren, sondern komplett alle ,,zusammengehörigen`` Tauchgänge z.B. eines Tauchurlaubes.
<dive>
<diveref/>, <profiledata>, <relateddives>, <repetitiongroupref/>, <surfaceinterval>
(siehe auch <profiledata>)
<profiledata> <!-- hier nachfolgend alle Tauchgänge jeweils mittels <repetitiongroup> --> <!-- zu Gruppen zusammengefaßt --> <repetitiongroup id="wg1"> <dive id="tg1"> <!-- hier Anweisungen zum ersten Tauchgang --> <!-- (sollte ein ,,unendliches`` Oberflächenintervall aufweisen) --> <surfaceinterval> <infinity/> </surfaceinterval> </dive> <dive id="tg2"> <!-- hier Anweisungen zum zweiten Tauchgang --> <!-- (sollte ein endliches Oberflächenintervall aufweisen) --> </dive> <dive id="tg3"> <!-- hier Anweisungen zu einem dritten Tauchgang --> <!-- (sollte ein endliches Oberflächenintervall aufweisen) --> </dive> </repetitiongroup> <!-- zwischen dem letzten Tauchgang der vorigen <repetitiongroup> --> <!-- und dem ersten Tauchgang der folgenden <repetitiongroup> --> <!-- liegt eine so große Zeitspanne, daß die Gewebe bzgl. des --> <!-- Umgebungsdruckes vollständig gesättigt sind --> <repetitiongroup id="wg2"> <dive id="tg4"> <!-- hier Anweisungen zum ersten Tauchgang dieser <repetitiongroup> --> <!-- (sollte ein ,,unendliches`` Oberflächenintervall aufweisen) --> <surfaceinterval> <infinity/> </surfaceinterval> </dive> <!-- hier Anweisungen zu weiteren Tauchgängen --> </repetitiongroup> </profiledata>
Innerhalb <rhodophyceae> werden alle gesichteten bzw. gesammelten und später bestimmten Rotalgen aufgelistet.
<flora>
<species>
<flora>
siehe <flora>
Innerhalb von <samples> erfolgen die Angaben zu den eigentlichen Profildaten. Ebenso werden hier das verwendete Atemgas bzw. eventuelle Wechsel des Atemgases angegeben.
Die Angabe eines <switchmix>-Elementes in der ersten <waypoint>-Anweisung innerhalb <samples> ist zwingend.
<dive>
<waypoint>
<dive> <!-- vorherige Anweisungen --> ... <samples> <waypoint> <!-- Bei Tauchgangsbeginn Atemgas ,,1`` (in der --> <!-- <gasdefinitions>-Sektion definiert) verwenden. --> <!-- Ein Tauchgang beginnt immer bei 0 Sekunden --> <!-- und 0 Meter Tiefe! --> <depth>0.0</depth> <divetime>0.0</divetime> <switchmix>1</switchmix> <temperature>298.2</temperature> </waypoint> <waypoint> <depth>40.0</depth> <divetime>300.0</divetime> <temperature>291.2</temperature> </waypoint> <waypoint> <depth>40.0</depth> <divetime>900.0</divetime> </waypoint> <waypoint> <depth>28.0</depth> <divetime>1080.0</divetime> <temperature>295.2</temperature> </waypoint> <waypoint> <depth>15.0</depth> <divetime>1500.0</divetime> <temperature>297.2</temperature> </waypoint> <waypoint> <depth>6.0</depth> <divetime>1860.0</divetime> <temperature>298.2</temperature> </waypoint> <waypoint> <depth>3.0</depth> <divetime>2040.0</divetime> <!-- Wechsel zu Atemgas ,,2`` --> <switchmix>2</switchmix> </waypoint> <waypoint> <depth>3.0</depth> <divetime>2280.0</divetime> </waypoint> <waypoint> <!-- Ein Tauchgang endet immer an der Oberfläche --> <!-- bei 0 Meter Tiefe! --> <depth>0.0</depth> <divetime>2580.0</divetime> </waypoint> </samples> </dive> <!-- hier können weitere Daten zu Tauchgängen folgen -->
<dive> <!-- vorherige Anweisungen --> ... <!-- Tauchcomputer zeichnen mit konstantem Zeitintervall --> <!-- die Tiefen auf, deshalb müssen entsprechend viele --> <!-- <waypoint>-Anweisungen in die UDDF-Datei geschrieben werden --> <samples> <!-- die Tiefen wurden in Intervallen von 20 Sekunden aufgezeichnet --> <waypoint> <!-- Bei Tauchgangsbeginn Luft als Atemgas verwenden --> <!-- (in <gasdefinitions>-Sektion definiert) --> <!-- Ein Tauchgang beginnt immer bei 0 Sekunden --> <!-- und 0 Meter Tiefe! --> <depth> 0.0</depth> <divetime> 0.0</divetime> <switchmix>air</switchmix> </waypoint> <waypoint> <depth>4.7</depth> <divetime>20.0</divetime> </waypoint> <waypoint> <depth>7.0</depth> <divetime>40.0</divetime> </waypoint> <waypoint> <depth>11.1</depth> <divetime>60.0</divetime> </waypoint> <!-- hier stehen weitere <waypoint>-Anweisungen --> <waypoint> <depth>13.9</depth> <divetime>3580.0</divetime> </waypoint> <waypoint> <depth>13.9</depth> <divetime>3600.0</divetime> <work>1</work> </waypoint> <waypoint> <depth>14.1</depth> <divetime>3620.0</divetime> <work>1</work> </waypoint> <waypoint> <depth>14.5</depth> <divetime>3640.0</divetime> <work>1</work> </waypoint> <waypoint> <depth>15.0</depth> <divetime>3660.0</divetime> <work>1</work> </waypoint> <waypoint> <depth>15.2</depth> <divetime>3680.0</divetime> </waypoint> <waypoint> <depth>13.8</depth> <divetime>3700.0</divetime> </waypoint> <waypoint> <depth>12.8</depth> <divetime>3720.0</divetime> <alarm>ascent</alarm> </waypoint> <waypoint> <depth>10.2</depth> <divetime>3740.0</divetime> </waypoint> <waypoint> <depth>9.4</depth> <divetime>3760.0</divetime> </waypoint> <waypoint> <depth>8.1</depth> <divetime>3780.0</divetime> </waypoint> <waypoint> <depth>7.2</depth> <divetime>3800.0</divetime> </waypoint> <waypoint> <depth>6.1</depth> <divetime>3820.0</divetime> </waypoint> <waypoint> <depth>5.3</depth> <divetime>3840.0</divetime> </waypoint> <waypoint> <depth>4.2</depth> <divetime>3860.0</divetime> <alarm>breath</alarm> </waypoint> <waypoint> <depth>3.4</depth> <divetime>3880.0</divetime> </waypoint> <waypoint> <depth>3.6</depth> <divetime>3900.0</divetime> </waypoint> <waypoint> <depth>4.1</depth> <divetime>3920.0</divetime> </waypoint> <waypoint> <depth>3.6</depth> <divetime>3940.0</divetime> </waypoint> <waypoint> <depth>2.8</depth> <divetime>3960.0</divetime> </waypoint> <waypoint> <depth>2.7</depth> <divetime>3980.0</divetime> </waypoint> <waypoint> <depth>2.0</depth> <divetime>4000.0</divetime> </waypoint> <waypoint> <depth>1.1</depth> <divetime>4020.0</divetime> </waypoint> <waypoint> <!-- Ein Tauchgang endet immer an der Oberfläche --> <!-- bei 0 Meter Tiefe! --> <depth>0.0</depth> <divetime>4040.0</divetime> </waypoint> </samples> </dive> <!-- hier können weitere Daten zu Tauchgängen folgen -->
Innerhalb <scientificname> wird der wissenschaftliche Name eines Tieres oder einer Pflanze angegeben.
<species>
<species>, <trivialname>
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
(siehe auch <equipment>)
<equipment> <scooter id="mein_scooter"> <name>Scotty</name> <manufacturer>Scotty-Bauer</manufacturer> <model>Rakete</model> <serialnumber>23456</serialnumber> <purchase> <date> <year>1993</year><month>7</month><day>16</day><dayofweek>5</dayofweek> </date> <price currency="DM">1000.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <serviceinterval>365</serviceinterval> <nextservicedate> <date> <year>2006</year><month>7</month><day>18</day> </date> </nextservicedate> </scooter> </equipment>
Mittels <scooterref ref="bezeichner_des_zu_referenzierenden_scooters"/> wird auf die unter diesem Bezeichner gespeicherten Scooterdaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <scooter id="mein_scooter"> <!-- Beschreibung des Scooters --> </scooter> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Scooter: --> <scooterref ref="mein_scooter"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
<boots>, <buoyancycontroldevice>, <camera>, <compass>, <compressor>, <divecomputer>, <fins>, <gloves>, <knife>, <lead>, <light>, <mask>, <rebreather>, <regulator>, <scooter>, <suit>, <tank>, <variouspieces>, <videocamera>, <watch>
Das Serviceinterval in Tagen (angegeben als Integer), wann das Ausrüstungsteil das nächste Mal gewartet werden muß.
<boots>, <buoyancycontroldevice>, <camera>, <compass>, <compressor>, <divecomputer>, <fins>, <gloves>, <knife>, <lead>, <light>, <mask>, <rebreather>, <regulator>, <scooter>, <suit>, <tank>, <variouspieces>, <videocamera>, <watch>
(siehe auch <equipment> und die oben aufgelisteten Ausrüstungsteile)
<!-- jährliche Wartung --> <serviceinterval>365</serviceinterval>
Mittels <setdcalarmtime> kann eine — absolute (also unabhängig von der eigentlichen Tauchzeit) — Uhrzeit vorgegeben werden, zu der der Tauchcomputer einen Alarm ausgeben soll.
(siehe auch <setdcdata>)
<setdcalarmtime> <time> <hour>14</hour> <minute>37</minute> </time> <dcalarm> <!-- Alarmdauer 10 Sekunden --> <period>10.0</period%gt; <alarmtype>1</alarmtype> </dcalarm> </setdcalarmtime>
Mit <setdcaltitude> kann die Höhe in Metern über dem Meeresspiegel als reelle Zahl mit einer Nachkommastelle für den anstehenden Tauchgang gesetzt werden. Mit diesem Element kann auf einfache Art und Weise die Höhe eines Tauchgewässers für den Tauchcomputer gesetzt werden, ohne daß eine Referenzierung auf eine schon vorher angelegte Datenbasis für dieses Gewässer erfolgt sein muß.
(siehe auch <setdcdata>)
<!-- Einstieg in 450.0 m Höhe über dem Meeresspiegel --> <setdcaltitude>450.0 </setdcaltitude>
buddy=eindeutiger Identifizierer des Tauchpartners, dessen Daten an den Tauchcomputer übertragen werden sollen
Mittels <setdcbuddydata/> werden sämtliche Daten des über das Attribut spezifizierten Tauchpartners, welche in der <buddy>-Sektion gesetzt wurden, an den Tauchcomputer übertragen.
(siehe auch <setdcdata>)
<setdcdata> <!-- Daten von Tauchpartner Alfons an den Tauchcomputer übertragen --> <setdcbuddydata buddy="alfons"/> </setdcdata>
Innerhalb der <setdcdata>-Sektion erfolgen die Angaben zur Konfigurierung des Tauchcomputers.
<setdcalarmtime>, <setdcaltitude>, <setdcbuddydata>, <setdcdate>, <setdcdecomodel>, <setdcdivedepthalarm>, <setdctdivepo2alarm>, <setdcdivesitedata>, <setdcdivetimealarm>, <setdcdivetripdata>, <setdcendndtalarm>, <setdcgasdefinitionsdata>, <setdcownerdata>, <setdcpassword>, <setdcgeneratordata>, <setdctime>
(siehe auch die Kind-Elemente)
<divecomputercontrol> <setdcdata> <!-- Setzen von Datum und Uhrzeit --> <setdcdate> <date> <year>2007</year> <month>8</month> <day>24</day> </date> </setdcdate> <setdctime> <!-- 9:00 Uhr --> <time> <hour>9</hour> <minute>0</minute> </time> </setdctime> <!-- Setzen des zu verwendenden Dekompressionsmodelles --> <setdcdecomodel> <name>RGBM</name> <program> <!-- hier zusätzliche herstellerinterne Daten zum angegebenen Dekomodell --> </program> </setdcdecomodel> <!-- Setzen des/r zu verwendenden Atemgase/s --> <setdcgasdefinitionsdata/> <!-- Setzen eines Alarms beim Erreichen des Endes der Nullzeit --> <setdcendndtalarm> <dcalarm> <!-- Alarm muß quittiert werden --> <acknowledge/> <alarmtype>2</alarmtype> </dcalarm> </setdcendndtalarm> <!-- Daten von Tauchpartner Alfons an den Tauchcomputer übertragen --> <setdcbuddydata buddy="alfons"/> </setdcdata> </divecomputercontrol>
<date>
(siehe auch <setdcdata>)
<setdcdate> <date> <year>2007</year> <month>8</month> <day>24</day> </date> </setdcdate>
Diese Anweisung setzt das zu verwendende Dekompressionsmodell. Unterstützt der Tauchcomputer das angegebene Dekompressionsmodell nicht, wird das Standard-Dekomodell dieses Tauchcomputers eingesetzt.
(siehe auch <setdcdata>)
<setdcdecomodel> <name>ZH-L16</name> <program> <!-- hier zusätzliche herstellerinterne Daten zum angegebenen Dekomodell --> </program> </setdcdecomodel>
Mit <setdcdivedepthalarm> wird eine Tauchgangstiefe in Metern als reelle Zahl vorgegeben, bei deren Erreichen der Tauchcomputer ein Alarmsignal geben soll. Es können beliebig viele <setdcdivedepthalarm>-Elemente nacheinander aufgeführt werden, um bei verschiedenen erreichten Tiefen unterschiedliche Alarmsignale ausgeben zu können.
<dcalarm>, <dcalarmdepth>
(siehe auch <setdcdata>)
<!-- bei Erreichen einer Tiefe von 30 Metern soll der Tauchcomputer ein akustisches Signal geben --> <setdcdivedepthalarm> <dcalarmdepth>30.0</dcalarmdepth> <dcalarm> <!-- Alarmsignal soll für 10 Sekunden ausgegeben werden --> <period>10.0</period> <alarmtype>1</alarmtype> </dcalarm> </setdcdivedepthalarm> <!-- bei Erreichen einer Tiefe von 40 Metern soll der Tauchcomputer ein anderes akustisches Signal geben --> <setdcdivedepthalarm> <dcalarmdepth>40.0</dcalarmdepth> <dcalarm> <!-- dieser Alarm muß quittiert werden --> <acknowledge/> <alarmtype>2</alarmtype> </dcalarm> </setdcdivedepthalarm>
<setdcdivepo2alarm> erlaubt es einen Sauerstoff-Partialdruck vorzugeben, bei dessen Erreichen der Tauchcomputer ein Alarmsignal geben soll. Es können beliebig viele <setdcdivepo2alarm>-Elemente nacheinander aufgeführt werden, um bei verschiedenen erreichten Sauerstoff-Partialdrücken unterschiedliche Alarmsignale ausgeben zu können.
<dcalarm>, <maximumpo2>
(siehe auch <setdcdata>)
<!-- bei Erreichen eines Sauerstoff-Partialdrucks von 1.4 soll der Tauchcomputer ein akustisches Signal geben --> <setdcdivepo2alarm> <maximumpo2>1.4</maximumpo2> <dcalarm> <!-- Alarmsignal soll für 10 Sekunden ausgegeben werden --> <period>10.0</period> <alarmtype>3</alarmtype> </dcalarm> </setdcdivepo2alarm> <!-- bei Erreichen eines Sauerstoff-Partialdrucks von 1.6 soll der Tauchcomputer ein anderes akustisches Signal geben --> <setdcdivepo2alarm> <maximumpo2>1.6</maximumpo2> <dcalarm> <!-- dieser Alarm muß quittiert werden --> <acknowledge/> <alarmtype>4</alarmtype> </dcalarm> </setdcdivepo2alarm>
divesite=eindeutiger Identifizierer eines Tauchplatzes, dessen Daten an den Tauchcomputer übertragen werden sollen
Mittels <setdcdivesitedata> werden sämtliche Daten, die in der <divesite>-Sektion für den über das Attribut spezifizierten Tauchplatz (<site>) gesetzt wurden, an den Tauchcomputer übertragen.
Mit <setdcdivetimealarm> wird die Tauchgangsdauer in Minuten vorgegeben, nach deren Ablauf der Tauchcomputer ein Alarmsignal geben soll (unabhängig von der erreichten (Maximal-)Tiefe). Es können beliebig viele <setdcdivetimealarm>-Elemente nacheinander aufgeführt werden, um bei verschiedenen erreichten Tauchgangszeiten unterschiedliche Alarmsignale ausgeben zu können.
<dcalarm>, <diveduration>
(siehe auch <setdcdata>)
<!-- bei Erreichen einer Tauchgangsadauer von 45 Minuten soll der Tauchcomputer ein akustisches Signal geben --> <setdcdivetimealarm> <diveduration>2700.0</diveduration> <dcalarm> <!-- Alarmsignal soll für 10 Sekunden ausgegeben werden --> <period>10.0</period> <alarmtype>3</alarmtype> </dcalarm> </setdcdivetimealarm> <!-- bei Erreichen einer Tauchgangsdauer von 60 Minuten soll der Tauchcomputer ein anderes akustisches Signal geben --> <setdcdivetimealarm> <diveduration>3600.0</diveduration> <dcalarm> <!-- dieser Alarm muß quittiert werden --> <acknowledge/> <alarmtype>4</alarmtype> </dcalarm> </setdcdivetimealarm>
Mit <setdcendndtalarm> (,,set dive computer end no decompression time alarm``) wird eingestellt, daß nach Ablauf der Nullzeit der Tauchcomputer ein Alarmsignal geben soll.
<dcalarm>
(siehe auch <setdcdata>)
<setdcendndtalarm> <dcalarm> <!-- Alarmsignal soll für 10 Sekunden ausgegeben werden --> <period>10.0</period> <alarmtype>3</alarmtype> </dcalarm> </setdcendndtalarm>
<setdcendndtalarm> <dcalarm> <!-- dieser Alarm muß quittiert werden --> <acknowledge/> <alarmtype>4</alarmtype> </dcalarm> </setdcendndtalarm>
Mittels <setdcownerdata/> werden sämtliche Daten des Besitzers der UDDF-Datei bzw. des Tauchcomputers, welche in der <owner>-Sektion gesetzt wurden, an den Tauchcomputer übertragen. Da es nur einen (1) Besitzer einer UDDF-Datei geben kann, braucht dem Befehl kein Attribut mitgegeben zu werden.
(siehe auch <setdcdata>)
<setdcdata> <!-- Daten des Besitzers der UDDF-Datei werden an den Tauchcomputer übertragen --> <setdcownerdata/> </setdcdata>
Mittels <setdcpassword> wird ein Paßwort auf dem Tauchcomputer gesetzt, um die Daten des Tauchcomputerbesitzers vor unberechtigtem Zugriff zu schützen.
(siehe auch <setdcdata>)
<setdcdata> <setdcpassword>tiefenrausch66m</setdcpassword> </setdcdata>
Innerhalb <setdcgeneratordata> werden proprietäre Daten eines Tauchcomputer-Herstellers gesetzt. Die Elemente innerhalb <setdcgeneratordata> werden von Tauchcomputern anderer Hersteller ignoriert. Es werden sämtliche innerhalb der <generator>-Sektion gespeicherten Daten übertragen.
(see also <setdcdata>)
<setdcdata> <!-- alle Herstellerdaten werden an den Tauchcomputer übertragen --> <setdcgeneratordata/> </setdcdata>
<time>
(siehe auch <setdcdata>)
<setdcdata> <setdctime> <time> <!-- 11:42 Uhr --> <hour>11</hour> <minute>42</minute> </time> </setdctime> </setdcdata>
Innerhalb <sex> wird das Geschlecht einer Person oder eines beobachteten Tieres bzw. einer Pflanze angegeben.
Erlaubte Werte sind: 0 — nicht feststellbar, 1 oder m oder male — männlich, 2 oder f oder female — weiblich, 3 oder h oder hermaphrodite — Zwitter. Ist das Geschlecht nicht feststellbar, kann <sex> entweder weggelassen werden oder <sex>0</sex> wird angegeben.
Innerhalb <shipdimension> werden die technischen Daten des Schiffs (jetzt Wrack) angegeben.
<wreck>
<beam>, <displacement> <draught>, <length>, <tonnage>
<wreck>
(siehe auch <wreck>)
<shipdimension> <length>156.2</length> <!-- Länge --> <beam>12.6</beam> <!-- Breite --> <draught>5.7</draught> <!-- Tiefgang --> <displacement>123456.7</displacement> <!-- Verdrängung --> <tonnage>170000.0</tonnag> <!-- Tonnage 170 Tonnen --> </shipdimension>
Mit <shop> werden Angaben zu einem Geschäft geklammert, in dem ein Ausrüstungsteil gekauft wurde.
<purchase>
<purchase>
(siehe auch <purchase>)
<shop> <name>Die Tieftaucher</name> <address> <!-- Adresse des Geschäftes, in dem das Ausrüstungsteil gekauft wurde --> </address> <contact> <!-- weitere Angaben (Telefonnr., EMail-Adresse etc.) --> </contact> <notes> <!-- zusätzliche Bemerkungen, Bilder usw. --> </notes> </shop>
<sitedata>
<sitedata>
(siehe auch <sitedata>)
<shore> <name>Torbogen</name> <notes> <!-- hier weitere Beschreibung, Bilder, Videosequenzen ... --> </notes> </shore>
Mittels <shutterspeed> wird die einem Foto verwendete Belichtungszeit in Sekunden geklammert.
<aperture>, <date>, <exposurecompensation>, <filmspeed>, <focallength>, <focusingdistance>, <image>, <imagedata>, <meteringmethod>, <time>
(siehe auch <image>)
<!-- Belichtungszeit 2 s --> <shutterspeed>2.0</shutterspeed>
<!-- Belichtungszeit 1/125 s --> <shutterspeed>0.008</shutterspeed>
<!-- Belichtungszeit 1/2000 s --> <shutterspeed>0.0005</shutterspeed>
Innerhalb <site> wird ein Tauchplatz eindeutig beschrieben. Es können beliebig viele <site>-Elemente nacheinander innerhalb der <divesite>-Sektion stehen.
<divesite>
<divesite>
(siehe auch <divesite>)
<divesite> <!-- Beschreibungen aller Tauchplätze --> <site id="site_Scapa_Brummer"> <!-- Beschreibung des ersten erfaßten Tauchplatzes --> <name>Brummer</name> <geography> <location>Scapa Flow</location> <province>Orkney Islands</province> <country>UK</country> <!-- Breitengrad: Nord > 0 / Süd < 0 --> <latitude>58.897222</latitude> <!-- Längengrad: Ost > 0 / West < 0 --> <longitude>-3.1519444</longitude> <altitude>0.0</altitude> </geography> <sitedata> <maximumdepth>37.0</maximumdepth> <density>1030.0</density> <!-- Salzwasser --> <bottom>Sandboden</bottom> <wreck id="wreck_Brummer"> <name>SMS Brummer</name> <shiptype>leichter Kreuzer</shiptype> <nationality>deutsch</nationality> <built> <shipyard>Vulcan, Stettin</shipyard> <date> <year>1916</year> </date> </built> <shipdimension> <length>140.0</length> <beam>13.0</beam> <draught>6.0</draught> <displacement>4.385E6</displacement> </shipdimension> <sunk> <date> <year>1919</year> <month>6</month> <day>21</day> <dayofweek>6</dayofweek> <!-- Samstag --> </date> <time> <hour>13</hour> <minute>5</minute> </time> </sunk> <notes> <text>Deutsche Hochsee-Flotte</text> </notes> </wreck> </sitedata> <notes> <text>Sehr schöner Wrack-Tauchgang</text> </notes> </site> <!-- weitere Tauchspots --> </divesite>
<divesite> <!-- Beschreibungen aller Tauchplätze --> <site id="site_Untiefe_südlich_Gabiniere"> <name>Untiefe südlich des Ilot de la Gabiniere</name> <geography> <location>Ilot de la Gabiniere</location> <province>Cote d'Azur</province> <country>Frankreich</country> <!-- Breiten- und Längengrad nicht bekannt --> <altitude>0.0</altitude> </geography> <ecology> <!-- Aufzählung der typischerweise anzutreffenden Pflanzen und Tiere --> <fauna> <invertebrata> <!-- Wirbellose --> <porifera> <!-- Schwämme --> <species> <trivialname>Nierenschwamm</trivialname> <scientificname>Chondrosia reniformis</scientificname> </species> <species> <trivialname>Roter Krustenschwamm</trivialname> <scientificname>Crambe crambe</scientificname> </species> <species> <trivialname>Hellblauer Krustenschwamm</trivialname> <scientificname>Anchinoe</scientificname> </species> </porifera> <cnidaria> <!-- Nesseltiere --> <species> <trivialname>Rote Gorgonie</trivialname> <scientificname>Paramuricea clavata (chamaeleon)</scientificname> </species> </cnidaria> <ascidiacea> <!-- Seescheiden --> <species> <trivialname>Rote Seescheide</trivialname> <scientificname>Halocynthia papillosa</scientificname> </species> </ascidiacea> <echinodermata> <!-- Stachelhäuter --> <species> <trivialname>Purpurseestern</trivialname> <scientificname>Echinaster sepositus</scientificname> </species> </echinodermata> </invertebrata> <vertebrata> <!-- Wirbeltiere --> <osteichthyes> <!-- Knochenfische --> <species> <trivialname>Mittelmeer-Muräne</trivialname> <scientificname>Muraena helena</scientificname> </species> <species> <trivialname>Brauner Zackenbarsch</trivialname> <scientificname>Epinephelus guaza</scientificname> </species> <species> <trivialname>Spitzkopf-Zackenbarsch</trivialname> <scientificname>Epinephelus alexandrinus</scientificname> </species> <species> <trivialname>Roter Fahnenbarsch</trivialname> <scientificname>Anthias anthias</scientificname> </species> <species> <trivialname>Mönchsfisch</trivialname> <scientificname>Chromis chromis</scientificname> </species> <species> <trivialname>Meerjunker</trivialname> <scientificname>Coris julis</scientificname> </species> <species> <trivialname>Zweibindenbrassen</trivialname> <scientificname>Diplodus vulgaris</scientificname> </species> <species> <trivialname>Brandbrassen</trivialname> <scientificname>Oblada melanura</scientificname> </species> <species> <trivialname>Pfauenlippfisch</trivialname> <scientificname>Symphodus tinca</scientificname> </species> </osteichthyes> </vertebrata> </fauna> <flora> <rhodophyceae> <!-- Rotalgen --> <species> <trivialname>Peyssonnelia</trivialname> <scientificname>Peyssonnelia squamaria</scientificname> </species> </rhodophyceae> <chlorophyceae> <!-- Grünalgen --> <species> <trivialname>Meersalat</trivialname> <scientificname>Ulva rigida</scientificname> </species> <species> <trivialname>Meerball</trivialname> <scientificname>Codium bursa</scientificname> </species> </chlorophyceae> </flora> </ecology> <sitedata> <minimumdepth>18.0</minimumdepth> <maximumdepth>32.0</maximumdepth> <arealength>20.0</arealength> <!-- Länge des Felsens --> <areawidth>8.0</areawidth> <!-- Breite des Felsens --> <!-- (aus den obigen vier Angaben kann ggfs. auch ein Volumen berechnet werden) --> <density>1030.0</density> <!-- Salzwasser --> <bottom>Felsen</bottom> </sitedata> <notes> <text> Erstklassiger Tauchplatz! Aufgrund von Strömung oftmals nur schwierig zu betauchen. Erreichbar entweder im Freiwasser-Abstieg vom Boot oder - bei guter (!) Kenntnis der Geländebeschaffenheit - von der Südspitze des Ilot de la Gabiniere aus nach Südwesten tauchend. Recht schmaler, langgezogener Felskamm, auf beiden Seiten steilwandartig. Dichter Bewuchs mit Algen, Schwämmen, Gorgonien. Viele Fische, insbesondere zahlreich anzutreffende Zackenbarsche. </text> <image> <objectname>rote_gorgonie.jpg</objectname> <!-- Sofern vorhanden, könnten hier zusätzlich noch mittels <imagedata> --> <!-- weitere Informationen zu diesem Bild abgelegt werden (Blende, Verschlußzeit, --> <!-- Datum und Uhrzeit der Aufnahme, Objektivbrennweite, eingestellte Entfernung) --> <!-- (entsprechend bei den nachfolgend aufgelisteten Bildern) --> </image> <image><objectname>eisseestern.jpg</objectname></image> <image><objectname>5_zackis.jpg</objectname></image> <image><objectname>meersalat_meerjunker.jpg</objectname></image> <image><objectname>heinz_neben_3_zackis.jpg</objectname></image> <image><objectname>portrait_grosser_roter_drachenkopf.jpg</objectname></image> <video><objectname>untiefe_040928.avi</objectname></video> </notes> </site> </divesite>
Innerhalb <sitedata> wird der Tauchplatz näher beschrieben (Salz- oder Süßwasser, Geländebeschaffenheit, Schwierigkeitsgrad, persönliche Benotung des Tauchplatzes etc.).
<site>
<arealength>, <areawidth>, <averagevisibility>, <bottom>, <cave>, <density>, <difficulty>, <globallightintensity>, <indoor>, <lake>, <maximumdepth>, <maximumvisibility>, <minimumdepth>, <minimumvisibility>, <rating>, <river>, <shore>, <terrain>, <wreck>
<site>
(siehe auch <site>)
<sitedata> <maximumdepth>58.0</maximumdepth> <averagevisibility>20.0</averagevisibility> <density>1030.0</density> <!-- Salzwasser --> <bottom>Sandboden</bottom> <wreck id="Wrack_Togo"> <name>Togo</name> <shiptype>Frachter</shiptype> <nationality>???</nationality> <built> <shipyard>Vulcan, Stettin</shipyard> <date> <year>1916</year> </date> </built> <shipdimension> <length>140.0</length> <beam>13.0</beam> <draught>6.0</draught> <displacement>4.385E6</displacement> </shipdimension> <sunk> <date> <year>1919</year> <month>6</month> <day>21</day> <dayofweek>6</dayofweek> <!-- Samstag --> </date> <time> <hour>13</hour> <minute>5</minute> </time> </sunk> <notes> <text></text> </notes> </wreck> </sitedata>
Gibt die Größe des beobachteten Tieres oder der Pflanze in Metern (als reelle Zahl) an.
<species>
<species>
id=eindeutiger Identifizierer dieses Tieres bzw. dieser Pflanze
Eine eindeutige ID ist erforderlich, möglichst von der Software (zur Not auch vom Benutzer selbst) gesetzt, da beliebig viele Einträge mit demselben Namen erfolgen können und diese eindeutig voneinander unterschieden werden können müssen!
Mittels <species> werden Angaben zu einem während eines Tauchgangs beobachteten oder typischerweise an diesem Tauchplatz anzutreffenden Tier oder einer Pflanze geklammert.
<species> kann innerhalb jeder der unter <invertebrata> oder <vertebrata> aufgeführten Ordnungen bei Tieren (<fauna>) bzw. der unter <flora> aufgeführten Ordnungen bei Pflanzen stehen.
Es können beliebig viele <species>-Elemente hintereinander aufgeführt werden. Diese müssen sich dann nicht unbedingt jeweils auf verschiedene während eines Tauchgangs beobachtete Arten beziehen, sondern können sich auch auf verschiedene Sichtungen ein und derselben Art beziehen.
<amphibia>, <ascidiacea>, <bryozoa>, <chlorophyceae>, <chondrichthyes>, <cnidaria>, <coelenterata>, <crustacea>, <ctenophora>, <echinodermata>, <floravarious>, <invertebratavarious>, <mammalia>, <mollusca>, <osteichthyes>, <phaeophyceae>, <plathelminthes>, <phoronidea>, <porifera>, <reptilia>, <rhodophyceae>, <spermatophyta>, <vertebratavarious>
<abundance>, <age>, <dominance>, <lightintensity>, <notes>, <scientificname>, <sex>, <size>, <trivialname>
Während <trivialname> oder <scientificname> zwingend angegeben werden muß (sonst macht die Verwendung von <species> keinen Sinn :-) ), sind die anderen Schlüsselwörter optional. Alle Elemente innerhalb <species> dürfen maximal einmal vorkommen.
(siehe z.B. auch <fauna>)
<osteichthyes> <!-- jede andere Ordnung unter <fauna> oder <flora> ist ebenso möglich :-) --> <!-- Eine eindeutige ID ist erforderlich, möglichst von der Software (zur Not --> <!-- auch vom Benutzer selbst) gesetzt, da beliebig viele Einträge mit demselben --> <!-- Namen - wie in diesem Beispiel zweimal ein Meerjunkder-Eintrag - erfolgen --> <!-- können und diese eindeutig voneinander unterschieden werden können müssen! --> <species id="meerjunker1"> <trivialname>Meerjunker</trivialname> <!-- Trivialname bzw. landessprachlicher Name --> <scientificname>Coris julis</scientificname> <!-- wissenschaftlicher Name --> <abundance occurrence="1">1</abundance> <!-- Häufigkeit des Auftretens - hier: Einzeltier --> <sex>1</sex> <!-- Geschlecht - hier: männlich --> <lifestage>adult</lifestage> <!-- Lebensstadium - hier: erwachsenes Tier --> <size>0.13</size> <!-- Tier 13 cm lang --> <notes> <image> <objectname>coris_julis_001.jpg</objectname> <!-- 1 Foto wurde vom Männchen angefertigt --> </image> </notes> </species> <species id="meerjunker2"> <trivialname>Meerjunker</trivialname> <!-- Trivialname bzw. landessprachlicher Name --> <scientificname>Coris julis</scientificname> <!-- wissenschaftlicher Name --> <abundance occurrence="2">8</abundance> <!-- Häufigkeit des Auftretens - hier: Gruppe von 8 Tieren --> <sex>2</sex> <!-- Geschlecht - hier: weiblich --> <!-- keine Größenangaben zu den Tieren gegeben --> <notes> <!-- von den Weibchen wurden 4 Fotos gemacht --> <image> <objectname>coris_julis_002.jpg</objectname> </image> <image> <objectname>coris_julis_003.jpg</objectname> </image> <image> <objectname>coris_julis_004.jpg</objectname> </image> <image> <objectname>coris_julis_005.jpg</objectname> </image> </notes> </species> </osteichthyes>
Innerhalb <spermatophyta> werden alle gesichteten bzw. gesammelten und später bestimmten Blütenpflanzen aufgelistet.
<flora>
siehe <species>
<flora>
siehe <flora>
Innerhalb <startdate> wird das Datums des Beginns der Tauchfahrt angegeben. Siehe auch <enddate>.
<divetrip>
<date>
(siehe auch <divetrip>)
<!-- Beginn der Tauchfahrt am 2.3.2004, einem Dienstag --> <startdate> <date> <year>2004</year><month>3</month><day>2</day><dayofweek>2</dayofweek> </date> </startdate>
Innerhalb <suit> erfolgen die Angaben zu einem verwendeten Tauchanzug. Es können mehrere <suit>-Elemente hintereinander aufgeführt werden.
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
(siehe auch <equipment>)
<equipment> <suit id="mein_nasser"> <name>Frierschnell</name> <manufacturer>Frost-Kompanie</manufacturer> <model>5 Grad</model> <!-- keine Seriennummer --> <purchase> <date> <year>1969</year><month>3</month><day>31</day><dayofweek>1</dayofweek> </date> <price currency="DM">300.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <!-- kein Serviceinterval --> </suit> </equipment>
Mittels <suitref ref="bezeichner_des_zu_referenzierenden_tauchanzugs"/> wird auf die unter diesem Bezeichner gespeicherten Anzugdaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <suit id="mein_tauchanzug"> <!-- Beschreibung des Tauchanzugs --> </suit> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Tauchanzug: --> <suitref ref="mein_tauchanzug"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
Innerhalb <sunk> werden Datum und Uhrzeit (soweit bekannt) des Schiffs (jetzt Wrack) angegeben.
<wreck>
<wreck>
(siehe auch <wreck>)
<sunk> <date> <year>1985</year> <month>5</month> <day>24</day> <dayofweek>5</dayofweek> </date> <time> <hour>15lt;/hour> <minute>46lt;/minute> </time> </sunk>
Die Anweisung <surfaceinterval> klammert nachfolgende Elemente zur Beschreibung dessen, was im Oberflächenintervall passiert ist (z.B. Anreise zum neuen Tauchplatz über einen Berg und/oder durch ein Tal mit Zeit-/Höhenangabe).
<dive>
<infinity/>, <passedtime>, <wayaltitude>
<dive>
(siehe auch <dive>)
<dive id="tg-0815"> <!-- zuerst Daten zur Vorgeschichte des TGs --> <surfaceinterval> <!-- in diesem Fall wird nur die Oberflächenpause von 4h53min in Sekunden angegeben --> <passedtime>17580.0</passedtime> </surfaceinterval> <!-- jetzt die Beschreibung des TGs --> <date>...</date> <time>...</time> <!-- hier die weitere Beschreibung des TGs --> </dive>
<dive id="tg_1"> <!-- 1. TG --> <!-- zuerst Daten zur Vorgeschichte des TGs --> <surfaceinterval> <infinity/> </surfaceinterval> <!-- jetzt die Beschreibung des TGs --> <date>...</date> <time>...</time> <!-- hier die weitere Beschreibung des TGs --> </dive> <dive id="tg_2"> <!-- 2. TG am selben Ort, 1,5h später --> <surfaceinterval> <passedtime>5400.0</passedtime> </surfaceinterval> <!-- jetzt die Beschreibung des TGs --> <date>...</date> <time>...</time> <!-- hier die weitere Beschreibung des TGs --> </dive> <dive id="tg_3"> <!-- 3. TG --> <surfaceinterval> <!-- bis 1 h nach Ende des TGs Aufenthalt am Tauchplatz --> <passedtime>3600.0</passedtime> <!-- jetzt Autofahrt zum nächsten See --> <!-- nach 10 min Fahrt wird das Tal erreicht --> <wayaltitude waytime="4200.0">500.0</wayaltitude> <!-- 5 min Fahrt im Tal --> <wayaltitude waytime="4500.0">500.0</wayaltitude> <!-- nach weiteren 30 min wird eine Paßhöhe erreicht --> <wayaltitude waytime="6300.0">1250.0</wayaltitude> <!-- 5 min genießen der Aussicht... --> <wayaltitude waytime="6600.0">1250.0</wayaltitude> <!-- 40 min Abfahrt ins Tal --> <wayaltitude waytime="9000.0">380.0</wayaltitude> <!-- nach weiteren 20 min Ankunft am Tauchplatz auf 430.0m --> <wayaltitude waytime="10200.0">430.0</wayaltitude> <!-- 30 min Vorbereitungen bis zum Beginn des TGs --> <wayaltitude waytime="12000.0">430.0</wayaltitude> </surfaceinterval> <!-- jetzt die Beschreibung des TGs --> <date>...</date> <time>...</time> <!-- hier die weitere Beschreibung des TGs --> </dive>
Innerhalb der <table>-Sektion werden die Parameter zur Erzeugung einer bestimmten Austauchtabelle geklammert.
<table> steht als einziges Element jeweils innerhalb <calculateprofile>, <calculatetable> sowie <calculatebottomtimetable> und kann dort beliebig oft wiederholt werden.
<decomodel>, <deepstoptime>, <density>, <diveref/>, <inputprofile>, <maximumascendingrate>, <mixchange>, <mixref/>, <output>, <program>, <surfaceinterval>, <tablescope>
Je nach übergeordneter Sektion (<calculatebottomtimetable>, <calculateprofile> oder <calculatetable>) sind nicht alle diese Elemente erlaubt.
(siehe auch <calculatebottomtimetable>, <calculateprofile> und <calculatetable>)
<tablegeneration> <calculatetable> <!-- hier können noch weitere Anweisungen zur Tabellenberechnung stehen --> ... <table id="austauchtabelle_luft_0m"> <!-- Verweis auf einen vorherigen Tauchgang ("tg345"); auf Grundlage der dabei --> <!-- erfolgten Aufsättigung der Gewebe soll nun die Tabelle gerechnet werden --> <diveref ref="tg345"/> <!-- Verweis auf das zu verwendende Atemgas --> <mixref ref="air"/> <surfaceinterval> <!-- 4 Stunden Pause zwischen den beiden Tauchgängen --> <passedtime>14400.0</passedtime> </surfaceinterval> <!-- Meerwasser --> <density>1030.0</density> <!-- nachfolgend Anweisungen zur Ausgabe in eine Datei --> <output> <!-- Ausgabe in englischer Sprache --> <lingo>en</lingo> <!-- PDF-Format (-> Dateiendung ".pdf") --> <fileformat>pdf</fileformat> <!-- Name der Ausgabedatei (Endung ".pdf" darf nicht angegeben werden!) --> <filename>table_air_0m</filename> <!-- Überschrift für die Tabelle --> <headline>Table for Sealevel - Air</headline> <!-- erklärender Text oder sonstige Bemerkungen --> <remark> This is a special table for our proposed descent to the Donator wreck. </remark> </output> <program> <!-- hier software-spezifische Angaben --> </program> <decomodel>zh-l16</decomodel> <!-- Deep Stops von 1 Minute Dauer berücksichtigen --> <deepstoptime>60.0</deepstoptime> <!-- maximale Aufstiegsgeschwindigkeit 10 m/min --> <maximumascendingrate>0.1666666667</maximumascendingrate> <tablescope> <!-- Höhe über dem Meeresspiegel, für den die Tabelle berechnet werden soll --> <altitude>0.0</altitude> <!-- Beginn der Tauchtiefe mit 3 m, größte Tiefe 60 m, Schrittweite 3 m --> <divedepthbegin>3.0</divedepthbegin> <divedepthend>60.0</divedepthend> <divedepthstep>3.0</divedepthstep> <!-- maximale Grundzeit 100 Minuten, die bei der Tabellenausgabe berücksichtigt werden soll --> <bottomtimemaximum>6000.0</bottomtimemaximum> <!-- minimale Grundzeit 15 Minuten, die bei der Tabellenausgabe berücksichtigt werden soll --> <bottomtimeminimum>900.0</bottomtimeminimum> <!-- Schrittweite zu Beginn (auf der minimalen Tauchtiefe) 25 Minuten --> <bottomtimestepbegin>1500.0</bottomtimestepbegin> <!-- Schrittweite auf der maximalen Tauchtiefe 1 Minute --> <bottomtimestepend>60.0</bottomtimestepend> </tablescope> </table> <!-- hier können noch weitere Anweisungen zur Tabellenberechnung stehen --> ... </calculatetable> <!-- hier könnten noch Anweisungen zur Berechnung von einer oder --> <!-- mehreren "Maximale Grundzeit"-Tabellen stehen --> </tablegeneration>
Mittels <tableref ref="bezeichner_der_zu_referenzierenden_tabelle"/> wird auf die unter diesem Bezeichner gespeicherten Tabellendaten zugegriffen. So kann bei der ,,Maximale Grundzeit-Tabellen``-Generierung auf einer vorher berechnete Austauchtabelle Bezug genommen werden.
(siehe auch <calculatebottomtimetable>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <!-- hier können weitere Sektionen stehen --> <tablegeneration> <!-- zwei Austauchtabellen (eine für Luft, die andere für Nitrox --> <!-- als Atemgas) berechnen --> <calculatetable> <table id="austauchtabelle_luft"> <!-- hier Anweisungen zur Berechnung der Luft-Austauchtabelle --> </table> <table id="austauchtabelle_nitrox"> <!-- hier Anweisungen zur Berechnung der Nitrox-Austauchtabelle --> </table> </calculatetable> <!-- jetzt sollen für die vorher berechneten Austauchtabellen --> <!-- Maximale Grundzeittabellen gerechnet werden --> <calculatebottomtimetable> <table id="mgt_tabelle-1"> <!-- Beschreibung der ersten zu berechnenden MGT-Tabelle --> <!-- Referenzierung auf die vorher gerechnete Austauchtabelle --> <tableref ref="austauchtabelle_luft"/> <!-- hier weitere Anweisungen zur Berechnung der MGT-Tabelle --> </table> <table id="mgt_tabelle-2"> <!-- Beschreibung der zweiten zu berechnenden MGT-Tabelle --> <!-- Referenzierung auf die vorher gerechnete Austauchtabelle --> <tableref ref="austauchtabelle_nitrox"/> <!-- hier weitere Anweisungen zur Berechnung der MGT-Tabelle --> </table> <!-- hier können weitere Tabellen berechnet werden --> </calculatebottomtimetable> </tablegeneration> </uddf>
Innerhalb der <tablegeneration>-Sektion werden die Parameter zur Erzeugung von Aufstiegsprofilen (<calculateprofile>), Austauch- (<calculatetable>) und Maximale Grundzeit-Tabellen (<calculatebottomtimetable>) geklammert.
<tablegeneration> steht als vorletzte Sektion nach <profiledata> und vor <divecomputercontrol>.
<uddf>
<uddf>
<uddf version="2.2.0"> ... <profiledata> ... </profiledata> <tablegeneration> <!-- Berechnung von Aufstiegsprofilen --> <calculateprofile> <profile id="profil-1"> ... </profile> <profile id="profil-2"> ... </profile> <!-- hier können weitere Profile aufgeführt werden --> ... </calculateprofile> <!-- Austauchtabellenberechnung --> <calculatetable> <table id="0-700m"> <!-- eine bestimmte Tabelle rechnen --> ... </table> <table id="701-1500m"> <!-- eine bestimmte Tabelle rechnen --> ... </table> <!-- hier können weitere Tabellen aufgeführt werden --> ... </calculatetable> <!-- Maximale Grundzeit-Tabellenberechnung --> <!-- Zuvor muß mindestens eine (1) Austauchtabelle gerechnet --> <!-- worden sein, aus der dann nachfolgend eine MG-Tabelle --> <!-- gerechnet werden kann. --> <!-- Dazu muß als erstes Element innerhalb <table id="..."> --> <!-- mittels <tableref ref="..."> auf die "Eltern"-Tabelle --> <!-- referenziert werden. --> <calculatebottomtimetable> <!-- eine bestimmte Tabelle rechnen --> <table id="mgt0-700m"> <tableref ref="0-700m"/> ... </table> <!-- hier können weitere Tabellen aufgeführt werden --> ... </calculatebottomtimetable> </tablegeneration> </uddf>
Innerhalb des <tablescope>-Elements (table scope) werden die Bereichs-Parameter zur Erzeugung von Austauchtabellen (siehe auch <calculatetable>) geklammert.
<table>
<altitude>, <bottomtimemaximum>, <bottomtimestepbegin>, <bottomtimestepend>, <divedepthbegin>, <divedepthend>, <divedepthstep>
<table>
Innerhalb <tank> erfolgen die Angaben zu einer verwendeten Tauchflasche. Es können mehrere <tank>-Elemente hintereinander aufgeführt werden.
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
(siehe auch <equipment>)
<equipment> <tank id="meine_pulle"> <name>Alberts Flasche</name> <manufacturer>Stahlflaschenbauer</manufacturer> <model>15 Liter</model> <serialnumber>12345</serialnumber> <purchase> <date> <year>1986</year><month>8</month><day>19</day><dayofweek>2</dayofweek> </date> <price currency="DM">200.00</price> <shop> <name>Tauchtviel</name> <address> <!-- Adresse des Geschäftes --> </address> <contact> <!-- Telefonnummer, EMail-Adresse etc. --> </contact> <notes> <!-- Bemerkungen zum Geschäft --> </notes> </shop> </purchase> <!-- alle 2 Jahre zum TÜV --> <serviceinterval>730</serviceinterval> <nextservicedate> <date> <year>2006</year><month>8</month> </date> </nextservicedate> </tank> </equipment>
Mittels <tankref ref="bezeichner_der_zu_referenzierenden_tauchflasche"/> wird auf die unter diesem Bezeichner gespeicherten Flaschendaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <tank id="meine_flasche"> <!-- Beschreibung der Flasche --> </tank> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Tauchflasche: --> <tankref ref="meine_flasche"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
In der <tankdata>-Sektion werden die für eine Atemgas-Verbrauchsrechnung nötigen Angaben abgelegt. Es können beliebig viele <tankdata>-Elemente hintereinander angegeben werden, aber alle müssen nach den <mix>-Elementen stehen.
<breathingconsumptionvolume>, <mixref/>, <tankref/>, <tankpressurebegin>, <tankpressureend>, <tankvolume>
(siehe auch <gasdefinitions>)
<gasdefinitions> <!-- vorherige Anweisungen --> ... <mix id="air"> <name>air</name> <o2>0.21</o2> <n2>0.79</n2> <he>0.0</he> <ar>0.0</ar> <h2>0.0</h2> </mix> <tankdata> <mixref ref="air"/> <tankvolume>0.01</tankvolume> <tankpressurebegin>20000000.0</tankpressurebegin> <!-- da das Atemminutenvolumen - in der Einheit [m^3/s]! - angegeben ist, --> <!-- kann die Angabe des Enddrucks in der Flasche entfallen --> <!-- 20 Liter / Minute ^= 0.00033333... m^3/s --> <breathingconsumptionvolume>0.000333333333</breathingconsumptionvolume> </tankdata> <!-- weitere Anweisungen --> </gasdefinitions>
<!-- vorherige Anweisungen --> <gasdefinitions> <mix id="gas1"> <!-- Der Name des Atemgemisches darf auch z.B. einfach eine Ziffer sein --> <name>1</name> <o2>0.21</o2> <n2>0.79</n2> <he>0.0</he> <ar>0.0</ar> <h2>0.0</h2> </mix> <tankdata> <mixref ref="gas1"/> <!-- da Anfangs- und Endfülldruck angegeben sind, --> <!-- kann daraus ohne Angabe des Flaschenvolumens --> <!-- das Atemminutenvolumen berechnet werden --> <tankpressurebegin>20000000.0</tankpressurebegin> <tankpressureend>10400000.0</tankpressureend> </tankdata> </gasdefinitions> <!-- weitere Anweisungen -->
Mittels <tankdataref ref="bezeichner_der_zu_referenzierenden_flaschendaten"/> wird auf die unter diesem Bezeichner gespeicherten Flaschendaten zugegriffen. So kann bei der Tabellenberechnung, wenn auch eine Atemgasverbrauchsberechnung durchgeführt werden soll, einfach auf die Atemgasdaten zugegriffen werden.
<profile>
<profile>
(siehe auch <profile>)
<uddf version="2.2.0"> <gasdefinitions> <mix id="luft"> <name>1</name> <o2>0.21</o2> <n2>0.79</n2> <he>0.0</he> <ar>0.0</ar> <h2>0.0</h2> </mix> <mix id="nitrox"> <name>1</name> <o2>0.35</o2> <n2>0.65</n2> <he>0.0</he> <ar>0.0</ar> <h2>0.0</h2> </mix> <tankdata id="luftflasche"> <mixref ref="luft"/> <tankvolume>0.01</tankvolume> <tankpressurebegin>20000000.0</tankpressurebegin> <!-- da das Atemminutenvolumen - in der Einheit [m^3/s]! - angegeben ist, --> <!-- kann die Angabe des Enddrucks in der Flasche entfallen --> <!-- 20 Liter / Minute ^= 0.00033333... m^3/s --> <breathingconsumptionvolume>0.000333333333</breathingconsumptionvolume> </tankdata> <tankdata id="nitroxflasche"> <mixref ref="nitrox"/> <tankvolume>0.012</tankvolume> <tankpressurebegin>20000000.0</tankpressurebegin> <!-- da das Atemminutenvolumen - in der Einheit [m^3/s]! - angegeben ist, --> <!-- kann die Angabe des Enddrucks in der Flasche entfallen --> <!-- 20 Liter / Minute ^= 0.00033333... m^3/s --> <breathingconsumptionvolume>0.000333333333</breathingconsumptionvolume> </tankdata> </gasdefinitions> <profiledata> <repetitiongroup id="wg_a"> <dive id="tg-123"> <mixref ref="luft"/> <!-- hier alle weiteren Daten zu diesem Tauchgang --> </dive> </repetitiongroup> <repetitiongroup id="wg_b"> <dive id="tg-124"> <mixref ref="nitrox"/> <!-- hier alle weiteren Daten zu diesem Tauchgang --> </dive> </repetitiongroup> </profiledata> <tablegeneration> <calculateprofile> <profile id="profil_1"> <diveref ref="tg-123"/> <!-- die nachfolgende <tankdataref/>-Anweisung kann nicht entfallen, --> <!-- da im referenzierten Tauchgang keine Flaschendaten bekannt sind --> <!-- (nur, daß es sich beim Atemgas um Luft handelt) --> <tankdataref ref="luftflasche"/> <!-- hier weitere Angaben --> </profile> <profile id="profil_2"> <diveref ref="tg-124"/> <!-- TG 124 wurde mit Nitrox als Atemgas durchgeführt, dennoch soll die Tabelle --> <!-- mit Luftdaten gerechnet werden. --> <!-- Die nachfolgende <tankdataref/>-Anweisung ,,überschreibt`` also --> <!-- die aus der Referenzierung oben dem Programm bekannten Nitrox-Atemgasdaten. --> <tankdataref ref="luftflasche"/> <!-- hier weitere Angaben --> </profile> </calculateprofile> </tablegeneration> </uddf>
Innerhalb <tankmaterial> wird das Material, aus dem eine Tauchflasche hergestellt ist, angegeben. Erlaubte Bezeichner sind aluminium oder carbon oder steel.
<tank>
<tank>
(siehe auch <tank>)
<!-- die Druckluftflasche ist aus Stahl hergestellt --> <tankmaterial>steel</tankmaterial>
Fülldruck der Flasche in Pascal (angegeben als reelle Zahl) zu Beginn des Tauchgangs.
Im Gegensatz zu <tankvolume> oder <tankpressureend>, die wahlweise angegeben werden können, muß <tankpressurebegin> immer in der <tankdata>-Sektion erscheinen, weil ohne diese Information keine Atemgas-Verbrauchsrechnung durchgeführt werden kann.
<tankdata>
<tankdata>, <tankpressureend>, <tankpressurereserve>, <tankvolume>
(siehe auch <tankdata>)
<!-- Druck in der Flasche zu Beginn des Tauchgangs 210 bar --> <tankpressurebegin>21000000.0</tankpressurebegin>
Enddruck der Flasche in Pascal (angegeben als reelle Zahl) nach Beendigung des Tauchgangs.
Im Gegensatz zu <tankpressurebegin>, das angegeben werden muß, ist die Angabe des Flaschenenddrucks optional — sofern <tankvolume> angegeben wird, über welches dann die Atemgasverbrauchsrechnung erfolgen kann.
<tankdata>
<tankdata>, <tankpressurebegin>, <tankpressurereserve>, <tankvolume>
(siehe auch <tankdata>)
<!-- Druck in der Flasche am Ende des Tauchgangs 104 bar --> <tankpressureend>10400000.0</tankpressureend>
Druck in der Flasche in Pascal (angegeben als reelle Zahl), ab wann die ,,Reserve`` ansprechen soll.
<tankdata>
<tankdata>, <tankpressureend>, <tankpressurebegin>, <tankvolume>
(siehe auch <tankdata>)
<!-- die Reserve soll bei einem Druck von 50 bar ansprechen --> <tankpressurereserve>5000000.0</tankpressurereserve>
Volumen der Flasche in Kubikmeter [m^3] — nicht in Liter, da UDDF SI-Einheiten verwendet!
<tankdata>
<tankdata>
(siehe auch <tankdata>)
<!-- Flaschenvolumen 10 Liter --> <tankvolume>0.01</tankvolume>
<!-- Flaschenvolumen 12 Liter --> <tankvolume>0.012</tankvolume>
Gibt das Flaschenvolumen in Kubikmetern [m^3] als reelle Zahl an, mit dem die ,,Maximale Grundzeit''-Tabellenausgabe (siehe auch <calculatebottomtimetable>) beginnen soll.
(siehe auch <bottomtimetablescope>)
<!-- mit einem Flaschenvolumen von 10 Litern beginnen --> <tankvolumebegin>0.01</tankvolumebegin>
Gibt das Flaschenvolumen in Kubikmetern [m^3] als reelle Zahl an, mit dem die ,,Maximale Grundzeit''-Tabellenausgabe (siehe auch <calculatebottomtimetable>) enden soll.
(siehe auch <bottomtimetablescope>)
<!-- maximales Flaschenvolumen von 20 Litern--> <tankvolumeend>0.02</tankvolumeend>
Gibt die Schrittweite für das Inkrement des Flaschenvolumens in Kubikmetern [m^3] als reelle Zahl an, mit dem die ,,Maximale Grundzeit''-Tabellenausgabe vorgenommen werden soll.
(siehe auch <bottomtimetablescope>)
<!-- Schrittweite für das Flaschenvolumen-Inkrement 5 Liter --> <tankvolumestep>0.005</tankvolumestep>
Damit werden spezifische Informationen des Tauchsimulationsprogramms ,,Tausim`` von Kai Schröder geklammert. Zur Zeit (Tausim v0.99) werden folgende Elemente verwendet:
interne Parameter zur Darstellung des Profiles: <pres>, <timeinc>, <depthinc>, <durdep>, <nstatic>, <rls>
weitere Informationen zum verwendeten Dekomodell
<decomodel> — zur Zeit wird nur das Schlüsselwort ,,ZH-L16`` verwendet
<buehl> — gibt die verwendete Version an:
,,3`` — ursprüngliche Version
,,4`` — Version für Dekompressionstabellen
,,5`` — Version für den Gebrauch in Tauchcomputern
<tissues> — Anzahl der einbezogenen Kompartimente, normalerweise 16 Stück. Für jedes dieser Kompartimente wird nachfolgend der Sättigungsdruck zu Beginn des Tauchganges angegeben.
<ip> — Sättigung eines Gewebes (Kompartimentes) zu Beginn des Tauchganges. Es erscheinen soviele <ip>-Anweisungen wie unter <tissues> angegeben. Die erste Anweisung gibt die Sättigung des schnellsten, die letzte Anweisung die Sättigung des langsamsten Gewebes an. Die Angaben erfolgen in der SI-Einheit Pascal.
<dive> <!-- vorherige Anweisungen --> ... <applicationdata> <tausim> <pres>4000000.0</pres> <timeinc>5</timeinc> <depthinc>5</depthinc> <durdep>0</durdep> <nstatic>7</nstatic> <rls>50</rls> <decomodel>ZH-L16</decomodel> <buehl>5</buehl> <tissues>16</tissues> <ip>75073.70000</ip> <ip>75073.70000</ip> <ip>75073.70000</ip> <ip>75073.70000</ip> <ip>75073.70000</ip> <ip>75073.70000</ip> <ip>75073.70000</ip> <ip>75073.70000</ip> <ip>75073.70000</ip> <ip>75073.70000</ip> <ip>75073.70000</ip> <ip>75073.70000</ip> <ip>75073.70000</ip> <ip>75073.70000</ip> <ip>75073.70000</ip> <ip>75073.70000</ip> </tausim> </applicationdata> <samples> <!-- eigentliche Profildaten --> </samples> </dive>
Innerhalb <terrain> können Angaben zur Beschaffenheit des Geländes des Tauchplatzes gemacht werden.
<sitedata>
<sitedata>
(siehe auch <sitedata>)
<terrain> Weite Seegraswiesen, unterbrochen von Sandflächen, sanft in die Tiefe abfallender Grund. </terrain>
Innerhalb <text> wird Text (formatiert mittels den Kind-Elementen) eingegeben. Sofern vorher Audio-, Bild- oder Videodateien aufgeführt wurden, können diese über die entsprechenden Referenzierelemente (siehe Kind-Elemente) in den Text eingebaut werden.
Für zukünftige Erweiterungen von UDDF ist angedacht, Formatierungen für DocBook, (La)Tex, OpenOffice etc. einzubauen, um differenziertere Ausgaben von Logbucheinträgen zu erlauben.
<notes>
<notes>
siehe <notes>
<time> gibt allgemein eine Uhrzeit an, bestehend aus der Stundenangabe (<hour>) und den Minuten (<minute>). Diese Reihenfolge muß eingehalten werden.
Wenn <time> aufgeführt wird, muß zumindest <hour> angegeben sein, <minute> kann dagegen emtfallen.
<date>
(siehe z.B. auch <generator> oder <sunk>)
<!-- hier vorherige Angaben --> <repetitiongroup> <dive> ... <!-- hier Angaben zum Datum --> <date> ... </date> <!-- 16:21 Uhr --> <time><hour>16</hour><minute>21</minute></time> <!-- hier weitere Anweisungen --> ... </dive> <!-- hier können Anweisungen zu weiteren Tauchgängen stehen --> ... </repetitiongroup> <!-- hier weitere Angaben -->
Innerhalb <tonnage> wird die Tonnage eines Schiffes in Kilogramm als reelle Zahl angegeben.
<divetrip>
<accommodation>, <boattrip/>, <divebase>, <enddate>, <geography>, <hoteltrip/>, <individualtrip/>, <name>, <notes>, <operator>, <organizedtrip/>, <startdate>, <vessel>
<divetrip>
(siehe auch <divetrip>)
<trip> <name>Vereinsfahrt Rotes Meer 2003</name> <startdate> <date> <year>2003</year><month>4</month><day>12</day><dayofweek>6</dayofweek> </date> </startdate> <enddate> <date> <year>2003</year><month>4</month><day>19</day><dayofweek>6</dayofweek> </date> </enddate> <geography> <location>Hurghada</location> <country>Ägypten</country> </geography> <organizedtrip/> <hoteltrip/> <accommodation> <name>Hotel 1000 und 1 Nacht</name> <category>4</category> <contact> <email>info@hotel-1000-und-1-nacht.com</email> <homepage>http://www.hotel-1000-und-1-nacht.com</homepage> </contact> <rating>6</rating> </accommodation> <divebase> <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> <!-- Tauchguide bereits als <buddy> beschrieben, deshalb hier nur Referenzierung --> <buddyref ref="buddy_Georg"> </guide> <guide> <!-- 2. Tauchguide bereits ebenfalls als <buddy> beschrieben... --> <buddyref ref="buddy_Hansi_der_Luftschlucker"> </guide> <rating>7</rating> </divebase> <relateddives> <diveref ref="tg_403"><diveref ref="tg_404"><diveref ref="tg_405"><diveref ref="tg_406"> <diveref ref="tg_407"><diveref ref="tg_408"><diveref ref="tg_409"><diveref ref="tg_410"> <diveref ref="tg_411"><diveref ref="tg_412"><diveref ref="tg_413"><diveref ref="tg_414"> <diveref ref="tg_415"><diveref ref="tg_416"><diveref ref="tg_417"> </relateddives> <notes> <text> <para> schöner Tauchurlaub - wenn nicht so viele andere Taucher dort wären... </para> </text> <video> <objectname>rm2003.avi</objectname> </video> </notes> </trip">
<trip> <name>Tauch-Segeltörn 2004</name> <startdate> <date> <year>2004</year><month>9</month><day>24</day><dayofweek>5</dayofweek> </date> </startdate> <enddate> <date> <year>2004</year><month>10</month><day>3</day><dayofweek>7</dayofweek> </date> </enddate> <geography> <province>Cote d'Azur</province> <country>Frankreich</country> </geography> <individualtrip/> <boattrip/> <vessel> <name>Dorade</name> <shiptype>Segelyacht</shiptype> <marina>Bormes les Mimosas</marina> </vessel> <relateddives> <diveref ref="tg_530"><diveref ref="tg_531"><diveref ref="tg_532"><diveref ref="tg_533"> <diveref ref="tg_534"><diveref ref="tg_535"><diveref ref="tg_536"><diveref ref="tg_537"> <diveref ref="tg_538"><diveref ref="tg_539"><diveref ref="tg_540"><diveref ref="tg_541"> </relateddives> <notes> <text> <para> Unser Motto: Wir tauchen das, wovon andere träumen!!! :-) </para> </text> <video> <objectname>tst2004.avi</objectname> </video> </notes> </trip">
Innerhalb <trivialname> wird der landessprachliche Name bzw. der Trivialname eines Tieres oder einer Pflanze angegeben.
<species>
<species>
Jede UDDF-Datei beginnt mit <uddf version="x.y.z"> (mit x, y und z ganze Zahlen) und endet mit </uddf> als letzter Anweisung. Dazwischen stehen alle weiteren Sektionen.
Um das Referenzieren von Daten zu ermöglichen ist eine feste Reihenfolge der einzelnen Sektionen innerhalb einer UDDF-Datei notwendig. Auch falls keine Referenzierungen in der UDDF-Datei enthalten sein sollten muß diese Reihenfolge — siehe das Beispiel unten — zwingend eingehalten werden!
Die aktuell freigegebene Version hat die Nummer 2.2.0.
<divecomputercontrol>, <diver>, <divesite>, <divetrip>, <gasdefinitions>, <generator>, <profiledata>, <tablegeneration>
<uddf version="2.2.0"> <!-- Die in diesem Beispiel angegebene Reihenfolge der Sektionen ist bindend vorgeschrieben! --> <generator> <!-- ,,Fingerabdruck`` des die UDDF-Datei erzeugenden Programms --> </generator> <diver> <!-- Beschreibungen des Besitzers der UDDF-Datei und seiner Tauchpartner --> </diver> <divesite> <!-- Beschreibungen aller Tauchplätze --> </divesite> <gasdefinitions> <!-- Beschreibung der vom Besitzer der UDDF-Datei verwendeten Atemgase --> </gasdefinitions> <profiledata> <!-- Beschreibungen der einzelnen Tauchgänge --> </profiledata> <tablegeneration> <!-- Parameter zur Generierung von Austauch- und weiteren Tabellen --> </tablegeneration> <divetrip> <!-- Beschreibungen aller Tauchfahrten --> </divetrip> <divecomputercontrol> <!-- Anweisungen zum Setzen von Daten bzw. Herunterladen von Daten von Tauchcomputern --> </divecomputercontrol> </uddf>
Innerhalb <validdate> wird ein Gültigkeitssdatum eines Brevets angegeben (sofern existent).
<date>
(siehe auch <certification>)
<validdate> <date> <year>2007</year><month>2</month><day>28</day><dayofweek>3</dayofweek> <!-- Mittwoch --> </date> </validdate>
Innerhalb <variouspieces> erfolgen die Angaben zu weiteren verwendeten Tauchausrüstungsteilen, für die (bisher) keine eigene Sektion entworfen wurde. Es können mehrere <variouspieces>-Elemente hintereinander aufgeführt werden.
<manufacturer>, <model>, <name>, <nextservicedate>, <notes>, <purchase>, <serialnumber>, <serviceinterval>
(siehe auch <equipment>)
<equipment> <variouspieces id="meine_kopfhaube"> <name>Kopfhaube</name> <manufacturer>Neopreni</manufacturer> <model>Warmer Kopf</model> <!-- keine Seriennummer --> <purchase> <date> <year>1982</year><month>5</month><day>15</day><dayofweek>6</dayofweek> </date> <price currency="DM">30.00</price> <shop>Tauchterminal</shop> </purchase> <!-- kein Serviceinterval --> </variouspieces> </equipment>
Mittels <variouspiecesref ref="bezeichner_des_zu_referenzierenden_ausrüstungsteiles"/> wird auf die unter diesem Bezeichner gespeicherten Ausrüstungsteildaten zugegriffen. So kann z.B. bei einem Tauchgang genau die Ausrüstungskonfiguration angegeben werden.
<dive>
<dive>
(siehe auch <dive>)
<uddf version="2.2.0"> <generator> <!-- Information zur erzeugenden Software --> </generator> <diver> <owner id="o1"> <!-- Beschreibung des Besitzers der UDDF-Datei --> <equipment> <variouspieces id="meine_kopfhaube"> <!-- Beschreibung der Kopfhaube --> </variouspieces> <!-- Beschreibung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei --> </equipment> </owner> <buddy id="b1"> <!-- Beschreibung des ersten Tauchpartners --> </buddy> <!-- hier können weitere <buddy>-Elemente stehen, wenn notwendig --> </diver> <!-- hier können weitere Sektionen stehen --> <profiledata> <repetitiongroup> <dive id="dive-1"> <!-- Beschreibung des ersten Tauchganges --> <!-- Beschreibung der (Referenzierung auf die) verwendeten Ausrüstungsteile --> <!-- Kopfhaube: --> <variouspiecesref ref="meine_kopfhaube"/> <!-- hier Referenzierung auf weitere Ausrüstungsteile möglich --> </dive> <!-- hier Beschreibung weiterer Tauchgänge --> </repetitiongroup> <!-- hier können weitere <repetitiongroup>-Elemente stehen --> </profiledata> </uddf>
In <version> wird die Versionsnummer eines verwendeten Produktes (z.B. Tauchcomputer, Jacket, Software) angegeben.
<boots>, <buoyancycontroldevice>, <camera>, <compass>, <compressor>, <divecomputer>, <fins>, <gloves>, <knife>, <lead>, <light>, <mask>, <rebreather>, <regulator>, <scooter>, <suit>, <tank>, <variouspieces>, <videocamera>, <watch>
Innerhalb <vertebrata> werden alle gesichteten Wirbeltiere aufgelistet. <vertebrata> ist in weitere Elemente unterteilt.
Es gibt ein <vertebratavarious>-Element — falls die Zuordnung eines Wirbeltieres zu den anderen Elementen dieser Sektion nicht bekannt ist, muß es dort aufgeführt werden.
<fauna>
<amphibia> (Amphibien), <chondrichthyes> (Knorpelfische — Haie, Rochen), <mammalia> (Säugetiere), <osteichthyes> (Knochenfische), <reptilia> (Reptilien), <vertebratavarious> (sonstige, nicht oben aufgeführte)
<fauna>
(siehe auch <fauna>)
<vertebrata> <chondrichthyes> <!-- hier gesichtete Knorpelfische --> </chondrichthyes> <osteichthyes> <!-- hier gesichtete Knochenfische --> </osteichthyes> <mammalia> <!-- hier gesichtete Säugetiere --> </mammalia> <amphibia> <!-- hier gesichtete Amphibien --> </amphibia> <reptilia> <!-- hier gesichtete Reptilien --> </reptilia> <vertebratavarious> <!-- hier gesichtete Wirbeltiere, die nicht den obigen Ordnungen zugeschrieben werden können --> <!-- (nach Meinung des Beobachters) --> </vertebratavarious> </vertebrata>
Inhaltsverzeichnis
Folgende Elemente wurden in der Version 2.2.0 in ihrer Funktionalität geändert:
Reihenfolge der Haupt-Sektionen (<divetrip> verschoben) geändert:
<divetrip> mußte hinter <profiledata> gesetzt werden, damit innerhalb <divetrip> auf Tauchgänge referenziert werden kann, die in <profiledata> innerhalb der <repetitiongroup>-Sektionen gespeichert sind. In den vorherigen UDDF-Versionen fand fälschlicherweise eine Referenzierung auf Elemente statt, welche noch gar nicht "vorhanden" waren.
<divebase> : Attribut id hinzugefügt
<depth> : zugunsten größerer Flexibilität (u.a. bzgl. späterer Erweiterungen) wurden alle Attribute, die in der Version 2.1.0 eingeführt worden waren, entfernt und anstattdessen das Element <waypoint> neu eingeführt, worunter nun <depth> sowie die ehemaligen Attribute (<alarm>, <divetime> (vormals <time>-Attribut), <switchmix> und <temperature>) als eigenständige Elemente angesiedelt sind.
In allen näher spezifizierten Datumsangaben (<birthdate>, <enddate>, <issuedate>, <setdcdate>, <startdate>, <validdate>) werden nun nicht mehr Jahr, Monat, Tag sowie Tag der Woche direkt angegeben, sondern mittels <date> geklammert. Dies vereinheitlicht die Datumsangabe.
In allen näher spezifizierten Zeitangaben (<setdctime>, <setdcalarmtime>) werden nun nicht mehr Stunde und Minute direkt angegeben, sondern mittels <time> geklammert. Dies vereinheitlicht die Zeitangabe.
<text> — es kann nun nicht mehr einfach Text eingegeben werden, sondern dieser muß immer mittels <para> geklammert werden. Siehe auch <notes>.
Folgende Elemente wurden in der Version 2.2.0 umbenannt:
<mixchangeascent> → <mixchange>
<inputprofiledescent> → <inputprofile>
<pend> → <tankpressureend>
<preserve> → <tankpressurereserve>
<pstart> → <tankpressurebegin>
Folgende Elemente wurden in der Version 2.2.0 gelöscht:
<pfill> — die Funktion übernimmt nun <tankpressurebegin>
<setdcdecomodelname> — die Funktion übernimmt nun zusätzlich <name>
<students> — siehe nun das Element <student/> in der <buddy>-Sektion
Folgende Elemente wurden in der Version 2.2.0 neu eingeführt:
<averagevisibility> (siehe auch <sitedata>)
<diveduration> (siehe auch <setdcdivetimealarm>)
<maximumvisibility> (siehe auch <sitedata>)
<minimumvisibility> (siehe auch <sitedata>)
<temperature> (siehe <waypoint>)
<waypoint>
Alle Referenzier-Elemente werden nun explizit aufgeführt:
Folgende Elemente wurden in der Version 2.1.0 umbenannt:
<appdata> → <applicationdata>
<bcd> → <buoyancycontroldevice>
<bcv> → <breathingconsumptionvolume>
<bcvbegin> → <breathingconsumptionvolumebegin>
<bcvend> → <breathingconsumptionvolumeend>
<bcvstep> → <breathingconsumptionvolumestep>
<birth> → <birthdate>
<btmax> → <bottomtimemaximum>
<btmin> → <bottomtimeminimum>
<btstepbegin> → <bottomtimestepbegin>
<btstepend> → <bottomtimestepend>
<bttable> → <bottomtimetable>
<bttscope> → <bottomtimetablescope>
<calcbttable> → <calculatebottomtimetable>
<calcprofile> → <calculateprofile>
<calctable> → <calculatetable>
<computer> → <divecomputer>
<d> → <depth>
<ddbegin> → <divedepthbegin>
<ddend> → <divedepthend>
<ddstep> → <divedepthstep>
<depth> (setdcdivedepthalarm) -> <dcalarmdepth>
<dimension> → <shipdimension>
<dow> → <dayofweek>
<ead> → <equivalentairdepth>
<format> → <fileformat>
<gasdef> → <gasdefinitions>
<inputprofile> → <inputprofiledescent>
<logbookdata> → <profiledata>
<materialaluminium/>, <materialcarbon/>, <materialsteel/> -> <tankmaterial>
<maxascrate> → <maximumascendingrate>
<maxdepth> → <maximumdepth>
<maxpo2> → <maximumpo2>
<mindepth> → <minimumdepth>
<mixchange> → <mixchangeascent>
<mod> → <maximumoperationdepth>
<priceperliter> → <priceperlitre>
<repgroup> → <repetitiongroup>
<resultpassed/>, <resultnotpassed/> → <examinationresult>
<serialid> → <serialnumber>
<special> → <specialty>
<tscope> → <tablescope>
<tvbegin> → <tankvolumebegin>
<tvend> → <tankvolumeend>
<tvstep> → <tankvolumestep>
<wh> → <wayaltitude>
<zip> → <postcode>
Folgende Elemente wurden in der Version 2.1.0 gestrichen:
<ascent> (siehe jetzt <mixchangeascent>)
<datatrak>
<deltatime> (siehe jetzt <depth>)
<deltatimemode/> (siehe jetzt <depth>)
<faunavarious> (siehe <fauna>)
<setpo2> (siehe Attribute zu <depth>)
<switchmix> (siehe Attribute zu <depth>)
<t> (siehe Attribute zu <depth>)
<temperature> (siehe Attribute zu <depth>)
<timedepthmode/> (siehe jetzt <depth>)
<wt> (siehe jetzt Attribute zu <wayaltitude>)
Die Struktur von UDDF ist so ausgelegt, daß sie von Menschen gelesen und verstanden werden kann. Dennoch wird die Verarbeitung in der Regel maschinell mittels eines XML-Parsers erfolgen (welcher vom Anwenderprogramm verwendet wird, um die UDDF-Datei einzulesen). Zu diesem Zweck ist die UDDF-Struktur in einer Dokumenttyp-Definition (englisch Document Type Definition, kurz DTD) festgelegt.
Die Autoren empfehlen die Verwendung von validierenden XML-Parsern, die nicht nur die syntaktische Korrektheit der UDDF-Datei überprüfen, sondern auch die logische Struktur der Datei. Insbesondere sollte ein Test auf syntaktische und logische Korrektheit bei der Erzeugung der UDDF-Datei erfolgen (!!!), damit sichergestellt ist, daß die UDDF-Datei nachfolgend von anderen Programmen einwandfrei eingelesen werden kann.
Inhaltsverzeichnis
Version 1.2, November 2002
Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.
A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.
The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.
A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition.
The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.
State on the Title page the name of the publisher of the Modified Version, as the publisher.
Preserve all the copyright notices of the Document.
Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.
Include an unaltered copy of this License.
Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
reserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version.
Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section.
Preserve any Warranty Disclaimers.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements".
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.
If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.
To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:
Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this:
with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.
If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.