1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Libgedcom interface details</title>
4 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"></head><body text="#000000" bgcolor="#ffffff" link="#000099" vlink="#990099" alink="#000099">
6 <h1 align="center">Libgedcom interface details</h1>
12 <li><a href="#Record_identifiers">Record identifiers</a></li>
13 <li><a href="#Element_identifiers">Element identifiers</a></li>
14 <li><a href="#Gedcom_val_types">Gedcom_val types</a></li>
17 <li><a href="#date_value">struct date_value</a></li>
18 <li><a href="#date">struct date</a></li><li><a href="#age_value">struct age_value</a><br>
21 <li><a href="#xref_value">struct xref_value</a><br>
29 <hr width="100%" size="2">
30 <h2><a name="Record_identifiers"></a>Record identifiers</h2>
31 The following table describes the identifiers to be used in the record
32 callbacks. The last columns gives the <a href="#Gedcom_val_types"><code>
33 Gedcom_val</code> type</a> of the <code>xref</code> and <code>
34 val</code><code> </code> arguments in the header start callback.<br>
37 <table width="100%" border="1" cellspacing="2" cellpadding="2">
40 <td valign="top" align="center"><b>Record</b><br>
42 <td valign="top" align="center"><b>Meaning</b><br>
44 <td valign="top" align="center"><b>Possible<br>
45 <code>xref</code> types</b><br>
47 <td valign="top" align="center"><b>Possible<br>
48 <code>val</code> types<br>
53 <td valign="top"><code>REC_HEAD</code><br>
55 <td valign="top">The header of the GEDCOM file<br>
57 <td valign="top"><code>NULL</code><br>
59 <td valign="top"><code>NULL</code><br>
63 <td valign="top"><code>REC_FAM</code><br>
65 <td valign="top">A record describing a family<br>
67 <td valign="top"><code>XREF_PTR(FAM)</code><br>
69 <td valign="top"><code>NULL</code><br>
73 <td valign="top"><code>REC_INDI</code><br>
75 <td valign="top">A record describing an individual<br>
77 <td valign="top"><code>XREF_PTR(INDI)</code><br>
79 <td valign="top"><code>NULL</code><br>
83 <td valign="top"><code>REC_OBJE</code><br>
85 <td valign="top">A record describing a multimedia object<br>
87 <td valign="top"><code>XREF_PTR(OBJE)</code><br>
89 <td valign="top"><code>NULL</code><br>
93 <td valign="top"><code>REC_NOTE</code><br>
95 <td valign="top">A record describing a note<br>
97 <td valign="top"><code>XREF_PTR(NOTE)</code><br>
99 <td valign="top"><code>STRING</code><br>
103 <td valign="top"><code>REC_REPO</code><br>
105 <td valign="top">A record describing a source repository<br>
107 <td valign="top"><code>XREF_PTR(REPO)</code><br>
109 <td valign="top"><code>NULL</code><br>
113 <td valign="top"><code>REC_SOUR</code><br>
115 <td valign="top">A record describing a source<br>
117 <td valign="top"><code>XREF_PTR(SOUR)</code><br>
119 <td valign="top"><code>NULL</code><br>
123 <td valign="top"><code>REC_SUBN</code><br>
125 <td valign="top">A record describing the submission<br>
127 <td valign="top"><code>XREF_PTR(SUBN)</code><br>
129 <td valign="top"><code>NULL</code><br>
133 <td valign="top"><code>REC_SUBM</code><br>
135 <td valign="top">A record describing the submitter<br>
137 <td valign="top"><code>XREF_PTR(SUBM</code>)<br>
139 <td valign="top"><code>NULL</code><br>
143 <td valign="top"><code>REC_USER</code><br>
145 <td valign="top">An application-specific record (the <code>tag</code>
146 in the start callback contains the actually used tag).<br>
148 <td valign="top"><code>NULL<br>
152 <td valign="top"><code>NULL<br>
154 XREF_PTR(USER)</code><br>
161 <hr width="100%" size="2">
162 <h2><a name="Element_identifiers"></a>Element identifiers</h2>
163 The following table describes the identifiers to be used in the element
164 callbacks. The last column gives the <a href="file:///home/verthezp/src/external/gedcom-parse/doc/interface.html#Gedcom_val_types"><code>
165 Gedcom_val</code> type</a> of the <code>val</code> argument in the
166 element start callback.<br>
169 <table cellpadding="2" cellspacing="2" border="1" width="100%">
172 <td valign="top" align="center"><b>Element</b><br>
174 <td valign="top" align="center"><b>Possible<br>
178 <td valign="top" align="center"><b>Used within</b><br>
180 <td valign="top" align="center"><b>Possible<br>
181 <code>val</code> types<br>
186 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
188 <td valign="top"><code>SOUR</code><br>
190 <td valign="top"><code>REC_HEAD</code><br>
192 <td valign="top"><code>STRING</code><br>
196 <td valign="top"><code>ELT_HEAD_SOUR_VERS</code><br>
198 <td valign="top"><code>VERS</code><br>
200 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
202 <td valign="top"><code>STRING</code><br>
206 <td valign="top"><code>ELT_HEAD_SOUR_NAME</code><br>
208 <td valign="top"><code>NAME</code><br>
210 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
212 <td valign="top"><code>STRING</code><br>
216 <td valign="top"><code>ELT_HEAD_SOUR_CORP</code><br>
218 <td valign="top"><code>CORP</code><br>
220 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
222 <td valign="top"><code>STRING</code><br>
226 <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
228 <td valign="top"><code>DATA</code><br>
230 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
232 <td valign="top"><code>STRING</code><br>
236 <td valign="top"><code>ELT_HEAD_SOUR_DATA_DATE</code><br>
238 <td valign="top"><code>DATE</code><br>
240 <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
242 <td valign="top"><code>DATE</code><br>
246 <td valign="top"><code>ELT_HEAD_SOUR_DATA_COPR</code><br>
248 <td valign="top"><code>COPR</code><br>
250 <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
252 <td valign="top"><code>STRING</code><br>
256 <td valign="top"><code>ELT_HEAD_DEST</code><br>
258 <td valign="top"><code>DEST</code><br>
260 <td valign="top"><code>REC_HEAD</code><br>
262 <td valign="top"><code>STRING</code><br>
266 <td valign="top"><code>ELT_HEAD_DATE</code><br>
268 <td valign="top"><code>DATE</code><br>
270 <td valign="top"><code>REC_HEAD</code><br>
272 <td valign="top"><code>DATE</code><br>
276 <td valign="top"><code>ELT_HEAD_DATE_TIME</code><br>
278 <td valign="top"><code>TIME</code><br>
280 <td valign="top"><code>ELT_HEAD_DATE</code><br>
282 <td valign="top"><code>STRING</code><br>
286 <td valign="top"><code>ELT_HEAD_SUBM</code><br>
288 <td valign="top"><code>SUBM</code><br>
290 <td valign="top"><code>REC_HEAD</code><br>
292 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
296 <td valign="top"><code>ELT_HEAD_SUBN</code><br>
298 <td valign="top"><code>SUBN</code><br>
300 <td valign="top"><code>REC_HEAD</code><br>
302 <td valign="top"><code>XREF_PTR(SUBN)</code><br>
306 <td valign="top"><code>ELT_HEAD_FILE</code><br>
308 <td valign="top"><code>FILE</code><br>
310 <td valign="top"><code>REC_HEAD</code><br>
312 <td valign="top"><code>STRING</code><br>
316 <td valign="top"><code>ELT_HEAD_COPR</code><br>
318 <td valign="top"><code>COPR</code><br>
320 <td valign="top"><code>REC_HEAD</code><br>
322 <td valign="top"><code>STRING</code><br>
326 <td valign="top"><code>ELT_HEAD_GEDC</code><br>
328 <td valign="top"><code>GEDC</code><br>
330 <td valign="top"><code>REC_HEAD</code><br>
332 <td valign="top"><code>NULL</code><br>
336 <td valign="top"><code>ELT_HEAD_GEDC_VERS</code><br>
338 <td valign="top"><code>VERS</code><br>
340 <td valign="top"><code>ELT_HEAD_GEDC</code><br>
342 <td valign="top"><code>STRING</code><br>
346 <td valign="top"><code>ELT_HEAD_GEDC_FORM</code><br>
348 <td valign="top"><code>FORM</code><br>
350 <td valign="top"><code>ELT_HEAD_GEDC</code><br>
352 <td valign="top"><code>STRING</code><br>
356 <td valign="top"><code>ELT_HEAD_CHAR</code><br>
358 <td valign="top"><code>CHAR</code><br>
360 <td valign="top"><code>REC_HEAD</code><br>
362 <td valign="top"><code>STRING</code><br>
366 <td valign="top"><code>ELT_HEAD_CHAR_VERS</code><br>
368 <td valign="top"><code>VERS</code><br>
370 <td valign="top"><code>ELT_HEAD_CHAR</code><br>
372 <td valign="top"><code>STRING</code><br>
376 <td valign="top"><code>ELT_HEAD_LANG</code><br>
378 <td valign="top"><code>LANG</code><br>
380 <td valign="top"><code>REC_HEAD</code><br>
382 <td valign="top"><code>STRING</code><br>
386 <td valign="top"><code>ELT_HEAD_PLAC</code><br>
388 <td valign="top"><code>PLAC</code><br>
390 <td valign="top"><code>REC_HEAD</code><br>
392 <td valign="top"><code>NULL</code><br>
396 <td valign="top"><code>ELT_HEAD_PLAC_FORM</code><br>
398 <td valign="top"><code>FORM</code><br>
400 <td valign="top"><code>ELT_HEAD_PLAC</code><br>
402 <td valign="top"><code>STRING</code><br>
406 <td valign="top"><code>ELT_HEAD_NOTE</code><br>
408 <td valign="top"><code>NOTE</code><br>
410 <td valign="top"><code>REC_HEAD</code><br>
412 <td valign="top"><code>STRING</code><br>
416 <td valign="top"><code>ELT_FAM_HUSB</code><br>
418 <td valign="top"><code>HUSB</code><br>
420 <td valign="top"><code>REC_FAM</code><br>
422 <td valign="top"><code>XREF_PTR(INDI)</code><br>
426 <td valign="top"><code>ELT_FAM_WIFE</code><br>
428 <td valign="top"><code>WIFE</code><br>
430 <td valign="top"><code>REC_FAM</code><br>
432 <td valign="top"><code>XREF_PTR(INDI)</code><br>
436 <td valign="top"><code>ELT_FAM_CHIL</code><br>
438 <td valign="top"><code>CHIL</code><br>
440 <td valign="top"><code>REC_FAM</code><br>
442 <td valign="top"><code>XREF_PTR(INDI)</code><br>
446 <td valign="top"><code>ELT_FAM_NCHI</code><br>
448 <td valign="top"><code>NCHI</code><br>
450 <td valign="top"><code>REC_FAM</code><br>
452 <td valign="top"><code>STRING</code><br>
456 <td valign="top"><code>ELT_FAM_SUBM</code><br>
458 <td valign="top"><code>SUBM</code><br>
460 <td valign="top"><code>REC_FAM</code><br>
462 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
466 <td valign="top"><code>ELT_INDI_RESN</code><br>
468 <td valign="top"><code>RES</code><code>N</code><br>
470 <td valign="top"><code>REC_INDI</code><br>
472 <td valign="top"><code>STRING</code><br>
476 <td valign="top"><code>ELT_INDI_SEX</code><br>
478 <td valign="top"><code>SEX</code><br>
480 <td valign="top"><code>REC_INDI</code><br>
482 <td valign="top"><code>STRING</code><br>
486 <td valign="top"><code>ELT_INDI_SUBM</code><br>
488 <td valign="top"><code>SUBM</code><br>
490 <td valign="top"><code>REC_INDI</code><br>
492 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
496 <td valign="top"><code>ELT_INDI_ALIA</code><br>
498 <td valign="top"><code>ALIA</code><br>
500 <td valign="top"><code>REC_INDI</code><br>
502 <td valign="top"><code>XREF_PTR(INDI)</code><br>
506 <td valign="top"><code>ELT_INDI_ANCI</code><br>
508 <td valign="top"><code>ANCI</code><br>
510 <td valign="top"><code>REC_INDI</code><br>
512 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
516 <td valign="top"><code>ELT_INDI_DESI</code><br>
518 <td valign="top"><code>DESI</code><br>
520 <td valign="top"><code>REC_INDI</code><br>
522 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
526 <td valign="top"><code>ELT_INDI_RFN</code><br>
528 <td valign="top"><code>RFN</code><br>
530 <td valign="top"><code>REC_INDI</code><br>
532 <td valign="top"><code>STRING</code><br>
536 <td valign="top"><code>ELT_INDI_AFN</code><br>
538 <td valign="top"><code>AFN</code><br>
540 <td valign="top"><code>REC_INDI</code><br>
542 <td valign="top"><code>STRING</code><br>
546 <td valign="top"><code>ELT_OBJE_FORM</code><br>
548 <td valign="top"><code>FORM</code><br>
550 <td valign="top"><code>REC_OBJE</code><br>
552 <td valign="top"><code>STRING</code><br>
556 <td valign="top"><code>ELT_OBJE_TITL</code><br>
558 <td valign="top"><code>TITL</code><br>
560 <td valign="top"><code>REC_OBJE</code><br>
562 <td valign="top"><code>STRING</code><br>
566 <td valign="top"><code>ELT_OBJE_BLOB</code><br>
568 <td valign="top"><code>BLOB</code><br>
570 <td valign="top"><code>REC_OBJE</code><br>
572 <td valign="top"><code>NULL</code><br>
576 <td valign="top"><code>ELT_OBJE_BLOB_CONT</code><br>
578 <td valign="top"><code>CONT</code><br>
580 <td valign="top"><code>ELT_OBJE_BLOB</code><br>
582 <td valign="top"><code>STRING</code><br>
586 <td valign="top"><code>ELT_OBJE_OBJE</code><br>
588 <td valign="top"><code>OBJE</code><br>
590 <td valign="top"><code>REC_OBJE</code><br>
592 <td valign="top"><code>XREF_PTR(OBJE)</code><br>
596 <td valign="top"><code>ELT_REPO_NAME</code><br>
598 <td valign="top"><code>NAME</code><br>
600 <td valign="top"><code>REC_REPO</code><br>
602 <td valign="top"><code>STRING</code><br>
606 <td valign="top"><code>ELT_SOUR_DATA</code><br>
608 <td valign="top"><code>DATA</code><br>
610 <td valign="top"><code>REC_SOUR</code><br>
612 <td valign="top"><code>NULL</code><br>
616 <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
618 <td valign="top"><code>EVEN</code><br>
620 <td valign="top"><code>ELT_SOUR_DATA</code><br>
622 <td valign="top"><code>STRING</code><br>
626 <td valign="top"><code>ELT_SOUR_DATA_EVEN_DATE</code><br>
628 <td valign="top"><code>DATE</code><br>
630 <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
632 <td valign="top"><code>DATE</code><br>
636 <td valign="top"><code>ELT_SOUR_DATA_EVEN_PLAC</code><br>
638 <td valign="top"><code>PLAC</code><br>
640 <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
642 <td valign="top"><code>STRING</code><br>
646 <td valign="top"><code>ELT_SOUR_DATA_AGNC</code><br>
648 <td valign="top"><code>AGNC</code><br>
650 <td valign="top"><code>ELT_SOUR_DATA</code><br>
652 <td valign="top"><code>STRING</code><br>
656 <td valign="top"><code>ELT_SOUR_AUTH</code><br>
658 <td valign="top"><code>AUTH</code><br>
660 <td valign="top"><code>REC_SOUR</code><br>
662 <td valign="top"><code>STRING</code><br>
666 <td valign="top"><code>ELT_SOUR_TITL</code><br>
668 <td valign="top"><code>TITL</code><br>
670 <td valign="top"><code>REC_SOUR</code><br>
672 <td valign="top"><code>STRING</code><br>
676 <td valign="top"><code>ELT_SOUR_ABBR</code><br>
678 <td valign="top"><code>ABBR</code><br>
680 <td valign="top"><code>REC_SOUR</code><br>
682 <td valign="top"><code>STRING</code><br>
686 <td valign="top"><code>ELT_SOUR_PUBL</code><br>
688 <td valign="top"><code>PUBL</code><br>
690 <td valign="top"><code>REC_SOUR</code><br>
692 <td valign="top"><code>STRING</code><br>
696 <td valign="top"><code>ELT_SOUR_TEXT</code><br>
698 <td valign="top"><code>TEXT</code><br>
700 <td valign="top"><code>REC_SOUR</code><br>
702 <td valign="top"><code>STRING</code><br>
706 <td valign="top"><code>ELT_SUBN_SUBM</code><br>
708 <td valign="top"><code>SUBM</code><br>
710 <td valign="top"><code>REC_SUBN</code><br>
712 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
716 <td valign="top"><code>ELT_SUBN_FAMF</code><br>
718 <td valign="top"><code>FAMF</code><br>
720 <td valign="top"><code>REC_SUBN</code><br>
722 <td valign="top"><code>STRING</code><br>
726 <td valign="top"><code>ELT_SUBN_TEMP</code><br>
728 <td valign="top"><code>TEMP</code><br>
730 <td valign="top"><code>REC_SUBN</code><br>
732 <td valign="top"><code>STRING</code><br>
736 <td valign="top"><code>ELT_SUBN_ANCE</code><br>
738 <td valign="top"><code>ANCE</code><br>
740 <td valign="top"><code>REC_SUBN</code><br>
742 <td valign="top"><code>STRING</code><br>
746 <td valign="top"><code>ELT_SUBN_DESC</code><br>
748 <td valign="top"><code>DESC</code><br>
750 <td valign="top"><code>REC_SUBN</code><br>
752 <td valign="top"><code>STRING</code><br>
756 <td valign="top"><code>ELT_SUBN_ORDI</code><br>
758 <td valign="top"><code>ORDI</code><br>
760 <td valign="top"><code>REC_SUBN</code><br>
762 <td valign="top"><code>STRING</code><br>
766 <td valign="top"><code>ELT_SUBN_RIN</code><br>
768 <td valign="top"><code>RIN</code><br>
770 <td valign="top"><code>REC_SUBN</code><br>
772 <td valign="top"><code>STRING</code><br>
776 <td valign="top"><code>ELT_SUBM_NAME</code><br>
778 <td valign="top"><nobr><code>NAME</code></nobr><br>
780 <td valign="top"><code>REC_SUBM</code><br>
782 <td valign="top"><code>STRING</code><br>
786 <td valign="top"><code>ELT_SUBM_LANG</code><br>
788 <td valign="top"><code>LANG</code><br>
790 <td valign="top"><code>REC_SUBM</code><br>
792 <td valign="top"><code>STRING</code><br>
796 <td valign="top"><code>ELT_SUBM_RFN</code><br>
798 <td valign="top"><code>RFN</code><br>
800 <td valign="top"><code>REC_SUBM</code><br>
802 <td valign="top"><code>STRING</code><br>
806 <td valign="top"><code>ELT_SUBM_RIN</code><br>
808 <td valign="top"><code>RIN</code><br>
810 <td valign="top"><code>REC_SUBM</code><br>
812 <td valign="top"><code>STRING</code><br>
816 <td valign="top"><code>ELT_SUB_ADDR</code><br>
818 <td valign="top"><code>ADDR</code><br>
820 <td valign="top"><code>ELT_HEAD_SOUR_CORP,<br>
821 REC_REPO, REC_SUBM,<br>
822 </code><code>ELT_SUB_FAM_EVT</code>,<br>
823 <code>ELT_SUB_FAM_EVT_EVEN,<br>
824 ELT_SUB_INDIV_ATTR,<br>
825 ELT_SUB_INDIV_RESI,<br>
826 ELT_SUB_INDIV_BIRT,<br>
827 ELT_SUB_INDIV_GEN,<br>
828 ELT_SUB_INDIV_ADOP,<br>
829 ELT_SUB_INDIV_EVEN</code><br>
831 <td valign="top"><code>STRING</code><br>
835 <td valign="top"><code>ELT_SUB_ADDR_CONT</code><br>
837 <td valign="top"><code>CONT</code><br>
839 <td valign="top"><code>ELT_SUB_ADDR</code><br>
841 <td valign="top"><code>STRING</code><br>
845 <td valign="top"><code>ELT_SUB_ADDR_ADR1</code><br>
847 <td valign="top"><code>ADR1</code><br>
849 <td valign="top"><code>ELT_SUB_ADDR</code><br>
851 <td valign="top"><code>STRING</code><br>
855 <td valign="top"><code>ELT_SUB_ADDR_ADR2</code><br>
857 <td valign="top"><code>ADR2</code><br>
859 <td valign="top"><code>ELT_SUB_ADDR</code><br>
861 <td valign="top"><code>STRING</code><br>
865 <td valign="top"><code>ELT_SUB_ADDR_CITY</code><br>
867 <td valign="top"><code>CITY</code><br>
869 <td valign="top"><code>ELT_SUB_ADDR</code><br>
871 <td valign="top"><code>STRING</code><br>
875 <td valign="top"><code>ELT_SUB_ADDR_STAE</code><br>
877 <td valign="top"><code>STAE</code><br>
879 <td valign="top"><code>ELT_SUB_ADDR</code><br>
881 <td valign="top"><code>STRING</code><br>
885 <td valign="top"><code>ELT_SUB_ADDR_POST</code><br>
887 <td valign="top"><code>POST</code><br>
889 <td valign="top"><code>ELT_SUB_ADDR</code><br>
891 <td valign="top"><code>STRING</code><br>
895 <td valign="top"><code>ELT_SUB_ADDR_CTRY</code><br>
897 <td valign="top"><code>CTRY</code><br>
899 <td valign="top"><code>ELT_SUB_ADDR</code><br>
901 <td valign="top"><code>STRING</code><br>
905 <td valign="top"><code>ELT_SUB_PHON</code><br>
907 <td valign="top"><code>PHON</code><br>
909 <td valign="top"><code>ELT_HEAD_SOUR_CORP,<br>
910 REC_REPO, REC_SUBM,<br>
911 </code><code>ELT_SUB_FAM_EVT,<br>
912 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
913 ELT_SUB_INDIV_ATTR,<br>
914 ELT_SUB_INDIV_RESI,<br>
915 ELT_SUB_INDIV_BIRT,<br>
916 ELT_SUB_INDIV_GEN,<br>
917 ELT_SUB_INDIV_ADOP,<br>
918 ELT_SUB_INDIV_EVEN</code><br>
920 <td valign="top"><code>STRING</code><br>
924 <td valign="top"><code>ELT_SUB_ASSO</code><br>
926 <td valign="top"><code>ASSO</code><br>
928 <td valign="top"><code>REC_INDI</code><br>
930 <td valign="top"><code>XREF_PTR(FAM),<br>
937 XREF_PTR(SUBN)</code><br>
941 <td valign="top"><code>ELT_SUB_ASSO_TYPE</code><br>
943 <td valign="top"><code>TYPE</code><br>
945 <td valign="top"><code>ELT_SUB_ASSO</code><br>
947 <td valign="top"><code>STRING</code><br>
951 <td valign="top"><code>ELT_SUB_ASSO_RELA</code><br>
953 <td valign="top"><code>RELA</code><br>
955 <td valign="top"><code>ELT_SUB_ASSO</code><br>
957 <td valign="top"><code>STRING</code><br>
961 <td valign="top"><code>ELT_SUB_CHAN</code><br>
963 <td valign="top"><code>CHAN</code><br>
965 <td valign="top"><code>REC_FAM, REC_INDI,<br>
966 REC_OBJE, REC_NOTE,<br>
967 REC_REPO, REC_SOUR,<br>
971 <td valign="top"><code>NULL</code><br>
975 <td valign="top"><code>ELT_SUB_CHAN_DATE</code><br>
977 <td valign="top"><code>DATE</code><br>
979 <td valign="top"><code>ELT_SUB_CHAN</code><br>
981 <td valign="top"><code>DATE</code><br>
985 <td valign="top"><code>ELT_SUB_CHAN_TIME</code><br>
987 <td valign="top"><code>TIME</code><br>
989 <td valign="top"><code>ELT_SUB_CHAN_DATE</code><br>
991 <td valign="top"><code>STRING</code><br>
995 <td valign="top"><code>ELT_SUB_FAMC</code><br>
997 <td valign="top"><code>FAMC</code><br>
999 <td valign="top"><code>REC_INDI</code><br>
1001 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1005 <td valign="top"><code>ELT_SUB_FAMC_PEDI</code><br>
1007 <td valign="top"><code>PEDI</code><br>
1009 <td valign="top"><code>ELT_SUB_FAMC</code><br>
1011 <td valign="top"><code>STRING</code><br>
1015 <td valign="top"><code>ELT_SUB_CONT</code><br>
1017 <td valign="top"><code>CONT</code><br>
1019 <td valign="top"><code>ELT_HEAD_NOTE, REC_NOTE,<br>
1020 ELT_SOUR_AUTH, ELT_SOUR_TITL,<br>
1021 ELT_SOUR_PUBL, ELT_SOUR_TEXT,<br>
1023 ELT_SUB_SOUR, ELT_SUB_SOUR_TEXT<br>
1026 <td valign="top"><code>STRING</code><br>
1030 <td valign="top"><code>ELT_SUB_CONC</code><br>
1032 <td valign="top"><code>CONC</code><br>
1034 <td valign="top"><code>ELT_HEAD_NOTE, REC_NOTE,<br>
1035 ELT_SOUR_AUTH, ELT_SOUR_TITL,<br>
1036 ELT_SOUR_PUBL, ELT_SOUR_TEXT,<br>
1038 ELT_SUB_SOUR, ELT_SUB_SOUR_TEXT<br>
1041 <td valign="top"><code>STRING</code><br>
1045 <td valign="top"><code>ELT_SUB_EVT_TYPE</code><br>
1047 <td valign="top"><code>TYPE</code><br>
1049 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1050 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1051 ELT_SUB_INDIV_ATTR,<br>
1052 ELT_SUB_INDIV_RESI,<br>
1053 ELT_SUB_INDIV_BIRT,<br>
1054 ELT_SUB_INDIV_GEN,<br>
1055 ELT_SUB_INDIV_ADOP,<br>
1056 ELT_SUB_INDIV_EVEN</code><br>
1058 <td valign="top"><code>STRING</code><br>
1062 <td valign="top"><code>ELT_SUB_EVT_DATE</code><br>
1064 <td valign="top"><code>DATE</code><br>
1066 <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1067 <code>ELT_SUB_FAM_EVT_EVEN,<br>
1068 ELT_SUB_INDIV_ATTR</code><code>,<br>
1069 ELT_SUB_INDIV_RESI,<br>
1070 ELT_SUB_INDIV_BIRT,<br>
1071 ELT_SUB_INDIV_GEN,<br>
1072 ELT_SUB_INDIV_ADOP,<br>
1073 ELT_SUB_INDIV_EVEN</code><br>
1075 <td valign="top"><code>DATE</code><br>
1079 <td valign="top"><code>ELT_SUB_EVT_AGE</code><br>
1081 <td valign="top"><code>AGE</code><br>
1083 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1084 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1085 ELT_SUB_INDIV_ATTR,<br>
1086 ELT_SUB_INDIV_RESI</code><code>,<br>
1087 ELT_SUB_INDIV_BIRT,<br>
1088 ELT_SUB_INDIV_GEN,<br>
1089 ELT_SUB_INDIV_ADOP,<br>
1090 ELT_SUB_INDIV_EVEN</code><br>
1092 <td valign="top"><code>AGE</code><br>
1096 <td valign="top"><code>ELT_SUB_EVT_AGNC</code><br>
1098 <td valign="top"><code>AGNC</code><br>
1100 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1101 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1102 ELT_SUB_INDIV_ATTR,<br>
1103 ELT_SUB_INDIV_RESI</code><code>,<br>
1104 ELT_SUB_INDIV_BIRT,<br>
1105 ELT_SUB_INDIV_GEN,<br>
1106 ELT_SUB_INDIV_ADOP,<br>
1107 ELT_SUB_INDIV_EVEN</code><br>
1109 <td valign="top"><code>STRING</code><br>
1113 <td valign="top"><code>ELT_SUB_EVT_CAUS</code><br>
1115 <td valign="top"><code>CAUS</code><br>
1117 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1118 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1119 ELT_SUB_INDIV_ATTR,<br>
1120 ELT_SUB_INDIV_RESI</code><code>,<br>
1121 ELT_SUB_INDIV_BIRT,<br>
1122 ELT_SUB_INDIV_GEN,<br>
1123 ELT_SUB_INDIV_ADOP,<br>
1124 ELT_SUB_INDIV_EVEN</code><br>
1126 <td valign="top"><code>STRING</code><br>
1130 <td valign="top"><code>ELT_SUB_FAM_EVT</code><br>
1132 <td valign="top"><code>ANUL, CENS, DIV,<br>
1133 DIVF, ENGA, MARR,<br>
1134 MARB, MARC, MARL,<br>
1137 <td valign="top"><code>REC_FAM</code><br>
1139 <td valign="top"><code>NULL<br>
1144 <td valign="top"><code>ELT_SUB_FAM_EVT_HUSB</code><br>
1146 <td valign="top"><code>HUSB</code><br>
1148 <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1149 <code>ELT_SUB_FAM_EVT_EVEN</code><br>
1151 <td valign="top"><code>NULL</code><br>
1155 <td valign="top"><code>ELT_SUB_FAM_EVT_WIFE</code><br>
1157 <td valign="top"><code>WIFE</code><br>
1159 <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1160 <code>ELT_SUB_FAM_EVT_EVEN</code><br>
1162 <td valign="top"><code>NULL</code><br>
1166 <td valign="top"><code>ELT_SUB_FAM_EVT_AGE</code><br>
1168 <td valign="top"><code>AGE</code><br>
1170 <td valign="top"><code>ELT_SUB_FAM_EVT_HUSB</code>,<br>
1171 <code>ELT_SUB_FAM_EVT_WIFE</code><br>
1173 <td valign="top"><code>AGE</code><br>
1177 <td valign="top"><code>ELT_SUB_FAM_EVT_EVEN</code><br>
1179 <td valign="top"><code>EVEN</code><br>
1181 <td valign="top"><code>REC_FAM</code><br>
1183 <td valign="top"><code>NULL</code><br>
1187 <td valign="top"><code>ELT_SUB_IDENT_REFN</code><br>
1189 <td valign="top"><code>REFN</code><br>
1191 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1192 REC_OBJE, REC_NOTE,<br>
1193 REC_REPO, REC_SOUR<br>
1196 <td valign="top"><code>STRING</code><br>
1200 <td valign="top"><code>ELT_SUB_IDENT_REFN_TYPE</code><br>
1202 <td valign="top"><code>TYPE</code><br>
1204 <td valign="top"><code>ELT_SUB_IDENT_REFN</code><br>
1206 <td valign="top"><code>STRING</code><br>
1210 <td valign="top"><code>ELT_SUB_IDENT_RIN</code><br>
1212 <td valign="top"><code>RIN</code><br>
1214 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1215 REC_OBJE, REC_NOTE,<br>
1216 REC_REPO, REC_SOUR<br>
1219 <td valign="top"><code>STRING</code><br>
1223 <td valign="top"><code>ELT_SUB_INDIV_ATTR</code><br>
1225 <td valign="top"><code>CAST, DSCR, EDUC,<br>
1226 IDNO, NATI, NCHR,<br>
1227 NMR, OCCU, PROP,<br>
1228 RELI, SSN, TITL</code><br>
1230 <td valign="top"><code>REC_INDI</code><br>
1232 <td valign="top"><code>STRING</code><br>
1236 <td valign="top"><code>ELT_SUB_INDIV_RESI</code><br>
1238 <td valign="top"><code>RESI</code><br>
1240 <td valign="top"><code>REC_INDI</code><br>
1242 <td valign="top"><code>NULL</code><br>
1246 <td valign="top"><code>ELT_SUB_INDIV_BIRT</code><br>
1248 <td valign="top"><code>BIRT, CHR</code><br>
1250 <td valign="top"><code>REC_INDI</code><br>
1252 <td valign="top"><code>NULL<br>
1257 <td valign="top"><code>ELT_SUB_INDIV_BIRT_FAMC</code><br>
1259 <td valign="top"><code>FAMC</code><br>
1261 <td valign="top"><code>ELT_SUB_INDIV_BIRT</code><br>
1263 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1267 <td valign="top"><code>ELT_SUB_INDIV_GEN</code><br>
1269 <td valign="top"><code>DEAT, BURI, CREM,<br>
1270 BAPM, BARM, BASM,<br>
1271 BLES, CHRA, CONF,<br>
1272 FCOM, ORDN, NATU,<br>
1273 EMIG, IMMI, CENS,<br>
1274 PROB, WILL, GRAD,<br>
1277 <td valign="top"><code>REC_INDI</code><br>
1279 <td valign="top"><code>NULL<br>
1284 <td valign="top"><code>ELT_SUB_INDIV_ADOP</code><br>
1286 <td valign="top"><code>ADOP</code><br>
1288 <td valign="top"><code>REC_INDI</code><br>
1290 <td valign="top"><code>NULL<br>
1295 <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC</code><br>
1297 <td valign="top"><code>FAMC</code><br>
1299 <td valign="top"><code>ELT_SUB_INDIV_ADOP</code><br>
1301 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1305 <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC_ADOP</code><br>
1307 <td valign="top"><code>ADOP</code><br>
1309 <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC</code><br>
1311 <td valign="top"><code>STRING</code><br>
1315 <td valign="top"><code>ELT_SUB_INDIV_EVEN</code><br>
1317 <td valign="top"><code>EVEN</code><br>
1319 <td valign="top"><code>REC_INDI</code><br>
1321 <td valign="top"><code>NULL</code><br>
1325 <td valign="top"><code>ELT_SUB_LIO_BAPL</code><br>
1327 <td valign="top"><code>BAPL, CONL, ENDL</code><br>
1329 <td valign="top"><code>REC_INDI</code><br>
1331 <td valign="top"><code>NULL</code><br>
1335 <td valign="top"><code>ELT_SUB_LIO_BAPL_STAT</code><br>
1337 <td valign="top"><code>STAT</code><br>
1339 <td valign="top"><code></code><code>ELT_SUB_LIO_BAPL,<br>
1340 ELT_SUB_LIO_SLGC<br>
1343 <td valign="top"><code>STRING</code><br>
1347 <td valign="top"><code>ELT_SUB_LIO_BAPL_DATE</code><br>
1349 <td valign="top"><code>DATE</code><br>
1351 <td valign="top"><code>ELT_SUB_LIO_BAPL</code><code>,<br>
1352 ELT_SUB_LIO_SLGC<br>
1356 <td valign="top"><code>DATE</code><br>
1360 <td valign="top"><code>ELT_SUB_LIO_BAPL_TEMP</code><br>
1362 <td valign="top"><code>TEMP</code><br>
1364 <td valign="top"><code>ELT_SUB_LIO_BAPL</code><code>,<br>
1365 ELT_SUB_LIO_SLGC<br>
1369 <td valign="top"><code>STRING</code><br>
1373 <td valign="top"><code>ELT_SUB_LIO_BAPL_PLAC</code><br>
1375 <td valign="top"><code>PLAC</code><br>
1377 <td valign="top"><code>ELT_SUB_LIO_BAPL</code><code>,<br>
1378 ELT_SUB_LIO_SLGC<br>
1382 <td valign="top"><code>STRING</code><br>
1386 <td valign="top"><code>ELT_SUB_LIO_SLGC</code><br>
1388 <td valign="top"><code>SLGC</code><br>
1390 <td valign="top"><code>REC_INDI</code><br>
1392 <td valign="top"><code>NULL</code><br>
1396 <td valign="top"><code>ELT_SUB_LIO_SLGC_FAMC</code><br>
1398 <td valign="top"><code>FAMC</code><br>
1400 <td valign="top"><code>ELT_SUB_LIO_SLGC</code><br>
1402 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1406 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1408 <td valign="top"><code>SLGS</code><br>
1410 <td valign="top"><code>REC_FAM</code><br>
1412 <td valign="top"><code>NULL</code><br>
1416 <td valign="top"><code>ELT_SUB_LSS_SLGS_STAT</code><br>
1418 <td valign="top"><code>STAT</code><br>
1420 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1422 <td valign="top"><code>STRING</code><br>
1426 <td valign="top"><code>ELT_SUB_LSS_SLGS_DATE</code><br>
1428 <td valign="top"><code>DATE</code><br>
1430 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1432 <td valign="top"><code>DATE</code><br>
1436 <td valign="top"><code>ELT_SUB_LSS_SLGS_TEMP</code><br>
1438 <td valign="top"><code>TEMP</code><br>
1440 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1442 <td valign="top"><code>STRING</code><br>
1446 <td valign="top"><code>ELT_SUB_LSS_SLGS_PLAC</code><br>
1448 <td valign="top"><code>PLAC</code><br>
1450 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1452 <td valign="top"><code>STRING</code><br>
1456 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1458 <td valign="top"><code>OBJE</code><br>
1460 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1461 REC_SOUR, REC_SUBM,<br>
1462 </code><code>ELT_SUB_FAM_EVT,<br>
1463 ELT_SUB_FAM_EVT_EVEN,<br>
1464 ELT_SUB_INDIV_ATTR,<br>
1465 ELT_SUB_INDIV_RESI</code><code>,<br>
1466 ELT_SUB_INDIV_BIRT,<br>
1467 ELT_SUB_INDIV_GEN,<br>
1468 ELT_SUB_INDIV_ADOP,<br>
1469 ELT_SUB_INDIV_EVEN,<br>
1470 ELT_SUB_SOUR</code><br>
1472 <td valign="top"><code>NULL<br>
1478 <td valign="top"><code>ELT_SUB_MULTIM_OBJE_FORM</code><br>
1480 <td valign="top"><code>FORM</code><br>
1482 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1484 <td valign="top"><code>STRING</code><br>
1488 <td valign="top"><code>ELT_SUB_MULTIM_OBJE_TITL</code><br>
1490 <td valign="top"><code>TITL</code><br>
1492 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1494 <td valign="top"><code>STRING</code><br>
1498 <td valign="top"><code>ELT_SUB_MULTIM_OBJE_FILE</code><br>
1500 <td valign="top"><code>FILE</code><br>
1502 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1504 <td valign="top"><code>STRING</code><br>
1508 <td valign="top"><code>ELT_SUB_NOTE</code><br>
1510 <td valign="top"><code>NOTE</code><br>
1512 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1513 REC_OBJE, REC_REPO,<br>
1514 REC_SOUR, ELT_SOUR_DATA,<br>
1515 ELT_SUB_ASSO, ELT_SUB_CHAN,<br>
1516 ELT_SUB_FAMC, </code><code>ELT_SUB_FAM_EVT,<br>
1517 ELT_SUB_FAM_EVT_EVEN,<br>
1518 ELT_SUB_INDIV_ATTR,<br>
1519 ELT_SUB_INDIV_RESI</code><code>,<br>
1520 ELT_SUB_INDIV_BIRT,<br>
1521 ELT_SUB_INDIV_GEN,<br>
1522 ELT_SUB_INDIV_ADOP,<br>
1523 ELT_SUB_INDIV_EVEN,<br>
1524 ELT_SUB_LIO_BAPL,<br>
1525 ELT_SUB_LIO_SLGC,<br>
1526 ELT_SUB_LSS_SLGS,<br>
1527 ELT_SUB_MULTIM_OBJE,<br>
1528 ELT_SUB_PERS_NAME,<br>
1532 ELT_SUB_FAMS</code><br>
1534 <td valign="top"><code>NULL<br>
1541 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1543 <td valign="top"><code>NAME</code><br>
1545 <td valign="top"><code>REC_INDI</code><br>
1547 <td valign="top"><code>STRING</code><br>
1551 <td valign="top"><code>ELT_SUB_PERS_NAME_NPFX</code><br>
1553 <td valign="top"><code>NPFX</code><br>
1555 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1557 <td valign="top"><code>STRING</code><br>
1561 <td valign="top"><code>ELT_SUB_PERS_NAME_GIVN</code><br>
1563 <td valign="top"><code>GIVN</code><br>
1565 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1567 <td valign="top"><code>STRING</code><br>
1571 <td valign="top"><code>ELT_SUB_PERS_NAME_NICK</code><br>
1573 <td valign="top"><code>NICK</code><br>
1575 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1577 <td valign="top"><code>STRING</code><br>
1581 <td valign="top"><code>ELT_SUB_PERS_NAME_SPFX</code><br>
1583 <td valign="top"><code>SPFX</code><br>
1585 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1587 <td valign="top"><code>STRING</code><br>
1591 <td valign="top"><code>ELT_SUB_PERS_NAME_SURN</code><br>
1593 <td valign="top"><code>SURN</code><br>
1595 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1597 <td valign="top"><code>STRING</code><br>
1601 <td valign="top"><code>ELT_SUB_PERS_NAME_NSFX</code><br>
1603 <td valign="top"><code>NSFX</code><br>
1605 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1607 <td valign="top"><code>STRING</code><br>
1611 <td valign="top"><code>ELT_SUB_PLAC</code><br>
1613 <td valign="top"><code>PLAC</code><br>
1615 <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1616 <code>ELT_SUB_FAM_EVT_EVEN,<br>
1617 ELT_SUB_INDIV_ATTR,<br>
1618 ELT_SUB_INDIV_RESI</code><code>,
1620 ELT_SUB_INDIV_BIRT,<br>
1621 ELT_SUB_INDIV_GEN,<br>
1622 ELT_SUB_INDIV_ADOP,<br>
1623 ELT_SUB_INDIV_EVEN</code><br>
1625 <td valign="top"><code>STRING</code><br>
1629 <td valign="top"><code>ELT_SUB_PLAC_FORM</code><br>
1631 <td valign="top"><code>FORM</code><br>
1633 <td valign="top"><code>ELT_SUB_PLAC</code><br>
1635 <td valign="top"><code>STRING</code><br>
1639 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1641 <td valign="top"><code>SOUR</code><br>
1643 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1644 REC_NOTE, ELT_SUB_ASSO<br>
1645 </code><code>ELT_SUB_FAM_EVT,<br>
1646 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1647 ELT_SUB_INDIV_ATTR,<br>
1648 ELT_SUB_INDIV_RESI</code><code>,<br>
1649 ELT_SUB_INDIV_BIRT,<br>
1650 ELT_SUB_INDIV_GEN,<br>
1651 ELT_SUB_INDIV_ADOP,<br>
1652 ELT_SUB_INDIV_EVEN,<br>
1653 ELT_SUB_LIO_BAPL,<br>
1654 ELT_SUB_LIO_SLGC,<br>
1655 ELT_SUB_LSS_SLGS,<br>
1657 ELT_SUB_PERS_NAME,<br>
1658 ELT_SUB_PLAC</code><br>
1660 <td valign="top"><code>STRING<br>
1661 XREF_PTR(SOUR)</code><br>
1665 <td valign="top"><code>ELT_SUB_SOUR_PAGE</code><br>
1667 <td valign="top"><code>PAGE</code><br>
1669 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1671 <td valign="top"><code>STRING</code><br>
1675 <td valign="top"><code>ELT_SUB_SOUR_EVEN</code><br>
1677 <td valign="top"><code>EVEN</code><br>
1679 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1681 <td valign="top"><code>STRING</code><br>
1685 <td valign="top"><code>ELT_SUB_SOUR_EVEN_ROLE</code><br>
1687 <td valign="top"><code>ROLE</code><br>
1689 <td valign="top"><code>ELT_SUB_SOUR_EVEN</code><br>
1691 <td valign="top"><code>STRING</code><br>
1695 <td valign="top"><code>ELT_SUB_SOUR_DATA</code><br>
1697 <td valign="top"><code>DATA</code><br>
1699 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1701 <td valign="top"><code>NULL</code><br>
1705 <td valign="top"><code>ELT_SUB_SOUR_DATA_DATE</code><br>
1707 <td valign="top"><code>DATE</code><br>
1709 <td valign="top"><code>ELT_SUB_SOUR_DATA</code><br>
1711 <td valign="top"><code>DATE</code><br>
1715 <td valign="top"><code>ELT_SUB_SOUR_TEXT</code><br>
1717 <td valign="top"><code>TEXT</code><br>
1719 <td valign="top"><code>ELT_SUB_SOUR<br>
1720 ELT_SUB_SOUR_DATA</code><br>
1722 <td valign="top"><code>STRING</code><br>
1726 <td valign="top"><code>ELT_SUB_SOUR_QUAY</code><br>
1728 <td valign="top"><code>QUAY</code><br>
1730 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1732 <td valign="top"><code>STRING</code><br>
1736 <td valign="top"><code>ELT_SUB_REPO</code><br>
1738 <td valign="top"><code>REPO</code><br>
1740 <td valign="top"><code>REC_SOUR</code><br>
1742 <td valign="top"><code>XREF_PTR(REPO)</code><br>
1746 <td valign="top"><code>ELT_SUB_REPO_CALN</code><br>
1748 <td valign="top"><code>CALN</code><br>
1750 <td valign="top"><code>ELT_SUB_REPO</code><br>
1752 <td valign="top"><code>STRING</code><br>
1756 <td valign="top"><code>ELT_SUB_REPO_CALN_MEDI</code><br>
1758 <td valign="top"><code>MEDI</code><br>
1760 <td valign="top"><code>ELT_SUB_REPO_CALN</code><br>
1762 <td valign="top"><code>STRING</code><br>
1766 <td valign="top"><code>ELT_SUB_FAMS</code><br>
1768 <td valign="top"><code>FAMS</code><br>
1770 <td valign="top"><code>REC_INDI</code><br>
1772 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1776 <td valign="top"><code>ELT_USER</code><br>
1778 <td valign="top"><code>any tag starting<br>
1779 with an underscore</code><br>
1781 <td valign="top"><code>anywhere</code><br>
1783 <td valign="top"><code>NULL<br>
1785 XREF_PTR(USER)</code><br>
1792 <hr width="100%" size="2">
1793 <h2><a name="Gedcom_val_types"></a>Gedcom_val types<br>
1795 Currently, the specific <code>Gedcom_val</code> types are (with <code>
1796 val</code> of type <code>Gedcom_val</code>):<br>
1799 <table cellpadding="2" cellspacing="2" border="1" width="100%">
1802 <td valign="top"><br>
1804 <td valign="top"><b>type checker</b><br>
1806 <td valign="top"><b>cast operator</b><br>
1810 <td valign="top">null value<br>
1812 <td valign="top"><code>GEDCOM_IS_NULL(val)</code><br>
1814 <td valign="top">N/A<br>
1818 <td valign="top">string<br>
1820 <td valign="top"><code>GEDCOM_IS_STRING(val)</code><br>
1822 <td valign="top"><code>char* str = GEDCOM_STRING(val);</code><br>
1826 <td valign="top">date<br>
1828 <td valign="top"><code>GEDCOM_IS_DATE(val)</code><br>
1830 <td valign="top"><code>struct date_value dv = GEDCOM_DATE(val);</code></td>
1833 <td valign="top">age<br>
1835 <td valign="top"><code>GEDCOM_IS_AGE(val)</code><br>
1837 <td valign="top"><code>struct age_value age = GEDCOM_AGE(val);</code><br>
1841 <td valign="top">xref pointer<br>
1843 <td valign="top"><code>GEDCOM_IS_XREF_PTR(val)</code><br>
1845 <td valign="top"><code>struct xref_value *xr = GEDCOM_XREF_PTR(val);</code><br>
1853 The type checker returns a true or a false value according to the
1854 type of the value, but this is in principle only necessary in the rare
1855 circumstances that two types are possible, or where an optional value
1856 can be provided. In most cases, the type is fixed for a specific
1859 The null value is used for when the GEDCOM spec doesn't allow a value,
1860 or when an optional value is allowed but none is given.<br>
1862 The string value is the most general used value currently, for all
1863 those values that don't have a more specific meaning. In essence,
1864 the value that is returned by <code>GEDCOM_STRING(val)</code> is always the same as the
1865 <code>raw_value</code> passed to the start callback, and is thus in fact redundant.<br>
1867 The date value is used for all elements that return a date. See
1868 <a href="#date_value">here</a> for the definition.<br>
1870 The xref value is for cross-references between records in the file. See
1871 <a href="#xref_value">here</a> for the definition.<br>
1874 <h3><a name="date_value"></a>struct date_value</h3>
1875 This struct describes a date as given in the GEDCOM file, and has the
1876 following definition:<br>
1878 <blockquote><code>struct date_value {<br>
1879 Date_value_type type;<br>
1880 struct date date1;<br>
1881 struct date date2;<br>
1882 char phrase[MAX_PHRASE_LEN
1886 It depends on the first member, the type, which members are actually
1890 <table cellpadding="2" cellspacing="2" border="1" width="100%">
1893 <td valign="top" align="center"><b>Date_value_type</b><br>
1895 <td valign="top" align="center"><b>Meaning</b><br>
1897 <td valign="top" align="center"><b>Relevant members</b><br>
1901 <td valign="top"><code>DV_NO_MODIFIER</code><br>
1903 <td valign="top">just a simple date<br>
1905 <td valign="top">date1<br>
1909 <td valign="top"><code>DV_BEFORE</code><br>
1911 <td valign="top">a range (BEFORE date1)<br>
1913 <td valign="top">date1<br>
1917 <td valign="top"><code>DV_AFTER</code><br>
1919 <td valign="top">a range (AFTER date1)<br>
1921 <td valign="top">date1<br>
1925 <td valign="top"><code>DV_BETWEEN</code><br>
1927 <td valign="top">a range (BETWEEN date1 AND date2)<br>
1929 <td valign="top">date1, date2<br>
1933 <td valign="top"><code>DV_FROM</code><br>
1935 <td valign="top">a period (FROM date1)<br>
1937 <td valign="top">date1<br>
1941 <td valign="top"><code>DV_TO</code><br>
1943 <td valign="top">a period (TO date1)<br>
1945 <td valign="top">date1<br>
1949 <td valign="top"><code>DV_FROM_TO</code><br>
1951 <td valign="top">a period (FROM date1 TO date2)<br>
1953 <td valign="top">date1, date2<br>
1957 <td valign="top"><code>DV_ABOUT</code><br>
1959 <td valign="top">an approximation (ABOUT date1)<br>
1961 <td valign="top">date1<br>
1965 <td valign="top"><code>DV_CALCULATED</code><br>
1967 <td valign="top">an approximation (CALCULATED date1)<br>
1969 <td valign="top">date1<br>
1973 <td valign="top"><code>DV_ESTIMATED</code><br>
1975 <td valign="top">an approximation (ESTIMATED date1)<br>
1977 <td valign="top">date1<br>
1981 <td valign="top"><code>DV_INTERPRETED</code><br>
1983 <td valign="top">INTERPRETED date1 FROM a given free form date
1986 <td valign="top">date1, phrase<br>
1990 <td valign="top"><code>DV_PHRASE</code><br>
1992 <td valign="top">a free form date phrase<br>
1994 <td valign="top">phrase<br>
2002 <h3><a name="date"></a>struct date<br>
2004 The <code>date1</code> and <code>date2</code> also have a strict syntax:<br>
2006 <blockquote><code>struct date {<br>
2007 Calendar_type cal;<br>
2008 char day_str[MAX_DAY_LEN +
2010 char month_str[MAX_MONTH_LEN
2012 char year_str[MAX_YEAR_LEN
2015 int day;<br>
2016 int month;<br>
2017 int year;<br>
2018 Year_type year_type;<br>
2020 Date_type type;<br>
2021 long int sdn1;<br>
2022 long int sdn2;<br>
2025 The first four fields are the primary fields parsed from the value in
2026 the GEDCOM file. The <code>day_str</code>, <code>month_str</code>
2027 and <code> year_str</code> are the literal parts of the date that denote
2028 the day, month and year (the <code>day_str</code> and <code>month_str</code>
2029 can be empty) . The calendar type <code>cal</code> is one of (see
2030 calendar overview <i>LINK TBD</i>):<br>
2033 <li><code>CAL_GREGORIAN</code> : the Gregorian calendar</li>
2034 <li><code>CAL_JULIAN</code> : the Julian calendar</li>
2035 <li><code>CAL_HEBREW</code> : the Hebrew (Jewish) calendar</li>
2036 <li><code>CAL_FRENCH_REV</code> : the calendar used after the
2037 French Revolution</li>
2038 <li><code>CAL_UNKNOWN</code> : an unknown calendar type</li>
2041 The next four fields are deduced from the first four:<br>
2044 <li>the <code>day</code> is just the numeric representation of
2045 the <code>day_str</code> (starting from 1), -1 if the <code>day_str</code>
2047 <li>the <code>month</code> is the month number of <code>month_str</code>
2048 in the given calendar type (also starting from 1), -1 if the <code>
2049 month_str</code> is empty</li>
2050 <li>the <code>year</code> is the numeric representation of the
2051 <code> year_str</code></li>
2054 It is possible that the <code>year_str</code> is given as e.g. "1677/78".
2055 This is coming from a date in a so called "annunciation style", where
2056 the year began on 25 March: "20 March 1677/78" is 20 March 1677 in "annunciation
2057 style" and 20 March 1678 in "circumcision style" (the current style). See
2058 calendar overview (<i>LINK TBD</i>).<br>
2060 In this case, the <code>year</code> will contain the "circumcision style"
2061 year (1678 in the example), and <code>year_type</code> will be <code>YEAR_DOUBLE.</code>
2062 Normal dates will have a <code>year_type</code> equal to <code>
2063 YEAR_SINGLE</code> .<br>
2065 Finally, the last three fields are probably the most interesting values
2066 for applications that want to process dates. Basically, the date
2067 is converted to a serial day number (aka Julian day), which is the unique
2068 day number since November 25, 4714 BC in the Gregorian calendar. The
2069 advantage of these day numbers is that they are unique and independent
2070 of the calendar system. Furthermore, date differences can just be
2071 computed by subtracting the serial day numbers.<br>
2073 However, since dates in GEDCOM are not necessarily exact (e.g. "MAR
2074 1990"), it is not possible to represent all GEDCOM dates with 1 serial
2075 day number. Two cases can be distinguished:<br>
2078 <li>Exact dates (e.g. "25 MAR 1990"):</li>
2083 <blockquote>These are represented by a serial day number in <code>sdn1</code>
2084 and a <code>Date_type</code> equal to <code>DATE_EXACT</code>.<br>
2089 <li>Incomplete dates (e.g. "MAR 1990"):</li>
2096 <blockquote>These are represented by 2 serial day numbers (<code>sdn1</code> and <code>sdn2</code>) and a <code>Date_type</code> equal
2097 to <code>DATE_BOUNDED</code>.<br>
2100 For example, the Gregorian date "MAR 1990" is represented by the serial
2101 day numbers for "1 MAR 1990" and "31 MAR 1990", and the Gregorian date
2102 "1990" is represented by the serial day numbers for "1 JAN 1990" and "31
2103 DEC 1990". Similarly for the other calendar types.<br>
2108 <h3><a name="age_value"></a>struct age_value</h3>
2110 This struct describes an age as given in the GEDCOM file, and has the
2111 following definition:<br>
2114 <blockquote><code>struct age_value {<br>
2115 Age_type type;<br>
2116 Age_modifier mod;<br>
2117 int years;<br>
2118 int months;<br>
2119 int days;<br>
2120 char phrase[MAX_PHRASE_LEN
2129 It depends on the first member, the type, which members are actually
2132 <table cellpadding="2" cellspacing="2" border="1" width="100%">
2134 <td valign="top" align="center"><b>Age_type</b><br>
2136 <td valign="top" align="center"><b>Meaning</b><br>
2138 <td valign="top" align="center"><b>Relevant members</b><br>
2142 <td valign="top"><code>AGE_UNRECOGNIZED</code><br>
2144 <td valign="top">format not recognized, full raw value in phrase<br>
2146 <td valign="top">phrase<br>
2150 <td valign="top"><code>AGE_CHILD</code><br>
2152 <td valign="top">the indication 'CHILD'<br>
2154 <td valign="top">mod<br>
2158 <td valign="top"><code>AGE_INFANT</code><br>
2160 <td valign="top">the indication 'INFANT'<br>
2162 <td valign="top">mod<br>
2166 <td valign="top"><code>AGE_STILLBORN</code><br>
2168 <td valign="top">the indication 'STILLBORN'<br>
2170 <td valign="top">mod<br>
2172 <td valign="top"><code>AGE_NUMERIC</code><br>
2174 <td valign="top">an indication in years, months and/or days (each can be -1 if not given)<br>
2176 <td valign="top">mod, years, months, days<br>
2182 The modifier can be one of the following:<br>
2184 <li><code> AGE_NO_MODIFIER</code> : no modifier</li><li><code>AGE_LESS_THAN</code><code></code> : the modifier '<' is added</li><li><code>AGE_GREATER_THAN </code>: the modifier '>' is added</li>
2187 <h3><a name="xref_value"></a>struct xref_value</h3>
2189 This struct represents a cross-reference in the GEDCOM file (but note that
2190 the <code>Gedcom_val</code> contains a pointer to such a struct, not the struct
2191 itself). It is defined as:<br>
2193 <blockquote><code>struct xref_value {<br>
2194 Xref_type type,<br>
2195 char* string,<br>
2196 Gedcom_ctxt object<br>
2199 The <code>Xref_type</code> gives the type of the cross-reference and can
2203 <li><code>XREF_NONE</code> (used as default value)</li>
2204 <li><code>XREF_FAM</code></li>
2205 <li><code>XREF_INDI</code></li>
2206 <li><code>XREF_NOTE</code></li>
2207 <li><code>XREF_OBJE</code></li>
2208 <li><code>XREF_REPO</code></li>
2209 <li><code>XREF_SOUR</code></li>
2210 <li><code>XREF_SUBM</code></li>
2211 <li><code>XREF_SUBN</code></li><li><code>XREF_ANY</code> (if the type is not known, see below)<br>
2214 <li><code>XREF_USER</code> (for application-specific cross-references)<br>
2218 The <code>string</code> gives the actual cross-reference string from the
2219 GEDCOM file, and the <code>object</code> is initially <code>NULL,</code> but
2220 can be filled by the application with an object (of any type) that corresponds
2221 with the cross-reference, and then later extracted when the cross-reference
2222 is used or defined again in the file. This relieves the application
2223 from the burden of maintaining the mapping between cross-references and objects.<br>
2225 The value <code>XREF_ANY</code> is used when the type of the object is not
2226 immediately known: it has to come from further information. This is
2227 the case in an association (<code>ELT_SUB_ASSO</code>): the type is then given by the <code>TYPE</code> subtag.<br>
2229 The parser checks whether all cross-references that are used are defined
2230 (if not, an error is produced) and whether all cross-references that are
2231 defined are used (if not, a warning is produced). It also checks whether
2232 the type of the cross-reference is the same on definition and use (if not,
2233 an error is produced). The first two checks are done at the end of
2234 the parsing, because cross-references can be defined after their usage in
2237 An xref_value can also be retrieved by its key via the following function:<br>
2239 <blockquote><code>struct xref_value* <b>gedcom_get_by_xref</b> (char *key)</code><br>
2241 The function returns <code>NULL</code> if the given key isn't used.<br>
2243 <hr width="100%" size="2">
2244 <pre>$Id$<br>$Name$<br></pre>