next up previous contents index
Next: Fib-Elemente Up: Root-Element Previous: Identifier von verwendeten Datenbankobjekten   Contents   Index


Optionaler Teil

Der optionale Teil ist der letzte Teil eines root-Elements. Er sollte für die Darstellung des Multimediaobjekts keine wichtige Informationen enthalten, so dass er beim Abspeichern ganz weggelassen werden kann. Auf diese Weise kann Speicherplatz gespart werden.

Die Länge des optionale Teil ergibt sich aus der Differenz zwischen seinem Anfangsbyte und dem Ende des root-Elements (zum Offset siehe Überabschnitt 25.2 ab Seite [*]).

Eingeleitet wird der Optionale Teil durch eine 16 Bit natürliche Zahl $C$, welche die Kompressionsart des optionale Teils angibt. Mögliche Werte für die Kompressionsart $C$ sind in Tabelle 12 aufgeführt. Der restliche optionale Teil wird dann vollständig mit dem angegebenen Verfahren komprimiert.


Table 12: Komprimierungsarten
Wert $C$ Beschreibung
0 keine Komprimierung
1 Die Daten sind im zlib Format komprimiert. Dieser ist ein Warper (dokumentiert im RFC 1950) für einen Deflate Datenstrom (verlustlosen Datenkompression, dokumentiert in RFC 1951).


Der dekomprimierte optionale Teil besteht aus einer Liste von Key, Value-Paaren. Sie wird eingeleitet durch eine 64 Bit natürliche Zahl $N$, welche die Anzahl der Elemente in der Liste angibt. Als zweiter Parameter folgt eine 16 Bit natürliche Zahl, welche die Kodierungsart bestimmt. Mögliche Werte für die Kodierung sind in Tabelle 13 aufgeführt. Dabei sollte UTF-8 als Standardkodierung angesehen werden und andere Kodierungen nur gewählt werden, wenn UTF-8 nicht mehr ausreichend ist. Danach folgt die Liste mit den Paaren/ Elementen.

Jedes Listenelement (-Paar) enthält zwei nullterminierte Zeichenketten in der angegeben Kodierung. Die erste Zeichenkette ist dabei der Schlüssel/ Key des Elements und die zweite der Wert/ Value.


Table: Kodierungsarten für Zeichenketten
Name Wert Beschreibung
UTF-8 0 8-Bit Unicode Transformation Format
UTF-16 1 Universal Multiple-Octet Coded Character Set (UCS) Transformation Format for 16 Planes of Group 00
UTF-32 2 Unicode kodiert ein Zeichen mit 32 Bit


Aus dem Haupt-Fib-Objekt werden alle Texte aus den Anmerkungen (siehe Abschnitt 25.3.5 auf Seite [*] ) in den optionalen Teil verlagert. Die Anmerkungen enthalten auch Schlüssel ($Key$), Wert ($Value$)-Paare. Jedem dieser Schlüssel, Wert Paare aus den Anmerkungen wird eine natürliche Zahl $K$ zugeordnet (beginnend mit 0). Im optionalen Teil wird dann für das ausgelagerte Paar ein eigener Listeneintrag generiert. Dabei ist der Schlüssel des Listeneintrags "@" gefolgt von der der Nummer der Anmerkung $A$, dann folgt wieder ein "@" und danach der ursprünglich Schlüssel ($Key$) der Anmerkung. Der Wert des generierten Listeneintrag ist gleich dem Wert aus der Anmerkung. Wenn also das Schlüssel, Wert Paar in der $A$'ten Anmerkung $(Key, Value)$ ist, ist der Eintrag im optionalen Teil dafür $(@A@Key, Value)$ .

Beispiel: Die 2. Anmerkung ist: "c( "autor","ich", Obj)", der daraus generierte Listeneintrag im optionalen Teil ist: "( "@2@autor","ich")".

Ausgelagerte Texte sollten am Ende des optionalen Teils stehen.


next up previous contents index
Next: Fib-Elemente Up: Root-Element Previous: Identifier von verwendeten Datenbankobjekten   Contents   Index
Betti Österholz 2013-02-13