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>
832 <td valign="top"><code>STRING</code><br>
836 <td valign="top"><code>ELT_SUB_ADDR_CONT</code><br>
838 <td valign="top"><code>CONT</code><br>
840 <td valign="top"><code>ELT_SUB_ADDR</code><br>
842 <td valign="top"><code>STRING</code><br>
846 <td valign="top"><code>ELT_SUB_ADDR_ADR1</code><br>
848 <td valign="top"><code>ADR1</code><br>
850 <td valign="top"><code>ELT_SUB_ADDR</code><br>
852 <td valign="top"><code>STRING</code><br>
856 <td valign="top"><code>ELT_SUB_ADDR_ADR2</code><br>
858 <td valign="top"><code>ADR2</code><br>
860 <td valign="top"><code>ELT_SUB_ADDR</code><br>
862 <td valign="top"><code>STRING</code><br>
866 <td valign="top"><code>ELT_SUB_ADDR_CITY</code><br>
868 <td valign="top"><code>CITY</code><br>
870 <td valign="top"><code>ELT_SUB_ADDR</code><br>
872 <td valign="top"><code>STRING</code><br>
876 <td valign="top"><code>ELT_SUB_ADDR_STAE</code><br>
878 <td valign="top"><code>STAE</code><br>
880 <td valign="top"><code>ELT_SUB_ADDR</code><br>
882 <td valign="top"><code>STRING</code><br>
886 <td valign="top"><code>ELT_SUB_ADDR_POST</code><br>
888 <td valign="top"><code>POST</code><br>
890 <td valign="top"><code>ELT_SUB_ADDR</code><br>
892 <td valign="top"><code>STRING</code><br>
896 <td valign="top"><code>ELT_SUB_ADDR_CTRY</code><br>
898 <td valign="top"><code>CTRY</code><br>
900 <td valign="top"><code>ELT_SUB_ADDR</code><br>
902 <td valign="top"><code>STRING</code><br>
906 <td valign="top"><code>ELT_SUB_PHON</code><br>
908 <td valign="top"><code>PHON</code><br>
910 <td valign="top"><code>ELT_HEAD_SOUR_CORP,<br>
911 REC_REPO, REC_SUBM,<br>
912 </code><code>ELT_SUB_FAM_EVT,<br>
913 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
914 ELT_SUB_INDIV_ATTR,<br>
915 ELT_SUB_INDIV_RESI,<br>
916 ELT_SUB_INDIV_BIRT,<br>
917 ELT_SUB_INDIV_GEN,<br>
918 ELT_SUB_INDIV_ADOP<br>
922 <td valign="top"><code>STRING</code><br>
926 <td valign="top"><code>ELT_SUB_ASSO</code><br>
928 <td valign="top"><code>ASSO</code><br>
930 <td valign="top"><code>REC_INDI</code><br>
932 <td valign="top"><code>XREF_PTR(INDI)</code><br>
936 <td valign="top"><code>ELT_SUB_ASSO_TYPE</code><br>
938 <td valign="top"><code>TYPE</code><br>
940 <td valign="top"><code>ELT_SUB_ASSO</code><br>
942 <td valign="top"><code>STRING</code><br>
946 <td valign="top"><code>ELT_SUB_ASSO_RELA</code><br>
948 <td valign="top"><code>RELA</code><br>
950 <td valign="top"><code>ELT_SUB_ASSO</code><br>
952 <td valign="top"><code>STRING</code><br>
956 <td valign="top"><code>ELT_SUB_CHAN</code><br>
958 <td valign="top"><code>CHAN</code><br>
960 <td valign="top"><code>REC_FAM, REC_INDI,<br>
961 REC_OBJE, REC_NOTE,<br>
962 REC_REPO, REC_SOUR,<br>
966 <td valign="top"><code>NULL</code><br>
970 <td valign="top"><code>ELT_SUB_CHAN_DATE</code><br>
972 <td valign="top"><code>DATE</code><br>
974 <td valign="top"><code>ELT_SUB_CHAN</code><br>
976 <td valign="top"><code>DATE</code><br>
980 <td valign="top"><code>ELT_SUB_CHAN_TIME</code><br>
982 <td valign="top"><code>TIME</code><br>
984 <td valign="top"><code>ELT_SUB_CHAN_DATE</code><br>
986 <td valign="top"><code>STRING</code><br>
990 <td valign="top"><code>ELT_SUB_FAMC</code><br>
992 <td valign="top"><code>FAMC</code><br>
994 <td valign="top"><code>REC_INDI</code><br>
996 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1000 <td valign="top"><code>ELT_SUB_FAMC_PEDI</code><br>
1002 <td valign="top"><code>PEDI</code><br>
1004 <td valign="top"><code>ELT_SUB_FAMC</code><br>
1006 <td valign="top"><code>STRING</code><br>
1010 <td valign="top"><code>ELT_SUB_CONT</code><br>
1012 <td valign="top"><code>CONT</code><br>
1014 <td valign="top"><code>ELT_HEAD_NOTE, REC_NOTE,<br>
1015 ELT_SOUR_AUTH, ELT_SOUR_TITL,<br>
1016 ELT_SOUR_PUBL, ELT_SOUR_TEXT,<br>
1018 ELT_SUB_SOUR, ELT_SUB_SOUR_TEXT<br>
1021 <td valign="top"><code>STRING</code><br>
1025 <td valign="top"><code>ELT_SUB_CONC</code><br>
1027 <td valign="top"><code>CONC</code><br>
1029 <td valign="top"><code>ELT_HEAD_NOTE, REC_NOTE,<br>
1030 ELT_SOUR_AUTH, ELT_SOUR_TITL,<br>
1031 ELT_SOUR_PUBL, ELT_SOUR_TEXT,<br>
1033 ELT_SUB_SOUR, ELT_SUB_SOUR_TEXT<br>
1036 <td valign="top"><code>STRING</code><br>
1040 <td valign="top"><code>ELT_SUB_EVT_TYPE</code><br>
1042 <td valign="top"><code>TYPE</code><br>
1044 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1045 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1046 ELT_SUB_INDIV_ATTR,<br>
1047 ELT_SUB_INDIV_RESI,<br>
1048 ELT_SUB_INDIV_BIRT,<br>
1049 ELT_SUB_INDIV_GEN,<br>
1050 ELT_SUB_INDIV_ADOP<br>
1053 <td valign="top"><code>STRING</code><br>
1057 <td valign="top"><code>ELT_SUB_EVT_DATE</code><br>
1059 <td valign="top"><code>DATE</code><br>
1061 <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1062 <code>ELT_SUB_FAM_EVT_EVEN,<br>
1063 ELT_SUB_INDIV_ATTR</code><code>,<br>
1064 ELT_SUB_INDIV_RESI,<br>
1065 ELT_SUB_INDIV_BIRT,<br>
1066 ELT_SUB_INDIV_GEN,<br>
1067 ELT_SUB_INDIV_ADOP<br>
1072 <td valign="top"><code>DATE</code><br>
1076 <td valign="top"><code>ELT_SUB_EVT_AGE</code><br>
1078 <td valign="top"><code>AGE</code><br>
1080 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1081 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1082 ELT_SUB_INDIV_ATTR,<br>
1083 ELT_SUB_INDIV_RESI</code><code>,<br>
1084 ELT_SUB_INDIV_BIRT,<br>
1085 ELT_SUB_INDIV_GEN,<br>
1086 ELT_SUB_INDIV_ADOP</code><br>
1090 <td valign="top"><code>AGE</code><br>
1094 <td valign="top"><code>ELT_SUB_EVT_AGNC</code><br>
1096 <td valign="top"><code>AGNC</code><br>
1098 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1099 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1100 ELT_SUB_INDIV_ATTR,<br>
1101 ELT_SUB_INDIV_RESI</code><code>,<br>
1102 ELT_SUB_INDIV_BIRT,<br>
1103 ELT_SUB_INDIV_GEN,<br>
1104 ELT_SUB_INDIV_ADOP</code><br>
1108 <td valign="top"><code>STRING</code><br>
1112 <td valign="top"><code>ELT_SUB_EVT_CAUS</code><br>
1114 <td valign="top"><code>CAUS</code><br>
1116 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1117 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1118 ELT_SUB_INDIV_ATTR,<br>
1119 ELT_SUB_INDIV_RESI</code><code>,<br>
1120 ELT_SUB_INDIV_BIRT,<br>
1121 ELT_SUB_INDIV_GEN,<br>
1122 ELT_SUB_INDIV_ADOP</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_SOUR</code><br>
1471 <td valign="top"><code>NULL<br>
1477 <td valign="top"><code>ELT_SUB_MULTIM_OBJE_FORM</code><br>
1479 <td valign="top"><code>FORM</code><br>
1481 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1483 <td valign="top"><code>STRING</code><br>
1487 <td valign="top"><code>ELT_SUB_MULTIM_OBJE_TITL</code><br>
1489 <td valign="top"><code>TITL</code><br>
1491 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1493 <td valign="top"><code>STRING</code><br>
1497 <td valign="top"><code>ELT_SUB_MULTIM_OBJE_FILE</code><br>
1499 <td valign="top"><code>FILE</code><br>
1501 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1503 <td valign="top"><code>STRING</code><br>
1507 <td valign="top"><code>ELT_SUB_NOTE</code><br>
1509 <td valign="top"><code>NOTE</code><br>
1511 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1512 REC_OBJE, REC_REPO,<br>
1513 REC_SOUR, ELT_SOUR_DATA,<br>
1514 ELT_SUB_ASSO, ELT_SUB_CHAN,<br>
1515 ELT_SUB_FAMC, </code><code>ELT_SUB_FAM_EVT,<br>
1516 ELT_SUB_FAM_EVT_EVEN,<br>
1517 ELT_SUB_INDIV_ATTR,<br>
1518 ELT_SUB_INDIV_RESI</code><code>,<br>
1519 ELT_SUB_INDIV_BIRT,<br>
1520 ELT_SUB_INDIV_GEN,<br>
1521 ELT_SUB_INDIV_ADOP,<br>
1522 ELT_SUB_LIO_BAPL,<br>
1523 ELT_SUB_LIO_SLGC,<br>
1524 ELT_SUB_LSS_SLGS,<br>
1525 ELT_SUB_MULTIM_OBJE,<br>
1526 ELT_SUB_PERS_NAME,<br>
1530 ELT_SUB_FAMS</code><br>
1532 <td valign="top"><code>NULL<br>
1539 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1541 <td valign="top"><code>NAME</code><br>
1543 <td valign="top"><code>REC_INDI</code><br>
1545 <td valign="top"><code>STRING</code><br>
1549 <td valign="top"><code>ELT_SUB_PERS_NAME_NPFX</code><br>
1551 <td valign="top"><code>NPFX</code><br>
1553 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1555 <td valign="top"><code>STRING</code><br>
1559 <td valign="top"><code>ELT_SUB_PERS_NAME_GIVN</code><br>
1561 <td valign="top"><code>GIVN</code><br>
1563 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1565 <td valign="top"><code>STRING</code><br>
1569 <td valign="top"><code>ELT_SUB_PERS_NAME_NICK</code><br>
1571 <td valign="top"><code>NICK</code><br>
1573 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1575 <td valign="top"><code>STRING</code><br>
1579 <td valign="top"><code>ELT_SUB_PERS_NAME_SPFX</code><br>
1581 <td valign="top"><code>SPFX</code><br>
1583 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1585 <td valign="top"><code>STRING</code><br>
1589 <td valign="top"><code>ELT_SUB_PERS_NAME_SURN</code><br>
1591 <td valign="top"><code>SURN</code><br>
1593 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1595 <td valign="top"><code>STRING</code><br>
1599 <td valign="top"><code>ELT_SUB_PERS_NAME_NSFX</code><br>
1601 <td valign="top"><code>NSFX</code><br>
1603 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1605 <td valign="top"><code>STRING</code><br>
1609 <td valign="top"><code>ELT_SUB_PLAC</code><br>
1611 <td valign="top"><code>PLAC</code><br>
1613 <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1614 <code>ELT_SUB_FAM_EVT_EVEN,<br>
1615 ELT_SUB_INDIV_ATTR,<br>
1616 ELT_SUB_INDIV_RESI</code><br>
1618 <td valign="top"><code>STRING</code><br>
1622 <td valign="top"><code>ELT_SUB_PLAC_FORM</code><br>
1624 <td valign="top"><code>FORM</code><br>
1626 <td valign="top"><code>ELT_SUB_PLAC</code><br>
1628 <td valign="top"><code>STRING</code><br>
1632 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1634 <td valign="top"><code>SOUR</code><br>
1636 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1637 REC_NOTE, ELT_SUB_ASSO<br>
1638 </code><code>ELT_SUB_FAM_EVT,<br>
1639 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1640 ELT_SUB_INDIV_ATTR,<br>
1641 ELT_SUB_INDIV_RESI</code><code>,<br>
1642 ELT_SUB_INDIV_BIRT,<br>
1643 ELT_SUB_INDIV_GEN,<br>
1644 ELT_SUB_INDIV_ADOP,<br>
1645 ELT_SUB_LIO_BAPL,<br>
1646 ELT_SUB_LIO_SLGC,<br>
1647 ELT_SUB_LSS_SLGS,<br>
1649 ELT_SUB_PERS_NAME,<br>
1650 ELT_SUB_PLAC</code><br>
1652 <td valign="top"><code>STRING<br>
1653 XREF_PTR(SOUR)</code><br>
1657 <td valign="top"><code>ELT_SUB_SOUR_PAGE</code><br>
1659 <td valign="top"><code>PAGE</code><br>
1661 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1663 <td valign="top"><code>STRING</code><br>
1667 <td valign="top"><code>ELT_SUB_SOUR_EVEN</code><br>
1669 <td valign="top"><code>EVEN</code><br>
1671 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1673 <td valign="top"><code>STRING</code><br>
1677 <td valign="top"><code>ELT_SUB_SOUR_EVEN_ROLE</code><br>
1679 <td valign="top"><code>ROLE</code><br>
1681 <td valign="top"><code>ELT_SUB_SOUR_EVEN</code><br>
1683 <td valign="top"><code>STRING</code><br>
1687 <td valign="top"><code>ELT_SUB_SOUR_DATA</code><br>
1689 <td valign="top"><code>DATA</code><br>
1691 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1693 <td valign="top"><code>NULL</code><br>
1697 <td valign="top"><code>ELT_SUB_SOUR_DATA_DATE</code><br>
1699 <td valign="top"><code>DATE</code><br>
1701 <td valign="top"><code>ELT_SUB_SOUR_DATA</code><br>
1703 <td valign="top"><code>DATE</code><br>
1707 <td valign="top"><code>ELT_SUB_SOUR_TEXT</code><br>
1709 <td valign="top"><code>TEXT</code><br>
1711 <td valign="top"><code>ELT_SUB_SOUR<br>
1712 ELT_SUB_SOUR_DATA</code><br>
1714 <td valign="top"><code>STRING</code><br>
1718 <td valign="top"><code>ELT_SUB_SOUR_QUAY</code><br>
1720 <td valign="top"><code>QUAY</code><br>
1722 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1724 <td valign="top"><code>STRING</code><br>
1728 <td valign="top"><code>ELT_SUB_REPO</code><br>
1730 <td valign="top"><code>REPO</code><br>
1732 <td valign="top"><code>REC_SOUR</code><br>
1734 <td valign="top"><code>XREF_PTR(REPO)</code><br>
1738 <td valign="top"><code>ELT_SUB_REPO_CALN</code><br>
1740 <td valign="top"><code>CALN</code><br>
1742 <td valign="top"><code>ELT_SUB_REPO</code><br>
1744 <td valign="top"><code>STRING</code><br>
1748 <td valign="top"><code>ELT_SUB_REPO_CALN_MEDI</code><br>
1750 <td valign="top"><code>MEDI</code><br>
1752 <td valign="top"><code>ELT_SUB_REPO_CALN</code><br>
1754 <td valign="top"><code>STRING</code><br>
1758 <td valign="top"><code>ELT_SUB_FAMS</code><br>
1760 <td valign="top"><code>FAMS</code><br>
1762 <td valign="top"><code>REC_INDI</code><br>
1764 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1768 <td valign="top"><code>ELT_USER</code><br>
1770 <td valign="top"><code>any tag starting<br>
1771 with an underscore</code><br>
1773 <td valign="top"><code>anywhere</code><br>
1775 <td valign="top"><code>NULL<br>
1777 XREF_PTR(USER)</code><br>
1784 <hr width="100%" size="2">
1785 <h2><a name="Gedcom_val_types"></a>Gedcom_val types<br>
1787 Currently, the specific <code>Gedcom_val</code> types are (with <code>
1788 val</code> of type <code>Gedcom_val</code>):<br>
1791 <table cellpadding="2" cellspacing="2" border="1" width="100%">
1794 <td valign="top"><br>
1796 <td valign="top"><b>type checker</b><br>
1798 <td valign="top"><b>cast operator</b><br>
1802 <td valign="top">null value<br>
1804 <td valign="top"><code>GEDCOM_IS_NULL(val)</code><br>
1806 <td valign="top">N/A<br>
1810 <td valign="top">string<br>
1812 <td valign="top"><code>GEDCOM_IS_STRING(val)</code><br>
1814 <td valign="top"><code>char* str = GEDCOM_STRING(val);</code><br>
1818 <td valign="top">date<br>
1820 <td valign="top"><code>GEDCOM_IS_DATE(val)</code><br>
1822 <td valign="top"><code>struct date_value dv = GEDCOM_DATE(val);</code></td>
1825 <td valign="top">age<br>
1827 <td valign="top"><code>GEDCOM_IS_AGE(val)</code><br>
1829 <td valign="top"><code>struct age_value age = GEDCOM_AGE(val);</code><br>
1833 <td valign="top">xref pointer<br>
1835 <td valign="top"><code>GEDCOM_IS_XREF_PTR(val)</code><br>
1837 <td valign="top"><code>struct xref_value *xr = GEDCOM_XREF_PTR(val);</code><br>
1845 The type checker returns a true or a false value according to the
1846 type of the value, but this is in principle only necessary in the rare
1847 circumstances that two types are possible, or where an optional value
1848 can be provided. In most cases, the type is fixed for a specific
1851 The null value is used for when the GEDCOM spec doesn't allow a value,
1852 or when an optional value is allowed but none is given.<br>
1854 The string value is the most general used value currently, for all
1855 those values that don't have a more specific meaning. In essence,
1856 the value that is returned by <code>GEDCOM_STRING(val)</code> is always the same as the
1857 <code>raw_value</code> passed to the start callback, and is thus in fact redundant.<br>
1859 The date value is used for all elements that return a date. See
1860 <a href="#struct_date_value">here</a> for the definition.<br>
1862 The xref value is for cross-references between records in the file. See
1863 <a href="#struct_xref_value">here</a> for the definition.<br>
1866 <h3><a name="struct_date_value"></a>struct date_value</h3>
1867 This struct describes a date as given in the GEDCOM file, and has the
1868 following definition:<br>
1870 <blockquote><code>struct date_value {<br>
1871 Date_value_type type;<br>
1872 struct date date1;<br>
1873 struct date date2;<br>
1874 char phrase[MAX_PHRASE_LEN
1878 It depends on the first member, the type, which members are actually
1882 <table cellpadding="2" cellspacing="2" border="1" width="100%">
1885 <td valign="top" align="center"><b>Date_value_type</b><br>
1887 <td valign="top" align="center"><b>Meaning</b><br>
1889 <td valign="top" align="center"><b>Relevant members</b><br>
1893 <td valign="top"><code>DV_NO_MODIFIER</code><br>
1895 <td valign="top">just a simple date<br>
1897 <td valign="top">date1<br>
1901 <td valign="top"><code>DV_BEFORE</code><br>
1903 <td valign="top">a range (BEFORE date1)<br>
1905 <td valign="top">date1<br>
1909 <td valign="top"><code>DV_AFTER</code><br>
1911 <td valign="top">a range (AFTER date1)<br>
1913 <td valign="top">date1<br>
1917 <td valign="top"><code>DV_BETWEEN</code><br>
1919 <td valign="top">a range (BETWEEN date1 AND date2)<br>
1921 <td valign="top">date1, date2<br>
1925 <td valign="top"><code>DV_FROM</code><br>
1927 <td valign="top">a period (FROM date1)<br>
1929 <td valign="top">date1<br>
1933 <td valign="top"><code>DV_TO</code><br>
1935 <td valign="top">a period (TO date1)<br>
1937 <td valign="top">date1<br>
1941 <td valign="top"><code>DV_FROM_TO</code><br>
1943 <td valign="top">a period (FROM date1 TO date2)<br>
1945 <td valign="top">date1, date2<br>
1949 <td valign="top"><code>DV_ABOUT</code><br>
1951 <td valign="top">an approximation (ABOUT date1)<br>
1953 <td valign="top">date1<br>
1957 <td valign="top"><code>DV_CALCULATED</code><br>
1959 <td valign="top">an approximation (CALCULATED date1)<br>
1961 <td valign="top">date1<br>
1965 <td valign="top"><code>DV_ESTIMATED</code><br>
1967 <td valign="top">an approximation (ESTIMATED date1)<br>
1969 <td valign="top">date1<br>
1973 <td valign="top"><code>DV_INTERPRETED</code><br>
1975 <td valign="top">INTERPRETED date1 FROM a given free form date
1978 <td valign="top">date1, phrase<br>
1982 <td valign="top"><code>DV_PHRASE</code><br>
1984 <td valign="top">a free form date phrase<br>
1986 <td valign="top">phrase<br>
1994 <h3><a name="struct_date"></a>struct date<br>
1996 The <code>date1</code> and <code>date2</code> also have a strict syntax:<br>
1998 <blockquote><code>struct date {<br>
1999 Calendar_type cal;<br>
2000 char day_str[MAX_DAY_LEN +
2002 char month_str[MAX_MONTH_LEN
2004 char year_str[MAX_YEAR_LEN
2007 int day;<br>
2008 int month;<br>
2009 int year;<br>
2010 Year_type year_type;<br>
2012 Date_type type;<br>
2013 long int sdn1;<br>
2014 long int sdn2;<br>
2017 The first four fields are the primary fields parsed from the value in
2018 the GEDCOM file. The <code>day_str</code>, <code>month_str</code>
2019 and <code> year_str</code> are the literal parts of the date that denote
2020 the day, month and year (the <code>day_str</code> and <code>month_str</code>
2021 can be empty) . The calendar type <code>cal</code> is one of (see
2022 calendar overview <i>LINK TBD</i>):<br>
2025 <li><code>CAL_GREGORIAN</code> : the Gregorian calendar</li>
2026 <li><code>CAL_JULIAN</code> : the Julian calendar</li>
2027 <li><code>CAL_HEBREW</code> : the Hebrew (Jewish) calendar</li>
2028 <li><code>CAL_FRENCH_REV</code> : the calendar used after the
2029 French Revolution</li>
2030 <li><code>CAL_UNKNOWN</code> : an unknown calendar type</li>
2033 The next four fields are deduced from the first four:<br>
2036 <li>the <code>day</code> is just the numeric representation of
2037 the <code>day_str</code> (starting from 1), -1 if the <code>day_str</code>
2039 <li>the <code>month</code> is the month number of <code>month_str</code>
2040 in the given calendar type (also starting from 1), -1 if the <code>
2041 month_str</code> is empty</li>
2042 <li>the <code>year</code> is the numeric representation of the
2043 <code> year_str</code></li>
2046 It is possible that the <code>year_str</code> is given as e.g. "1677/78".
2047 This is coming from a date in a so called "annunciation style", where
2048 the year began on 25 March: "20 March 1677/78" is 20 March 1677 in "annunciation
2049 style" and 20 March 1678 in "circumcision style" (the current style). See
2050 calendar overview (<i>LINK TBD</i>).<br>
2052 In this case, the <code>year</code> will contain the "circumcision style"
2053 year (1678 in the example), and <code>year_type</code> will be <code>YEAR_DOUBLE.</code>
2054 Normal dates will have a <code>year_type</code> equal to <code>
2055 YEAR_SINGLE</code> .<br>
2057 Finally, the last three fields are probably the most interesting values
2058 for applications that want to process dates. Basically, the date
2059 is converted to a serial day number (aka Julian day), which is the unique
2060 day number since November 25, 4714 BC in the Gregorian calendar. The
2061 advantage of these day numbers is that they are unique and independent
2062 of the calendar system. Furthermore, date differences can just be
2063 computed by subtracting the serial day numbers.<br>
2065 However, since dates in GEDCOM are not necessarily exact (e.g. "MAR
2066 1990"), it is not possible to represent all GEDCOM dates with 1 serial
2067 day number. Two cases can be distinguished:<br>
2070 <li>Exact dates (e.g. "25 MAR 1990"):</li>
2075 <blockquote>These are represented by a serial day number in <code>sdn1</code>
2076 and a <code>Date_type</code> equal to <code>DATE_EXACT</code>.<br>
2081 <li>Incomplete dates (e.g. "MAR 1990"):</li>
2088 <blockquote>These are represented by 2 serial day numbers (<code>sdn1</code> and <code>sdn2</code>) and a <code>Date_type</code> equal
2089 to <code>DATE_BOUNDED</code>.<br>
2092 For example, the Gregorian date "MAR 1990" is represented by the serial
2093 day numbers for "1 MAR 1990" and "31 MAR 1990", and the Gregorian date
2094 "1990" is represented by the serial day numbers for "1 JAN 1990" and "31
2095 DEC 1990". Similarly for the other calendar types.<br>
2100 <h3><a name="age_value"></a>struct age_value</h3>
2102 This struct describes an age as given in the GEDCOM file, and has the
2103 following definition:<br>
2106 <blockquote><code>struct age_value {<br>
2107 Age_type type;<br>
2108 Age_modifier mod;<br>
2109 int years;<br>
2110 int months;<br>
2111 int days;<br>
2112 char phrase[MAX_PHRASE_LEN
2121 It depends on the first member, the type, which members are actually
2124 <table cellpadding="2" cellspacing="2" border="1" width="100%">
2126 <td valign="top" align="center"><b>Age_type</b><br>
2128 <td valign="top" align="center"><b>Meaning</b><br>
2130 <td valign="top" align="center"><b>Relevant members</b><br>
2134 <td valign="top"><code>AGE_UNRECOGNIZED</code><br>
2136 <td valign="top">format not recognized, full raw value in phrase<br>
2138 <td valign="top">phrase<br>
2142 <td valign="top"><code>AGE_CHILD</code><br>
2144 <td valign="top">the indication 'CHILD'<br>
2146 <td valign="top">mod<br>
2150 <td valign="top"><code>AGE_INFANT</code><br>
2152 <td valign="top">the indication 'INFANT'<br>
2154 <td valign="top">mod<br>
2158 <td valign="top"><code>AGE_STILLBORN</code><br>
2160 <td valign="top">the indication 'STILLBORN'<br>
2162 <td valign="top">mod<br>
2164 <td valign="top"><code>AGE_NUMERIC</code><br>
2166 <td valign="top">an indication in years, months and/or days (each can be -1 if not given)<br>
2168 <td valign="top">mod, years, months, days<br>
2174 The modifier can be one of the following:<br>
2176 <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>
2179 <h3><a name="struct_xref_value"></a>struct xref_value</h3>
2181 This struct represents a cross-reference in the GEDCOM file (but note that
2182 the <code>Gedcom_val</code> contains a pointer to such a struct, not the struct
2183 itself). It is defined as:<br>
2185 <blockquote><code>struct xref_value {<br>
2186 Xref_type type,<br>
2187 char* string,<br>
2188 Gedcom_ctxt object<br>
2191 The <code>Xref_type</code> gives the type of the cross-reference and can
2195 <li><code>XREF_NONE</code> (used as default value)</li>
2196 <li><code>XREF_FAM</code></li>
2197 <li><code>XREF_INDI</code></li>
2198 <li><code>XREF_NOTE</code></li>
2199 <li><code>XREF_OBJE</code></li>
2200 <li><code>XREF_REPO</code></li>
2201 <li><code>XREF_SOUR</code></li>
2202 <li><code>XREF_SUBM</code></li>
2203 <li><code>XREF_SUBN</code></li>
2204 <li><code>XREF_USER</code> (for application-specific cross-references)<br>
2208 The <code>string</code> gives the actual cross-reference string from the
2209 GEDCOM file, and the <code>object</code> is initially <code>NULL,</code> but
2210 can be filled by the application with an object (of any type) that corresponds
2211 with the cross-reference, and then later extracted when the cross-reference
2212 is used or defined again in the file. This relieves the application
2213 from the burden of maintaining the mapping between cross-references and objects.<br>
2215 The parser checks whether all cross-references that are used are defined
2216 (if not, an error is produced) and whether all cross-references that are
2217 defined are used (if not, a warning is produced). It also checks whether
2218 the type of the cross-reference is the same on definition and use (if not,
2219 an error is produced). The first two checks are done at the end of
2220 the parsing, because cross-references can be defined after their usage in
2224 <hr width="100%" size="2">
2225 <pre>$Id$<br>$Name$<br></pre>