Gedcom_val
type of the xref
argument in the header
start callback.Record |
Meaning |
Possiblexref types |
REC_HEAD |
The header of the GEDCOM file |
NULL |
REC_FAM |
A record describing a family |
STRING |
REC_INDI |
A record describing an individual |
STRING |
REC_OBJE |
A record describing a multimedia object |
STRING |
REC_NOTE |
A record describing a note |
STRING |
REC_REPO |
A record describing a source repository |
STRING |
REC_SOUR |
A record describing a source |
STRING |
REC_SUBN |
A record describing the submission |
STRING |
REC_SUBM |
A record describing the submitter |
STRING |
REC_USER |
An application-specific record (the tag
in the start callback contains the actually used tag). |
NULL STRING |
Gedcom_val
type of the val
argument in the element
start callback.Element |
Possible tags |
Used within |
Possibleval types |
ELT_HEAD_SOUR |
SOUR |
REC_HEAD |
STRING |
ELT_HEAD_SOUR_VERS |
VERS |
ELT_HEAD_SOUR |
STRING |
ELT_HEAD_SOUR_NAME |
NAME |
ELT_HEAD_SOUR |
STRING |
ELT_HEAD_SOUR_CORP |
CORP |
ELT_HEAD_SOUR |
STRING |
ELT_HEAD_SOUR_DATA |
DATA |
ELT_HEAD_SOUR |
STRING |
ELT_HEAD_SOUR_DATA_DATE |
DATE |
ELT_HEAD_SOUR_DATA |
DATE |
ELT_HEAD_SOUR_DATA_COPR |
COPR |
ELT_HEAD_SOUR_DATA |
STRING |
ELT_HEAD_DEST |
DEST |
REC_HEAD |
STRING |
ELT_HEAD_DATE |
DATE |
REC_HEAD |
DATE |
ELT_HEAD_DATE_TIME |
TIME |
ELT_HEAD_DATE |
STRING |
ELT_HEAD_SUBM |
SUBM |
REC_HEAD |
STRING |
ELT_HEAD_SUBN |
SUBN |
REC_HEAD |
STRING |
ELT_HEAD_FILE |
FILE |
REC_HEAD |
STRING |
ELT_HEAD_COPR |
COPR |
REC_HEAD |
STRING |
ELT_HEAD_GEDC |
GEDC |
REC_HEAD |
NULL |
ELT_HEAD_GEDC_VERS |
VERS |
ELT_HEAD_GEDC |
STRING |
ELT_HEAD_GEDC_FORM |
FORM |
ELT_HEAD_GEDC |
STRING |
ELT_HEAD_CHAR |
CHAR |
REC_HEAD |
STRING |
ELT_HEAD_CHAR_VERS |
VERS |
ELT_HEAD_CHAR |
STRING |
ELT_HEAD_LANG |
LANG |
REC_HEAD |
STRING |
ELT_HEAD_PLAC |
PLAC |
REC_HEAD |
NULL |
ELT_HEAD_PLAC_FORM |
FORM |
ELT_HEAD_PLAC |
STRING |
ELT_HEAD_NOTE |
NOTE |
REC_HEAD |
STRING |
ELT_FAM_HUSB |
HUSB |
REC_FAM |
STRING |
ELT_FAM_WIFE |
WIFE |
REC_FAM |
STRING |
ELT_FAM_CHIL |
CHIL |
REC_FAM |
STRING |
ELT_FAM_NCHI |
NCHI |
REC_FAM |
STRING |
ELT_FAM_SUBM |
SUBM |
REC_FAM |
STRING |
ELT_INDI_RESN |
RES N |
REC_INDI |
STRING |
ELT_INDI_SEX |
SEX |
REC_INDI |
STRING |
ELT_INDI_SUBM |
SUBM |
REC_INDI |
STRING |
ELT_INDI_ALIA |
ALIA |
REC_INDI |
STRING |
ELT_INDI_ANCI |
ANCI |
REC_INDI |
STRING |
ELT_INDI_DESI |
DESI |
REC_INDI |
STRING |
ELT_INDI_RFN |
RFN |
REC_INDI |
STRING |
ELT_INDI_AFN |
AFN |
REC_INDI |
STRING |
ELT_OBJE_FORM |
FORM |
REC_OBJE |
STRING |
ELT_OBJE_TITL |
TITL |
REC_OBJE |
STRING |
ELT_OBJE_BLOB |
BLOB |
REC_OBJE |
NULL |
ELT_OBJE_BLOB_CONT |
CONT |
ELT_OBJE_BLOB |
STRING |
ELT_OBJE_OBJE |
OBJE |
REC_OBJE |
STRING |
ELT_REPO_NAME |
NAME |
REC_REPO |
STRING |
ELT_SOUR_DATA |
DATA |
REC_SOUR |
NULL |
ELT_SOUR_DATA_EVEN |
EVEN |
ELT_SOUR_DATA |
STRING |
ELT_SOUR_DATA_EVEN_DATE |
DATE |
ELT_SOUR_DATA_EVEN |
DATE |
ELT_SOUR_DATA_EVEN_PLAC |
PLAC |
ELT_SOUR_DATA_EVEN |
STRING |
ELT_SOUR_DATA_AGNC |
AGNC |
ELT_SOUR_DATA |
STRING |
ELT_SOUR_AUTH |
AUTH |
REC_SOUR |
STRING |
ELT_SOUR_TITL |
TITL |
REC_SOUR |
STRING |
ELT_SOUR_ABBR |
ABBR |
REC_SOUR |
STRING |
ELT_SOUR_PUBL |
PUBL |
REC_SOUR |
STRING |
ELT_SOUR_TEXT |
TEXT |
REC_SOUR |
STRING |
ELT_SUBN_SUBM |
SUBM |
REC_SUBN |
STRING |
ELT_SUBN_FAMF |
FAMF |
REC_SUBN |
STRING |
ELT_SUBN_TEMP |
TEMP |
REC_SUBN |
STRING |
ELT_SUBN_ANCE |
ANCE |
REC_SUBN |
STRING |
ELT_SUBN_DESC |
DESC |
REC_SUBN |
STRING |
ELT_SUBN_ORDI |
ORDI |
REC_SUBN |
STRING |
ELT_SUBN_RIN |
RIN |
REC_SUBN |
STRING |
ELT_SUBM_NAME |
NAME |
REC_SUBM |
STRING |
ELT_SUBM_LANG |
LANG |
REC_SUBM |
STRING |
ELT_SUBM_RFN |
RFN |
REC_SUBM |
STRING |
ELT_SUBM_RIN |
RIN |
REC_SUBM |
STRING |
ELT_SUB_ADDR |
ADDR |
ELT_HEAD_SOUR_CORP, ELT_SUB_FAM_EVT ,ELT_SUB_FAM_EVT_EVEN, |
STRING |
ELT_SUB_ADDR_CONT |
CONT |
ELT_SUB_ADDR |
STRING |
ELT_SUB_ADDR_ADR1 |
ADR1 |
ELT_SUB_ADDR |
STRING |
ELT_SUB_ADDR_ADR2 |
ADR2 |
ELT_SUB_ADDR |
STRING |
ELT_SUB_ADDR_CITY |
CITY |
ELT_SUB_ADDR |
STRING |
ELT_SUB_ADDR_STAE |
STAE |
ELT_SUB_ADDR |
STRING |
ELT_SUB_ADDR_POST |
POST |
ELT_SUB_ADDR |
STRING |
ELT_SUB_ADDR_CTRY |
CTRY |
ELT_SUB_ADDR |
STRING |
ELT_SUB_PHON |
PHON |
ELT_HEAD_SOUR_CORP, ELT_SUB_FAM_EVT, ELT_SUB_FAM_EVT_EVEN, |
STRING |
ELT_SUB_ASSO |
ASSO |
REC_INDI |
STRING |
ELT_SUB_ASSO_TYPE |
TYPE |
ELT_SUB_ASSO |
STRING |
ELT_SUB_ASSO_RELA |
RELA |
ELT_SUB_ASSO |
STRING |
ELT_SUB_CHAN |
CHAN |
REC_FAM, REC_INDI, |
NULL |
ELT_SUB_CHAN_DATE |
DATE |
ELT_SUB_CHAN |
DATE |
ELT_SUB_CHAN_TIME |
TIME |
ELT_SUB_CHAN_DATE |
STRING |
ELT_SUB_FAMC |
FAMC |
REC_INDI |
STRING |
ELT_SUB_FAMC_PEDI |
PEDI |
ELT_SUB_FAMC |
STRING |
ELT_SUB_CONT |
CONT |
ELT_HEAD_NOTE, REC_NOTE, |
STRING |
ELT_SUB_CONC |
CONC |
ELT_HEAD_NOTE, REC_NOTE, |
STRING |
ELT_SUB_EVT_TYPE |
TYPE |
ELT_SUB_FAM_EVT, ELT_SUB_FAM_EVT_EVEN, |
STRING |
ELT_SUB_EVT_DATE |
DATE |
ELT_SUB_FAM_EVT ,ELT_SUB_FAM_EVT_EVEN, , |
DATE |
ELT_SUB_EVT_AGE |
AGE |
ELT_SUB_FAM_EVT, ELT_SUB_FAM_EVT_EVEN, , |
STRING |
ELT_SUB_EVT_AGNC |
AGNC |
ELT_SUB_FAM_EVT, ELT_SUB_FAM_EVT_EVEN, , |
STRING |
ELT_SUB_EVT_CAUS |
CAUS |
ELT_SUB_FAM_EVT, ELT_SUB_FAM_EVT_EVEN, , |
STRING |
ELT_SUB_FAM_EVT |
ANUL, CENS, DIV, |
REC_FAM |
NULL |
ELT_SUB_FAM_EVT_HUSB |
HUSB |
ELT_SUB_FAM_EVT ,ELT_SUB_FAM_EVT_EVEN |
NULL |
ELT_SUB_FAM_EVT_WIFE |
WIFE |
ELT_SUB_FAM_EVT ,ELT_SUB_FAM_EVT_EVEN |
NULL |
ELT_SUB_FAM_EVT_AGE |
AGE |
ELT_SUB_FAM_EVT_HUSB ,ELT_SUB_FAM_EVT_WIFE |
STRING |
ELT_SUB_FAM_EVT_EVEN |
EVEN |
REC_FAM |
NULL |
ELT_SUB_IDENT_REFN |
REFN |
REC_FAM, REC_INDI, |
STRING |
ELT_SUB_IDENT_REFN_TYPE |
TYPE |
ELT_SUB_IDENT_REFN |
STRING |
ELT_SUB_IDENT_RIN |
RIN |
REC_FAM, REC_INDI, |
STRING |
ELT_SUB_INDIV_ATTR |
CAST, DSCR, EDUC, |
REC_INDI |
STRING |
ELT_SUB_INDIV_RESI |
RESI |
REC_INDI |
NULL |
ELT_SUB_INDIV_BIRT |
BIRT, CHR |
REC_INDI |
NULL |
ELT_SUB_INDIV_BIRT_FAMC |
FAMC |
ELT_SUB_INDIV_BIRT |
STRING |
ELT_SUB_INDIV_GEN |
DEAT, BURI, CREM, |
REC_INDI |
NULL |
ELT_SUB_INDIV_ADOP |
ADOP |
REC_INDI |
NULL |
ELT_SUB_INDIV_ADOP_FAMC |
FAMC |
ELT_SUB_INDIV_ADOP |
STRING |
ELT_SUB_INDIV_ADOP_FAMC_ADOP |
ADOP |
ELT_SUB_INDIV_ADOP_FAMC |
STRING |
ELT_SUB_INDIV_EVEN |
EVEN |
REC_INDI |
NULL |
ELT_SUB_LIO_BAPL |
BAPL, CONL, ENDL |
REC_INDI |
NULL |
ELT_SUB_LIO_BAPL_STAT |
STAT |
ELT_SUB_LIO_BAPL, |
STRING |
ELT_SUB_LIO_BAPL_DATE |
DATE |
ELT_SUB_LIO_BAPL , |
DATE |
ELT_SUB_LIO_BAPL_TEMP |
TEMP |
ELT_SUB_LIO_BAPL , |
STRING |
ELT_SUB_LIO_BAPL_PLAC |
PLAC |
ELT_SUB_LIO_BAPL , |
STRING |
ELT_SUB_LIO_SLGC |
SLGC |
REC_INDI |
NULL |
ELT_SUB_LIO_SLGC_FAMC |
FAMC |
ELT_SUB_LIO_SLGC |
STRING |
ELT_SUB_LSS_SLGS |
SLGS |
REC_FAM |
NULL |
ELT_SUB_LSS_SLGS_STAT |
STAT |
ELT_SUB_LSS_SLGS |
STRING |
ELT_SUB_LSS_SLGS_DATE |
DATE |
ELT_SUB_LSS_SLGS |
DATE |
ELT_SUB_LSS_SLGS_TEMP |
TEMP |
ELT_SUB_LSS_SLGS |
STRING |
ELT_SUB_LSS_SLGS_PLAC |
PLAC |
ELT_SUB_LSS_SLGS |
STRING |
ELT_SUB_MULTIM_OBJE |
OBJE |
REC_FAM, REC_INDI, ELT_SUB_FAM_EVT, , |
NULL |
ELT_SUB_MULTIM_OBJE_FORM |
FORM |
ELT_SUB_MULTIM_OBJE |
STRING |
ELT_SUB_MULTIM_OBJE_TITL |
TITL |
ELT_SUB_MULTIM_OBJE |
STRING |
ELT_SUB_MULTIM_OBJE_FILE |
FILE |
ELT_SUB_MULTIM_OBJE |
STRING |
ELT_SUB_NOTE |
NOTE |
REC_FAM, REC_INDI, ELT_SUB_FAM_EVT, , |
NULL |
ELT_SUB_PERS_NAME |
NAME |
REC_INDI |
STRING |
ELT_SUB_PERS_NAME_NPFX |
NPFX |
ELT_SUB_PERS_NAME |
STRING |
ELT_SUB_PERS_NAME_GIVN |
GIVN |
ELT_SUB_PERS_NAME |
STRING |
ELT_SUB_PERS_NAME_NICK |
NICK |
ELT_SUB_PERS_NAME |
STRING |
ELT_SUB_PERS_NAME_SPFX |
SPFX |
ELT_SUB_PERS_NAME |
STRING |
ELT_SUB_PERS_NAME_SURN |
SURN |
ELT_SUB_PERS_NAME |
STRING |
ELT_SUB_PERS_NAME_NSFX |
NSFX |
ELT_SUB_PERS_NAME |
STRING |
ELT_SUB_PLAC |
PLAC |
ELT_SUB_FAM_EVT ,ELT_SUB_FAM_EVT_EVEN, |
STRING |
ELT_SUB_PLAC_FORM |
FORM |
ELT_SUB_PLAC |
STRING |
ELT_SUB_SOUR |
SOUR |
REC_FAM, REC_INDI, ELT_SUB_FAM_EVT, ELT_SUB_FAM_EVT_EVEN, , |
STRING |
ELT_SUB_SOUR_PAGE |
PAGE |
ELT_SUB_SOUR |
STRING |
ELT_SUB_SOUR_EVEN |
EVEN |
ELT_SUB_SOUR |
STRING |
ELT_SUB_SOUR_EVEN_ROLE |
ROLE |
ELT_SUB_SOUR_EVEN |
STRING |
ELT_SUB_SOUR_DATA |
DATA |
ELT_SUB_SOUR |
NULL |
ELT_SUB_SOUR_DATA_DATE |
DATE |
ELT_SUB_SOUR_DATA |
DATE |
ELT_SUB_SOUR_TEXT |
TEXT |
ELT_SUB_SOUR |
STRING |
ELT_SUB_SOUR_QUAY |
QUAY |
ELT_SUB_SOUR |
STRING |
ELT_SUB_REPO |
REPO |
REC_SOUR |
STRING |
ELT_SUB_REPO_CALN |
CALN |
ELT_SUB_REPO |
STRING |
ELT_SUB_REPO_CALN_MEDI |
MEDI |
ELT_SUB_REPO_CALN |
STRING |
ELT_SUB_FAMS |
FAMS |
REC_INDI |
STRING |
ELT_USER |
any tag starting |
anywhere |
NULL |
Gedcom_val
types are (with
val
of type Gedcom_val
):type checker |
cast operator |
|
null value |
GEDCOM_IS_NULL(val) |
N/A |
string |
GEDCOM_IS_STRING(val) |
char* str = GEDCOM_STRING(val); |
date |
GEDCOM_IS_DATE(val) |
struct date_value dv = GEDCOM_DATE(val); |
It depends on the first member, the type, which members are actually relevant:struct date_value {
Date_value_type type;
struct date date1;
struct date date2;
char phrase[MAX_PHRASE_LEN + 1];
};
Date_value_type |
Meaning |
Relevant members |
DV_NO_MODIFIER |
just a simple date |
date1 |
DV_BEFORE |
a range (BEFORE date1) |
date1 |
DV_AFTER |
a range (AFTER date1) |
date1 |
DV_BETWEEN |
a range (BETWEEN date1 AND date2) |
date1, date2 |
DV_FROM |
a period (FROM date1) |
date1 |
DV_TO |
a period (TO date1) |
date1 |
DV_FROM_TO |
a period (FROM date1 TO date2) |
date1, date2 |
DV_ABOUT |
an approximation (ABOUT date1) |
date1 |
DV_CALCULATED |
an approximation (CALCULATED date1) |
date1 |
DV_ESTIMATED |
an approximation (ESTIMATED date1) |
date1 |
DV_INTERPRETED |
INTERPRETED date1 FROM a given free form date
phrase |
date1, phrase |
DV_PHRASE |
a free form date phrase |
phrase |
date1
and date2
also have a strict syntax:The first four fields are the primary fields parsed from the value in the GEDCOM file. Thestruct date {
Calendar_type cal;
char day_str[MAX_DAY_LEN + 1];
char month_str[MAX_MONTH_LEN + 1];
char year_str[MAX_YEAR_LEN + 1];
int day;
int month;
int year;
Year_type year_type;
Date_type type;
long int sdn1;
long int sdn2;
};
day_str
, month_str
and year_str
are the literal parts of the date that denote
the day, month and year (the day_str
and month_str
can be empty) . The calendar type cal
is one of (see
calendar overview LINK TBD):CAL_GREGORIAN
: the Gregorian calendarCAL_JULIAN
: the Julian calendarCAL_HEBREW
: the Hebrew (Jewish) calendarCAL_FRENCH_REV
: the calendar used after the French
RevolutionCAL_UNKNOWN
: an unknown calendar typeday
is just the numeric representation of the
day_str
(starting from 1), -1 if the day_str
is emptymonth
is the month number of month_str
in the given calendar type (also starting from 1), -1 if the month_str
is emptyyear
is the numeric representation of the
year_str
year_str
is given as e.g. "1677/78".
This is coming from a date in a so called "annunciation style", where
the year began on 25 March: "20 March 1677/78" is 20 March 1677 in "annunciation
style" and 20 March 1678 in "circumcision style" (the current style). See
calendar overview (LINK TBD).year
will contain the "circumcision style"
year (1678 in the example), and year_type
will be YEAR_DOUBLE.
Normal dates will have a year_type
equal to
YEAR_SINGLE
.These are represented by a serial day number insdn1
and aDate_type
equal toDATE_EXACT
.
These are represented by 2 serial day numbers (sdn1
andsdn2
) and aDate_type
equal toDATE_BOUNDED
.
For example, the Gregorian date "MAR 1990" is represented by the serial day numbers for "1 MAR 1990" and "31 MAR 1990", and the Gregorian date "1990" is represented by the serial day numbers for "1 JAN 1990" and "31 DEC 1990". Similarly for the other calendar types.
$Id$
$Name$