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">
8 <body text="#000000" bgcolor="#ffffff" link="#000099" vlink="#990099" alink="#000099">
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>
36 val</code><code> </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
168 element start callback.<br>
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
1840 type of the value, but this is in principle only necessary in the rare
1841 circumstances that two types are possible, or where an optional value
1842 can be provided. In most cases, the type is fixed for a specific
1845 The null value is used for when the GEDCOM spec doesn't allow a value,
1846 or when an optional value is allowed but none is given.<br>
1848 The string value is the most general used value currently, for all
1849 those values that don't have a more specific meaning. In essence,
1850 the value that is returned by GEDCOM_STRING is always the same as the
1851 raw_value passed to the start callback, and is thus in fact redundant.<br>
1853 The date value is used for all elements that return a date. See
1854 <a href="#struct_date_value">here</a> for the definition.<br>
1856 The xref value is for cross-references between records in the file. See
1857 <a href="#struct_xref_value">here</a> for the definition.<br>
1860 <h3><a name="struct_date_value"></a>struct date_value</h3>
1861 This struct describes a date as given in the GEDCOM file, and has the
1862 following definition:<br>
1864 <blockquote><code>struct date_value {<br>
1865 Date_value_type type;<br>
1866 struct date date1;<br>
1867 struct date date2;<br>
1868 char phrase[MAX_PHRASE_LEN
1872 It depends on the first member, the type, which members are actually
1876 <table cellpadding="2" cellspacing="2" border="1" width="100%">
1879 <td valign="top" align="center"><b>Date_value_type</b><br>
1881 <td valign="top" align="center"><b>Meaning</b><br>
1883 <td valign="top" align="center"><b>Relevant members</b><br>
1887 <td valign="top"><code>DV_NO_MODIFIER</code><br>
1889 <td valign="top">just a simple date<br>
1891 <td valign="top">date1<br>
1895 <td valign="top"><code>DV_BEFORE</code><br>
1897 <td valign="top">a range (BEFORE date1)<br>
1899 <td valign="top">date1<br>
1903 <td valign="top"><code>DV_AFTER</code><br>
1905 <td valign="top">a range (AFTER date1)<br>
1907 <td valign="top">date1<br>
1911 <td valign="top"><code>DV_BETWEEN</code><br>
1913 <td valign="top">a range (BETWEEN date1 AND date2)<br>
1915 <td valign="top">date1, date2<br>
1919 <td valign="top"><code>DV_FROM</code><br>
1921 <td valign="top">a period (FROM date1)<br>
1923 <td valign="top">date1<br>
1927 <td valign="top"><code>DV_TO</code><br>
1929 <td valign="top">a period (TO date1)<br>
1931 <td valign="top">date1<br>
1935 <td valign="top"><code>DV_FROM_TO</code><br>
1937 <td valign="top">a period (FROM date1 TO date2)<br>
1939 <td valign="top">date1, date2<br>
1943 <td valign="top"><code>DV_ABOUT</code><br>
1945 <td valign="top">an approximation (ABOUT date1)<br>
1947 <td valign="top">date1<br>
1951 <td valign="top"><code>DV_CALCULATED</code><br>
1953 <td valign="top">an approximation (CALCULATED date1)<br>
1955 <td valign="top">date1<br>
1959 <td valign="top"><code>DV_ESTIMATED</code><br>
1961 <td valign="top">an approximation (ESTIMATED date1)<br>
1963 <td valign="top">date1<br>
1967 <td valign="top"><code>DV_INTERPRETED</code><br>
1969 <td valign="top">INTERPRETED date1 FROM a given free form date
1972 <td valign="top">date1, phrase<br>
1976 <td valign="top"><code>DV_PHRASE</code><br>
1978 <td valign="top">a free form date phrase<br>
1980 <td valign="top">phrase<br>
1988 <h3><a name="struct_date"></a>struct date<br>
1990 The <code>date1</code> and <code>date2</code> also have a strict syntax:<br>
1992 <blockquote><code>struct date {<br>
1993 Calendar_type cal;<br>
1994 char day_str[MAX_DAY_LEN +
1996 char month_str[MAX_MONTH_LEN
1998 char year_str[MAX_YEAR_LEN
2001 int day;<br>
2002 int month;<br>
2003 int year;<br>
2004 Year_type year_type;<br>
2006 Date_type type;<br>
2007 long int sdn1;<br>
2008 long int sdn2;<br>
2011 The first four fields are the primary fields parsed from the value in
2012 the GEDCOM file. The <code>day_str</code>, <code>month_str</code>
2013 and <code> year_str</code> are the literal parts of the date that denote
2014 the day, month and year (the <code>day_str</code> and <code>month_str</code>
2015 can be empty) . The calendar type <code>cal</code> is one of (see
2016 calendar overview <i>LINK TBD</i>):<br>
2019 <li><code>CAL_GREGORIAN</code> : the Gregorian calendar</li>
2020 <li><code>CAL_JULIAN</code> : the Julian calendar</li>
2021 <li><code>CAL_HEBREW</code> : the Hebrew (Jewish) calendar</li>
2022 <li><code>CAL_FRENCH_REV</code> : the calendar used after the
2023 French Revolution</li>
2024 <li><code>CAL_UNKNOWN</code> : an unknown calendar type</li>
2027 The next four fields are deduced from the first four:<br>
2030 <li>the <code>day</code> is just the numeric representation of
2031 the <code>day_str</code> (starting from 1), -1 if the <code>day_str</code>
2033 <li>the <code>month</code> is the month number of <code>month_str</code>
2034 in the given calendar type (also starting from 1), -1 if the <code>
2035 month_str</code> is empty</li>
2036 <li>the <code>year</code> is the numeric representation of the
2037 <code> year_str</code></li>
2040 It is possible that the <code>year_str</code> is given as e.g. "1677/78".
2041 This is coming from a date in a so called "annunciation style", where
2042 the year began on 25 March: "20 March 1677/78" is 20 March 1677 in "annunciation
2043 style" and 20 March 1678 in "circumcision style" (the current style). See
2044 calendar overview (<i>LINK TBD</i>).<br>
2046 In this case, the <code>year</code> will contain the "circumcision style"
2047 year (1678 in the example), and <code>year_type</code> will be <code>YEAR_DOUBLE.</code>
2048 Normal dates will have a <code>year_type</code> equal to <code>
2049 YEAR_SINGLE</code> .<br>
2051 Finally, the last three fields are probably the most interesting values
2052 for applications that want to process dates. Basically, the date
2053 is converted to a serial day number (aka Julian day), which is the unique
2054 day number since November 25, 4714 BC in the Gregorian calendar. The
2055 advantage of these day numbers is that they are unique and independent
2056 of the calendar system. Furthermore, date differences can just be
2057 computed by subtracting the serial day numbers.<br>
2059 However, since dates in GEDCOM are not necessarily exact (e.g. "MAR
2060 1990"), it is not possible to represent all GEDCOM dates with 1 serial
2061 day number. Two cases can be distinguished:<br>
2064 <li>Exact dates (e.g. "25 MAR 1990"):</li>
2069 <blockquote>These are represented by a serial day number in <code>sdn1</code>
2070 and a <code>Date_type</code> equal to <code>DATE_EXACT</code>.<br>
2075 <li>Incomplete dates (e.g. "MAR 1990"):</li>
2081 <blockquote>These are represented by 2 serial day numbers (<code>
2082 sdn1</code> and <code>sdn2</code>) and a <code>Date_type</code> equal
2083 to <code>DATE_BOUNDED</code>.<br>
2085 For example, the Gregorian date "MAR 1990" is represented by the serial
2086 day numbers for "1 MAR 1990" and "31 MAR 1990", and the Gregorian date
2087 "1990" is represented by the serial day numbers for "1 JAN 1990" and "31
2088 DEC 1990". Similarly for the other calendar types.<br>
2092 <h3><a name="struct_xref_value"></a>struct xref_value</h3>
2093 This struct represents a cross-reference in the GEDCOM file (but note that
2094 the <code>Gedcom_val</code> contains a pointer to such a struct, not the struct
2095 itself). It is defined as:<br>
2097 <blockquote><code>struct xref_value {<br>
2098 Xref_type type,<br>
2099 char* string,<br>
2100 Gedcom_ctxt object<br>
2103 The <code>Xref_type</code> gives the type of the cross-reference and can
2107 <li><code>XREF_NONE</code> (used as default value)</li>
2108 <li><code>XREF_FAM</code></li>
2109 <li><code>XREF_INDI</code></li>
2110 <li><code>XREF_NOTE</code></li>
2111 <li><code>XREF_OBJE</code></li>
2112 <li><code>XREF_REPO</code></li>
2113 <li><code>XREF_SOUR</code></li>
2114 <li><code>XREF_SUBM</code></li>
2115 <li><code>XREF_SUBN</code></li>
2116 <li><code>XREF_USER</code> (for application-specific cross-references)<br>
2120 The <code>string</code> gives the actual cross-reference string from the
2121 GEDCOM file, and the <code>object</code> is initially <code>NULL,</code> but
2122 can be filled by the application with an object (of any type) that corresponds
2123 with the cross-reference, and then later extracted when the cross-reference
2124 is used or defined again in the file. This relieves the application
2125 from the burden of maintaining the mapping between cross-references and objects.<br>
2127 The parser checks whether all cross-references that are used are defined
2128 (if not, an error is produced) and whether all cross-references that are defined
2129 are used (if not, a warning is produced). It also checks whether the
2130 type of the cross-reference is the same on definition and use (if not, an
2131 error is produced).<br>
2134 <hr width="100%" size="2">
2135 <pre>$Id$<br>$Name$<br></pre>