1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
4 <title>Libgedcom interface details</title>
6 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
10 <h1 align="center">Libgedcom interface details</h1>
16 <li><a href="#Record_identifiers">Record identifiers</a></li>
17 <li><a href="#Element_identifiers">Element identifiers</a></li>
18 <li><a href="#Gedcom_val_types">Gedcom_val types</a></li>
21 <li><a href="#struct_date_value">struct date_value</a></li>
22 <li><a href="#struct_date">struct date</a></li>
23 <li><a href="#struct_xref_value">struct xref_value</a><br>
31 <hr width="100%" size="2">
32 <h2><a name="Record_identifiers"></a>Record identifiers</h2>
33 The following table describes the identifiers to be used in the record
34 callbacks. The last columns gives the <a href="#Gedcom_val_types"><code>
35 Gedcom_val</code> type</a> of the <code>xref</code> and <code>val</code><code>
36 </code> arguments in the header start callback.<br>
39 <table width="100%" border="1" cellspacing="2" cellpadding="2">
42 <td valign="top" align="center"><b>Record</b><br>
44 <td valign="top" align="center"><b>Meaning</b><br>
46 <td valign="top" align="center"><b>Possible<br>
47 <code>xref</code> types</b><br>
49 <td valign="top" align="center"><b>Possible<br>
50 <code>val</code> types<br>
55 <td valign="top"><code>REC_HEAD</code><br>
57 <td valign="top">The header of the GEDCOM file<br>
59 <td valign="top"><code>NULL</code><br>
61 <td valign="top"><code>NULL</code><br>
65 <td valign="top"><code>REC_FAM</code><br>
67 <td valign="top">A record describing a family<br>
69 <td valign="top"><code>XREF_PTR(FAM)</code><br>
71 <td valign="top"><code>NULL</code><br>
75 <td valign="top"><code>REC_INDI</code><br>
77 <td valign="top">A record describing an individual<br>
79 <td valign="top"><code>XREF_PTR(INDI)</code><br>
81 <td valign="top"><code>NULL</code><br>
85 <td valign="top"><code>REC_OBJE</code><br>
87 <td valign="top">A record describing a multimedia object<br>
89 <td valign="top"><code>XREF_PTR(OBJE)</code><br>
91 <td valign="top"><code>NULL</code><br>
95 <td valign="top"><code>REC_NOTE</code><br>
97 <td valign="top">A record describing a note<br>
99 <td valign="top"><code>XREF_PTR(NOTE)</code><br>
101 <td valign="top"><code>STRING</code><br>
105 <td valign="top"><code>REC_REPO</code><br>
107 <td valign="top">A record describing a source repository<br>
109 <td valign="top"><code>XREF_PTR(REPO)</code><br>
111 <td valign="top"><code>NULL</code><br>
115 <td valign="top"><code>REC_SOUR</code><br>
117 <td valign="top">A record describing a source<br>
119 <td valign="top"><code>XREF_PTR(SOUR)</code><br>
121 <td valign="top"><code>NULL</code><br>
125 <td valign="top"><code>REC_SUBN</code><br>
127 <td valign="top">A record describing the submission<br>
129 <td valign="top"><code>XREF_PTR(SUBN)</code><br>
131 <td valign="top"><code>NULL</code><br>
135 <td valign="top"><code>REC_SUBM</code><br>
137 <td valign="top">A record describing the submitter<br>
139 <td valign="top"><code>XREF_PTR(SUBM</code>)<br>
141 <td valign="top"><code>NULL</code><br>
145 <td valign="top"><code>REC_USER</code><br>
147 <td valign="top">An application-specific record (the <code>tag</code>
148 in the start callback contains the actually used tag).<br>
150 <td valign="top"><code>NULL<br>
154 <td valign="top"><code>NULL<br>
156 XREF_PTR(USER)</code><br>
163 <hr width="100%" size="2">
164 <h2><a name="Element_identifiers"></a>Element identifiers</h2>
165 The following table describes the identifiers to be used in the element
166 callbacks. The last column gives the <a href="file:///home/verthezp/src/external/gedcom-parse/doc/interface.html#Gedcom_val_types"><code>
167 Gedcom_val</code> type</a> of the <code>val</code> argument in the element
171 <table cellpadding="2" cellspacing="2" border="1" width="100%">
174 <td valign="top" align="center"><b>Element</b><br>
176 <td valign="top" align="center"><b>Possible<br>
180 <td valign="top" align="center"><b>Used within</b><br>
182 <td valign="top" align="center"><b>Possible<br>
183 <code>val</code> types<br>
188 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
190 <td valign="top"><code>SOUR</code><br>
192 <td valign="top"><code>REC_HEAD</code><br>
194 <td valign="top"><code>STRING</code><br>
198 <td valign="top"><code>ELT_HEAD_SOUR_VERS</code><br>
200 <td valign="top"><code>VERS</code><br>
202 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
204 <td valign="top"><code>STRING</code><br>
208 <td valign="top"><code>ELT_HEAD_SOUR_NAME</code><br>
210 <td valign="top"><code>NAME</code><br>
212 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
214 <td valign="top"><code>STRING</code><br>
218 <td valign="top"><code>ELT_HEAD_SOUR_CORP</code><br>
220 <td valign="top"><code>CORP</code><br>
222 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
224 <td valign="top"><code>STRING</code><br>
228 <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
230 <td valign="top"><code>DATA</code><br>
232 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
234 <td valign="top"><code>STRING</code><br>
238 <td valign="top"><code>ELT_HEAD_SOUR_DATA_DATE</code><br>
240 <td valign="top"><code>DATE</code><br>
242 <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
244 <td valign="top"><code>DATE</code><br>
248 <td valign="top"><code>ELT_HEAD_SOUR_DATA_COPR</code><br>
250 <td valign="top"><code>COPR</code><br>
252 <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
254 <td valign="top"><code>STRING</code><br>
258 <td valign="top"><code>ELT_HEAD_DEST</code><br>
260 <td valign="top"><code>DEST</code><br>
262 <td valign="top"><code>REC_HEAD</code><br>
264 <td valign="top"><code>STRING</code><br>
268 <td valign="top"><code>ELT_HEAD_DATE</code><br>
270 <td valign="top"><code>DATE</code><br>
272 <td valign="top"><code>REC_HEAD</code><br>
274 <td valign="top"><code>DATE</code><br>
278 <td valign="top"><code>ELT_HEAD_DATE_TIME</code><br>
280 <td valign="top"><code>TIME</code><br>
282 <td valign="top"><code>ELT_HEAD_DATE</code><br>
284 <td valign="top"><code>STRING</code><br>
288 <td valign="top"><code>ELT_HEAD_SUBM</code><br>
290 <td valign="top"><code>SUBM</code><br>
292 <td valign="top"><code>REC_HEAD</code><br>
294 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
298 <td valign="top"><code>ELT_HEAD_SUBN</code><br>
300 <td valign="top"><code>SUBN</code><br>
302 <td valign="top"><code>REC_HEAD</code><br>
304 <td valign="top"><code>XREF_PTR(SUBN)</code><br>
308 <td valign="top"><code>ELT_HEAD_FILE</code><br>
310 <td valign="top"><code>FILE</code><br>
312 <td valign="top"><code>REC_HEAD</code><br>
314 <td valign="top"><code>STRING</code><br>
318 <td valign="top"><code>ELT_HEAD_COPR</code><br>
320 <td valign="top"><code>COPR</code><br>
322 <td valign="top"><code>REC_HEAD</code><br>
324 <td valign="top"><code>STRING</code><br>
328 <td valign="top"><code>ELT_HEAD_GEDC</code><br>
330 <td valign="top"><code>GEDC</code><br>
332 <td valign="top"><code>REC_HEAD</code><br>
334 <td valign="top"><code>NULL</code><br>
338 <td valign="top"><code>ELT_HEAD_GEDC_VERS</code><br>
340 <td valign="top"><code>VERS</code><br>
342 <td valign="top"><code>ELT_HEAD_GEDC</code><br>
344 <td valign="top"><code>STRING</code><br>
348 <td valign="top"><code>ELT_HEAD_GEDC_FORM</code><br>
350 <td valign="top"><code>FORM</code><br>
352 <td valign="top"><code>ELT_HEAD_GEDC</code><br>
354 <td valign="top"><code>STRING</code><br>
358 <td valign="top"><code>ELT_HEAD_CHAR</code><br>
360 <td valign="top"><code>CHAR</code><br>
362 <td valign="top"><code>REC_HEAD</code><br>
364 <td valign="top"><code>STRING</code><br>
368 <td valign="top"><code>ELT_HEAD_CHAR_VERS</code><br>
370 <td valign="top"><code>VERS</code><br>
372 <td valign="top"><code>ELT_HEAD_CHAR</code><br>
374 <td valign="top"><code>STRING</code><br>
378 <td valign="top"><code>ELT_HEAD_LANG</code><br>
380 <td valign="top"><code>LANG</code><br>
382 <td valign="top"><code>REC_HEAD</code><br>
384 <td valign="top"><code>STRING</code><br>
388 <td valign="top"><code>ELT_HEAD_PLAC</code><br>
390 <td valign="top"><code>PLAC</code><br>
392 <td valign="top"><code>REC_HEAD</code><br>
394 <td valign="top"><code>NULL</code><br>
398 <td valign="top"><code>ELT_HEAD_PLAC_FORM</code><br>
400 <td valign="top"><code>FORM</code><br>
402 <td valign="top"><code>ELT_HEAD_PLAC</code><br>
404 <td valign="top"><code>STRING</code><br>
408 <td valign="top"><code>ELT_HEAD_NOTE</code><br>
410 <td valign="top"><code>NOTE</code><br>
412 <td valign="top"><code>REC_HEAD</code><br>
414 <td valign="top"><code>STRING</code><br>
418 <td valign="top"><code>ELT_FAM_HUSB</code><br>
420 <td valign="top"><code>HUSB</code><br>
422 <td valign="top"><code>REC_FAM</code><br>
424 <td valign="top"><code>XREF_PTR(INDI)</code><br>
428 <td valign="top"><code>ELT_FAM_WIFE</code><br>
430 <td valign="top"><code>WIFE</code><br>
432 <td valign="top"><code>REC_FAM</code><br>
434 <td valign="top"><code>XREF_PTR(INDI)</code><br>
438 <td valign="top"><code>ELT_FAM_CHIL</code><br>
440 <td valign="top"><code>CHIL</code><br>
442 <td valign="top"><code>REC_FAM</code><br>
444 <td valign="top"><code>XREF_PTR(INDI)</code><br>
448 <td valign="top"><code>ELT_FAM_NCHI</code><br>
450 <td valign="top"><code>NCHI</code><br>
452 <td valign="top"><code>REC_FAM</code><br>
454 <td valign="top"><code>STRING</code><br>
458 <td valign="top"><code>ELT_FAM_SUBM</code><br>
460 <td valign="top"><code>SUBM</code><br>
462 <td valign="top"><code>REC_FAM</code><br>
464 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
468 <td valign="top"><code>ELT_INDI_RESN</code><br>
470 <td valign="top"><code>RES</code><code>N</code><br>
472 <td valign="top"><code>REC_INDI</code><br>
474 <td valign="top"><code>STRING</code><br>
478 <td valign="top"><code>ELT_INDI_SEX</code><br>
480 <td valign="top"><code>SEX</code><br>
482 <td valign="top"><code>REC_INDI</code><br>
484 <td valign="top"><code>STRING</code><br>
488 <td valign="top"><code>ELT_INDI_SUBM</code><br>
490 <td valign="top"><code>SUBM</code><br>
492 <td valign="top"><code>REC_INDI</code><br>
494 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
498 <td valign="top"><code>ELT_INDI_ALIA</code><br>
500 <td valign="top"><code>ALIA</code><br>
502 <td valign="top"><code>REC_INDI</code><br>
504 <td valign="top"><code>XREF_PTR(INDI)</code><br>
508 <td valign="top"><code>ELT_INDI_ANCI</code><br>
510 <td valign="top"><code>ANCI</code><br>
512 <td valign="top"><code>REC_INDI</code><br>
514 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
518 <td valign="top"><code>ELT_INDI_DESI</code><br>
520 <td valign="top"><code>DESI</code><br>
522 <td valign="top"><code>REC_INDI</code><br>
524 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
528 <td valign="top"><code>ELT_INDI_RFN</code><br>
530 <td valign="top"><code>RFN</code><br>
532 <td valign="top"><code>REC_INDI</code><br>
534 <td valign="top"><code>STRING</code><br>
538 <td valign="top"><code>ELT_INDI_AFN</code><br>
540 <td valign="top"><code>AFN</code><br>
542 <td valign="top"><code>REC_INDI</code><br>
544 <td valign="top"><code>STRING</code><br>
548 <td valign="top"><code>ELT_OBJE_FORM</code><br>
550 <td valign="top"><code>FORM</code><br>
552 <td valign="top"><code>REC_OBJE</code><br>
554 <td valign="top"><code>STRING</code><br>
558 <td valign="top"><code>ELT_OBJE_TITL</code><br>
560 <td valign="top"><code>TITL</code><br>
562 <td valign="top"><code>REC_OBJE</code><br>
564 <td valign="top"><code>STRING</code><br>
568 <td valign="top"><code>ELT_OBJE_BLOB</code><br>
570 <td valign="top"><code>BLOB</code><br>
572 <td valign="top"><code>REC_OBJE</code><br>
574 <td valign="top"><code>NULL</code><br>
578 <td valign="top"><code>ELT_OBJE_BLOB_CONT</code><br>
580 <td valign="top"><code>CONT</code><br>
582 <td valign="top"><code>ELT_OBJE_BLOB</code><br>
584 <td valign="top"><code>STRING</code><br>
588 <td valign="top"><code>ELT_OBJE_OBJE</code><br>
590 <td valign="top"><code>OBJE</code><br>
592 <td valign="top"><code>REC_OBJE</code><br>
594 <td valign="top"><code>XREF_PTR(OBJE)</code><br>
598 <td valign="top"><code>ELT_REPO_NAME</code><br>
600 <td valign="top"><code>NAME</code><br>
602 <td valign="top"><code>REC_REPO</code><br>
604 <td valign="top"><code>STRING</code><br>
608 <td valign="top"><code>ELT_SOUR_DATA</code><br>
610 <td valign="top"><code>DATA</code><br>
612 <td valign="top"><code>REC_SOUR</code><br>
614 <td valign="top"><code>NULL</code><br>
618 <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
620 <td valign="top"><code>EVEN</code><br>
622 <td valign="top"><code>ELT_SOUR_DATA</code><br>
624 <td valign="top"><code>STRING</code><br>
628 <td valign="top"><code>ELT_SOUR_DATA_EVEN_DATE</code><br>
630 <td valign="top"><code>DATE</code><br>
632 <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
634 <td valign="top"><code>DATE</code><br>
638 <td valign="top"><code>ELT_SOUR_DATA_EVEN_PLAC</code><br>
640 <td valign="top"><code>PLAC</code><br>
642 <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
644 <td valign="top"><code>STRING</code><br>
648 <td valign="top"><code>ELT_SOUR_DATA_AGNC</code><br>
650 <td valign="top"><code>AGNC</code><br>
652 <td valign="top"><code>ELT_SOUR_DATA</code><br>
654 <td valign="top"><code>STRING</code><br>
658 <td valign="top"><code>ELT_SOUR_AUTH</code><br>
660 <td valign="top"><code>AUTH</code><br>
662 <td valign="top"><code>REC_SOUR</code><br>
664 <td valign="top"><code>STRING</code><br>
668 <td valign="top"><code>ELT_SOUR_TITL</code><br>
670 <td valign="top"><code>TITL</code><br>
672 <td valign="top"><code>REC_SOUR</code><br>
674 <td valign="top"><code>STRING</code><br>
678 <td valign="top"><code>ELT_SOUR_ABBR</code><br>
680 <td valign="top"><code>ABBR</code><br>
682 <td valign="top"><code>REC_SOUR</code><br>
684 <td valign="top"><code>STRING</code><br>
688 <td valign="top"><code>ELT_SOUR_PUBL</code><br>
690 <td valign="top"><code>PUBL</code><br>
692 <td valign="top"><code>REC_SOUR</code><br>
694 <td valign="top"><code>STRING</code><br>
698 <td valign="top"><code>ELT_SOUR_TEXT</code><br>
700 <td valign="top"><code>TEXT</code><br>
702 <td valign="top"><code>REC_SOUR</code><br>
704 <td valign="top"><code>STRING</code><br>
708 <td valign="top"><code>ELT_SUBN_SUBM</code><br>
710 <td valign="top"><code>SUBM</code><br>
712 <td valign="top"><code>REC_SUBN</code><br>
714 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
718 <td valign="top"><code>ELT_SUBN_FAMF</code><br>
720 <td valign="top"><code>FAMF</code><br>
722 <td valign="top"><code>REC_SUBN</code><br>
724 <td valign="top"><code>STRING</code><br>
728 <td valign="top"><code>ELT_SUBN_TEMP</code><br>
730 <td valign="top"><code>TEMP</code><br>
732 <td valign="top"><code>REC_SUBN</code><br>
734 <td valign="top"><code>STRING</code><br>
738 <td valign="top"><code>ELT_SUBN_ANCE</code><br>
740 <td valign="top"><code>ANCE</code><br>
742 <td valign="top"><code>REC_SUBN</code><br>
744 <td valign="top"><code>STRING</code><br>
748 <td valign="top"><code>ELT_SUBN_DESC</code><br>
750 <td valign="top"><code>DESC</code><br>
752 <td valign="top"><code>REC_SUBN</code><br>
754 <td valign="top"><code>STRING</code><br>
758 <td valign="top"><code>ELT_SUBN_ORDI</code><br>
760 <td valign="top"><code>ORDI</code><br>
762 <td valign="top"><code>REC_SUBN</code><br>
764 <td valign="top"><code>STRING</code><br>
768 <td valign="top"><code>ELT_SUBN_RIN</code><br>
770 <td valign="top"><code>RIN</code><br>
772 <td valign="top"><code>REC_SUBN</code><br>
774 <td valign="top"><code>STRING</code><br>
778 <td valign="top"><code>ELT_SUBM_NAME</code><br>
780 <td valign="top"><nobr><code>NAME</code></nobr><br>
782 <td valign="top"><code>REC_SUBM</code><br>
784 <td valign="top"><code>STRING</code><br>
788 <td valign="top"><code>ELT_SUBM_LANG</code><br>
790 <td valign="top"><code>LANG</code><br>
792 <td valign="top"><code>REC_SUBM</code><br>
794 <td valign="top"><code>STRING</code><br>
798 <td valign="top"><code>ELT_SUBM_RFN</code><br>
800 <td valign="top"><code>RFN</code><br>
802 <td valign="top"><code>REC_SUBM</code><br>
804 <td valign="top"><code>STRING</code><br>
808 <td valign="top"><code>ELT_SUBM_RIN</code><br>
810 <td valign="top"><code>RIN</code><br>
812 <td valign="top"><code>REC_SUBM</code><br>
814 <td valign="top"><code>STRING</code><br>
818 <td valign="top"><code>ELT_SUB_ADDR</code><br>
820 <td valign="top"><code>ADDR</code><br>
822 <td valign="top"><code>ELT_HEAD_SOUR_CORP,<br>
823 REC_REPO, REC_SUBM,<br>
824 </code><code>ELT_SUB_FAM_EVT</code>,<br>
825 <code>ELT_SUB_FAM_EVT_EVEN,<br>
826 ELT_SUB_INDIV_ATTR,<br>
827 ELT_SUB_INDIV_RESI,<br>
828 ELT_SUB_INDIV_BIRT,<br>
829 ELT_SUB_INDIV_GEN,<br>
830 ELT_SUB_INDIV_ADOP<br>
834 <td valign="top"><code>STRING</code><br>
838 <td valign="top"><code>ELT_SUB_ADDR_CONT</code><br>
840 <td valign="top"><code>CONT</code><br>
842 <td valign="top"><code>ELT_SUB_ADDR</code><br>
844 <td valign="top"><code>STRING</code><br>
848 <td valign="top"><code>ELT_SUB_ADDR_ADR1</code><br>
850 <td valign="top"><code>ADR1</code><br>
852 <td valign="top"><code>ELT_SUB_ADDR</code><br>
854 <td valign="top"><code>STRING</code><br>
858 <td valign="top"><code>ELT_SUB_ADDR_ADR2</code><br>
860 <td valign="top"><code>ADR2</code><br>
862 <td valign="top"><code>ELT_SUB_ADDR</code><br>
864 <td valign="top"><code>STRING</code><br>
868 <td valign="top"><code>ELT_SUB_ADDR_CITY</code><br>
870 <td valign="top"><code>CITY</code><br>
872 <td valign="top"><code>ELT_SUB_ADDR</code><br>
874 <td valign="top"><code>STRING</code><br>
878 <td valign="top"><code>ELT_SUB_ADDR_STAE</code><br>
880 <td valign="top"><code>STAE</code><br>
882 <td valign="top"><code>ELT_SUB_ADDR</code><br>
884 <td valign="top"><code>STRING</code><br>
888 <td valign="top"><code>ELT_SUB_ADDR_POST</code><br>
890 <td valign="top"><code>POST</code><br>
892 <td valign="top"><code>ELT_SUB_ADDR</code><br>
894 <td valign="top"><code>STRING</code><br>
898 <td valign="top"><code>ELT_SUB_ADDR_CTRY</code><br>
900 <td valign="top"><code>CTRY</code><br>
902 <td valign="top"><code>ELT_SUB_ADDR</code><br>
904 <td valign="top"><code>STRING</code><br>
908 <td valign="top"><code>ELT_SUB_PHON</code><br>
910 <td valign="top"><code>PHON</code><br>
912 <td valign="top"><code>ELT_HEAD_SOUR_CORP,<br>
913 REC_REPO, REC_SUBM,<br>
914 </code><code>ELT_SUB_FAM_EVT,<br>
915 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
916 ELT_SUB_INDIV_ATTR,<br>
917 ELT_SUB_INDIV_RESI,<br>
918 ELT_SUB_INDIV_BIRT,<br>
919 ELT_SUB_INDIV_GEN,<br>
920 ELT_SUB_INDIV_ADOP<br>
924 <td valign="top"><code>STRING</code><br>
928 <td valign="top"><code>ELT_SUB_ASSO</code><br>
930 <td valign="top"><code>ASSO</code><br>
932 <td valign="top"><code>REC_INDI</code><br>
934 <td valign="top"><code>XREF_PTR(INDI)</code><br>
938 <td valign="top"><code>ELT_SUB_ASSO_TYPE</code><br>
940 <td valign="top"><code>TYPE</code><br>
942 <td valign="top"><code>ELT_SUB_ASSO</code><br>
944 <td valign="top"><code>STRING</code><br>
948 <td valign="top"><code>ELT_SUB_ASSO_RELA</code><br>
950 <td valign="top"><code>RELA</code><br>
952 <td valign="top"><code>ELT_SUB_ASSO</code><br>
954 <td valign="top"><code>STRING</code><br>
958 <td valign="top"><code>ELT_SUB_CHAN</code><br>
960 <td valign="top"><code>CHAN</code><br>
962 <td valign="top"><code>REC_FAM, REC_INDI,<br>
963 REC_OBJE, REC_NOTE,<br>
964 REC_REPO, REC_SOUR,<br>
968 <td valign="top"><code>NULL</code><br>
972 <td valign="top"><code>ELT_SUB_CHAN_DATE</code><br>
974 <td valign="top"><code>DATE</code><br>
976 <td valign="top"><code>ELT_SUB_CHAN</code><br>
978 <td valign="top"><code>DATE</code><br>
982 <td valign="top"><code>ELT_SUB_CHAN_TIME</code><br>
984 <td valign="top"><code>TIME</code><br>
986 <td valign="top"><code>ELT_SUB_CHAN_DATE</code><br>
988 <td valign="top"><code>STRING</code><br>
992 <td valign="top"><code>ELT_SUB_FAMC</code><br>
994 <td valign="top"><code>FAMC</code><br>
996 <td valign="top"><code>REC_INDI</code><br>
998 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1002 <td valign="top"><code>ELT_SUB_FAMC_PEDI</code><br>
1004 <td valign="top"><code>PEDI</code><br>
1006 <td valign="top"><code>ELT_SUB_FAMC</code><br>
1008 <td valign="top"><code>STRING</code><br>
1012 <td valign="top"><code>ELT_SUB_CONT</code><br>
1014 <td valign="top"><code>CONT</code><br>
1016 <td valign="top"><code>ELT_HEAD_NOTE, REC_NOTE,<br>
1017 ELT_SOUR_AUTH, ELT_SOUR_TITL,<br>
1018 ELT_SOUR_PUBL, ELT_SOUR_TEXT,<br>
1020 ELT_SUB_SOUR, ELT_SUB_SOUR_TEXT<br>
1023 <td valign="top"><code>STRING</code><br>
1027 <td valign="top"><code>ELT_SUB_CONC</code><br>
1029 <td valign="top"><code>CONC</code><br>
1031 <td valign="top"><code>ELT_HEAD_NOTE, REC_NOTE,<br>
1032 ELT_SOUR_AUTH, ELT_SOUR_TITL,<br>
1033 ELT_SOUR_PUBL, ELT_SOUR_TEXT,<br>
1035 ELT_SUB_SOUR, ELT_SUB_SOUR_TEXT<br>
1038 <td valign="top"><code>STRING</code><br>
1042 <td valign="top"><code>ELT_SUB_EVT_TYPE</code><br>
1044 <td valign="top"><code>TYPE</code><br>
1046 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1047 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1048 ELT_SUB_INDIV_ATTR,<br>
1049 ELT_SUB_INDIV_RESI,<br>
1050 ELT_SUB_INDIV_BIRT,<br>
1051 ELT_SUB_INDIV_GEN,<br>
1052 ELT_SUB_INDIV_ADOP<br>
1055 <td valign="top"><code>STRING</code><br>
1059 <td valign="top"><code>ELT_SUB_EVT_DATE</code><br>
1061 <td valign="top"><code>DATE</code><br>
1063 <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1064 <code>ELT_SUB_FAM_EVT_EVEN,<br>
1065 ELT_SUB_INDIV_ATTR</code><code>,<br>
1066 ELT_SUB_INDIV_RESI,<br>
1067 ELT_SUB_INDIV_BIRT,<br>
1068 ELT_SUB_INDIV_GEN,<br>
1069 ELT_SUB_INDIV_ADOP<br>
1074 <td valign="top"><code>DATE</code><br>
1078 <td valign="top"><code>ELT_SUB_EVT_AGE</code><br>
1080 <td valign="top"><code>AGE</code><br>
1082 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1083 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1084 ELT_SUB_INDIV_ATTR,<br>
1085 ELT_SUB_INDIV_RESI</code><code>,<br>
1086 ELT_SUB_INDIV_BIRT,<br>
1087 ELT_SUB_INDIV_GEN,<br>
1088 ELT_SUB_INDIV_ADOP</code><br>
1092 <td valign="top"><code>STRING</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</code><br>
1110 <td valign="top"><code>STRING</code><br>
1114 <td valign="top"><code>ELT_SUB_EVT_CAUS</code><br>
1116 <td valign="top"><code>CAUS</code><br>
1118 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1119 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1120 ELT_SUB_INDIV_ATTR,<br>
1121 ELT_SUB_INDIV_RESI</code><code>,<br>
1122 ELT_SUB_INDIV_BIRT,<br>
1123 ELT_SUB_INDIV_GEN,<br>
1124 ELT_SUB_INDIV_ADOP</code><br>
1128 <td valign="top"><code>STRING</code><br>
1132 <td valign="top"><code>ELT_SUB_FAM_EVT</code><br>
1134 <td valign="top"><code>ANUL, CENS, DIV,<br>
1135 DIVF, ENGA, MARR,<br>
1136 MARB, MARC, MARL,<br>
1139 <td valign="top"><code>REC_FAM</code><br>
1141 <td valign="top"><code>NULL<br>
1146 <td valign="top"><code>ELT_SUB_FAM_EVT_HUSB</code><br>
1148 <td valign="top"><code>HUSB</code><br>
1150 <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1151 <code>ELT_SUB_FAM_EVT_EVEN</code><br>
1153 <td valign="top"><code>NULL</code><br>
1157 <td valign="top"><code>ELT_SUB_FAM_EVT_WIFE</code><br>
1159 <td valign="top"><code>WIFE</code><br>
1161 <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1162 <code>ELT_SUB_FAM_EVT_EVEN</code><br>
1164 <td valign="top"><code>NULL</code><br>
1168 <td valign="top"><code>ELT_SUB_FAM_EVT_AGE</code><br>
1170 <td valign="top"><code>AGE</code><br>
1172 <td valign="top"><code>ELT_SUB_FAM_EVT_HUSB</code>,<br>
1173 <code>ELT_SUB_FAM_EVT_WIFE</code><br>
1175 <td valign="top"><code>STRING</code><br>
1179 <td valign="top"><code>ELT_SUB_FAM_EVT_EVEN</code><br>
1181 <td valign="top"><code>EVEN</code><br>
1183 <td valign="top"><code>REC_FAM</code><br>
1185 <td valign="top"><code>NULL</code><br>
1189 <td valign="top"><code>ELT_SUB_IDENT_REFN</code><br>
1191 <td valign="top"><code>REFN</code><br>
1193 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1194 REC_OBJE, REC_NOTE,<br>
1195 REC_REPO, REC_SOUR<br>
1198 <td valign="top"><code>STRING</code><br>
1202 <td valign="top"><code>ELT_SUB_IDENT_REFN_TYPE</code><br>
1204 <td valign="top"><code>TYPE</code><br>
1206 <td valign="top"><code>ELT_SUB_IDENT_REFN</code><br>
1208 <td valign="top"><code>STRING</code><br>
1212 <td valign="top"><code>ELT_SUB_IDENT_RIN</code><br>
1214 <td valign="top"><code>RIN</code><br>
1216 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1217 REC_OBJE, REC_NOTE,<br>
1218 REC_REPO, REC_SOUR<br>
1221 <td valign="top"><code>STRING</code><br>
1225 <td valign="top"><code>ELT_SUB_INDIV_ATTR</code><br>
1227 <td valign="top"><code>CAST, DSCR, EDUC,<br>
1228 IDNO, NATI, NCHR,<br>
1229 NMR, OCCU, PROP,<br>
1230 RELI, SSN, TITL</code><br>
1232 <td valign="top"><code>REC_INDI</code><br>
1234 <td valign="top"><code>STRING</code><br>
1238 <td valign="top"><code>ELT_SUB_INDIV_RESI</code><br>
1240 <td valign="top"><code>RESI</code><br>
1242 <td valign="top"><code>REC_INDI</code><br>
1244 <td valign="top"><code>NULL</code><br>
1248 <td valign="top"><code>ELT_SUB_INDIV_BIRT</code><br>
1250 <td valign="top"><code>BIRT, CHR</code><br>
1252 <td valign="top"><code>REC_INDI</code><br>
1254 <td valign="top"><code>NULL<br>
1259 <td valign="top"><code>ELT_SUB_INDIV_BIRT_FAMC</code><br>
1261 <td valign="top"><code>FAMC</code><br>
1263 <td valign="top"><code>ELT_SUB_INDIV_BIRT</code><br>
1265 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1269 <td valign="top"><code>ELT_SUB_INDIV_GEN</code><br>
1271 <td valign="top"><code>DEAT, BURI, CREM,<br>
1272 BAPM, BARM, BASM,<br>
1273 BLES, CHRA, CONF,<br>
1274 FCOM, ORDN, NATU,<br>
1275 EMIG, IMMI, CENS,<br>
1276 PROB, WILL, GRAD,<br>
1279 <td valign="top"><code>REC_INDI</code><br>
1281 <td valign="top"><code>NULL<br>
1286 <td valign="top"><code>ELT_SUB_INDIV_ADOP</code><br>
1288 <td valign="top"><code>ADOP</code><br>
1290 <td valign="top"><code>REC_INDI</code><br>
1292 <td valign="top"><code>NULL<br>
1297 <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC</code><br>
1299 <td valign="top"><code>FAMC</code><br>
1301 <td valign="top"><code>ELT_SUB_INDIV_ADOP</code><br>
1303 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1307 <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC_ADOP</code><br>
1309 <td valign="top"><code>ADOP</code><br>
1311 <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC</code><br>
1313 <td valign="top"><code>STRING</code><br>
1317 <td valign="top"><code>ELT_SUB_INDIV_EVEN</code><br>
1319 <td valign="top"><code>EVEN</code><br>
1321 <td valign="top"><code>REC_INDI</code><br>
1323 <td valign="top"><code>NULL</code><br>
1327 <td valign="top"><code>ELT_SUB_LIO_BAPL</code><br>
1329 <td valign="top"><code>BAPL, CONL, ENDL</code><br>
1331 <td valign="top"><code>REC_INDI</code><br>
1333 <td valign="top"><code>NULL</code><br>
1337 <td valign="top"><code>ELT_SUB_LIO_BAPL_STAT</code><br>
1339 <td valign="top"><code>STAT</code><br>
1341 <td valign="top"><code></code><code>ELT_SUB_LIO_BAPL,<br>
1342 ELT_SUB_LIO_SLGC<br>
1345 <td valign="top"><code>STRING</code><br>
1349 <td valign="top"><code>ELT_SUB_LIO_BAPL_DATE</code><br>
1351 <td valign="top"><code>DATE</code><br>
1353 <td valign="top"><code>ELT_SUB_LIO_BAPL</code><code>,<br>
1354 ELT_SUB_LIO_SLGC<br>
1358 <td valign="top"><code>DATE</code><br>
1362 <td valign="top"><code>ELT_SUB_LIO_BAPL_TEMP</code><br>
1364 <td valign="top"><code>TEMP</code><br>
1366 <td valign="top"><code>ELT_SUB_LIO_BAPL</code><code>,<br>
1367 ELT_SUB_LIO_SLGC<br>
1371 <td valign="top"><code>STRING</code><br>
1375 <td valign="top"><code>ELT_SUB_LIO_BAPL_PLAC</code><br>
1377 <td valign="top"><code>PLAC</code><br>
1379 <td valign="top"><code>ELT_SUB_LIO_BAPL</code><code>,<br>
1380 ELT_SUB_LIO_SLGC<br>
1384 <td valign="top"><code>STRING</code><br>
1388 <td valign="top"><code>ELT_SUB_LIO_SLGC</code><br>
1390 <td valign="top"><code>SLGC</code><br>
1392 <td valign="top"><code>REC_INDI</code><br>
1394 <td valign="top"><code>NULL</code><br>
1398 <td valign="top"><code>ELT_SUB_LIO_SLGC_FAMC</code><br>
1400 <td valign="top"><code>FAMC</code><br>
1402 <td valign="top"><code>ELT_SUB_LIO_SLGC</code><br>
1404 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1408 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1410 <td valign="top"><code>SLGS</code><br>
1412 <td valign="top"><code>REC_FAM</code><br>
1414 <td valign="top"><code>NULL</code><br>
1418 <td valign="top"><code>ELT_SUB_LSS_SLGS_STAT</code><br>
1420 <td valign="top"><code>STAT</code><br>
1422 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1424 <td valign="top"><code>STRING</code><br>
1428 <td valign="top"><code>ELT_SUB_LSS_SLGS_DATE</code><br>
1430 <td valign="top"><code>DATE</code><br>
1432 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1434 <td valign="top"><code>DATE</code><br>
1438 <td valign="top"><code>ELT_SUB_LSS_SLGS_TEMP</code><br>
1440 <td valign="top"><code>TEMP</code><br>
1442 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1444 <td valign="top"><code>STRING</code><br>
1448 <td valign="top"><code>ELT_SUB_LSS_SLGS_PLAC</code><br>
1450 <td valign="top"><code>PLAC</code><br>
1452 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1454 <td valign="top"><code>STRING</code><br>
1458 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1460 <td valign="top"><code>OBJE</code><br>
1462 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1463 REC_SOUR, REC_SUBM,<br>
1464 </code><code>ELT_SUB_FAM_EVT,<br>
1465 ELT_SUB_FAM_EVT_EVEN,<br>
1466 ELT_SUB_INDIV_ATTR,<br>
1467 ELT_SUB_INDIV_RESI</code><code>,<br>
1468 ELT_SUB_INDIV_BIRT,<br>
1469 ELT_SUB_INDIV_GEN,<br>
1470 ELT_SUB_INDIV_ADOP,<br>
1471 ELT_SUB_SOUR</code><br>
1473 <td valign="top"><code>NULL<br>
1479 <td valign="top"><code>ELT_SUB_MULTIM_OBJE_FORM</code><br>
1481 <td valign="top"><code>FORM</code><br>
1483 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1485 <td valign="top"><code>STRING</code><br>
1489 <td valign="top"><code>ELT_SUB_MULTIM_OBJE_TITL</code><br>
1491 <td valign="top"><code>TITL</code><br>
1493 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1495 <td valign="top"><code>STRING</code><br>
1499 <td valign="top"><code>ELT_SUB_MULTIM_OBJE_FILE</code><br>
1501 <td valign="top"><code>FILE</code><br>
1503 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1505 <td valign="top"><code>STRING</code><br>
1509 <td valign="top"><code>ELT_SUB_NOTE</code><br>
1511 <td valign="top"><code>NOTE</code><br>
1513 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1514 REC_OBJE, REC_REPO,<br>
1515 REC_SOUR, ELT_SOUR_DATA,<br>
1516 ELT_SUB_ASSO, ELT_SUB_CHAN,<br>
1517 ELT_SUB_FAMC, </code><code>ELT_SUB_FAM_EVT,<br>
1518 ELT_SUB_FAM_EVT_EVEN,<br>
1519 ELT_SUB_INDIV_ATTR,<br>
1520 ELT_SUB_INDIV_RESI</code><code>,<br>
1521 ELT_SUB_INDIV_BIRT,<br>
1522 ELT_SUB_INDIV_GEN,<br>
1523 ELT_SUB_INDIV_ADOP,<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_LIO_BAPL,<br>
1648 ELT_SUB_LIO_SLGC,<br>
1649 ELT_SUB_LSS_SLGS,<br>
1651 ELT_SUB_PERS_NAME,<br>
1652 ELT_SUB_PLAC</code><br>
1654 <td valign="top"><code>STRING<br>
1655 XREF_PTR(SOUR)</code><br>
1659 <td valign="top"><code>ELT_SUB_SOUR_PAGE</code><br>
1661 <td valign="top"><code>PAGE</code><br>
1663 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1665 <td valign="top"><code>STRING</code><br>
1669 <td valign="top"><code>ELT_SUB_SOUR_EVEN</code><br>
1671 <td valign="top"><code>EVEN</code><br>
1673 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1675 <td valign="top"><code>STRING</code><br>
1679 <td valign="top"><code>ELT_SUB_SOUR_EVEN_ROLE</code><br>
1681 <td valign="top"><code>ROLE</code><br>
1683 <td valign="top"><code>ELT_SUB_SOUR_EVEN</code><br>
1685 <td valign="top"><code>STRING</code><br>
1689 <td valign="top"><code>ELT_SUB_SOUR_DATA</code><br>
1691 <td valign="top"><code>DATA</code><br>
1693 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1695 <td valign="top"><code>NULL</code><br>
1699 <td valign="top"><code>ELT_SUB_SOUR_DATA_DATE</code><br>
1701 <td valign="top"><code>DATE</code><br>
1703 <td valign="top"><code>ELT_SUB_SOUR_DATA</code><br>
1705 <td valign="top"><code>DATE</code><br>
1709 <td valign="top"><code>ELT_SUB_SOUR_TEXT</code><br>
1711 <td valign="top"><code>TEXT</code><br>
1713 <td valign="top"><code>ELT_SUB_SOUR<br>
1714 ELT_SUB_SOUR_DATA</code><br>
1716 <td valign="top"><code>STRING</code><br>
1720 <td valign="top"><code>ELT_SUB_SOUR_QUAY</code><br>
1722 <td valign="top"><code>QUAY</code><br>
1724 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1726 <td valign="top"><code>STRING</code><br>
1730 <td valign="top"><code>ELT_SUB_REPO</code><br>
1732 <td valign="top"><code>REPO</code><br>
1734 <td valign="top"><code>REC_SOUR</code><br>
1736 <td valign="top"><code>XREF_PTR(REPO)</code><br>
1740 <td valign="top"><code>ELT_SUB_REPO_CALN</code><br>
1742 <td valign="top"><code>CALN</code><br>
1744 <td valign="top"><code>ELT_SUB_REPO</code><br>
1746 <td valign="top"><code>STRING</code><br>
1750 <td valign="top"><code>ELT_SUB_REPO_CALN_MEDI</code><br>
1752 <td valign="top"><code>MEDI</code><br>
1754 <td valign="top"><code>ELT_SUB_REPO_CALN</code><br>
1756 <td valign="top"><code>STRING</code><br>
1760 <td valign="top"><code>ELT_SUB_FAMS</code><br>
1762 <td valign="top"><code>FAMS</code><br>
1764 <td valign="top"><code>REC_INDI</code><br>
1766 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1770 <td valign="top"><code>ELT_USER</code><br>
1772 <td valign="top"><code>any tag starting<br>
1773 with an underscore</code><br>
1775 <td valign="top"><code>anywhere</code><br>
1777 <td valign="top"><code>NULL<br>
1779 XREF_PTR(USER)</code><br>
1786 <hr width="100%" size="2">
1787 <h2><a name="Gedcom_val_types"></a>Gedcom_val types<br>
1789 Currently, the specific <code>Gedcom_val</code> types are (with <code>
1790 val</code> of type <code>Gedcom_val</code>):<br>
1793 <table cellpadding="2" cellspacing="2" border="1" width="100%">
1796 <td valign="top"><br>
1798 <td valign="top"><b>type checker</b><br>
1800 <td valign="top"><b>cast operator</b><br>
1804 <td valign="top">null value<br>
1806 <td valign="top"><code>GEDCOM_IS_NULL(val)</code><br>
1808 <td valign="top">N/A<br>
1812 <td valign="top">string<br>
1814 <td valign="top"><code>GEDCOM_IS_STRING(val)</code><br>
1816 <td valign="top"><code>char* str = GEDCOM_STRING(val);</code><br>
1820 <td valign="top">date<br>
1822 <td valign="top"><code>GEDCOM_IS_DATE(val)</code><br>
1824 <td valign="top"><code>struct date_value dv = GEDCOM_DATE(val);</code></td>
1827 <td valign="top">xref pointer<br>
1829 <td valign="top"><code>GEDCOM_IS_XREF_PTR(val)</code><br>
1831 <td valign="top"><code>struct xref_value *xr = GEDCOM_XREF_PTR(val);</code><br>
1839 The type checker returns a true or a false value according to the type
1840 of the value, but this is in principle only necessary in the rare circumstances
1841 that two types are possible, or where an optional value can be provided.
1842 In most cases, the type is fixed for a specific tag.<br>
1844 The null value is used for when the GEDCOM spec doesn't allow a value,
1845 or when an optional value is allowed but none is given.<br>
1847 The string value is the most general used value currently, for all those
1848 values that don't have a more specific meaning. In essence, the value
1849 that is returned by GEDCOM_STRING is always the same as the raw_value passed
1850 to the start callback, and is thus in fact redundant.<br>
1852 The date value is used for all elements that return a date. See
1853 <a href="#struct_date_value">here</a> for the definition.<br>
1855 The xref value is for cross-references between records in the file. See
1856 <a href="#struct_xref_value">here</a> for the definition.<br>
1859 <h3><a name="struct_date_value"></a>struct date_value</h3>
1860 This struct describes a date as given in the GEDCOM file, and has the
1861 following definition:<br>
1863 <blockquote><code>struct date_value {<br>
1864 Date_value_type type;<br>
1865 struct date date1;<br>
1866 struct date date2;<br>
1867 char phrase[MAX_PHRASE_LEN
1871 It depends on the first member, the type, which members are actually
1875 <table cellpadding="2" cellspacing="2" border="1" width="100%">
1878 <td valign="top" align="center"><b>Date_value_type</b><br>
1880 <td valign="top" align="center"><b>Meaning</b><br>
1882 <td valign="top" align="center"><b>Relevant members</b><br>
1886 <td valign="top"><code>DV_NO_MODIFIER</code><br>
1888 <td valign="top">just a simple date<br>
1890 <td valign="top">date1<br>
1894 <td valign="top"><code>DV_BEFORE</code><br>
1896 <td valign="top">a range (BEFORE date1)<br>
1898 <td valign="top">date1<br>
1902 <td valign="top"><code>DV_AFTER</code><br>
1904 <td valign="top">a range (AFTER date1)<br>
1906 <td valign="top">date1<br>
1910 <td valign="top"><code>DV_BETWEEN</code><br>
1912 <td valign="top">a range (BETWEEN date1 AND date2)<br>
1914 <td valign="top">date1, date2<br>
1918 <td valign="top"><code>DV_FROM</code><br>
1920 <td valign="top">a period (FROM date1)<br>
1922 <td valign="top">date1<br>
1926 <td valign="top"><code>DV_TO</code><br>
1928 <td valign="top">a period (TO date1)<br>
1930 <td valign="top">date1<br>
1934 <td valign="top"><code>DV_FROM_TO</code><br>
1936 <td valign="top">a period (FROM date1 TO date2)<br>
1938 <td valign="top">date1, date2<br>
1942 <td valign="top"><code>DV_ABOUT</code><br>
1944 <td valign="top">an approximation (ABOUT date1)<br>
1946 <td valign="top">date1<br>
1950 <td valign="top"><code>DV_CALCULATED</code><br>
1952 <td valign="top">an approximation (CALCULATED date1)<br>
1954 <td valign="top">date1<br>
1958 <td valign="top"><code>DV_ESTIMATED</code><br>
1960 <td valign="top">an approximation (ESTIMATED date1)<br>
1962 <td valign="top">date1<br>
1966 <td valign="top"><code>DV_INTERPRETED</code><br>
1968 <td valign="top">INTERPRETED date1 FROM a given free form date
1971 <td valign="top">date1, phrase<br>
1975 <td valign="top"><code>DV_PHRASE</code><br>
1977 <td valign="top">a free form date phrase<br>
1979 <td valign="top">phrase<br>
1987 <h3><a name="struct_date"></a>struct date<br>
1989 The <code>date1</code> and <code>date2</code> also have a strict syntax:<br>
1991 <blockquote><code>struct date {<br>
1992 Calendar_type cal;<br>
1993 char day_str[MAX_DAY_LEN +
1995 char month_str[MAX_MONTH_LEN
1997 char year_str[MAX_YEAR_LEN
2000 int day;<br>
2001 int month;<br>
2002 int year;<br>
2003 Year_type year_type;<br>
2005 Date_type type;<br>
2006 long int sdn1;<br>
2007 long int sdn2;<br>
2010 The first four fields are the primary fields parsed from the value in
2011 the GEDCOM file. The <code>day_str</code>, <code>month_str</code> and
2012 <code> year_str</code> are the literal parts of the date that denote
2013 the day, month and year (the <code>day_str</code> and <code>month_str</code>
2014 can be empty) . The calendar type <code>cal</code> is one of (see
2015 calendar overview <i>LINK TBD</i>):<br>
2018 <li><code>CAL_GREGORIAN</code> : the Gregorian calendar</li>
2019 <li><code>CAL_JULIAN</code> : the Julian calendar</li>
2020 <li><code>CAL_HEBREW</code> : the Hebrew (Jewish) calendar</li>
2021 <li><code>CAL_FRENCH_REV</code> : the calendar used after the French
2023 <li><code>CAL_UNKNOWN</code> : an unknown calendar type</li>
2026 The next four fields are deduced from the first four:<br>
2029 <li>the <code>day</code> is just the numeric representation of
2030 the <code>day_str</code> (starting from 1), -1 if the <code>day_str</code>
2032 <li>the <code>month</code> is the month number of <code>month_str</code>
2033 in the given calendar type (also starting from 1), -1 if the <code>month_str</code>
2035 <li>the <code>year</code> is the numeric representation of the
2036 <code> year_str</code></li>
2039 It is possible that the <code>year_str</code> is given as e.g. "1677/78".
2040 This is coming from a date in a so called "annunciation style", where
2041 the year began on 25 March: "20 March 1677/78" is 20 March 1677 in "annunciation
2042 style" and 20 March 1678 in "circumcision style" (the current style). See
2043 calendar overview (<i>LINK TBD</i>).<br>
2045 In this case, the <code>year</code> will contain the "circumcision style"
2046 year (1678 in the example), and <code>year_type</code> will be <code>YEAR_DOUBLE.</code>
2047 Normal dates will have a <code>year_type</code> equal to <code>
2048 YEAR_SINGLE</code> .<br>
2050 Finally, the last three fields are probably the most interesting values
2051 for applications that want to process dates. Basically, the date is
2052 converted to a serial day number (aka Julian day), which is the unique day
2053 number since November 25, 4714 BC in the Gregorian calendar. The advantage
2054 of these day numbers is that they are unique and independent of the calendar
2055 system. Furthermore, date differences can just be computed by subtracting
2056 the serial day numbers.<br>
2058 However, since dates in GEDCOM are not necessarily exact (e.g. "MAR 1990"),
2059 it is not possible to represent all GEDCOM dates with 1 serial day number.
2060 Two cases can be distinguished:<br>
2063 <li>Exact dates (e.g. "25 MAR 1990"):</li>
2068 <blockquote>These are represented by a serial day number in <code>sdn1</code>
2069 and a <code>Date_type</code> equal to <code>DATE_EXACT</code>.<br>
2074 <li>Incomplete dates (e.g. "MAR 1990"):</li>
2079 <blockquote>These are represented by 2 serial day numbers (<code>
2080 sdn1</code> and <code>sdn2</code>) and a <code>Date_type</code> equal
2081 to <code>DATE_BOUNDED</code>.<br>
2083 For example, the Gregorian date "MAR 1990" is represented by the serial
2084 day numbers for "1 MAR 1990" and "31 MAR 1990", and the Gregorian date "1990"
2085 is represented by the serial day numbers for "1 JAN 1990" and "31 DEC 1990".
2086 Similarly for the other calendar types.<br>
2090 <h3><a name="struct_xref_value"></a>struct xref_value</h3>
2091 This struct represents a cross-reference in the GEDCOM file (but note that
2092 the <code>Gedcom_val</code> contains a pointer to such a struct, not the
2093 struct itself). It is defined as:<br>
2094 <blockquote><code>struct xref_value {<br>
2095 Xref_type type,<br>
2096 char* string,<br>
2097 Gedcom_ctxt object<br>
2100 The <code>Xref_type</code> gives the type of the cross-reference and can
2103 <li><code>XREF_NONE</code> (used as default value)</li>
2104 <li><code>XREF_FAM</code></li>
2105 <li><code>XREF_INDI</code></li>
2106 <li><code>XREF_NOTE</code></li>
2107 <li><code>XREF_OBJE</code></li>
2108 <li><code>XREF_REPO</code></li>
2109 <li><code>XREF_SOUR</code></li>
2110 <li><code>XREF_SUBM</code></li>
2111 <li><code>XREF_SUBN</code></li>
2112 <li><code>XREF_USER</code> (for application-specific cross-references)<br>
2115 The <code>string</code> gives the actual cross-reference string from the
2116 GEDCOM file, and the <code>object</code> is initially <code>NULL,</code>
2117 but can be filled by the application with an object (of any type) that corresponds
2118 with the cross-reference, and then later extracted when the cross-reference
2119 is used or defined again in the file. This relieves the application
2120 from the burden of maintaining the mapping between cross-references and objects.<br>
2122 The parser checks whether all cross-references that are used are defined
2123 (if not, an error is produced) and whether all cross-references that are
2124 defined are used (if not, a warning is produced). It also checks whether
2125 the type of the cross-reference is the same on definition and use (if not,
2126 an error is produced).<br>
2129 <hr width="100%" size="2">
2130 <pre>$Id$<br>$Name$<br></pre>