GEDCOM/Feldlängen
Name und Bedeutung
Feldlängen
Dieser Artikel behandelt das Thema der Feldlängen von Bestandteilen in einer GEDCOM-Datei.
Verwendung
Es geht um Mindestlängen und Maximallängen von Bestandteilen, Vorgaben des Standards und Empfehlungen
Formale Beschreibung zulässiger Werte
Aussagen des Standards
KONZEPTE
Eine GEDCOM Übertragung beinhaltet eine Datenbank in Form eines sequenziellen Datenstromes aus mit einander verbundenen Datensätzen. Ein Datensatz wird durch eine Abfolge von gekennzeichneten Zeilen variabler Länge repräsentiert, die in einer Hierarchie angeordnet sind.
GRAMMATIKREGELN
Lange Werte können in kürzere GEDCOM-Zeilen aufteilt werden, indem die untergeordneten Kennzeichen (Tags) CONC oder CONT benutzt werden. Das Kennzeichen CONC bedeutet, dass der untergeordnete Wert mit dem vorhergehenden ohne Zeilenumbruch zusammengefügt wird. Der Zeilenumbruch zwischen den beiden GEDCOM-Zeilen wird dabei ignoriert. Wenn eine Zeile an einem Leerzeichen aufgeteilt wird, muss dieses auf die Folgezeile übernommen werden. Das Kennzeichen CONT bedeutet, dass der Wert der Zeile mit der vorherigen zusammengefügt wird, nachdem ein Zeilenumbruch eingefügt wurde.
Logische Datensätze in GEDCOM sollten beschränkt werden, so dass sie in einen Speicherpuffer von weniger als 32K passen. GEDCOM-Dateien mit Datensätzen, die größer als 32K sind, laufen Gefahr, von einigen Programmen nicht verarbeitet werden zu können. Die Nutzung von Zeigern, insbesondere zu NOTE-Datensätzen sollten gewährleisten, dass diese Limitierung ausreichend ist.
Anmerkung des Übersetzers: Die Gefahr, Teile von Datensätzen aufgrund zu kleiner Lesepuffer zu verlieren ist historisch zu betrachten, und spielte auch 1999 keine praktische Rolle mehr.
Jede Längenbeschränkung wird in Zeichen angegeben, nicht Bytes. Wenn „wide characters“ (Zeichen, die breiter sind als 8 Bit) verwendet werden, sollten Pufferlängen entsprechend angepasst werden.
Die Querverweis-IDs haben eine maximale Länge von 22 Zeichen, inklusive der umrahmenden ‚at‘ Zeichen (@), und müssen innerhalb der GEDCOM-Übertragung eindeutig sein.
Die Länge eines GEDCOM Kennzeichens (Tags) ist auf 31 Zeichen beschränkt, wobei die ersten 15 eindeutig sein müssen.
Die Gesamtlänge einer GEDCOM-Zeile inklusive Ebenennummer, Querverweis-ID, Kennzeichen, Wert, Begrenzer und Zeilenabschluss darf 255 (wide) Zeichen nicht überschreiten.
SYNTAX DER GRAMMATIK
Obwohl formal definierte Kennzeichen nur drei oder vier Zeichen lang sind, sollten Systeme darauf vorbereitet sein, längere benutzerdefinierte Kennzeichen zu verarbeiten. Kennzeichen sind eindeutig innerhalb der ersten 15 Zeichen.
PRIMITIVE ELEMENTE
Die Feldgrößen zeigen die empfohlene Minimalgröße für Datenbanken, die längenbegrenzte Felder haben. Sie verstehen sich zusätzlich zu der Ebenennummer und dem Kennzeichen (Tag). GEDCOM-Zeilen sind auf 255 Zeichen begrenzt, jedoch können die CONC und CONT-Kennzeichen dazu benutzt werden, ein Feld über dieses Limit hinaus zu verlängern. Eine CONT-Zeile impliziert einen Zeilenumbruch, um die Formatierung zu erhalten. CONC impliziert die Verknüpfung mit dem vorherigen Zeilenwert ohne einen Zeilenumbruch. Dies wird genutzt, um den dynamischen Zeilenumbruch anhand der Größe eines Textfeldes zu ermöglichen, ohne feste Zeilenumbrüche vorzugeben. Die CONT und CONC-Kennzeichen werden genutzt, um textlich angegebene Werte zu erweitern. [Letzter Satz im englischen Original: The CONT and CONC tags are being used to extend specified textual values.]
Behandlung/Darstellung schwieriger Situationen
Vorschlag für Länge eines Zeilen_Wertes
Die GEDCOM-Zeile darf maximal 255 Zeichen lang sein. Darin sind alle Bestandteile der Zeile unterzubringen, von der einleitenden Ebenennummer angefangen bis hin zum abschliessenden Zeilenende.
Beispielzeile:
n Begrenzer TAGx Begrenzer Zeilen_Wert Zeilenende
So kann gerechnet werden:
- 255 Zeichen zulässig
- - 1 Zeichen für die Ebenennummer (diese kann die Werte kann 0 - 99 annehmen, bei größer 9 ist daher eine 2 einzusetzen)
- - 4 Zeichen für ein fest definiertes Kennzeichen (ggfs Länge des konkreten Kennzeichen einsetzen)
- - 2 Zeichen für die beiden Begrenzer
- - 2 Zeichen für das Zeilenende (sollte hier immer mit 2 angesetzt werden, damit ggfs ein Import in Systeme, die CR/LF verwenden, möglich bleibt)
- 246 Zeichen verbleiben für den Zeilen_Wert
Zeilen_Werte sollten daher auf 246 Zeichen begrenzt sein (ggfs noch ein längeres Kennzeichen berücksichtigen), um einen Import in möglichst viele Systeme zu gewährleisten. Längere Zeilen_Werte sollten nur dort zugelassen werden, wo mit CONC und/oder CONT umgebrochen wird.
Abweichungen vom Standard bei der Verwendung
- noch nicht belegt