1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Libgedcom interface details</title>
4 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"></head><body text="#000000" bgcolor="#ffffff" link="#000099" vlink="#990099" alink="#000099">
6 <h1 align="center">Libgedcom interface details</h1>
12 <li><a href="#Record_identifiers">Record identifiers</a></li>
13 <li><a href="#Element_identifiers">Element identifiers</a></li>
14 <li><a href="#Gedcom_val_types">Gedcom_val types</a></li>
17 <li><a href="#date_value">struct date_value</a></li>
18 <li><a href="#date">struct date</a></li><li><a href="#age_value">struct age_value</a><br>
21 <li><a href="#xref_value">struct xref_value</a><br>
29 <hr width="100%" size="2">
30 <h2><a name="Record_identifiers"></a>Record identifiers</h2>
31 The following table describes the identifiers to be used in the record
32 callbacks. The last columns give the <a href="#Gedcom_val_types"><code>
33 Gedcom_val</code> type</a> of the <code>xref</code> and <code>
34 val</code><code> </code> arguments in the record start and end callback.<br>
37 <table width="100%" border="1" cellspacing="2" cellpadding="2">
40 <td valign="top" align="center"><b>Record</b><br>
42 <td valign="top" align="center"><b>Meaning</b><br>
44 <td valign="top" align="center"><b>Possible<br>
45 <code>xref</code> types</b><br>
47 <td valign="top" align="center"><b>Possible start<br>
48 <code>val</code> types</b><br>
49 </td><td valign="top" align="center"><b>Possible end<br>
50 <code>val</code> types</b><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>
62 </td><td valign="top"><code>NULL</code><br>
67 <td valign="top"><code>REC_FAM</code><br>
69 <td valign="top">A record describing a family<br>
71 <td valign="top"><code>XREF_PTR(FAM)</code><br>
73 <td valign="top"><code>NULL</code><br>
74 </td><td valign="top"><code>NULL</code><br>
79 <td valign="top"><code>REC_INDI</code><br>
81 <td valign="top">A record describing an individual<br>
83 <td valign="top"><code>XREF_PTR(INDI)</code><br>
85 <td valign="top"><code>NULL</code><br>
86 </td><td valign="top"><code>NULL</code><br>
91 <td valign="top"><code>REC_OBJE</code><br>
93 <td valign="top">A record describing a multimedia object<br>
95 <td valign="top"><code>XREF_PTR(OBJE)</code><br>
97 <td valign="top"><code>NULL</code><br>
98 </td><td valign="top"><code>NULL</code><br>
103 <td valign="top"><code>REC_NOTE</code><br>
105 <td valign="top">A record describing a note<br>
107 <td valign="top"><code>XREF_PTR(NOTE)</code><br>
109 <td valign="top"><code>STRING</code><br>
110 </td><td valign="top"><code>STRING</code><br>
115 <td valign="top"><code>REC_REPO</code><br>
117 <td valign="top">A record describing a source repository<br>
119 <td valign="top"><code>XREF_PTR(REPO)</code><br>
121 <td valign="top"><code>NULL</code><br>
122 </td><td valign="top"><code>NULL</code><br>
127 <td valign="top"><code>REC_SOUR</code><br>
129 <td valign="top">A record describing a source<br>
131 <td valign="top"><code>XREF_PTR(SOUR)</code><br>
133 <td valign="top"><code>NULL</code><br>
134 </td><td valign="top"><code>NULL</code><br>
139 <td valign="top"><code>REC_SUBN</code><br>
141 <td valign="top">A record describing the submission<br>
143 <td valign="top"><code>XREF_PTR(SUBN)</code><br>
145 <td valign="top"><code>NULL</code><br>
146 </td><td valign="top"><code>NULL</code><br>
151 <td valign="top"><code>REC_SUBM</code><br>
153 <td valign="top">A record describing the submitter<br>
155 <td valign="top"><code>XREF_PTR(SUBM</code>)<br>
157 <td valign="top"><code>NULL</code><br>
158 </td><td valign="top"><code>NULL</code><br>
163 <td valign="top"><code>REC_USER</code><br>
165 <td valign="top">An application-specific record (the <code>tag</code>
166 in the start callback contains the actually used tag).<br>
168 <td valign="top"><code>NULL<br>
172 <td valign="top"><code>NULL<br>
174 XREF_PTR(USER)</code><br>
175 </td><td valign="top"><code>NULL</code><br>
183 <hr width="100%" size="2">
184 <h2><a name="Element_identifiers"></a>Element identifiers</h2>
185 The following table describes the identifiers to be used in the element
186 callbacks. The last columns give the <a href="file:///home/verthezp/src/external/gedcom-parse/doc/interface.html#Gedcom_val_types"><code>
187 Gedcom_val</code> type</a> of the <code>val</code> argument in the
188 element start and end callback.<br>
191 <table cellpadding="2" cellspacing="2" border="1" width="100%">
194 <td valign="top" align="center"><b>Element</b><br>
196 <td valign="top" align="center"><b>Possible<br>
200 <td valign="top" align="center"><b>Used within</b><br>
202 <td valign="top" align="center"><b>Possible start<br>
203 <code>val</code> types<br>
205 </td><td valign="top" align="center"><b>Possible end<br>
206 <code>val</code> types</b><br>
211 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
213 <td valign="top"><code>SOUR</code><br>
215 <td valign="top"><code>REC_HEAD</code><br>
217 <td valign="top"><code>STRING</code><br>
218 </td><td valign="top"><code>NULL</code><br>
223 <td valign="top"><code>ELT_HEAD_SOUR_VERS</code><br>
225 <td valign="top"><code>VERS</code><br>
227 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
229 <td valign="top"><code>STRING</code><br>
230 </td><td valign="top"><code>NULL</code><br>
235 <td valign="top"><code>ELT_HEAD_SOUR_NAME</code><br>
237 <td valign="top"><code>NAME</code><br>
239 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
241 <td valign="top"><code>STRING</code><br>
242 </td><td valign="top"><code>NULL</code><br>
247 <td valign="top"><code>ELT_HEAD_SOUR_CORP</code><br>
249 <td valign="top"><code>CORP</code><br>
251 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
253 <td valign="top"><code>STRING</code><br>
254 </td><td valign="top"><code>NULL</code><br>
259 <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
261 <td valign="top"><code>DATA</code><br>
263 <td valign="top"><code>ELT_HEAD_SOUR</code><br>
265 <td valign="top"><code>STRING</code><br>
266 </td><td valign="top"><code>NULL</code><br>
271 <td valign="top"><code>ELT_HEAD_SOUR_DATA_DATE</code><br>
273 <td valign="top"><code>DATE</code><br>
275 <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
277 <td valign="top"><code>DATE</code><br>
278 </td><td valign="top"><code>NULL</code><br>
283 <td valign="top"><code>ELT_HEAD_SOUR_DATA_COPR</code><br>
285 <td valign="top"><code>COPR</code><br>
287 <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
289 <td valign="top"><code>STRING</code><br>
290 </td><td valign="top"><code>NULL</code><br>
295 <td valign="top"><code>ELT_HEAD_DEST</code><br>
297 <td valign="top"><code>DEST</code><br>
299 <td valign="top"><code>REC_HEAD</code><br>
301 <td valign="top"><code>STRING</code><br>
302 </td><td valign="top"><code>NULL</code><br>
307 <td valign="top"><code>ELT_HEAD_DATE</code><br>
309 <td valign="top"><code>DATE</code><br>
311 <td valign="top"><code>REC_HEAD</code><br>
313 <td valign="top"><code>DATE</code><br>
314 </td><td valign="top"><code>NULL</code><br>
319 <td valign="top"><code>ELT_HEAD_DATE_TIME</code><br>
321 <td valign="top"><code>TIME</code><br>
323 <td valign="top"><code>ELT_HEAD_DATE</code><br>
325 <td valign="top"><code>STRING</code><br>
326 </td><td valign="top"><code>NULL</code><br>
331 <td valign="top"><code>ELT_HEAD_SUBM</code><br>
333 <td valign="top"><code>SUBM</code><br>
335 <td valign="top"><code>REC_HEAD</code><br>
337 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
338 </td><td valign="top"><code>NULL</code><br>
343 <td valign="top"><code>ELT_HEAD_SUBN</code><br>
345 <td valign="top"><code>SUBN</code><br>
347 <td valign="top"><code>REC_HEAD</code><br>
349 <td valign="top"><code>XREF_PTR(SUBN)</code><br>
350 </td><td valign="top"><code>NULL</code><br>
355 <td valign="top"><code>ELT_HEAD_FILE</code><br>
357 <td valign="top"><code>FILE</code><br>
359 <td valign="top"><code>REC_HEAD</code><br>
361 <td valign="top"><code>STRING</code><br>
362 </td><td valign="top"><code>NULL</code><br>
367 <td valign="top"><code>ELT_HEAD_COPR</code><br>
369 <td valign="top"><code>COPR</code><br>
371 <td valign="top"><code>REC_HEAD</code><br>
373 <td valign="top"><code>STRING</code><br>
374 </td><td valign="top"><code>NULL</code><br>
379 <td valign="top"><code>ELT_HEAD_GEDC</code><br>
381 <td valign="top"><code>GEDC</code><br>
383 <td valign="top"><code>REC_HEAD</code><br>
385 <td valign="top"><code>NULL</code><br>
386 </td><td valign="top"><code>NULL</code><br>
391 <td valign="top"><code>ELT_HEAD_GEDC_VERS</code><br>
393 <td valign="top"><code>VERS</code><br>
395 <td valign="top"><code>ELT_HEAD_GEDC</code><br>
397 <td valign="top"><code>STRING</code><br>
398 </td><td valign="top"><code>NULL</code><br>
403 <td valign="top"><code>ELT_HEAD_GEDC_FORM</code><br>
405 <td valign="top"><code>FORM</code><br>
407 <td valign="top"><code>ELT_HEAD_GEDC</code><br>
409 <td valign="top"><code>STRING</code><br>
410 </td><td valign="top"><code>NULL</code><br>
415 <td valign="top"><code>ELT_HEAD_CHAR</code><br>
417 <td valign="top"><code>CHAR</code><br>
419 <td valign="top"><code>REC_HEAD</code><br>
421 <td valign="top"><code>STRING</code><br>
422 </td><td valign="top"><code>NULL</code><br>
427 <td valign="top"><code>ELT_HEAD_CHAR_VERS</code><br>
429 <td valign="top"><code>VERS</code><br>
431 <td valign="top"><code>ELT_HEAD_CHAR</code><br>
433 <td valign="top"><code>STRING</code><br>
434 </td><td valign="top"><code>NULL</code><br>
439 <td valign="top"><code>ELT_HEAD_LANG</code><br>
441 <td valign="top"><code>LANG</code><br>
443 <td valign="top"><code>REC_HEAD</code><br>
445 <td valign="top"><code>STRING</code><br>
446 </td><td valign="top"><code>NULL</code><br>
451 <td valign="top"><code>ELT_HEAD_PLAC</code><br>
453 <td valign="top"><code>PLAC</code><br>
455 <td valign="top"><code>REC_HEAD</code><br>
457 <td valign="top"><code>NULL</code><br>
458 </td><td valign="top"><code>NULL</code><br>
463 <td valign="top"><code>ELT_HEAD_PLAC_FORM</code><br>
465 <td valign="top"><code>FORM</code><br>
467 <td valign="top"><code>ELT_HEAD_PLAC</code><br>
469 <td valign="top"><code>STRING</code><br>
470 </td><td valign="top"><code>NULL</code><br>
475 <td valign="top"><code>ELT_HEAD_NOTE</code><br>
477 <td valign="top"><code>NOTE</code><br>
479 <td valign="top"><code>REC_HEAD</code><br>
481 <td valign="top"><code>STRING</code><br>
482 </td><td valign="top"><code>STRING</code><br>
487 <td valign="top"><code>ELT_FAM_HUSB</code><br>
489 <td valign="top"><code>HUSB</code><br>
491 <td valign="top"><code>REC_FAM</code><br>
493 <td valign="top"><code>XREF_PTR(INDI)</code><br>
494 </td><td valign="top"><code>NULL</code><br>
499 <td valign="top"><code>ELT_FAM_WIFE</code><br>
501 <td valign="top"><code>WIFE</code><br>
503 <td valign="top"><code>REC_FAM</code><br>
505 <td valign="top"><code>XREF_PTR(INDI)</code><br>
506 </td><td valign="top"><code>NULL</code><br>
511 <td valign="top"><code>ELT_FAM_CHIL</code><br>
513 <td valign="top"><code>CHIL</code><br>
515 <td valign="top"><code>REC_FAM</code><br>
517 <td valign="top"><code>XREF_PTR(INDI)</code><br>
518 </td><td valign="top"><code>NULL</code><br>
523 <td valign="top"><code>ELT_FAM_NCHI</code><br>
525 <td valign="top"><code>NCHI</code><br>
527 <td valign="top"><code>REC_FAM</code><br>
529 <td valign="top"><code>STRING</code><br>
530 </td><td valign="top"><code>NULL</code><br>
535 <td valign="top"><code>ELT_FAM_SUBM</code><br>
537 <td valign="top"><code>SUBM</code><br>
539 <td valign="top"><code>REC_FAM</code><br>
541 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
542 </td><td valign="top"><code>NULL</code><br>
547 <td valign="top"><code>ELT_INDI_RESN</code><br>
549 <td valign="top"><code>RES</code><code>N</code><br>
551 <td valign="top"><code>REC_INDI</code><br>
553 <td valign="top"><code>STRING</code><br>
554 </td><td valign="top"><code>NULL</code><br>
559 <td valign="top"><code>ELT_INDI_SEX</code><br>
561 <td valign="top"><code>SEX</code><br>
563 <td valign="top"><code>REC_INDI</code><br>
565 <td valign="top"><code>STRING</code><br>
566 </td><td valign="top"><code>NULL</code><br>
571 <td valign="top"><code>ELT_INDI_SUBM</code><br>
573 <td valign="top"><code>SUBM</code><br>
575 <td valign="top"><code>REC_INDI</code><br>
577 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
578 </td><td valign="top"><code>NULL</code><br>
583 <td valign="top"><code>ELT_INDI_ALIA</code><br>
585 <td valign="top"><code>ALIA</code><br>
587 <td valign="top"><code>REC_INDI</code><br>
589 <td valign="top"><code>XREF_PTR(INDI)</code><br>
590 </td><td valign="top"><code>NULL</code><br>
595 <td valign="top"><code>ELT_INDI_ANCI</code><br>
597 <td valign="top"><code>ANCI</code><br>
599 <td valign="top"><code>REC_INDI</code><br>
601 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
602 </td><td valign="top"><code>NULL</code><br>
607 <td valign="top"><code>ELT_INDI_DESI</code><br>
609 <td valign="top"><code>DESI</code><br>
611 <td valign="top"><code>REC_INDI</code><br>
613 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
614 </td><td valign="top"><code>NULL</code><br>
619 <td valign="top"><code>ELT_INDI_RFN</code><br>
621 <td valign="top"><code>RFN</code><br>
623 <td valign="top"><code>REC_INDI</code><br>
625 <td valign="top"><code>STRING</code><br>
626 </td><td valign="top"><code>NULL</code><br>
631 <td valign="top"><code>ELT_INDI_AFN</code><br>
633 <td valign="top"><code>AFN</code><br>
635 <td valign="top"><code>REC_INDI</code><br>
637 <td valign="top"><code>STRING</code><br>
638 </td><td valign="top"><code>NULL</code><br>
643 <td valign="top"><code>ELT_OBJE_FORM</code><br>
645 <td valign="top"><code>FORM</code><br>
647 <td valign="top"><code>REC_OBJE</code><br>
649 <td valign="top"><code>STRING</code><br>
650 </td><td valign="top"><code>NULL</code><br>
655 <td valign="top"><code>ELT_OBJE_TITL</code><br>
657 <td valign="top"><code>TITL</code><br>
659 <td valign="top"><code>REC_OBJE</code><br>
661 <td valign="top"><code>STRING</code><br>
662 </td><td valign="top"><code>NULL</code><br>
667 <td valign="top"><code>ELT_OBJE_BLOB</code><br>
669 <td valign="top"><code>BLOB</code><br>
671 <td valign="top"><code>REC_OBJE</code><br>
673 <td valign="top"><code>NULL</code><br>
674 </td><td valign="top"><code>STRING</code><br>
679 <td valign="top"><code>ELT_OBJE_BLOB_CONT</code><br>
681 <td valign="top"><code>CONT</code><br>
683 <td valign="top"><code>ELT_OBJE_BLOB</code><br>
685 <td valign="top"><code>STRING</code><br>
686 </td><td valign="top"><code>NULL</code><br>
691 <td valign="top"><code>ELT_OBJE_OBJE</code><br>
693 <td valign="top"><code>OBJE</code><br>
695 <td valign="top"><code>REC_OBJE</code><br>
697 <td valign="top"><code>XREF_PTR(OBJE)</code><br>
698 </td><td valign="top"><code>NULL</code><br>
703 <td valign="top"><code>ELT_REPO_NAME</code><br>
705 <td valign="top"><code>NAME</code><br>
707 <td valign="top"><code>REC_REPO</code><br>
709 <td valign="top"><code>STRING</code><br>
710 </td><td valign="top"><code>NULL</code><br>
715 <td valign="top"><code>ELT_SOUR_DATA</code><br>
717 <td valign="top"><code>DATA</code><br>
719 <td valign="top"><code>REC_SOUR</code><br>
721 <td valign="top"><code>NULL</code><br>
722 </td><td valign="top"><code>NULL</code><br>
727 <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
729 <td valign="top"><code>EVEN</code><br>
731 <td valign="top"><code>ELT_SOUR_DATA</code><br>
733 <td valign="top"><code>STRING</code><br>
734 </td><td valign="top"><code>NULL</code><br>
739 <td valign="top"><code>ELT_SOUR_DATA_EVEN_DATE</code><br>
741 <td valign="top"><code>DATE</code><br>
743 <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
745 <td valign="top"><code>DATE</code><br>
746 </td><td valign="top"><code>NULL</code><br>
751 <td valign="top"><code>ELT_SOUR_DATA_EVEN_PLAC</code><br>
753 <td valign="top"><code>PLAC</code><br>
755 <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
757 <td valign="top"><code>STRING</code><br>
758 </td><td valign="top"><code>NULL</code><br>
763 <td valign="top"><code>ELT_SOUR_DATA_AGNC</code><br>
765 <td valign="top"><code>AGNC</code><br>
767 <td valign="top"><code>ELT_SOUR_DATA</code><br>
769 <td valign="top"><code>STRING</code><br>
770 </td><td valign="top"><code>NULL</code><br>
775 <td valign="top"><code>ELT_SOUR_AUTH</code><br>
777 <td valign="top"><code>AUTH</code><br>
779 <td valign="top"><code>REC_SOUR</code><br>
781 <td valign="top"><code>STRING</code><br>
782 </td><td valign="top"><code>STRING</code><br>
787 <td valign="top"><code>ELT_SOUR_TITL</code><br>
789 <td valign="top"><code>TITL</code><br>
791 <td valign="top"><code>REC_SOUR</code><br>
793 <td valign="top"><code>STRING</code><br>
794 </td><td valign="top"><code>STRING</code><br>
799 <td valign="top"><code>ELT_SOUR_ABBR</code><br>
801 <td valign="top"><code>ABBR</code><br>
803 <td valign="top"><code>REC_SOUR</code><br>
805 <td valign="top"><code>STRING</code><br>
806 </td><td valign="top"><code>NULL</code><br>
811 <td valign="top"><code>ELT_SOUR_PUBL</code><br>
813 <td valign="top"><code>PUBL</code><br>
815 <td valign="top"><code>REC_SOUR</code><br>
817 <td valign="top"><code>STRING</code><br>
818 </td><td valign="top"><code>STRING</code><br>
823 <td valign="top"><code>ELT_SOUR_TEXT</code><br>
825 <td valign="top"><code>TEXT</code><br>
827 <td valign="top"><code>REC_SOUR</code><br>
829 <td valign="top"><code>STRING</code><br>
830 </td><td valign="top"><code>STRING</code><br>
835 <td valign="top"><code>ELT_SUBN_SUBM</code><br>
837 <td valign="top"><code>SUBM</code><br>
839 <td valign="top"><code>REC_SUBN</code><br>
841 <td valign="top"><code>XREF_PTR(SUBM)</code><br>
842 </td><td valign="top"><code>NULL</code><br>
847 <td valign="top"><code>ELT_SUBN_FAMF</code><br>
849 <td valign="top"><code>FAMF</code><br>
851 <td valign="top"><code>REC_SUBN</code><br>
853 <td valign="top"><code>STRING</code><br>
854 </td><td valign="top"><code>NULL</code><br>
859 <td valign="top"><code>ELT_SUBN_TEMP</code><br>
861 <td valign="top"><code>TEMP</code><br>
863 <td valign="top"><code>REC_SUBN</code><br>
865 <td valign="top"><code>STRING</code><br>
866 </td><td valign="top"><code>NULL</code><br>
871 <td valign="top"><code>ELT_SUBN_ANCE</code><br>
873 <td valign="top"><code>ANCE</code><br>
875 <td valign="top"><code>REC_SUBN</code><br>
877 <td valign="top"><code>STRING</code><br>
878 </td><td valign="top"><code>NULL</code><br>
883 <td valign="top"><code>ELT_SUBN_DESC</code><br>
885 <td valign="top"><code>DESC</code><br>
887 <td valign="top"><code>REC_SUBN</code><br>
889 <td valign="top"><code>STRING</code><br>
890 </td><td valign="top"><code>NULL</code><br>
895 <td valign="top"><code>ELT_SUBN_ORDI</code><br>
897 <td valign="top"><code>ORDI</code><br>
899 <td valign="top"><code>REC_SUBN</code><br>
901 <td valign="top"><code>STRING</code><br>
902 </td><td valign="top"><code>NULL</code><br>
907 <td valign="top"><code>ELT_SUBN_RIN</code><br>
909 <td valign="top"><code>RIN</code><br>
911 <td valign="top"><code>REC_SUBN</code><br>
913 <td valign="top"><code>STRING</code><br>
914 </td><td valign="top"><code>NULL</code><br>
919 <td valign="top"><code>ELT_SUBM_NAME</code><br>
921 <td valign="top"><nobr><code>NAME</code></nobr><br>
923 <td valign="top"><code>REC_SUBM</code><br>
925 <td valign="top"><code>STRING</code><br>
926 </td><td valign="top"><code>NULL</code><br>
931 <td valign="top"><code>ELT_SUBM_LANG</code><br>
933 <td valign="top"><code>LANG</code><br>
935 <td valign="top"><code>REC_SUBM</code><br>
937 <td valign="top"><code>STRING</code><br>
938 </td><td valign="top"><code>NULL</code><br>
943 <td valign="top"><code>ELT_SUBM_RFN</code><br>
945 <td valign="top"><code>RFN</code><br>
947 <td valign="top"><code>REC_SUBM</code><br>
949 <td valign="top"><code>STRING</code><br>
950 </td><td valign="top"><code>NULL</code><br>
955 <td valign="top"><code>ELT_SUBM_RIN</code><br>
957 <td valign="top"><code>RIN</code><br>
959 <td valign="top"><code>REC_SUBM</code><br>
961 <td valign="top"><code>STRING</code><br>
962 </td><td valign="top"><code>NULL</code><br>
967 <td valign="top"><code>ELT_SUB_ADDR</code><br>
969 <td valign="top"><code>ADDR</code><br>
971 <td valign="top"><code>ELT_HEAD_SOUR_CORP,<br>
972 REC_REPO, REC_SUBM,<br>
973 </code><code>ELT_SUB_FAM_EVT</code>,<br>
974 <code>ELT_SUB_FAM_EVT_EVEN,<br>
975 ELT_SUB_INDIV_ATTR,<br>
976 ELT_SUB_INDIV_RESI,<br>
977 ELT_SUB_INDIV_BIRT,<br>
978 ELT_SUB_INDIV_GEN,<br>
979 ELT_SUB_INDIV_ADOP,<br>
980 ELT_SUB_INDIV_EVEN</code><br>
982 <td valign="top"><code>STRING</code><br>
983 </td><td valign="top"><code>STRING</code><br>
988 <td valign="top"><code>ELT_SUB_ADDR_CONT</code><br>
990 <td valign="top"><code>CONT</code><br>
992 <td valign="top"><code>ELT_SUB_ADDR</code><br>
994 <td valign="top"><code>STRING</code><br>
995 </td><td valign="top"><code>NULL</code><br>
1000 <td valign="top"><code>ELT_SUB_ADDR_ADR1</code><br>
1002 <td valign="top"><code>ADR1</code><br>
1004 <td valign="top"><code>ELT_SUB_ADDR</code><br>
1006 <td valign="top"><code>STRING</code><br>
1007 </td><td valign="top"><code>NULL</code><br>
1012 <td valign="top"><code>ELT_SUB_ADDR_ADR2</code><br>
1014 <td valign="top"><code>ADR2</code><br>
1016 <td valign="top"><code>ELT_SUB_ADDR</code><br>
1018 <td valign="top"><code>STRING</code><br>
1019 </td><td valign="top"><code>NULL</code><br>
1024 <td valign="top"><code>ELT_SUB_ADDR_CITY</code><br>
1026 <td valign="top"><code>CITY</code><br>
1028 <td valign="top"><code>ELT_SUB_ADDR</code><br>
1030 <td valign="top"><code>STRING</code><br>
1031 </td><td valign="top"><code>NULL</code><br>
1036 <td valign="top"><code>ELT_SUB_ADDR_STAE</code><br>
1038 <td valign="top"><code>STAE</code><br>
1040 <td valign="top"><code>ELT_SUB_ADDR</code><br>
1042 <td valign="top"><code>STRING</code><br>
1043 </td><td valign="top"><code>NULL</code><br>
1048 <td valign="top"><code>ELT_SUB_ADDR_POST</code><br>
1050 <td valign="top"><code>POST</code><br>
1052 <td valign="top"><code>ELT_SUB_ADDR</code><br>
1054 <td valign="top"><code>STRING</code><br>
1055 </td><td valign="top"><code>NULL</code><br>
1060 <td valign="top"><code>ELT_SUB_ADDR_CTRY</code><br>
1062 <td valign="top"><code>CTRY</code><br>
1064 <td valign="top"><code>ELT_SUB_ADDR</code><br>
1066 <td valign="top"><code>STRING</code><br>
1067 </td><td valign="top"><code>NULL</code><br>
1072 <td valign="top"><code>ELT_SUB_PHON</code><br>
1074 <td valign="top"><code>PHON</code><br>
1076 <td valign="top"><code>ELT_HEAD_SOUR_CORP,<br>
1077 REC_REPO, REC_SUBM,<br>
1078 </code><code>ELT_SUB_FAM_EVT,<br>
1079 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1080 ELT_SUB_INDIV_ATTR,<br>
1081 ELT_SUB_INDIV_RESI,<br>
1082 ELT_SUB_INDIV_BIRT,<br>
1083 ELT_SUB_INDIV_GEN,<br>
1084 ELT_SUB_INDIV_ADOP,<br>
1085 ELT_SUB_INDIV_EVEN</code><br>
1087 <td valign="top"><code>STRING</code><br>
1088 </td><td valign="top"><code>NULL</code><br>
1093 <td valign="top"><code>ELT_SUB_ASSO</code><br>
1095 <td valign="top"><code>ASSO</code><br>
1097 <td valign="top"><code>REC_INDI</code><br>
1099 <td valign="top"><code>XREF_PTR(FAM),<br>
1106 XREF_PTR(SUBN)</code><br>
1107 </td><td valign="top"><code>NULL</code><br>
1112 <td valign="top"><code>ELT_SUB_ASSO_TYPE</code><br>
1114 <td valign="top"><code>TYPE</code><br>
1116 <td valign="top"><code>ELT_SUB_ASSO</code><br>
1118 <td valign="top"><code>STRING</code><br>
1119 </td><td valign="top"><code>NULL</code><br>
1124 <td valign="top"><code>ELT_SUB_ASSO_RELA</code><br>
1126 <td valign="top"><code>RELA</code><br>
1128 <td valign="top"><code>ELT_SUB_ASSO</code><br>
1130 <td valign="top"><code>STRING</code><br>
1131 </td><td valign="top"><code>NULL</code><br>
1136 <td valign="top"><code>ELT_SUB_CHAN</code><br>
1138 <td valign="top"><code>CHAN</code><br>
1140 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1141 REC_OBJE, REC_NOTE,<br>
1142 REC_REPO, REC_SOUR,<br>
1146 <td valign="top"><code>NULL</code><br>
1147 </td><td valign="top"><code>NULL</code><br>
1152 <td valign="top"><code>ELT_SUB_CHAN_DATE</code><br>
1154 <td valign="top"><code>DATE</code><br>
1156 <td valign="top"><code>ELT_SUB_CHAN</code><br>
1158 <td valign="top"><code>DATE</code><br>
1159 </td><td valign="top"><code>NULL</code><br>
1164 <td valign="top"><code>ELT_SUB_CHAN_TIME</code><br>
1166 <td valign="top"><code>TIME</code><br>
1168 <td valign="top"><code>ELT_SUB_CHAN_DATE</code><br>
1170 <td valign="top"><code>STRING</code><br>
1171 </td><td valign="top"><code>NULL</code><br>
1176 <td valign="top"><code>ELT_SUB_FAMC</code><br>
1178 <td valign="top"><code>FAMC</code><br>
1180 <td valign="top"><code>REC_INDI</code><br>
1182 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1183 </td><td valign="top"><code>NULL</code><br>
1188 <td valign="top"><code>ELT_SUB_FAMC_PEDI</code><br>
1190 <td valign="top"><code>PEDI</code><br>
1192 <td valign="top"><code>ELT_SUB_FAMC</code><br>
1194 <td valign="top"><code>STRING</code><br>
1195 </td><td valign="top"><code>NULL</code><br>
1200 <td valign="top"><code>ELT_SUB_CONT</code><br>
1202 <td valign="top"><code>CONT</code><br>
1204 <td valign="top"><code>ELT_HEAD_NOTE, REC_NOTE,<br>
1205 ELT_SOUR_AUTH, ELT_SOUR_TITL,<br>
1206 ELT_SOUR_PUBL, ELT_SOUR_TEXT,<br>
1208 ELT_SUB_SOUR, ELT_SUB_SOUR_TEXT<br>
1211 <td valign="top"><code>STRING</code><br>
1212 </td><td valign="top"><code>NULL</code><br>
1217 <td valign="top"><code>ELT_SUB_CONC</code><br>
1219 <td valign="top"><code>CONC</code><br>
1221 <td valign="top"><code>ELT_HEAD_NOTE, REC_NOTE,<br>
1222 ELT_SOUR_AUTH, ELT_SOUR_TITL,<br>
1223 ELT_SOUR_PUBL, ELT_SOUR_TEXT,<br>
1225 ELT_SUB_SOUR, ELT_SUB_SOUR_TEXT<br>
1228 <td valign="top"><code>STRING</code><br>
1229 </td><td valign="top"><code>NULL</code><br>
1234 <td valign="top"><code>ELT_SUB_EVT_TYPE</code><br>
1236 <td valign="top"><code>TYPE</code><br>
1238 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1239 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1240 ELT_SUB_INDIV_ATTR,<br>
1241 ELT_SUB_INDIV_RESI,<br>
1242 ELT_SUB_INDIV_BIRT,<br>
1243 ELT_SUB_INDIV_GEN,<br>
1244 ELT_SUB_INDIV_ADOP,<br>
1245 ELT_SUB_INDIV_EVEN</code><br>
1247 <td valign="top"><code>STRING</code><br>
1248 </td><td valign="top"><code>NULL</code><br>
1253 <td valign="top"><code>ELT_SUB_EVT_DATE</code><br>
1255 <td valign="top"><code>DATE</code><br>
1257 <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1258 <code>ELT_SUB_FAM_EVT_EVEN,<br>
1259 ELT_SUB_INDIV_ATTR</code><code>,<br>
1260 ELT_SUB_INDIV_RESI,<br>
1261 ELT_SUB_INDIV_BIRT,<br>
1262 ELT_SUB_INDIV_GEN,<br>
1263 ELT_SUB_INDIV_ADOP,<br>
1264 ELT_SUB_INDIV_EVEN</code><br>
1266 <td valign="top"><code>DATE</code><br>
1267 </td><td valign="top"><code>NULL</code><br>
1272 <td valign="top"><code>ELT_SUB_EVT_AGE</code><br>
1274 <td valign="top"><code>AGE</code><br>
1276 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1277 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1278 ELT_SUB_INDIV_ATTR,<br>
1279 ELT_SUB_INDIV_RESI</code><code>,<br>
1280 ELT_SUB_INDIV_BIRT,<br>
1281 ELT_SUB_INDIV_GEN,<br>
1282 ELT_SUB_INDIV_ADOP,<br>
1283 ELT_SUB_INDIV_EVEN</code><br>
1285 <td valign="top"><code>AGE</code><br>
1286 </td><td valign="top"><code>NULL</code><br>
1291 <td valign="top"><code>ELT_SUB_EVT_AGNC</code><br>
1293 <td valign="top"><code>AGNC</code><br>
1295 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1296 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1297 ELT_SUB_INDIV_ATTR,<br>
1298 ELT_SUB_INDIV_RESI</code><code>,<br>
1299 ELT_SUB_INDIV_BIRT,<br>
1300 ELT_SUB_INDIV_GEN,<br>
1301 ELT_SUB_INDIV_ADOP,<br>
1302 ELT_SUB_INDIV_EVEN</code><br>
1304 <td valign="top"><code>STRING</code><br>
1305 </td><td valign="top"><code>NULL</code><br>
1310 <td valign="top"><code>ELT_SUB_EVT_CAUS</code><br>
1312 <td valign="top"><code>CAUS</code><br>
1314 <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1315 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1316 ELT_SUB_INDIV_ATTR,<br>
1317 ELT_SUB_INDIV_RESI</code><code>,<br>
1318 ELT_SUB_INDIV_BIRT,<br>
1319 ELT_SUB_INDIV_GEN,<br>
1320 ELT_SUB_INDIV_ADOP,<br>
1321 ELT_SUB_INDIV_EVEN</code><br>
1323 <td valign="top"><code>STRING</code><br>
1324 </td><td valign="top"><code>NULL</code><br>
1329 <td valign="top"><code>ELT_SUB_FAM_EVT</code><br>
1331 <td valign="top"><code>ANUL, CENS, DIV,<br>
1332 DIVF, ENGA, MARR,<br>
1333 MARB, MARC, MARL,<br>
1336 <td valign="top"><code>REC_FAM</code><br>
1338 <td valign="top"><code>NULL<br>
1340 </td><td valign="top"><code>NULL</code><br>
1345 <td valign="top"><code>ELT_SUB_FAM_EVT_HUSB</code><br>
1347 <td valign="top"><code>HUSB</code><br>
1349 <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1350 <code>ELT_SUB_FAM_EVT_EVEN</code><br>
1352 <td valign="top"><code>NULL</code><br>
1353 </td><td valign="top"><code>NULL</code><br>
1358 <td valign="top"><code>ELT_SUB_FAM_EVT_WIFE</code><br>
1360 <td valign="top"><code>WIFE</code><br>
1362 <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1363 <code>ELT_SUB_FAM_EVT_EVEN</code><br>
1365 <td valign="top"><code>NULL</code><br>
1366 </td><td valign="top"><code>NULL</code><br>
1371 <td valign="top"><code>ELT_SUB_FAM_EVT_AGE</code><br>
1373 <td valign="top"><code>AGE</code><br>
1375 <td valign="top"><code>ELT_SUB_FAM_EVT_HUSB</code>,<br>
1376 <code>ELT_SUB_FAM_EVT_WIFE</code><br>
1378 <td valign="top"><code>AGE</code><br>
1379 </td><td valign="top"><code>NULL</code><br>
1384 <td valign="top"><code>ELT_SUB_FAM_EVT_EVEN</code><br>
1386 <td valign="top"><code>EVEN</code><br>
1388 <td valign="top"><code>REC_FAM</code><br>
1390 <td valign="top"><code>NULL</code><br>
1391 </td><td valign="top"><code>NULL</code><br>
1396 <td valign="top"><code>ELT_SUB_IDENT_REFN</code><br>
1398 <td valign="top"><code>REFN</code><br>
1400 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1401 REC_OBJE, REC_NOTE,<br>
1402 REC_REPO, REC_SOUR<br>
1405 <td valign="top"><code>STRING</code><br>
1406 </td><td valign="top"><code>NULL</code><br>
1411 <td valign="top"><code>ELT_SUB_IDENT_REFN_TYPE</code><br>
1413 <td valign="top"><code>TYPE</code><br>
1415 <td valign="top"><code>ELT_SUB_IDENT_REFN</code><br>
1417 <td valign="top"><code>STRING</code><br>
1418 </td><td valign="top"><code>NULL</code><br>
1423 <td valign="top"><code>ELT_SUB_IDENT_RIN</code><br>
1425 <td valign="top"><code>RIN</code><br>
1427 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1428 REC_OBJE, REC_NOTE,<br>
1429 REC_REPO, REC_SOUR<br>
1432 <td valign="top"><code>STRING</code><br>
1433 </td><td valign="top"><code>NULL</code><br>
1438 <td valign="top"><code>ELT_SUB_INDIV_ATTR</code><br>
1440 <td valign="top"><code>CAST, DSCR, EDUC,<br>
1441 IDNO, NATI, NCHR,<br>
1442 NMR, OCCU, PROP,<br>
1443 RELI, SSN, TITL</code><br>
1445 <td valign="top"><code>REC_INDI</code><br>
1447 <td valign="top"><code>STRING</code><br>
1448 </td><td valign="top"><code>NULL</code><br>
1453 <td valign="top"><code>ELT_SUB_INDIV_RESI</code><br>
1455 <td valign="top"><code>RESI</code><br>
1457 <td valign="top"><code>REC_INDI</code><br>
1459 <td valign="top"><code>NULL</code><br>
1460 </td><td valign="top"><code>NULL</code><br>
1465 <td valign="top"><code>ELT_SUB_INDIV_BIRT</code><br>
1467 <td valign="top"><code>BIRT, CHR</code><br>
1469 <td valign="top"><code>REC_INDI</code><br>
1471 <td valign="top"><code>NULL<br>
1473 </td><td valign="top"><code>NULL</code><br>
1478 <td valign="top"><code>ELT_SUB_INDIV_BIRT_FAMC</code><br>
1480 <td valign="top"><code>FAMC</code><br>
1482 <td valign="top"><code>ELT_SUB_INDIV_BIRT</code><br>
1484 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1485 </td><td valign="top"><code>NULL</code><br>
1490 <td valign="top"><code>ELT_SUB_INDIV_GEN</code><br>
1492 <td valign="top"><code>DEAT, BURI, CREM,<br>
1493 BAPM, BARM, BASM,<br>
1494 BLES, CHRA, CONF,<br>
1495 FCOM, ORDN, NATU,<br>
1496 EMIG, IMMI, CENS,<br>
1497 PROB, WILL, GRAD,<br>
1500 <td valign="top"><code>REC_INDI</code><br>
1502 <td valign="top"><code>NULL<br>
1504 </td><td valign="top"><code>NULL</code><br>
1509 <td valign="top"><code>ELT_SUB_INDIV_ADOP</code><br>
1511 <td valign="top"><code>ADOP</code><br>
1513 <td valign="top"><code>REC_INDI</code><br>
1515 <td valign="top"><code>NULL<br>
1517 </td><td valign="top"><code>NULL</code><br>
1522 <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC</code><br>
1524 <td valign="top"><code>FAMC</code><br>
1526 <td valign="top"><code>ELT_SUB_INDIV_ADOP</code><br>
1528 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1529 </td><td valign="top"><code>NULL</code><br>
1534 <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC_ADOP</code><br>
1536 <td valign="top"><code>ADOP</code><br>
1538 <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC</code><br>
1540 <td valign="top"><code>STRING</code><br>
1541 </td><td valign="top"><code>NULL</code><br>
1546 <td valign="top"><code>ELT_SUB_INDIV_EVEN</code><br>
1548 <td valign="top"><code>EVEN</code><br>
1550 <td valign="top"><code>REC_INDI</code><br>
1552 <td valign="top"><code>NULL</code><br>
1553 </td><td valign="top"><code>NULL</code><br>
1558 <td valign="top"><code>ELT_SUB_LIO_BAPL</code><br>
1560 <td valign="top"><code>BAPL, CONL, ENDL</code><br>
1562 <td valign="top"><code>REC_INDI</code><br>
1564 <td valign="top"><code>NULL</code><br>
1565 </td><td valign="top"><code>NULL</code><br>
1570 <td valign="top"><code>ELT_SUB_LIO_BAPL_STAT</code><br>
1572 <td valign="top"><code>STAT</code><br>
1574 <td valign="top"><code></code><code>ELT_SUB_LIO_BAPL,<br>
1575 ELT_SUB_LIO_SLGC<br>
1578 <td valign="top"><code>STRING</code><br>
1579 </td><td valign="top"><code>NULL</code><br>
1584 <td valign="top"><code>ELT_SUB_LIO_BAPL_DATE</code><br>
1586 <td valign="top"><code>DATE</code><br>
1588 <td valign="top"><code>ELT_SUB_LIO_BAPL</code><code>,<br>
1589 ELT_SUB_LIO_SLGC<br>
1593 <td valign="top"><code>DATE</code><br>
1594 </td><td valign="top"><code>NULL</code><br>
1599 <td valign="top"><code>ELT_SUB_LIO_BAPL_TEMP</code><br>
1601 <td valign="top"><code>TEMP</code><br>
1603 <td valign="top"><code>ELT_SUB_LIO_BAPL</code><code>,<br>
1604 ELT_SUB_LIO_SLGC<br>
1608 <td valign="top"><code>STRING</code><br>
1609 </td><td valign="top"><code>NULL</code><br>
1614 <td valign="top"><code>ELT_SUB_LIO_BAPL_PLAC</code><br>
1616 <td valign="top"><code>PLAC</code><br>
1618 <td valign="top"><code>ELT_SUB_LIO_BAPL</code><code>,<br>
1619 ELT_SUB_LIO_SLGC<br>
1623 <td valign="top"><code>STRING</code><br>
1624 </td><td valign="top"><code>NULL</code><br>
1629 <td valign="top"><code>ELT_SUB_LIO_SLGC</code><br>
1631 <td valign="top"><code>SLGC</code><br>
1633 <td valign="top"><code>REC_INDI</code><br>
1635 <td valign="top"><code>NULL</code><br>
1636 </td><td valign="top"><code>NULL</code><br>
1641 <td valign="top"><code>ELT_SUB_LIO_SLGC_FAMC</code><br>
1643 <td valign="top"><code>FAMC</code><br>
1645 <td valign="top"><code>ELT_SUB_LIO_SLGC</code><br>
1647 <td valign="top"><code>XREF_PTR(FAM)</code><br>
1648 </td><td valign="top"><code>NULL</code><br>
1653 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1655 <td valign="top"><code>SLGS</code><br>
1657 <td valign="top"><code>REC_FAM</code><br>
1659 <td valign="top"><code>NULL</code><br>
1660 </td><td valign="top"><code>NULL</code><br>
1665 <td valign="top"><code>ELT_SUB_LSS_SLGS_STAT</code><br>
1667 <td valign="top"><code>STAT</code><br>
1669 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1671 <td valign="top"><code>STRING</code><br>
1672 </td><td valign="top"><code>NULL</code><br>
1677 <td valign="top"><code>ELT_SUB_LSS_SLGS_DATE</code><br>
1679 <td valign="top"><code>DATE</code><br>
1681 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1683 <td valign="top"><code>DATE</code><br>
1684 </td><td valign="top"><code>NULL</code><br>
1689 <td valign="top"><code>ELT_SUB_LSS_SLGS_TEMP</code><br>
1691 <td valign="top"><code>TEMP</code><br>
1693 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1695 <td valign="top"><code>STRING</code><br>
1696 </td><td valign="top"><code>NULL</code><br>
1701 <td valign="top"><code>ELT_SUB_LSS_SLGS_PLAC</code><br>
1703 <td valign="top"><code>PLAC</code><br>
1705 <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1707 <td valign="top"><code>STRING</code><br>
1708 </td><td valign="top"><code>NULL</code><br>
1713 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1715 <td valign="top"><code>OBJE</code><br>
1717 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1718 REC_SOUR, REC_SUBM,<br>
1719 </code><code>ELT_SUB_FAM_EVT,<br>
1720 ELT_SUB_FAM_EVT_EVEN,<br>
1721 ELT_SUB_INDIV_ATTR,<br>
1722 ELT_SUB_INDIV_RESI</code><code>,<br>
1723 ELT_SUB_INDIV_BIRT,<br>
1724 ELT_SUB_INDIV_GEN,<br>
1725 ELT_SUB_INDIV_ADOP,<br>
1726 ELT_SUB_INDIV_EVEN,<br>
1727 ELT_SUB_SOUR</code><br>
1729 <td valign="top"><code>NULL<br>
1732 </td><td valign="top"><code>NULL</code><br>
1737 <td valign="top"><code>ELT_SUB_MULTIM_OBJE_FORM</code><br>
1739 <td valign="top"><code>FORM</code><br>
1741 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1743 <td valign="top"><code>STRING</code><br>
1744 </td><td valign="top"><code>NULL</code><br>
1749 <td valign="top"><code>ELT_SUB_MULTIM_OBJE_TITL</code><br>
1751 <td valign="top"><code>TITL</code><br>
1753 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1755 <td valign="top"><code>STRING</code><br>
1756 </td><td valign="top"><code>NULL</code><br>
1761 <td valign="top"><code>ELT_SUB_MULTIM_OBJE_FILE</code><br>
1763 <td valign="top"><code>FILE</code><br>
1765 <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1767 <td valign="top"><code>STRING</code><br>
1768 </td><td valign="top"><code>NULL</code><br>
1773 <td valign="top"><code>ELT_SUB_NOTE</code><br>
1775 <td valign="top"><code>NOTE</code><br>
1777 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1778 REC_OBJE, REC_REPO,<br>
1779 REC_SOUR, ELT_SOUR_DATA,<br>
1780 ELT_SUB_ASSO, ELT_SUB_CHAN,<br>
1781 ELT_SUB_FAMC, </code><code>ELT_SUB_FAM_EVT,<br>
1782 ELT_SUB_FAM_EVT_EVEN,<br>
1783 ELT_SUB_INDIV_ATTR,<br>
1784 ELT_SUB_INDIV_RESI</code><code>,<br>
1785 ELT_SUB_INDIV_BIRT,<br>
1786 ELT_SUB_INDIV_GEN,<br>
1787 ELT_SUB_INDIV_ADOP,<br>
1788 ELT_SUB_INDIV_EVEN,<br>
1789 ELT_SUB_LIO_BAPL,<br>
1790 ELT_SUB_LIO_SLGC,<br>
1791 ELT_SUB_LSS_SLGS,<br>
1792 ELT_SUB_MULTIM_OBJE,<br>
1793 ELT_SUB_PERS_NAME,<br>
1797 ELT_SUB_FAMS</code><br>
1799 <td valign="top"><code>NULL<br>
1803 </td><td valign="top"><code>STRING<br>
1810 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1812 <td valign="top"><code>NAME</code><br>
1814 <td valign="top"><code>REC_INDI</code><br>
1816 <td valign="top"><code>STRING</code><br>
1817 </td><td valign="top"><code>NULL</code><br>
1822 <td valign="top"><code>ELT_SUB_PERS_NAME_NPFX</code><br>
1824 <td valign="top"><code>NPFX</code><br>
1826 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1828 <td valign="top"><code>STRING</code><br>
1829 </td><td valign="top"><code>NULL</code><br>
1834 <td valign="top"><code>ELT_SUB_PERS_NAME_GIVN</code><br>
1836 <td valign="top"><code>GIVN</code><br>
1838 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1840 <td valign="top"><code>STRING</code><br>
1841 </td><td valign="top"><code>NULL</code><br>
1846 <td valign="top"><code>ELT_SUB_PERS_NAME_NICK</code><br>
1848 <td valign="top"><code>NICK</code><br>
1850 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1852 <td valign="top"><code>STRING</code><br>
1853 </td><td valign="top"><code>NULL</code><br>
1858 <td valign="top"><code>ELT_SUB_PERS_NAME_SPFX</code><br>
1860 <td valign="top"><code>SPFX</code><br>
1862 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1864 <td valign="top"><code>STRING</code><br>
1865 </td><td valign="top"><code>NULL</code><br>
1870 <td valign="top"><code>ELT_SUB_PERS_NAME_SURN</code><br>
1872 <td valign="top"><code>SURN</code><br>
1874 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1876 <td valign="top"><code>STRING</code><br>
1877 </td><td valign="top"><code>NULL</code><br>
1882 <td valign="top"><code>ELT_SUB_PERS_NAME_NSFX</code><br>
1884 <td valign="top"><code>NSFX</code><br>
1886 <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1888 <td valign="top"><code>STRING</code><br>
1889 </td><td valign="top"><code>NULL</code><br>
1894 <td valign="top"><code>ELT_SUB_PLAC</code><br>
1896 <td valign="top"><code>PLAC</code><br>
1898 <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1899 <code>ELT_SUB_FAM_EVT_EVEN,<br>
1900 ELT_SUB_INDIV_ATTR,<br>
1901 ELT_SUB_INDIV_RESI</code><code>,
1903 ELT_SUB_INDIV_BIRT,<br>
1904 ELT_SUB_INDIV_GEN,<br>
1905 ELT_SUB_INDIV_ADOP,<br>
1906 ELT_SUB_INDIV_EVEN</code><br>
1908 <td valign="top"><code>STRING</code><br>
1909 </td><td valign="top"><code>NULL</code><br>
1914 <td valign="top"><code>ELT_SUB_PLAC_FORM</code><br>
1916 <td valign="top"><code>FORM</code><br>
1918 <td valign="top"><code>ELT_SUB_PLAC</code><br>
1920 <td valign="top"><code>STRING</code><br>
1921 </td><td valign="top"><code>NULL</code><br>
1926 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1928 <td valign="top"><code>SOUR</code><br>
1930 <td valign="top"><code>REC_FAM, REC_INDI,<br>
1931 REC_NOTE, ELT_SUB_ASSO<br>
1932 </code><code>ELT_SUB_FAM_EVT,<br>
1933 </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1934 ELT_SUB_INDIV_ATTR,<br>
1935 ELT_SUB_INDIV_RESI</code><code>,<br>
1936 ELT_SUB_INDIV_BIRT,<br>
1937 ELT_SUB_INDIV_GEN,<br>
1938 ELT_SUB_INDIV_ADOP,<br>
1939 ELT_SUB_INDIV_EVEN,<br>
1940 ELT_SUB_LIO_BAPL,<br>
1941 ELT_SUB_LIO_SLGC,<br>
1942 ELT_SUB_LSS_SLGS,<br>
1944 ELT_SUB_PERS_NAME,<br>
1945 ELT_SUB_PLAC</code><br>
1947 <td valign="top"><code>STRING<br>
1948 XREF_PTR(SOUR)</code><br>
1949 </td><td valign="top"><code>STRING<br>
1955 <td valign="top"><code>ELT_SUB_SOUR_PAGE</code><br>
1957 <td valign="top"><code>PAGE</code><br>
1959 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1961 <td valign="top"><code>STRING</code><br>
1962 </td><td valign="top"><code>NULL</code><br>
1967 <td valign="top"><code>ELT_SUB_SOUR_EVEN</code><br>
1969 <td valign="top"><code>EVEN</code><br>
1971 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1973 <td valign="top"><code>STRING</code><br>
1974 </td><td valign="top"><code>NULL</code><br>
1979 <td valign="top"><code>ELT_SUB_SOUR_EVEN_ROLE</code><br>
1981 <td valign="top"><code>ROLE</code><br>
1983 <td valign="top"><code>ELT_SUB_SOUR_EVEN</code><br>
1985 <td valign="top"><code>STRING</code><br>
1986 </td><td valign="top"><code>NULL</code><br>
1991 <td valign="top"><code>ELT_SUB_SOUR_DATA</code><br>
1993 <td valign="top"><code>DATA</code><br>
1995 <td valign="top"><code>ELT_SUB_SOUR</code><br>
1997 <td valign="top"><code>NULL</code><br>
1998 </td><td valign="top"><code>NULL</code><br>
2003 <td valign="top"><code>ELT_SUB_SOUR_DATA_DATE</code><br>
2005 <td valign="top"><code>DATE</code><br>
2007 <td valign="top"><code>ELT_SUB_SOUR_DATA</code><br>
2009 <td valign="top"><code>DATE</code><br>
2010 </td><td valign="top"><code>NULL</code><br>
2015 <td valign="top"><code>ELT_SUB_SOUR_TEXT</code><br>
2017 <td valign="top"><code>TEXT</code><br>
2019 <td valign="top"><code>ELT_SUB_SOUR<br>
2020 ELT_SUB_SOUR_DATA</code><br>
2022 <td valign="top"><code>STRING</code><br>
2023 </td><td valign="top"><code>NULL</code><br>
2028 <td valign="top"><code>ELT_SUB_SOUR_QUAY</code><br>
2030 <td valign="top"><code>QUAY</code><br>
2032 <td valign="top"><code>ELT_SUB_SOUR</code><br>
2034 <td valign="top"><code>STRING</code><br>
2035 </td><td valign="top"><code>NULL</code><br>
2040 <td valign="top"><code>ELT_SUB_REPO</code><br>
2042 <td valign="top"><code>REPO</code><br>
2044 <td valign="top"><code>REC_SOUR</code><br>
2046 <td valign="top"><code>XREF_PTR(REPO)</code><br>
2047 </td><td valign="top"><code>NULL</code><br>
2052 <td valign="top"><code>ELT_SUB_REPO_CALN</code><br>
2054 <td valign="top"><code>CALN</code><br>
2056 <td valign="top"><code>ELT_SUB_REPO</code><br>
2058 <td valign="top"><code>STRING</code><br>
2059 </td><td valign="top"><code>NULL</code><br>
2064 <td valign="top"><code>ELT_SUB_REPO_CALN_MEDI</code><br>
2066 <td valign="top"><code>MEDI</code><br>
2068 <td valign="top"><code>ELT_SUB_REPO_CALN</code><br>
2070 <td valign="top"><code>STRING</code><br>
2071 </td><td valign="top"><code>NULL</code><br>
2076 <td valign="top"><code>ELT_SUB_FAMS</code><br>
2078 <td valign="top"><code>FAMS</code><br>
2080 <td valign="top"><code>REC_INDI</code><br>
2082 <td valign="top"><code>XREF_PTR(FAM)</code><br>
2083 </td><td valign="top"><code>NULL</code><br>
2088 <td valign="top"><code>ELT_USER</code><br>
2090 <td valign="top"><code>any tag starting<br>
2091 with an underscore</code><br>
2093 <td valign="top"><code>anywhere</code><br>
2095 <td valign="top"><code>NULL<br>
2097 XREF_PTR(USER)</code><br>
2098 </td><td valign="top"><code>NULL</code><br>
2106 <hr width="100%" size="2">
2107 <h2><a name="Gedcom_val_types"></a>Gedcom_val types<br>
2109 Currently, the specific <code>Gedcom_val</code> types are (with <code>
2110 val</code> of type <code>Gedcom_val</code>):<br>
2113 <table cellpadding="2" cellspacing="2" border="1" width="100%">
2116 <td valign="top"><br>
2118 <td valign="top"><b>type checker</b><br>
2120 <td valign="top"><b>cast operator</b><br>
2124 <td valign="top">null value<br>
2126 <td valign="top"><code>GEDCOM_IS_NULL(val)</code><br>
2128 <td valign="top">N/A<br>
2132 <td valign="top">string<br>
2134 <td valign="top"><code>GEDCOM_IS_STRING(val)</code><br>
2136 <td valign="top"><code>char* str = GEDCOM_STRING(val);</code><br>
2140 <td valign="top">date<br>
2142 <td valign="top"><code>GEDCOM_IS_DATE(val)</code><br>
2144 <td valign="top"><code>struct date_value dv = GEDCOM_DATE(val);</code></td>
2147 <td valign="top">age<br>
2149 <td valign="top"><code>GEDCOM_IS_AGE(val)</code><br>
2151 <td valign="top"><code>struct age_value age = GEDCOM_AGE(val);</code><br>
2155 <td valign="top">xref pointer<br>
2157 <td valign="top"><code>GEDCOM_IS_XREF_PTR(val)</code><br>
2159 <td valign="top"><code>struct xref_value *xr = GEDCOM_XREF_PTR(val);</code><br>
2167 The type checker returns a true or a false value according to the
2168 type of the value, but this is in principle only necessary in the rare
2169 circumstances that two types are possible, or where an optional value
2170 can be provided. In most cases, the type is fixed for a specific
2173 The null value is used for when the GEDCOM spec doesn't allow a value,
2174 or when an optional value is allowed but none is given.<br>
2176 The string value is the most general used value currently, for all
2177 those values that don't have a more specific meaning. In essence,
2178 the value that is returned by <code>GEDCOM_STRING(val)</code> is always the same as the
2179 <code>raw_value</code> passed to the start callback, and is thus in fact redundant.<br>
2181 The date value is used for all elements that return a date. See
2182 <a href="#date_value">here</a> for the definition.<br>
2184 The xref value is for cross-references between records in the file. See
2185 <a href="#xref_value">here</a> for the definition.<br>
2188 <h3><a name="date_value"></a>struct date_value</h3>
2189 This struct describes a date as given in the GEDCOM file, and has the
2190 following definition:<br>
2192 <blockquote><code>struct date_value {<br>
2193 Date_value_type type;<br>
2194 struct date date1;<br>
2195 struct date date2;<br>
2196 char phrase[MAX_PHRASE_LEN
2200 It depends on the first member, the type, which members are actually
2204 <table cellpadding="2" cellspacing="2" border="1" width="100%">
2207 <td valign="top" align="center"><b>Date_value_type</b><br>
2209 <td valign="top" align="center"><b>Meaning</b><br>
2211 <td valign="top" align="center"><b>Relevant members</b><br>
2215 <td valign="top"><code>DV_NO_MODIFIER</code><br>
2217 <td valign="top">just a simple date<br>
2219 <td valign="top">date1<br>
2223 <td valign="top"><code>DV_BEFORE</code><br>
2225 <td valign="top">a range (BEFORE date1)<br>
2227 <td valign="top">date1<br>
2231 <td valign="top"><code>DV_AFTER</code><br>
2233 <td valign="top">a range (AFTER date1)<br>
2235 <td valign="top">date1<br>
2239 <td valign="top"><code>DV_BETWEEN</code><br>
2241 <td valign="top">a range (BETWEEN date1 AND date2)<br>
2243 <td valign="top">date1, date2<br>
2247 <td valign="top"><code>DV_FROM</code><br>
2249 <td valign="top">a period (FROM date1)<br>
2251 <td valign="top">date1<br>
2255 <td valign="top"><code>DV_TO</code><br>
2257 <td valign="top">a period (TO date1)<br>
2259 <td valign="top">date1<br>
2263 <td valign="top"><code>DV_FROM_TO</code><br>
2265 <td valign="top">a period (FROM date1 TO date2)<br>
2267 <td valign="top">date1, date2<br>
2271 <td valign="top"><code>DV_ABOUT</code><br>
2273 <td valign="top">an approximation (ABOUT date1)<br>
2275 <td valign="top">date1<br>
2279 <td valign="top"><code>DV_CALCULATED</code><br>
2281 <td valign="top">an approximation (CALCULATED date1)<br>
2283 <td valign="top">date1<br>
2287 <td valign="top"><code>DV_ESTIMATED</code><br>
2289 <td valign="top">an approximation (ESTIMATED date1)<br>
2291 <td valign="top">date1<br>
2295 <td valign="top"><code>DV_INTERPRETED</code><br>
2297 <td valign="top">INTERPRETED date1 FROM a given free form date
2300 <td valign="top">date1, phrase<br>
2304 <td valign="top"><code>DV_PHRASE</code><br>
2306 <td valign="top">a free form date phrase<br>
2308 <td valign="top">phrase<br>
2316 <h3><a name="date"></a>struct date<br>
2318 The <code>date1</code> and <code>date2</code> also have a strict syntax:<br>
2320 <blockquote><code>struct date {<br>
2321 Calendar_type cal;<br>
2322 char day_str[MAX_DAY_LEN +
2324 char month_str[MAX_MONTH_LEN
2326 char year_str[MAX_YEAR_LEN
2329 int day;<br>
2330 int month;<br>
2331 int year;<br>
2332 Year_type year_type;<br>
2334 Date_type type;<br>
2335 long int sdn1;<br>
2336 long int sdn2;<br>
2339 The first four fields are the primary fields parsed from the value in
2340 the GEDCOM file. The <code>day_str</code>, <code>month_str</code>
2341 and <code> year_str</code> are the literal parts of the date that denote
2342 the day, month and year (the <code>day_str</code> and <code>month_str</code>
2343 can be empty) . The calendar type <code>cal</code> is one of (see
2344 calendar overview <i>LINK TBD</i>):<br>
2347 <li><code>CAL_GREGORIAN</code> : the Gregorian calendar</li>
2348 <li><code>CAL_JULIAN</code> : the Julian calendar</li>
2349 <li><code>CAL_HEBREW</code> : the Hebrew (Jewish) calendar</li>
2350 <li><code>CAL_FRENCH_REV</code> : the calendar used after the
2351 French Revolution</li>
2352 <li><code>CAL_UNKNOWN</code> : an unknown calendar type</li>
2355 The next four fields are deduced from the first four:<br>
2358 <li>the <code>day</code> is just the numeric representation of
2359 the <code>day_str</code> (starting from 1), -1 if the <code>day_str</code>
2361 <li>the <code>month</code> is the month number of <code>month_str</code>
2362 in the given calendar type (also starting from 1), -1 if the <code>
2363 month_str</code> is empty</li>
2364 <li>the <code>year</code> is the numeric representation of the
2365 <code> year_str</code></li>
2368 It is possible that the <code>year_str</code> is given as e.g. "1677/78".
2369 This is coming from a date in a so called "annunciation style", where
2370 the year began on 25 March: "20 March 1677/78" is 20 March 1677 in "annunciation
2371 style" and 20 March 1678 in "circumcision style" (the current style). See
2372 calendar overview (<i>LINK TBD</i>).<br>
2374 In this case, the <code>year</code> will contain the "circumcision style"
2375 year (1678 in the example), and <code>year_type</code> will be <code>YEAR_DOUBLE.</code>
2376 Normal dates will have a <code>year_type</code> equal to <code>
2377 YEAR_SINGLE</code> .<br>
2379 Finally, the last three fields are probably the most interesting values
2380 for applications that want to process dates. Basically, the date
2381 is converted to a serial day number (aka Julian day), which is the unique
2382 day number since November 25, 4714 BC in the Gregorian calendar. The
2383 advantage of these day numbers is that they are unique and independent
2384 of the calendar system. Furthermore, date differences can just be
2385 computed by subtracting the serial day numbers.<br>
2387 However, since dates in GEDCOM are not necessarily exact (e.g. "MAR
2388 1990"), it is not possible to represent all GEDCOM dates with 1 serial
2389 day number. Two cases can be distinguished:<br>
2392 <li>Exact dates (e.g. "25 MAR 1990"):</li>
2397 <blockquote>These are represented by a serial day number in <code>sdn1</code>
2398 and a <code>Date_type</code> equal to <code>DATE_EXACT</code>.<br>
2403 <li>Incomplete dates (e.g. "MAR 1990"):</li>
2410 <blockquote>These are represented by 2 serial day numbers (<code>sdn1</code> and <code>sdn2</code>) and a <code>Date_type</code> equal
2411 to <code>DATE_BOUNDED</code>.<br>
2414 For example, the Gregorian date "MAR 1990" is represented by the serial
2415 day numbers for "1 MAR 1990" and "31 MAR 1990", and the Gregorian date
2416 "1990" is represented by the serial day numbers for "1 JAN 1990" and "31
2417 DEC 1990". Similarly for the other calendar types.<br>
2422 <h3><a name="age_value"></a>struct age_value</h3>
2424 This struct describes an age as given in the GEDCOM file, and has the
2425 following definition:<br>
2428 <blockquote><code>struct age_value {<br>
2429 Age_type type;<br>
2430 Age_modifier mod;<br>
2431 int years;<br>
2432 int months;<br>
2433 int days;<br>
2434 char phrase[MAX_PHRASE_LEN
2443 It depends on the first member, the type, which members are actually
2446 <table cellpadding="2" cellspacing="2" border="1" width="100%">
2448 <td valign="top" align="center"><b>Age_type</b><br>
2450 <td valign="top" align="center"><b>Meaning</b><br>
2452 <td valign="top" align="center"><b>Relevant members</b><br>
2456 <td valign="top"><code>AGE_UNRECOGNIZED</code><br>
2458 <td valign="top">format not recognized, full raw value in phrase<br>
2460 <td valign="top">phrase<br>
2464 <td valign="top"><code>AGE_CHILD</code><br>
2466 <td valign="top">the indication 'CHILD'<br>
2468 <td valign="top">mod<br>
2472 <td valign="top"><code>AGE_INFANT</code><br>
2474 <td valign="top">the indication 'INFANT'<br>
2476 <td valign="top">mod<br>
2480 <td valign="top"><code>AGE_STILLBORN</code><br>
2482 <td valign="top">the indication 'STILLBORN'<br>
2484 <td valign="top">mod<br>
2486 <td valign="top"><code>AGE_NUMERIC</code><br>
2488 <td valign="top">an indication in years, months and/or days (each can be -1 if not given)<br>
2490 <td valign="top">mod, years, months, days<br>
2496 The modifier can be one of the following:<br>
2498 <li><code> AGE_NO_MODIFIER</code> : no modifier</li><li><code>AGE_LESS_THAN</code><code></code> : the modifier '<' is added</li><li><code>AGE_GREATER_THAN </code>: the modifier '>' is added</li>
2501 <h3><a name="xref_value"></a>struct xref_value</h3>
2503 This struct represents a cross-reference in the GEDCOM file (but note that
2504 the <code>Gedcom_val</code> contains a pointer to such a struct, not the struct
2505 itself). It is defined as:<br>
2507 <blockquote><code>struct xref_value {<br>
2508 Xref_type type,<br>
2509 char* string,<br>
2510 Gedcom_ctxt object<br>
2513 The <code>Xref_type</code> gives the type of the cross-reference and can
2517 <li><code>XREF_NONE</code> (used as default value)</li>
2518 <li><code>XREF_FAM</code></li>
2519 <li><code>XREF_INDI</code></li>
2520 <li><code>XREF_NOTE</code></li>
2521 <li><code>XREF_OBJE</code></li>
2522 <li><code>XREF_REPO</code></li>
2523 <li><code>XREF_SOUR</code></li>
2524 <li><code>XREF_SUBM</code></li>
2525 <li><code>XREF_SUBN</code></li><li><code>XREF_ANY</code> (if the type is not known, see below)<br>
2528 <li><code>XREF_USER</code> (for application-specific cross-references)<br>
2532 The <code>string</code> gives the actual cross-reference string from the
2533 GEDCOM file, and the <code>object</code> is initially <code>NULL,</code> but
2534 can be filled by the application with an object (of any type) that corresponds
2535 with the cross-reference, and then later extracted when the cross-reference
2536 is used or defined again in the file. This relieves the application
2537 from the burden of maintaining the mapping between cross-references and objects.<br>
2539 The value <code>XREF_ANY</code> is used when the type of the object is not
2540 immediately known: it has to come from further information. This is
2541 the case in an association (<code>ELT_SUB_ASSO</code>): the type is then given by the <code>TYPE</code> subtag.<br>
2543 The parser checks whether all cross-references that are used are defined
2544 (if not, an error is produced) and whether all cross-references that are
2545 defined are used (if not, a warning is produced). It also checks whether
2546 the type of the cross-reference is the same on definition and use (if not,
2547 an error is produced). The first two checks are done at the end of
2548 the parsing, because cross-references can be defined after their usage in
2551 The following functions are available to manipulate xref_value objects:<br>
2552 <blockquote><code>struct xref_value* <b>gedcom_get_by_xref</b> (const char *key)</code><br>
2553 <blockquote> Retrieve an xref_value by its key. Returns <code>NULL</code> if the given key isn't a valid cross-reference key (see below) or isn't used.<br>
2555 <code>struct xref_value* <b>gedcom_add_xref</b> (Xref_type type, const char* key, Gedcom_ctxt object)</code> <br>
2556 <blockquote>Add an xref_value of the given <code>type</code> (see list above), with the given <code>key</code>, to the given <code>object</code>, with a use count equal to 0. Returns the new xref_value if success. Returns <code>NULL</code> in one of the following cases:<br>
2558 <li>the key isn't a valid cross-reference key (see below)</li>
2559 <li>there is already an xref_value with the same key</li>
2560 <li>there was a memory allocation error</li>
2563 <code>int <b>gedcom_delete_xref</b> (const char* key)<br>
2565 <blockquote>Delete the xref_value corresponding to the given key. Returns 0 if success. Returns 1 in one of the following cases:<br>
2567 <li>the key isn't a valid cross-reference key (see below)</li>
2568 <li>there is no xref_value with the given key</li>
2569 <li>the xref_value is still in use, i.e. its use count is not 0 (see <code>gedcom_link_xref</code> and <code>gedcom_unlink_xref</code> below)</li>
2572 <code>struct xref_value* <b>gedcom_link_xref</b> (Xref_type type, const char* key)<br>
2573 struct xref_value* <b>gedcom_unlink_xref</b> (Xref_type type, const char* key)</code><br>
2575 the xref_value corresponding to the given key as being used/no longer used
2576 (linked to or unlinked) as the given type. The use of these functions
2577 is not mandatory, but it can aid in spotting places in the code where xref_value
2578 objects are deleted while they are still referenced.<br>
2580 Returns the xref_value object if success, and its use count is incremented/decremented. Returns <code>NULL</code> in one of the following cases:<br>
2582 <li>the key isn't a valid cross-reference key (see below)</li>
2583 <li>there is no xref_value with the given key</li>
2584 <li>the xref_value was previously added as another type than the type provided here<br>
2592 A cross-reference key must be a string of maximum 22 characters, of the following format:<br>
2594 <li>an at sign ('@')</li>
2595 <li>followed by an alphanumeric character (A-Z, a-z, 0-9 or underscore)</li>
2596 <li>followed by zero or more characters, which can be any character except an at sign</li>
2597 <li>terminated by an at sign ('@')</li>
2599 An example would thus be: "@This is an xref_val@".<br>
2602 <hr width="100%" size="2">
2603 <pre>$Id$<br>$Name$<br></pre>