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="#struct_date_value">struct date_value</a></li>
18 <li><a href="#struct_date">struct date</a></li><li><a href="#age_value">struct age_value</a><br>
21 <li><a href="#struct_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><br>
1620 <td valign="top"><code>STRING</code><br>
1624 <td valign="top"><code>ELT_SUB_PLAC_FORM</code><br>
1626 <td valign="top"><code>FORM</code><br>
1628 <td valign="top"><code>ELT_SUB_PLAC</code><br>
1630 <td valign="top"><code>STRING</code><br>
1634 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1636 <td valign="top"><code>SOUR</code><br>
1638 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1639 REC_NOTE, ELT_SUB_ASSO<br>
1640 </code><code>ELT_SUB_FAM_EVT,<br>
1641 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1642 ELT_SUB_INDIV_ATTR,<br>
1643 ELT_SUB_INDIV_RESI</code><code>,<br>
1644 ELT_SUB_INDIV_BIRT,<br>
1645 ELT_SUB_INDIV_GEN,<br>
1646 ELT_SUB_INDIV_ADOP,<br>
1647 ELT_SUB_INDIV_EVEN,<br>
1648 ELT_SUB_LIO_BAPL,<br>
1649 ELT_SUB_LIO_SLGC,<br>
1650 ELT_SUB_LSS_SLGS,<br>
1652 ELT_SUB_PERS_NAME,<br>
1653 ELT_SUB_PLAC</code><br>
1655 <td valign="top"><code>STRING<br>
1656 XREF_PTR(SOUR)</code><br>
1660 <td valign="top"><code>ELT_SUB_SOUR_PAGE</code><br>
1662 <td valign="top"><code>PAGE</code><br>
1664 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1666 <td valign="top"><code>STRING</code><br>
1670 <td valign="top"><code>ELT_SUB_SOUR_EVEN</code><br>
1672 <td valign="top"><code>EVEN</code><br>
1674 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1676 <td valign="top"><code>STRING</code><br>
1680 <td valign="top"><code>ELT_SUB_SOUR_EVEN_ROLE</code><br>
1682 <td valign="top"><code>ROLE</code><br>
1684 <td valign="top"><code>ELT_SUB_SOUR_EVEN</code><br>
1686 <td valign="top"><code>STRING</code><br>
1690 <td valign="top"><code>ELT_SUB_SOUR_DATA</code><br>
1692 <td valign="top"><code>DATA</code><br>
1694 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1696 <td valign="top"><code>NULL</code><br>
1700 <td valign="top"><code>ELT_SUB_SOUR_DATA_DATE</code><br>
1702 <td valign="top"><code>DATE</code><br>
1704 <td valign="top"><code>ELT_SUB_SOUR_DATA</code><br>
1706 <td valign="top"><code>DATE</code><br>
1710 <td valign="top"><code>ELT_SUB_SOUR_TEXT</code><br>
1712 <td valign="top"><code>TEXT</code><br>
1714 <td valign="top"><code>ELT_SUB_SOUR<br>
1715 ELT_SUB_SOUR_DATA</code><br>
1717 <td valign="top"><code>STRING</code><br>
1721 <td valign="top"><code>ELT_SUB_SOUR_QUAY</code><br>
1723 <td valign="top"><code>QUAY</code><br>
1725 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1727 <td valign="top"><code>STRING</code><br>
1731 <td valign="top"><code>ELT_SUB_REPO</code><br>
1733 <td valign="top"><code>REPO</code><br>
1735 <td valign="top"><code>REC_SOUR</code><br>
1737 <td valign="top"><code>XREF_PTR(REPO)</code><br>
1741 <td valign="top"><code>ELT_SUB_REPO_CALN</code><br>
1743 <td valign="top"><code>CALN</code><br>
1745 <td valign="top"><code>ELT_SUB_REPO</code><br>
1747 <td valign="top"><code>STRING</code><br>
1751 <td valign="top"><code>ELT_SUB_REPO_CALN_MEDI</code><br>
1753 <td valign="top"><code>MEDI</code><br>
1755 <td valign="top"><code>ELT_SUB_REPO_CALN</code><br>
1757 <td valign="top"><code>STRING</code><br>
1761 <td valign="top"><code>ELT_SUB_FAMS</code><br>
1763 <td valign="top"><code>FAMS</code><br>
1765 <td valign="top"><code>REC_INDI</code><br>
1767 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1771 <td valign="top"><code>ELT_USER</code><br>
1773 <td valign="top"><code>any tag starting<br>
1774 with an underscore</code><br>
1776 <td valign="top"><code>anywhere</code><br>
1778 <td valign="top"><code>NULL<br>
1780 XREF_PTR(USER)</code><br>
1787 <hr width="100%" size="2">
1788 <h2><a name="Gedcom_val_types"></a>Gedcom_val types<br>
1790 Currently, the specific <code>Gedcom_val</code> types are (with <code>
1791 val</code> of type <code>Gedcom_val</code>):<br>
1794 <table cellpadding="2" cellspacing="2" border="1" width="100%">
1797 <td valign="top"><br>
1799 <td valign="top"><b>type checker</b><br>
1801 <td valign="top"><b>cast operator</b><br>
1805 <td valign="top">null value<br>
1807 <td valign="top"><code>GEDCOM_IS_NULL(val)</code><br>
1809 <td valign="top">N/A<br>
1813 <td valign="top">string<br>
1815 <td valign="top"><code>GEDCOM_IS_STRING(val)</code><br>
1817 <td valign="top"><code>char* str = GEDCOM_STRING(val);</code><br>
1821 <td valign="top">date<br>
1823 <td valign="top"><code>GEDCOM_IS_DATE(val)</code><br>
1825 <td valign="top"><code>struct date_value dv = GEDCOM_DATE(val);</code></td>
1828 <td valign="top">age<br>
1830 <td valign="top"><code>GEDCOM_IS_AGE(val)</code><br>
1832 <td valign="top"><code>struct age_value age = GEDCOM_AGE(val);</code><br>
1836 <td valign="top">xref pointer<br>
1838 <td valign="top"><code>GEDCOM_IS_XREF_PTR(val)</code><br>
1840 <td valign="top"><code>struct xref_value *xr = GEDCOM_XREF_PTR(val);</code><br>
1848 The type checker returns a true or a false value according to the
1849 type of the value, but this is in principle only necessary in the rare
1850 circumstances that two types are possible, or where an optional value
1851 can be provided. In most cases, the type is fixed for a specific
1854 The null value is used for when the GEDCOM spec doesn't allow a value,
1855 or when an optional value is allowed but none is given.<br>
1857 The string value is the most general used value currently, for all
1858 those values that don't have a more specific meaning. In essence,
1859 the value that is returned by <code>GEDCOM_STRING(val)</code> is always the same as the
1860 <code>raw_value</code> passed to the start callback, and is thus in fact redundant.<br>
1862 The date value is used for all elements that return a date. See
1863 <a href="#struct_date_value">here</a> for the definition.<br>
1865 The xref value is for cross-references between records in the file. See
1866 <a href="#struct_xref_value">here</a> for the definition.<br>
1869 <h3><a name="struct_date_value"></a>struct date_value</h3>
1870 This struct describes a date as given in the GEDCOM file, and has the
1871 following definition:<br>
1873 <blockquote><code>struct date_value {<br>
1874 Date_value_type type;<br>
1875 struct date date1;<br>
1876 struct date date2;<br>
1877 char phrase[MAX_PHRASE_LEN
1881 It depends on the first member, the type, which members are actually
1885 <table cellpadding="2" cellspacing="2" border="1" width="100%">
1888 <td valign="top" align="center"><b>Date_value_type</b><br>
1890 <td valign="top" align="center"><b>Meaning</b><br>
1892 <td valign="top" align="center"><b>Relevant members</b><br>
1896 <td valign="top"><code>DV_NO_MODIFIER</code><br>
1898 <td valign="top">just a simple date<br>
1900 <td valign="top">date1<br>
1904 <td valign="top"><code>DV_BEFORE</code><br>
1906 <td valign="top">a range (BEFORE date1)<br>
1908 <td valign="top">date1<br>
1912 <td valign="top"><code>DV_AFTER</code><br>
1914 <td valign="top">a range (AFTER date1)<br>
1916 <td valign="top">date1<br>
1920 <td valign="top"><code>DV_BETWEEN</code><br>
1922 <td valign="top">a range (BETWEEN date1 AND date2)<br>
1924 <td valign="top">date1, date2<br>
1928 <td valign="top"><code>DV_FROM</code><br>
1930 <td valign="top">a period (FROM date1)<br>
1932 <td valign="top">date1<br>
1936 <td valign="top"><code>DV_TO</code><br>
1938 <td valign="top">a period (TO date1)<br>
1940 <td valign="top">date1<br>
1944 <td valign="top"><code>DV_FROM_TO</code><br>
1946 <td valign="top">a period (FROM date1 TO date2)<br>
1948 <td valign="top">date1, date2<br>
1952 <td valign="top"><code>DV_ABOUT</code><br>
1954 <td valign="top">an approximation (ABOUT date1)<br>
1956 <td valign="top">date1<br>
1960 <td valign="top"><code>DV_CALCULATED</code><br>
1962 <td valign="top">an approximation (CALCULATED date1)<br>
1964 <td valign="top">date1<br>
1968 <td valign="top"><code>DV_ESTIMATED</code><br>
1970 <td valign="top">an approximation (ESTIMATED date1)<br>
1972 <td valign="top">date1<br>
1976 <td valign="top"><code>DV_INTERPRETED</code><br>
1978 <td valign="top">INTERPRETED date1 FROM a given free form date
1981 <td valign="top">date1, phrase<br>
1985 <td valign="top"><code>DV_PHRASE</code><br>
1987 <td valign="top">a free form date phrase<br>
1989 <td valign="top">phrase<br>
1997 <h3><a name="struct_date"></a>struct date<br>
1999 The <code>date1</code> and <code>date2</code> also have a strict syntax:<br>
2001 <blockquote><code>struct date {<br>
2002 Calendar_type cal;<br>
2003 char day_str[MAX_DAY_LEN +
2005 char month_str[MAX_MONTH_LEN
2007 char year_str[MAX_YEAR_LEN
2010 int day;<br>
2011 int month;<br>
2012 int year;<br>
2013 Year_type year_type;<br>
2015 Date_type type;<br>
2016 long int sdn1;<br>
2017 long int sdn2;<br>
2020 The first four fields are the primary fields parsed from the value in
2021 the GEDCOM file. The <code>day_str</code>, <code>month_str</code>
2022 and <code> year_str</code> are the literal parts of the date that denote
2023 the day, month and year (the <code>day_str</code> and <code>month_str</code>
2024 can be empty) . The calendar type <code>cal</code> is one of (see
2025 calendar overview <i>LINK TBD</i>):<br>
2028 <li><code>CAL_GREGORIAN</code> : the Gregorian calendar</li>
2029 <li><code>CAL_JULIAN</code> : the Julian calendar</li>
2030 <li><code>CAL_HEBREW</code> : the Hebrew (Jewish) calendar</li>
2031 <li><code>CAL_FRENCH_REV</code> : the calendar used after the
2032 French Revolution</li>
2033 <li><code>CAL_UNKNOWN</code> : an unknown calendar type</li>
2036 The next four fields are deduced from the first four:<br>
2039 <li>the <code>day</code> is just the numeric representation of
2040 the <code>day_str</code> (starting from 1), -1 if the <code>day_str</code>
2042 <li>the <code>month</code> is the month number of <code>month_str</code>
2043 in the given calendar type (also starting from 1), -1 if the <code>
2044 month_str</code> is empty</li>
2045 <li>the <code>year</code> is the numeric representation of the
2046 <code> year_str</code></li>
2049 It is possible that the <code>year_str</code> is given as e.g. "1677/78".
2050 This is coming from a date in a so called "annunciation style", where
2051 the year began on 25 March: "20 March 1677/78" is 20 March 1677 in "annunciation
2052 style" and 20 March 1678 in "circumcision style" (the current style). See
2053 calendar overview (<i>LINK TBD</i>).<br>
2055 In this case, the <code>year</code> will contain the "circumcision style"
2056 year (1678 in the example), and <code>year_type</code> will be <code>YEAR_DOUBLE.</code>
2057 Normal dates will have a <code>year_type</code> equal to <code>
2058 YEAR_SINGLE</code> .<br>
2060 Finally, the last three fields are probably the most interesting values
2061 for applications that want to process dates. Basically, the date
2062 is converted to a serial day number (aka Julian day), which is the unique
2063 day number since November 25, 4714 BC in the Gregorian calendar. The
2064 advantage of these day numbers is that they are unique and independent
2065 of the calendar system. Furthermore, date differences can just be
2066 computed by subtracting the serial day numbers.<br>
2068 However, since dates in GEDCOM are not necessarily exact (e.g. "MAR
2069 1990"), it is not possible to represent all GEDCOM dates with 1 serial
2070 day number. Two cases can be distinguished:<br>
2073 <li>Exact dates (e.g. "25 MAR 1990"):</li>
2078 <blockquote>These are represented by a serial day number in <code>sdn1</code>
2079 and a <code>Date_type</code> equal to <code>DATE_EXACT</code>.<br>
2084 <li>Incomplete dates (e.g. "MAR 1990"):</li>
2091 <blockquote>These are represented by 2 serial day numbers (<code>sdn1</code> and <code>sdn2</code>) and a <code>Date_type</code> equal
2092 to <code>DATE_BOUNDED</code>.<br>
2095 For example, the Gregorian date "MAR 1990" is represented by the serial
2096 day numbers for "1 MAR 1990" and "31 MAR 1990", and the Gregorian date
2097 "1990" is represented by the serial day numbers for "1 JAN 1990" and "31
2098 DEC 1990". Similarly for the other calendar types.<br>
2103 <h3><a name="age_value"></a>struct age_value</h3>
2105 This struct describes an age as given in the GEDCOM file, and has the
2106 following definition:<br>
2109 <blockquote><code>struct age_value {<br>
2110 Age_type type;<br>
2111 Age_modifier mod;<br>
2112 int years;<br>
2113 int months;<br>
2114 int days;<br>
2115 char phrase[MAX_PHRASE_LEN
2124 It depends on the first member, the type, which members are actually
2127 <table cellpadding="2" cellspacing="2" border="1" width="100%">
2129 <td valign="top" align="center"><b>Age_type</b><br>
2131 <td valign="top" align="center"><b>Meaning</b><br>
2133 <td valign="top" align="center"><b>Relevant members</b><br>
2137 <td valign="top"><code>AGE_UNRECOGNIZED</code><br>
2139 <td valign="top">format not recognized, full raw value in phrase<br>
2141 <td valign="top">phrase<br>
2145 <td valign="top"><code>AGE_CHILD</code><br>
2147 <td valign="top">the indication 'CHILD'<br>
2149 <td valign="top">mod<br>
2153 <td valign="top"><code>AGE_INFANT</code><br>
2155 <td valign="top">the indication 'INFANT'<br>
2157 <td valign="top">mod<br>
2161 <td valign="top"><code>AGE_STILLBORN</code><br>
2163 <td valign="top">the indication 'STILLBORN'<br>
2165 <td valign="top">mod<br>
2167 <td valign="top"><code>AGE_NUMERIC</code><br>
2169 <td valign="top">an indication in years, months and/or days (each can be -1 if not given)<br>
2171 <td valign="top">mod, years, months, days<br>
2177 The modifier can be one of the following:<br>
2179 <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>
2182 <h3><a name="struct_xref_value"></a>struct xref_value</h3>
2184 This struct represents a cross-reference in the GEDCOM file (but note that
2185 the <code>Gedcom_val</code> contains a pointer to such a struct, not the struct
2186 itself). It is defined as:<br>
2188 <blockquote><code>struct xref_value {<br>
2189 Xref_type type,<br>
2190 char* string,<br>
2191 Gedcom_ctxt object<br>
2194 The <code>Xref_type</code> gives the type of the cross-reference and can
2198 <li><code>XREF_NONE</code> (used as default value)</li>
2199 <li><code>XREF_FAM</code></li>
2200 <li><code>XREF_INDI</code></li>
2201 <li><code>XREF_NOTE</code></li>
2202 <li><code>XREF_OBJE</code></li>
2203 <li><code>XREF_REPO</code></li>
2204 <li><code>XREF_SOUR</code></li>
2205 <li><code>XREF_SUBM</code></li>
2206 <li><code>XREF_SUBN</code></li><li><code>XREF_ANY</code> (if the type is not known, see below)<br>
2209 <li><code>XREF_USER</code> (for application-specific cross-references)<br>
2213 The <code>string</code> gives the actual cross-reference string from the
2214 GEDCOM file, and the <code>object</code> is initially <code>NULL,</code> but
2215 can be filled by the application with an object (of any type) that corresponds
2216 with the cross-reference, and then later extracted when the cross-reference
2217 is used or defined again in the file. This relieves the application
2218 from the burden of maintaining the mapping between cross-references and objects.<br>
2220 The value <code>XREF_ANY</code> is used when the type of the object is not
2221 immediately known: it has to come from further information. This is
2222 the case in an association (<code>ELT_SUB_ASSO</code>): the type is then given by the <code>TYPE</code> subtag.<br>
2224 The parser checks whether all cross-references that are used are defined
2225 (if not, an error is produced) and whether all cross-references that are
2226 defined are used (if not, a warning is produced). It also checks whether
2227 the type of the cross-reference is the same on definition and use (if not,
2228 an error is produced). The first two checks are done at the end of
2229 the parsing, because cross-references can be defined after their usage in
2232 An xref_value can also be retrieved by its key via the following function:<br>
2234 <blockquote><code>struct xref_value* <b>gedcom_get_by_xref</b> (char *key)</code><br>
2236 The function returns <code>NULL</code> if the given key isn't used.<br>
2238 <hr width="100%" size="2">
2239 <pre>$Id$<br>$Name$<br></pre>