Documentation for parsing age values.
[gedcom-parse.git] / doc / interface.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Libgedcom interface details</title>
2   
3                                          
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">
5            
6 <h1 align="center">Libgedcom interface details</h1>
7       <br>
8            
9 <h2>Index</h2>
10            
11 <ul>
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>
15                    
16   <ul>
17          <li><a href="#struct_date_value">struct date_value</a></li>
18          <li><a href="#struct_date">struct date</a></li><li><a href="#age_value">struct age_value</a><br>
19     </li>
20
21      <li><a href="#struct_xref_value">struct xref_value</a><br>
22         </li>
23                    
24   </ul>
25            
26 </ul>
27       <br>
28            
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.  &nbsp;The last columns gives the <a href="#Gedcom_val_types"><code>
33     Gedcom_val</code>   type</a> of the <code>xref</code> and&nbsp;<code>
34 val</code><code> </code> arguments in the header  start callback.<br>
35       <br>
36            
37 <table width="100%" border="1" cellspacing="2" cellpadding="2">
38         <tbody>
39           <tr>
40             <td valign="top" align="center"><b>Record</b><br>
41             </td>
42             <td valign="top" align="center"><b>Meaning</b><br>
43             </td>
44             <td valign="top" align="center"><b>Possible<br>
45       &nbsp;<code>xref</code> types</b><br>
46             </td>
47        <td valign="top" align="center"><b>Possible<br>
48        <code>val</code> types<br>
49        </b><br>
50        </td>
51           </tr>
52           <tr>
53             <td valign="top"><code>REC_HEAD</code><br>
54             </td>
55             <td valign="top">The header of the GEDCOM file<br>
56             </td>
57             <td valign="top"><code>NULL</code><br>
58             </td>
59        <td valign="top"><code>NULL</code><br>
60        </td>
61           </tr>
62           <tr>
63             <td valign="top"><code>REC_FAM</code><br>
64             </td>
65             <td valign="top">A record describing a family<br>
66             </td>
67             <td valign="top"><code>XREF_PTR(FAM)</code><br>
68             </td>
69        <td valign="top"><code>NULL</code><br>
70        </td>
71           </tr>
72           <tr>
73             <td valign="top"><code>REC_INDI</code><br>
74             </td>
75             <td valign="top">A record describing an individual<br>
76             </td>
77             <td valign="top"><code>XREF_PTR(INDI)</code><br>
78             </td>
79        <td valign="top"><code>NULL</code><br>
80        </td>
81           </tr>
82           <tr>
83             <td valign="top"><code>REC_OBJE</code><br>
84             </td>
85             <td valign="top">A record describing a multimedia object<br>
86             </td>
87             <td valign="top"><code>XREF_PTR(OBJE)</code><br>
88             </td>
89        <td valign="top"><code>NULL</code><br>
90        </td>
91           </tr>
92           <tr>
93             <td valign="top"><code>REC_NOTE</code><br>
94             </td>
95             <td valign="top">A record describing a note<br>
96             </td>
97             <td valign="top"><code>XREF_PTR(NOTE)</code><br>
98             </td>
99        <td valign="top"><code>STRING</code><br>
100        </td>
101           </tr>
102           <tr>
103             <td valign="top"><code>REC_REPO</code><br>
104             </td>
105             <td valign="top">A record describing a source repository<br>
106             </td>
107             <td valign="top"><code>XREF_PTR(REPO)</code><br>
108             </td>
109        <td valign="top"><code>NULL</code><br>
110        </td>
111           </tr>
112           <tr>
113             <td valign="top"><code>REC_SOUR</code><br>
114             </td>
115             <td valign="top">A record describing a source<br>
116             </td>
117             <td valign="top"><code>XREF_PTR(SOUR)</code><br>
118             </td>
119        <td valign="top"><code>NULL</code><br>
120        </td>
121           </tr>
122           <tr>
123             <td valign="top"><code>REC_SUBN</code><br>
124             </td>
125             <td valign="top">A record describing the submission<br>
126             </td>
127             <td valign="top"><code>XREF_PTR(SUBN)</code><br>
128             </td>
129        <td valign="top"><code>NULL</code><br>
130        </td>
131           </tr>
132           <tr>
133             <td valign="top"><code>REC_SUBM</code><br>
134             </td>
135             <td valign="top">A record describing the submitter<br>
136             </td>
137             <td valign="top"><code>XREF_PTR(SUBM</code>)<br>
138             </td>
139        <td valign="top"><code>NULL</code><br>
140        </td>
141           </tr>
142           <tr>
143             <td valign="top"><code>REC_USER</code><br>
144             </td>
145             <td valign="top">An application-specific record (the <code>tag</code>
146        in the start callback contains the actually used tag).<br>
147             </td>
148             <td valign="top"><code>NULL<br>
149  XREF_PTR(USER)<br>
150        </code><br>
151             </td>
152        <td valign="top"><code>NULL<br>
153  STRING<br>
154  XREF_PTR(USER)</code><br>
155        </td>
156           </tr>
157                        
158   </tbody>      
159 </table>
160            
161 <hr width="100%" size="2">      
162 <h2><a name="Element_identifiers"></a>Element identifiers</h2>
163      The following table describes the identifiers to be used in the element
164   callbacks. &nbsp;The last column gives the <a href="file:///home/verthezp/src/external/gedcom-parse/doc/interface.html#Gedcom_val_types"><code>
165      Gedcom_val</code>  type</a> of the <code>val</code> argument in the
166 element   start callback.<br>
167      <br>
168          
169 <table cellpadding="2" cellspacing="2" border="1" width="100%">
170        <tbody>
171          <tr>
172            <td valign="top" align="center"><b>Element</b><br>
173            </td>
174            <td valign="top" align="center"><b>Possible<br>
175      tags<br>
176            </b><br>
177            </td>
178            <td valign="top" align="center"><b>Used within</b><br>
179            </td>
180            <td valign="top" align="center"><b>Possible<br>
181            <code>val</code> types<br>
182            </b><br>
183            </td>
184          </tr>
185          <tr>
186            <td valign="top"><code>ELT_HEAD_SOUR</code><br>
187            </td>
188            <td valign="top"><code>SOUR</code><br>
189            </td>
190            <td valign="top"><code>REC_HEAD</code><br>
191            </td>
192            <td valign="top"><code>STRING</code><br>
193            </td>
194          </tr>
195          <tr>
196            <td valign="top"><code>ELT_HEAD_SOUR_VERS</code><br>
197            </td>
198            <td valign="top"><code>VERS</code><br>
199            </td>
200            <td valign="top"><code>ELT_HEAD_SOUR</code><br>
201            </td>
202            <td valign="top"><code>STRING</code><br>
203            </td>
204          </tr>
205          <tr>
206            <td valign="top"><code>ELT_HEAD_SOUR_NAME</code><br>
207            </td>
208            <td valign="top"><code>NAME</code><br>
209            </td>
210            <td valign="top"><code>ELT_HEAD_SOUR</code><br>
211            </td>
212            <td valign="top"><code>STRING</code><br>
213            </td>
214          </tr>
215          <tr>
216            <td valign="top"><code>ELT_HEAD_SOUR_CORP</code><br>
217            </td>
218            <td valign="top"><code>CORP</code><br>
219            </td>
220            <td valign="top"><code>ELT_HEAD_SOUR</code><br>
221            </td>
222            <td valign="top"><code>STRING</code><br>
223            </td>
224          </tr>
225          <tr>
226            <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
227            </td>
228            <td valign="top"><code>DATA</code><br>
229            </td>
230            <td valign="top"><code>ELT_HEAD_SOUR</code><br>
231            </td>
232            <td valign="top"><code>STRING</code><br>
233            </td>
234          </tr>
235          <tr>
236            <td valign="top"><code>ELT_HEAD_SOUR_DATA_DATE</code><br>
237            </td>
238            <td valign="top"><code>DATE</code><br>
239            </td>
240            <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
241            </td>
242            <td valign="top"><code>DATE</code><br>
243            </td>
244          </tr>
245          <tr>
246            <td valign="top"><code>ELT_HEAD_SOUR_DATA_COPR</code><br>
247            </td>
248            <td valign="top"><code>COPR</code><br>
249            </td>
250            <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
251            </td>
252            <td valign="top"><code>STRING</code><br>
253            </td>
254          </tr>
255          <tr>
256            <td valign="top"><code>ELT_HEAD_DEST</code><br>
257            </td>
258            <td valign="top"><code>DEST</code><br>
259            </td>
260            <td valign="top"><code>REC_HEAD</code><br>
261            </td>
262            <td valign="top"><code>STRING</code><br>
263            </td>
264          </tr>
265          <tr>
266            <td valign="top"><code>ELT_HEAD_DATE</code><br>
267            </td>
268            <td valign="top"><code>DATE</code><br>
269            </td>
270            <td valign="top"><code>REC_HEAD</code><br>
271            </td>
272            <td valign="top"><code>DATE</code><br>
273            </td>
274          </tr>
275          <tr>
276            <td valign="top"><code>ELT_HEAD_DATE_TIME</code><br>
277            </td>
278            <td valign="top"><code>TIME</code><br>
279            </td>
280            <td valign="top"><code>ELT_HEAD_DATE</code><br>
281            </td>
282            <td valign="top"><code>STRING</code><br>
283            </td>
284          </tr>
285          <tr>
286            <td valign="top"><code>ELT_HEAD_SUBM</code><br>
287            </td>
288            <td valign="top"><code>SUBM</code><br>
289            </td>
290            <td valign="top"><code>REC_HEAD</code><br>
291            </td>
292            <td valign="top"><code>XREF_PTR(SUBM)</code><br>
293            </td>
294          </tr>
295          <tr>
296            <td valign="top"><code>ELT_HEAD_SUBN</code><br>
297            </td>
298            <td valign="top"><code>SUBN</code><br>
299            </td>
300            <td valign="top"><code>REC_HEAD</code><br>
301            </td>
302            <td valign="top"><code>XREF_PTR(SUBN)</code><br>
303            </td>
304          </tr>
305          <tr>
306            <td valign="top"><code>ELT_HEAD_FILE</code><br>
307            </td>
308            <td valign="top"><code>FILE</code><br>
309            </td>
310            <td valign="top"><code>REC_HEAD</code><br>
311            </td>
312            <td valign="top"><code>STRING</code><br>
313            </td>
314          </tr>
315          <tr>
316            <td valign="top"><code>ELT_HEAD_COPR</code><br>
317            </td>
318            <td valign="top"><code>COPR</code><br>
319            </td>
320            <td valign="top"><code>REC_HEAD</code><br>
321            </td>
322            <td valign="top"><code>STRING</code><br>
323            </td>
324          </tr>
325          <tr>
326            <td valign="top"><code>ELT_HEAD_GEDC</code><br>
327            </td>
328            <td valign="top"><code>GEDC</code><br>
329            </td>
330            <td valign="top"><code>REC_HEAD</code><br>
331            </td>
332            <td valign="top"><code>NULL</code><br>
333            </td>
334          </tr>
335          <tr>
336            <td valign="top"><code>ELT_HEAD_GEDC_VERS</code><br>
337            </td>
338            <td valign="top"><code>VERS</code><br>
339            </td>
340            <td valign="top"><code>ELT_HEAD_GEDC</code><br>
341            </td>
342            <td valign="top"><code>STRING</code><br>
343            </td>
344          </tr>
345          <tr>
346            <td valign="top"><code>ELT_HEAD_GEDC_FORM</code><br>
347            </td>
348            <td valign="top"><code>FORM</code><br>
349            </td>
350            <td valign="top"><code>ELT_HEAD_GEDC</code><br>
351            </td>
352            <td valign="top"><code>STRING</code><br>
353            </td>
354          </tr>
355          <tr>
356            <td valign="top"><code>ELT_HEAD_CHAR</code><br>
357            </td>
358            <td valign="top"><code>CHAR</code><br>
359            </td>
360            <td valign="top"><code>REC_HEAD</code><br>
361            </td>
362            <td valign="top"><code>STRING</code><br>
363            </td>
364          </tr>
365          <tr>
366            <td valign="top"><code>ELT_HEAD_CHAR_VERS</code><br>
367            </td>
368            <td valign="top"><code>VERS</code><br>
369            </td>
370            <td valign="top"><code>ELT_HEAD_CHAR</code><br>
371            </td>
372            <td valign="top"><code>STRING</code><br>
373            </td>
374          </tr>
375          <tr>
376            <td valign="top"><code>ELT_HEAD_LANG</code><br>
377            </td>
378            <td valign="top"><code>LANG</code><br>
379            </td>
380            <td valign="top"><code>REC_HEAD</code><br>
381            </td>
382            <td valign="top"><code>STRING</code><br>
383            </td>
384          </tr>
385          <tr>
386            <td valign="top"><code>ELT_HEAD_PLAC</code><br>
387            </td>
388            <td valign="top"><code>PLAC</code><br>
389            </td>
390            <td valign="top"><code>REC_HEAD</code><br>
391            </td>
392            <td valign="top"><code>NULL</code><br>
393            </td>
394          </tr>
395          <tr>
396            <td valign="top"><code>ELT_HEAD_PLAC_FORM</code><br>
397            </td>
398            <td valign="top"><code>FORM</code><br>
399            </td>
400            <td valign="top"><code>ELT_HEAD_PLAC</code><br>
401            </td>
402            <td valign="top"><code>STRING</code><br>
403            </td>
404          </tr>
405          <tr>
406            <td valign="top"><code>ELT_HEAD_NOTE</code><br>
407            </td>
408            <td valign="top"><code>NOTE</code><br>
409            </td>
410            <td valign="top"><code>REC_HEAD</code><br>
411            </td>
412            <td valign="top"><code>STRING</code><br>
413            </td>
414          </tr>
415          <tr>
416            <td valign="top"><code>ELT_FAM_HUSB</code><br>
417            </td>
418            <td valign="top"><code>HUSB</code><br>
419            </td>
420            <td valign="top"><code>REC_FAM</code><br>
421            </td>
422            <td valign="top"><code>XREF_PTR(INDI)</code><br>
423            </td>
424          </tr>
425          <tr>
426            <td valign="top"><code>ELT_FAM_WIFE</code><br>
427            </td>
428            <td valign="top"><code>WIFE</code><br>
429            </td>
430            <td valign="top"><code>REC_FAM</code><br>
431            </td>
432            <td valign="top"><code>XREF_PTR(INDI)</code><br>
433            </td>
434          </tr>
435          <tr>
436            <td valign="top"><code>ELT_FAM_CHIL</code><br>
437            </td>
438            <td valign="top"><code>CHIL</code><br>
439            </td>
440            <td valign="top"><code>REC_FAM</code><br>
441            </td>
442            <td valign="top"><code>XREF_PTR(INDI)</code><br>
443            </td>
444          </tr>
445          <tr>
446            <td valign="top"><code>ELT_FAM_NCHI</code><br>
447            </td>
448            <td valign="top"><code>NCHI</code><br>
449            </td>
450            <td valign="top"><code>REC_FAM</code><br>
451            </td>
452            <td valign="top"><code>STRING</code><br>
453            </td>
454          </tr>
455          <tr>
456            <td valign="top"><code>ELT_FAM_SUBM</code><br>
457            </td>
458            <td valign="top"><code>SUBM</code><br>
459            </td>
460            <td valign="top"><code>REC_FAM</code><br>
461            </td>
462            <td valign="top"><code>XREF_PTR(SUBM)</code><br>
463            </td>
464          </tr>
465          <tr>
466            <td valign="top"><code>ELT_INDI_RESN</code><br>
467            </td>
468            <td valign="top"><code>RES</code><code>N</code><br>
469            </td>
470            <td valign="top"><code>REC_INDI</code><br>
471            </td>
472            <td valign="top"><code>STRING</code><br>
473            </td>
474          </tr>
475          <tr>
476            <td valign="top"><code>ELT_INDI_SEX</code><br>
477            </td>
478            <td valign="top"><code>SEX</code><br>
479            </td>
480            <td valign="top"><code>REC_INDI</code><br>
481            </td>
482            <td valign="top"><code>STRING</code><br>
483            </td>
484          </tr>
485          <tr>
486            <td valign="top"><code>ELT_INDI_SUBM</code><br>
487            </td>
488            <td valign="top"><code>SUBM</code><br>
489            </td>
490            <td valign="top"><code>REC_INDI</code><br>
491            </td>
492            <td valign="top"><code>XREF_PTR(SUBM)</code><br>
493            </td>
494          </tr>
495          <tr>
496            <td valign="top"><code>ELT_INDI_ALIA</code><br>
497            </td>
498            <td valign="top"><code>ALIA</code><br>
499            </td>
500            <td valign="top"><code>REC_INDI</code><br>
501            </td>
502            <td valign="top"><code>XREF_PTR(INDI)</code><br>
503            </td>
504          </tr>
505          <tr>
506            <td valign="top"><code>ELT_INDI_ANCI</code><br>
507            </td>
508            <td valign="top"><code>ANCI</code><br>
509            </td>
510            <td valign="top"><code>REC_INDI</code><br>
511            </td>
512            <td valign="top"><code>XREF_PTR(SUBM)</code><br>
513            </td>
514          </tr>
515          <tr>
516            <td valign="top"><code>ELT_INDI_DESI</code><br>
517            </td>
518            <td valign="top"><code>DESI</code><br>
519            </td>
520            <td valign="top"><code>REC_INDI</code><br>
521            </td>
522            <td valign="top"><code>XREF_PTR(SUBM)</code><br>
523            </td>
524          </tr>
525          <tr>
526            <td valign="top"><code>ELT_INDI_RFN</code><br>
527            </td>
528            <td valign="top"><code>RFN</code><br>
529            </td>
530            <td valign="top"><code>REC_INDI</code><br>
531            </td>
532            <td valign="top"><code>STRING</code><br>
533            </td>
534          </tr>
535          <tr>
536            <td valign="top"><code>ELT_INDI_AFN</code><br>
537            </td>
538            <td valign="top"><code>AFN</code><br>
539            </td>
540            <td valign="top"><code>REC_INDI</code><br>
541            </td>
542            <td valign="top"><code>STRING</code><br>
543            </td>
544          </tr>
545          <tr>
546            <td valign="top"><code>ELT_OBJE_FORM</code><br>
547            </td>
548            <td valign="top"><code>FORM</code><br>
549            </td>
550            <td valign="top"><code>REC_OBJE</code><br>
551            </td>
552            <td valign="top"><code>STRING</code><br>
553            </td>
554          </tr>
555          <tr>
556            <td valign="top"><code>ELT_OBJE_TITL</code><br>
557            </td>
558            <td valign="top"><code>TITL</code><br>
559            </td>
560            <td valign="top"><code>REC_OBJE</code><br>
561            </td>
562            <td valign="top"><code>STRING</code><br>
563            </td>
564          </tr>
565          <tr>
566            <td valign="top"><code>ELT_OBJE_BLOB</code><br>
567            </td>
568            <td valign="top"><code>BLOB</code><br>
569            </td>
570            <td valign="top"><code>REC_OBJE</code><br>
571            </td>
572            <td valign="top"><code>NULL</code><br>
573            </td>
574          </tr>
575          <tr>
576            <td valign="top"><code>ELT_OBJE_BLOB_CONT</code><br>
577            </td>
578            <td valign="top"><code>CONT</code><br>
579            </td>
580            <td valign="top"><code>ELT_OBJE_BLOB</code><br>
581            </td>
582            <td valign="top"><code>STRING</code><br>
583            </td>
584          </tr>
585          <tr>
586            <td valign="top"><code>ELT_OBJE_OBJE</code><br>
587            </td>
588            <td valign="top"><code>OBJE</code><br>
589            </td>
590            <td valign="top"><code>REC_OBJE</code><br>
591            </td>
592            <td valign="top"><code>XREF_PTR(OBJE)</code><br>
593            </td>
594          </tr>
595          <tr>
596            <td valign="top"><code>ELT_REPO_NAME</code><br>
597            </td>
598            <td valign="top"><code>NAME</code><br>
599            </td>
600            <td valign="top"><code>REC_REPO</code><br>
601            </td>
602            <td valign="top"><code>STRING</code><br>
603            </td>
604          </tr>
605          <tr>
606            <td valign="top"><code>ELT_SOUR_DATA</code><br>
607            </td>
608            <td valign="top"><code>DATA</code><br>
609            </td>
610            <td valign="top"><code>REC_SOUR</code><br>
611            </td>
612            <td valign="top"><code>NULL</code><br>
613            </td>
614          </tr>
615          <tr>
616            <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
617            </td>
618            <td valign="top"><code>EVEN</code><br>
619            </td>
620            <td valign="top"><code>ELT_SOUR_DATA</code><br>
621            </td>
622            <td valign="top"><code>STRING</code><br>
623            </td>
624          </tr>
625          <tr>
626            <td valign="top"><code>ELT_SOUR_DATA_EVEN_DATE</code><br>
627            </td>
628            <td valign="top"><code>DATE</code><br>
629            </td>
630            <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
631            </td>
632            <td valign="top"><code>DATE</code><br>
633            </td>
634          </tr>
635          <tr>
636            <td valign="top"><code>ELT_SOUR_DATA_EVEN_PLAC</code><br>
637            </td>
638            <td valign="top"><code>PLAC</code><br>
639            </td>
640            <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
641            </td>
642            <td valign="top"><code>STRING</code><br>
643            </td>
644          </tr>
645          <tr>
646            <td valign="top"><code>ELT_SOUR_DATA_AGNC</code><br>
647            </td>
648            <td valign="top"><code>AGNC</code><br>
649            </td>
650            <td valign="top"><code>ELT_SOUR_DATA</code><br>
651            </td>
652            <td valign="top"><code>STRING</code><br>
653            </td>
654          </tr>
655          <tr>
656            <td valign="top"><code>ELT_SOUR_AUTH</code><br>
657            </td>
658            <td valign="top"><code>AUTH</code><br>
659            </td>
660            <td valign="top"><code>REC_SOUR</code><br>
661            </td>
662            <td valign="top"><code>STRING</code><br>
663            </td>
664          </tr>
665          <tr>
666            <td valign="top"><code>ELT_SOUR_TITL</code><br>
667            </td>
668            <td valign="top"><code>TITL</code><br>
669            </td>
670            <td valign="top"><code>REC_SOUR</code><br>
671            </td>
672            <td valign="top"><code>STRING</code><br>
673            </td>
674          </tr>
675          <tr>
676            <td valign="top"><code>ELT_SOUR_ABBR</code><br>
677            </td>
678            <td valign="top"><code>ABBR</code><br>
679            </td>
680            <td valign="top"><code>REC_SOUR</code><br>
681            </td>
682            <td valign="top"><code>STRING</code><br>
683            </td>
684          </tr>
685          <tr>
686            <td valign="top"><code>ELT_SOUR_PUBL</code><br>
687            </td>
688            <td valign="top"><code>PUBL</code><br>
689            </td>
690            <td valign="top"><code>REC_SOUR</code><br>
691            </td>
692            <td valign="top"><code>STRING</code><br>
693            </td>
694          </tr>
695          <tr>
696            <td valign="top"><code>ELT_SOUR_TEXT</code><br>
697            </td>
698            <td valign="top"><code>TEXT</code><br>
699            </td>
700            <td valign="top"><code>REC_SOUR</code><br>
701            </td>
702            <td valign="top"><code>STRING</code><br>
703            </td>
704          </tr>
705          <tr>
706            <td valign="top"><code>ELT_SUBN_SUBM</code><br>
707            </td>
708            <td valign="top"><code>SUBM</code><br>
709            </td>
710            <td valign="top"><code>REC_SUBN</code><br>
711            </td>
712            <td valign="top"><code>XREF_PTR(SUBM)</code><br>
713            </td>
714          </tr>
715          <tr>
716            <td valign="top"><code>ELT_SUBN_FAMF</code><br>
717            </td>
718            <td valign="top"><code>FAMF</code><br>
719            </td>
720            <td valign="top"><code>REC_SUBN</code><br>
721            </td>
722            <td valign="top"><code>STRING</code><br>
723            </td>
724          </tr>
725          <tr>
726            <td valign="top"><code>ELT_SUBN_TEMP</code><br>
727            </td>
728            <td valign="top"><code>TEMP</code><br>
729            </td>
730            <td valign="top"><code>REC_SUBN</code><br>
731            </td>
732            <td valign="top"><code>STRING</code><br>
733            </td>
734          </tr>
735          <tr>
736            <td valign="top"><code>ELT_SUBN_ANCE</code><br>
737            </td>
738            <td valign="top"><code>ANCE</code><br>
739            </td>
740            <td valign="top"><code>REC_SUBN</code><br>
741            </td>
742            <td valign="top"><code>STRING</code><br>
743            </td>
744          </tr>
745          <tr>
746            <td valign="top"><code>ELT_SUBN_DESC</code><br>
747            </td>
748            <td valign="top"><code>DESC</code><br>
749            </td>
750            <td valign="top"><code>REC_SUBN</code><br>
751            </td>
752            <td valign="top"><code>STRING</code><br>
753            </td>
754          </tr>
755          <tr>
756            <td valign="top"><code>ELT_SUBN_ORDI</code><br>
757            </td>
758            <td valign="top"><code>ORDI</code><br>
759            </td>
760            <td valign="top"><code>REC_SUBN</code><br>
761            </td>
762            <td valign="top"><code>STRING</code><br>
763            </td>
764          </tr>
765          <tr>
766            <td valign="top"><code>ELT_SUBN_RIN</code><br>
767            </td>
768            <td valign="top"><code>RIN</code><br>
769            </td>
770            <td valign="top"><code>REC_SUBN</code><br>
771            </td>
772            <td valign="top"><code>STRING</code><br>
773            </td>
774          </tr>
775          <tr>
776            <td valign="top"><code>ELT_SUBM_NAME</code><br>
777            </td>
778            <td valign="top"><nobr><code>NAME</code></nobr><br>
779            </td>
780            <td valign="top"><code>REC_SUBM</code><br>
781            </td>
782            <td valign="top"><code>STRING</code><br>
783            </td>
784          </tr>
785          <tr>
786            <td valign="top"><code>ELT_SUBM_LANG</code><br>
787            </td>
788            <td valign="top"><code>LANG</code><br>
789            </td>
790            <td valign="top"><code>REC_SUBM</code><br>
791            </td>
792            <td valign="top"><code>STRING</code><br>
793            </td>
794          </tr>
795          <tr>
796            <td valign="top"><code>ELT_SUBM_RFN</code><br>
797            </td>
798            <td valign="top"><code>RFN</code><br>
799            </td>
800            <td valign="top"><code>REC_SUBM</code><br>
801            </td>
802            <td valign="top"><code>STRING</code><br>
803            </td>
804          </tr>
805          <tr>
806            <td valign="top"><code>ELT_SUBM_RIN</code><br>
807            </td>
808            <td valign="top"><code>RIN</code><br>
809            </td>
810            <td valign="top"><code>REC_SUBM</code><br>
811            </td>
812            <td valign="top"><code>STRING</code><br>
813            </td>
814          </tr>
815          <tr>
816            <td valign="top"><code>ELT_SUB_ADDR</code><br>
817            </td>
818            <td valign="top"><code>ADDR</code><br>
819            </td>
820            <td valign="top"><code>ELT_HEAD_SOUR_CORP,<br>
821     REC_REPO, REC_SUBM,<br>
822           </code><code>ELT_SUB_FAM_EVT</code>,<br>
823           <code>ELT_SUB_FAM_EVT_EVEN,<br>
824     ELT_SUB_INDIV_ATTR,<br>
825     ELT_SUB_INDIV_RESI,<br>
826     ELT_SUB_INDIV_BIRT,<br>
827     ELT_SUB_INDIV_GEN,<br>
828     ELT_SUB_INDIV_ADOP<br>
829           </code><br>
830           <br>
831            </td>
832            <td valign="top"><code>STRING</code><br>
833            </td>
834          </tr>
835          <tr>
836            <td valign="top"><code>ELT_SUB_ADDR_CONT</code><br>
837            </td>
838            <td valign="top"><code>CONT</code><br>
839            </td>
840            <td valign="top"><code>ELT_SUB_ADDR</code><br>
841            </td>
842            <td valign="top"><code>STRING</code><br>
843            </td>
844          </tr>
845          <tr>
846            <td valign="top"><code>ELT_SUB_ADDR_ADR1</code><br>
847            </td>
848            <td valign="top"><code>ADR1</code><br>
849            </td>
850            <td valign="top"><code>ELT_SUB_ADDR</code><br>
851            </td>
852            <td valign="top"><code>STRING</code><br>
853            </td>
854          </tr>
855          <tr>
856            <td valign="top"><code>ELT_SUB_ADDR_ADR2</code><br>
857            </td>
858            <td valign="top"><code>ADR2</code><br>
859            </td>
860            <td valign="top"><code>ELT_SUB_ADDR</code><br>
861            </td>
862            <td valign="top"><code>STRING</code><br>
863            </td>
864          </tr>
865          <tr>
866            <td valign="top"><code>ELT_SUB_ADDR_CITY</code><br>
867            </td>
868            <td valign="top"><code>CITY</code><br>
869            </td>
870            <td valign="top"><code>ELT_SUB_ADDR</code><br>
871            </td>
872            <td valign="top"><code>STRING</code><br>
873            </td>
874          </tr>
875          <tr>
876            <td valign="top"><code>ELT_SUB_ADDR_STAE</code><br>
877            </td>
878            <td valign="top"><code>STAE</code><br>
879            </td>
880            <td valign="top"><code>ELT_SUB_ADDR</code><br>
881            </td>
882            <td valign="top"><code>STRING</code><br>
883            </td>
884          </tr>
885          <tr>
886            <td valign="top"><code>ELT_SUB_ADDR_POST</code><br>
887            </td>
888            <td valign="top"><code>POST</code><br>
889            </td>
890            <td valign="top"><code>ELT_SUB_ADDR</code><br>
891            </td>
892            <td valign="top"><code>STRING</code><br>
893            </td>
894          </tr>
895          <tr>
896            <td valign="top"><code>ELT_SUB_ADDR_CTRY</code><br>
897            </td>
898            <td valign="top"><code>CTRY</code><br>
899            </td>
900            <td valign="top"><code>ELT_SUB_ADDR</code><br>
901            </td>
902            <td valign="top"><code>STRING</code><br>
903            </td>
904          </tr>
905          <tr>
906            <td valign="top"><code>ELT_SUB_PHON</code><br>
907            </td>
908            <td valign="top"><code>PHON</code><br>
909            </td>
910            <td valign="top"><code>ELT_HEAD_SOUR_CORP,<br>
911     REC_REPO, REC_SUBM,<br>
912           </code><code>ELT_SUB_FAM_EVT,<br>
913           </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
914     ELT_SUB_INDIV_ATTR,<br>
915     ELT_SUB_INDIV_RESI,<br>
916     ELT_SUB_INDIV_BIRT,<br>
917     ELT_SUB_INDIV_GEN,<br>
918     ELT_SUB_INDIV_ADOP<br>
919           </code><br>
920           <br>
921            </td>
922            <td valign="top"><code>STRING</code><br>
923            </td>
924          </tr>
925          <tr>
926            <td valign="top"><code>ELT_SUB_ASSO</code><br>
927            </td>
928            <td valign="top"><code>ASSO</code><br>
929            </td>
930            <td valign="top"><code>REC_INDI</code><br>
931            </td>
932            <td valign="top"><code>XREF_PTR(INDI)</code><br>
933            </td>
934          </tr>
935          <tr>
936            <td valign="top"><code>ELT_SUB_ASSO_TYPE</code><br>
937            </td>
938            <td valign="top"><code>TYPE</code><br>
939            </td>
940            <td valign="top"><code>ELT_SUB_ASSO</code><br>
941            </td>
942            <td valign="top"><code>STRING</code><br>
943            </td>
944          </tr>
945          <tr>
946            <td valign="top"><code>ELT_SUB_ASSO_RELA</code><br>
947            </td>
948            <td valign="top"><code>RELA</code><br>
949            </td>
950            <td valign="top"><code>ELT_SUB_ASSO</code><br>
951            </td>
952            <td valign="top"><code>STRING</code><br>
953            </td>
954          </tr>
955          <tr>
956            <td valign="top"><code>ELT_SUB_CHAN</code><br>
957            </td>
958            <td valign="top"><code>CHAN</code><br>
959            </td>
960            <td valign="top"><code>REC_FAM, REC_INDI,<br>
961     REC_OBJE, REC_NOTE,<br>
962     REC_REPO, REC_SOUR,<br>
963     REC_SUBM<br>
964           </code><br>
965            </td>
966            <td valign="top"><code>NULL</code><br>
967            </td>
968          </tr>
969          <tr>
970            <td valign="top"><code>ELT_SUB_CHAN_DATE</code><br>
971            </td>
972            <td valign="top"><code>DATE</code><br>
973            </td>
974            <td valign="top"><code>ELT_SUB_CHAN</code><br>
975            </td>
976            <td valign="top"><code>DATE</code><br>
977            </td>
978          </tr>
979          <tr>
980            <td valign="top"><code>ELT_SUB_CHAN_TIME</code><br>
981            </td>
982            <td valign="top"><code>TIME</code><br>
983            </td>
984            <td valign="top"><code>ELT_SUB_CHAN_DATE</code><br>
985            </td>
986            <td valign="top"><code>STRING</code><br>
987            </td>
988          </tr>
989          <tr>
990            <td valign="top"><code>ELT_SUB_FAMC</code><br>
991            </td>
992            <td valign="top"><code>FAMC</code><br>
993            </td>
994            <td valign="top"><code>REC_INDI</code><br>
995            </td>
996            <td valign="top"><code>XREF_PTR(FAM)</code><br>
997            </td>
998          </tr>
999          <tr>
1000            <td valign="top"><code>ELT_SUB_FAMC_PEDI</code><br>
1001            </td>
1002            <td valign="top"><code>PEDI</code><br>
1003            </td>
1004            <td valign="top"><code>ELT_SUB_FAMC</code><br>
1005            </td>
1006            <td valign="top"><code>STRING</code><br>
1007            </td>
1008          </tr>
1009          <tr>
1010            <td valign="top"><code>ELT_SUB_CONT</code><br>
1011            </td>
1012            <td valign="top"><code>CONT</code><br>
1013            </td>
1014            <td valign="top"><code>ELT_HEAD_NOTE, REC_NOTE,<br>
1015     ELT_SOUR_AUTH, ELT_SOUR_TITL,<br>
1016     ELT_SOUR_PUBL, ELT_SOUR_TEXT,<br>
1017     ELT_SUB_NOTE, <br>
1018     ELT_SUB_SOUR, ELT_SUB_SOUR_TEXT<br>
1019           </code><br>
1020            </td>
1021            <td valign="top"><code>STRING</code><br>
1022            </td>
1023          </tr>
1024          <tr>
1025            <td valign="top"><code>ELT_SUB_CONC</code><br>
1026            </td>
1027            <td valign="top"><code>CONC</code><br>
1028            </td>
1029            <td valign="top"><code>ELT_HEAD_NOTE, REC_NOTE,<br>
1030     ELT_SOUR_AUTH, ELT_SOUR_TITL,<br>
1031     ELT_SOUR_PUBL, ELT_SOUR_TEXT,<br>
1032     ELT_SUB_NOTE, <br>
1033     ELT_SUB_SOUR, ELT_SUB_SOUR_TEXT<br>
1034           </code><br>
1035            </td>
1036            <td valign="top"><code>STRING</code><br>
1037            </td>
1038          </tr>
1039          <tr>
1040            <td valign="top"><code>ELT_SUB_EVT_TYPE</code><br>
1041            </td>
1042            <td valign="top"><code>TYPE</code><br>
1043            </td>
1044            <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1045           </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1046     ELT_SUB_INDIV_ATTR,<br>
1047     ELT_SUB_INDIV_RESI,<br>
1048     ELT_SUB_INDIV_BIRT,<br>
1049     ELT_SUB_INDIV_GEN,<br>
1050     ELT_SUB_INDIV_ADOP<br>
1051           </code><br>
1052            </td>
1053            <td valign="top"><code>STRING</code><br>
1054            </td>
1055          </tr>
1056          <tr>
1057            <td valign="top"><code>ELT_SUB_EVT_DATE</code><br>
1058            </td>
1059            <td valign="top"><code>DATE</code><br>
1060            </td>
1061            <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1062           <code>ELT_SUB_FAM_EVT_EVEN,<br>
1063     ELT_SUB_INDIV_ATTR</code><code>,<br>
1064      ELT_SUB_INDIV_RESI,<br>
1065      ELT_SUB_INDIV_BIRT,<br>
1066      ELT_SUB_INDIV_GEN,<br>
1067      ELT_SUB_INDIV_ADOP<br>
1068           </code><br>
1069           <br>
1070           <br>
1071            </td>
1072            <td valign="top"><code>DATE</code><br>
1073            </td>
1074          </tr>
1075          <tr>
1076            <td valign="top"><code>ELT_SUB_EVT_AGE</code><br>
1077            </td>
1078            <td valign="top"><code>AGE</code><br>
1079            </td>
1080            <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1081           </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1082     ELT_SUB_INDIV_ATTR,<br>
1083     ELT_SUB_INDIV_RESI</code><code>,<br>
1084      ELT_SUB_INDIV_BIRT,<br>
1085      ELT_SUB_INDIV_GEN,<br>
1086      ELT_SUB_INDIV_ADOP</code><br>
1087           <br>
1088           <br>
1089            </td>
1090            <td valign="top"><code>AGE</code><br>
1091            </td>
1092          </tr>
1093          <tr>
1094            <td valign="top"><code>ELT_SUB_EVT_AGNC</code><br>
1095            </td>
1096            <td valign="top"><code>AGNC</code><br>
1097            </td>
1098            <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1099           </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1100     ELT_SUB_INDIV_ATTR,<br>
1101     ELT_SUB_INDIV_RESI</code><code>,<br>
1102      ELT_SUB_INDIV_BIRT,<br>
1103      ELT_SUB_INDIV_GEN,<br>
1104      ELT_SUB_INDIV_ADOP</code><br>
1105           <br>
1106           <br>
1107            </td>
1108            <td valign="top"><code>STRING</code><br>
1109            </td>
1110          </tr>
1111          <tr>
1112            <td valign="top"><code>ELT_SUB_EVT_CAUS</code><br>
1113            </td>
1114            <td valign="top"><code>CAUS</code><br>
1115            </td>
1116            <td valign="top"><code>ELT_SUB_FAM_EVT,<br>
1117           </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1118     ELT_SUB_INDIV_ATTR,<br>
1119     ELT_SUB_INDIV_RESI</code><code>,<br>
1120      ELT_SUB_INDIV_BIRT,<br>
1121      ELT_SUB_INDIV_GEN,<br>
1122      ELT_SUB_INDIV_ADOP</code><br>
1123           <br>
1124           <br>
1125            </td>
1126            <td valign="top"><code>STRING</code><br>
1127            </td>
1128          </tr>
1129          <tr>
1130            <td valign="top"><code>ELT_SUB_FAM_EVT</code><br>
1131            </td>
1132            <td valign="top"><code>ANUL, CENS, DIV,<br>
1133      DIVF, ENGA, MARR,<br>
1134      MARB, MARC, MARL,<br>
1135      MARS</code><br>
1136            </td>
1137            <td valign="top"><code>REC_FAM</code><br>
1138            </td>
1139            <td valign="top"><code>NULL<br>
1140      STRING</code><br>
1141            </td>
1142          </tr>
1143          <tr>
1144            <td valign="top"><code>ELT_SUB_FAM_EVT_HUSB</code><br>
1145            </td>
1146            <td valign="top"><code>HUSB</code><br>
1147            </td>
1148            <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1149           <code>ELT_SUB_FAM_EVT_EVEN</code><br>
1150            </td>
1151            <td valign="top"><code>NULL</code><br>
1152            </td>
1153          </tr>
1154          <tr>
1155            <td valign="top"><code>ELT_SUB_FAM_EVT_WIFE</code><br>
1156            </td>
1157            <td valign="top"><code>WIFE</code><br>
1158            </td>
1159            <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1160           <code>ELT_SUB_FAM_EVT_EVEN</code><br>
1161            </td>
1162            <td valign="top"><code>NULL</code><br>
1163            </td>
1164          </tr>
1165          <tr>
1166            <td valign="top"><code>ELT_SUB_FAM_EVT_AGE</code><br>
1167            </td>
1168            <td valign="top"><code>AGE</code><br>
1169            </td>
1170            <td valign="top"><code>ELT_SUB_FAM_EVT_HUSB</code>,<br>
1171           <code>ELT_SUB_FAM_EVT_WIFE</code><br>
1172            </td>
1173            <td valign="top"><code>AGE</code><br>
1174            </td>
1175          </tr>
1176          <tr>
1177            <td valign="top"><code>ELT_SUB_FAM_EVT_EVEN</code><br>
1178            </td>
1179            <td valign="top"><code>EVEN</code><br>
1180            </td>
1181            <td valign="top"><code>REC_FAM</code><br>
1182            </td>
1183            <td valign="top"><code>NULL</code><br>
1184            </td>
1185          </tr>
1186          <tr>
1187            <td valign="top"><code>ELT_SUB_IDENT_REFN</code><br>
1188            </td>
1189            <td valign="top"><code>REFN</code><br>
1190            </td>
1191            <td valign="top"><code>REC_FAM, REC_INDI,<br>
1192     REC_OBJE, REC_NOTE,<br>
1193     REC_REPO, REC_SOUR<br>
1194           </code><br>
1195            </td>
1196            <td valign="top"><code>STRING</code><br>
1197            </td>
1198          </tr>
1199          <tr>
1200            <td valign="top"><code>ELT_SUB_IDENT_REFN_TYPE</code><br>
1201            </td>
1202            <td valign="top"><code>TYPE</code><br>
1203            </td>
1204            <td valign="top"><code>ELT_SUB_IDENT_REFN</code><br>
1205            </td>
1206            <td valign="top"><code>STRING</code><br>
1207            </td>
1208          </tr>
1209          <tr>
1210            <td valign="top"><code>ELT_SUB_IDENT_RIN</code><br>
1211            </td>
1212            <td valign="top"><code>RIN</code><br>
1213            </td>
1214            <td valign="top"><code>REC_FAM, REC_INDI,<br>
1215     REC_OBJE, REC_NOTE,<br>
1216     REC_REPO, REC_SOUR<br>
1217           </code><br>
1218            </td>
1219            <td valign="top"><code>STRING</code><br>
1220            </td>
1221          </tr>
1222          <tr>
1223            <td valign="top"><code>ELT_SUB_INDIV_ATTR</code><br>
1224            </td>
1225            <td valign="top"><code>CAST, DSCR, EDUC,<br>
1226      IDNO, NATI, NCHR,<br>
1227      NMR, OCCU, PROP,<br>
1228      RELI, SSN, TITL</code><br>
1229            </td>
1230            <td valign="top"><code>REC_INDI</code><br>
1231            </td>
1232            <td valign="top"><code>STRING</code><br>
1233            </td>
1234          </tr>
1235          <tr>
1236            <td valign="top"><code>ELT_SUB_INDIV_RESI</code><br>
1237            </td>
1238            <td valign="top"><code>RESI</code><br>
1239            </td>
1240            <td valign="top"><code>REC_INDI</code><br>
1241            </td>
1242            <td valign="top"><code>NULL</code><br>
1243            </td>
1244          </tr>
1245          <tr>
1246            <td valign="top"><code>ELT_SUB_INDIV_BIRT</code><br>
1247            </td>
1248            <td valign="top"><code>BIRT, CHR</code><br>
1249            </td>
1250            <td valign="top"><code>REC_INDI</code><br>
1251            </td>
1252            <td valign="top"><code>NULL<br>
1253      STRING</code><br>
1254            </td>
1255          </tr>
1256          <tr>
1257            <td valign="top"><code>ELT_SUB_INDIV_BIRT_FAMC</code><br>
1258            </td>
1259            <td valign="top"><code>FAMC</code><br>
1260            </td>
1261            <td valign="top"><code>ELT_SUB_INDIV_BIRT</code><br>
1262            </td>
1263            <td valign="top"><code>XREF_PTR(FAM)</code><br>
1264            </td>
1265          </tr>
1266          <tr>
1267            <td valign="top"><code>ELT_SUB_INDIV_GEN</code><br>
1268            </td>
1269            <td valign="top"><code>DEAT, BURI, CREM,<br>
1270      BAPM, BARM, BASM,<br>
1271      BLES, CHRA, CONF,<br>
1272      FCOM, ORDN, NATU,<br>
1273      EMIG, IMMI, CENS,<br>
1274      PROB, WILL, GRAD,<br>
1275      RETI</code><br>
1276            </td>
1277            <td valign="top"><code>REC_INDI</code><br>
1278            </td>
1279            <td valign="top"><code>NULL<br>
1280      STRING</code><br>
1281            </td>
1282          </tr>
1283          <tr>
1284            <td valign="top"><code>ELT_SUB_INDIV_ADOP</code><br>
1285            </td>
1286            <td valign="top"><code>ADOP</code><br>
1287            </td>
1288            <td valign="top"><code>REC_INDI</code><br>
1289            </td>
1290            <td valign="top"><code>NULL<br>
1291      STRING</code><br>
1292            </td>
1293          </tr>
1294          <tr>
1295            <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC</code><br>
1296            </td>
1297            <td valign="top"><code>FAMC</code><br>
1298            </td>
1299            <td valign="top"><code>ELT_SUB_INDIV_ADOP</code><br>
1300            </td>
1301            <td valign="top"><code>XREF_PTR(FAM)</code><br>
1302            </td>
1303          </tr>
1304          <tr>
1305            <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC_ADOP</code><br>
1306            </td>
1307            <td valign="top"><code>ADOP</code><br>
1308            </td>
1309            <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC</code><br>
1310            </td>
1311            <td valign="top"><code>STRING</code><br>
1312            </td>
1313          </tr>
1314          <tr>
1315            <td valign="top"><code>ELT_SUB_INDIV_EVEN</code><br>
1316            </td>
1317            <td valign="top"><code>EVEN</code><br>
1318            </td>
1319            <td valign="top"><code>REC_INDI</code><br>
1320            </td>
1321            <td valign="top"><code>NULL</code><br>
1322            </td>
1323          </tr>
1324          <tr>
1325            <td valign="top"><code>ELT_SUB_LIO_BAPL</code><br>
1326            </td>
1327            <td valign="top"><code>BAPL, CONL, ENDL</code><br>
1328            </td>
1329            <td valign="top"><code>REC_INDI</code><br>
1330            </td>
1331            <td valign="top"><code>NULL</code><br>
1332            </td>
1333          </tr>
1334          <tr>
1335            <td valign="top"><code>ELT_SUB_LIO_BAPL_STAT</code><br>
1336            </td>
1337            <td valign="top"><code>STAT</code><br>
1338            </td>
1339            <td valign="top"><code></code><code>ELT_SUB_LIO_BAPL,<br>
1340     ELT_SUB_LIO_SLGC<br>
1341           </code><br>
1342            </td>
1343            <td valign="top"><code>STRING</code><br>
1344            </td>
1345          </tr>
1346          <tr>
1347            <td valign="top"><code>ELT_SUB_LIO_BAPL_DATE</code><br>
1348            </td>
1349            <td valign="top"><code>DATE</code><br>
1350            </td>
1351            <td valign="top"><code>ELT_SUB_LIO_BAPL</code><code>,<br>
1352      ELT_SUB_LIO_SLGC<br>
1353           </code><br>
1354           <br>
1355            </td>
1356            <td valign="top"><code>DATE</code><br>
1357            </td>
1358          </tr>
1359          <tr>
1360            <td valign="top"><code>ELT_SUB_LIO_BAPL_TEMP</code><br>
1361            </td>
1362            <td valign="top"><code>TEMP</code><br>
1363            </td>
1364            <td valign="top"><code>ELT_SUB_LIO_BAPL</code><code>,<br>
1365      ELT_SUB_LIO_SLGC<br>
1366           </code><br>
1367           <br>
1368            </td>
1369            <td valign="top"><code>STRING</code><br>
1370            </td>
1371          </tr>
1372          <tr>
1373            <td valign="top"><code>ELT_SUB_LIO_BAPL_PLAC</code><br>
1374            </td>
1375            <td valign="top"><code>PLAC</code><br>
1376            </td>
1377            <td valign="top"><code>ELT_SUB_LIO_BAPL</code><code>,<br>
1378      ELT_SUB_LIO_SLGC<br>
1379           </code><br>
1380           <br>
1381            </td>
1382            <td valign="top"><code>STRING</code><br>
1383            </td>
1384          </tr>
1385          <tr>
1386            <td valign="top"><code>ELT_SUB_LIO_SLGC</code><br>
1387            </td>
1388            <td valign="top"><code>SLGC</code><br>
1389            </td>
1390            <td valign="top"><code>REC_INDI</code><br>
1391            </td>
1392            <td valign="top"><code>NULL</code><br>
1393            </td>
1394          </tr>
1395          <tr>
1396            <td valign="top"><code>ELT_SUB_LIO_SLGC_FAMC</code><br>
1397            </td>
1398            <td valign="top"><code>FAMC</code><br>
1399            </td>
1400            <td valign="top"><code>ELT_SUB_LIO_SLGC</code><br>
1401            </td>
1402            <td valign="top"><code>XREF_PTR(FAM)</code><br>
1403            </td>
1404          </tr>
1405          <tr>
1406            <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1407            </td>
1408            <td valign="top"><code>SLGS</code><br>
1409            </td>
1410            <td valign="top"><code>REC_FAM</code><br>
1411            </td>
1412            <td valign="top"><code>NULL</code><br>
1413            </td>
1414          </tr>
1415          <tr>
1416            <td valign="top"><code>ELT_SUB_LSS_SLGS_STAT</code><br>
1417            </td>
1418            <td valign="top"><code>STAT</code><br>
1419            </td>
1420            <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1421            </td>
1422            <td valign="top"><code>STRING</code><br>
1423            </td>
1424          </tr>
1425          <tr>
1426            <td valign="top"><code>ELT_SUB_LSS_SLGS_DATE</code><br>
1427            </td>
1428            <td valign="top"><code>DATE</code><br>
1429            </td>
1430            <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1431            </td>
1432            <td valign="top"><code>DATE</code><br>
1433            </td>
1434          </tr>
1435          <tr>
1436            <td valign="top"><code>ELT_SUB_LSS_SLGS_TEMP</code><br>
1437            </td>
1438            <td valign="top"><code>TEMP</code><br>
1439            </td>
1440            <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1441            </td>
1442            <td valign="top"><code>STRING</code><br>
1443            </td>
1444          </tr>
1445          <tr>
1446            <td valign="top"><code>ELT_SUB_LSS_SLGS_PLAC</code><br>
1447            </td>
1448            <td valign="top"><code>PLAC</code><br>
1449            </td>
1450            <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
1451            </td>
1452            <td valign="top"><code>STRING</code><br>
1453            </td>
1454          </tr>
1455          <tr>
1456            <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1457            </td>
1458            <td valign="top"><code>OBJE</code><br>
1459            </td>
1460            <td valign="top"><code>REC_FAM, REC_INDI,<br>
1461     REC_SOUR, REC_SUBM,<br>
1462           </code><code>ELT_SUB_FAM_EVT,<br>
1463     ELT_SUB_FAM_EVT_EVEN,<br>
1464     ELT_SUB_INDIV_ATTR,<br>
1465     ELT_SUB_INDIV_RESI</code><code>,<br>
1466      ELT_SUB_INDIV_BIRT,<br>
1467      ELT_SUB_INDIV_GEN,<br>
1468      ELT_SUB_INDIV_ADOP,<br>
1469     ELT_SUB_SOUR</code><br>
1470            </td>
1471            <td valign="top"><code>NULL<br>
1472  XREF_PTR(OBJE)<br>
1473        </code><br>
1474            </td>
1475          </tr>
1476          <tr>
1477            <td valign="top"><code>ELT_SUB_MULTIM_OBJE_FORM</code><br>
1478            </td>
1479            <td valign="top"><code>FORM</code><br>
1480            </td>
1481            <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1482            </td>
1483            <td valign="top"><code>STRING</code><br>
1484            </td>
1485          </tr>
1486          <tr>
1487            <td valign="top"><code>ELT_SUB_MULTIM_OBJE_TITL</code><br>
1488            </td>
1489            <td valign="top"><code>TITL</code><br>
1490            </td>
1491            <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1492            </td>
1493            <td valign="top"><code>STRING</code><br>
1494            </td>
1495          </tr>
1496          <tr>
1497            <td valign="top"><code>ELT_SUB_MULTIM_OBJE_FILE</code><br>
1498            </td>
1499            <td valign="top"><code>FILE</code><br>
1500            </td>
1501            <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
1502            </td>
1503            <td valign="top"><code>STRING</code><br>
1504            </td>
1505          </tr>
1506          <tr>
1507            <td valign="top"><code>ELT_SUB_NOTE</code><br>
1508            </td>
1509            <td valign="top"><code>NOTE</code><br>
1510            </td>
1511            <td valign="top"><code>REC_FAM, REC_INDI,<br>
1512     REC_OBJE, REC_REPO,<br>
1513     REC_SOUR, ELT_SOUR_DATA,<br>
1514     ELT_SUB_ASSO, ELT_SUB_CHAN,<br>
1515     ELT_SUB_FAMC, </code><code>ELT_SUB_FAM_EVT,<br>
1516     ELT_SUB_FAM_EVT_EVEN,<br>
1517     ELT_SUB_INDIV_ATTR,<br>
1518     ELT_SUB_INDIV_RESI</code><code>,<br>
1519      ELT_SUB_INDIV_BIRT,<br>
1520      ELT_SUB_INDIV_GEN,<br>
1521      ELT_SUB_INDIV_ADOP,<br>
1522     ELT_SUB_LIO_BAPL,<br>
1523     ELT_SUB_LIO_SLGC,<br>
1524     ELT_SUB_LSS_SLGS,<br>
1525     ELT_SUB_MULTIM_OBJE,<br>
1526     ELT_SUB_PERS_NAME,<br>
1527     ELT_SUB_PLAC,<br>
1528     ELT_SUB_SOUR,<br>
1529     ELT_SUB_REPO,<br>
1530     ELT_SUB_FAMS</code><br>
1531            </td>
1532            <td valign="top"><code>NULL<br>
1533      STRING<br>
1534  XREF_PTR(NOTE)<br>
1535        </code><br>
1536            </td>
1537          </tr>
1538          <tr>
1539            <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1540            </td>
1541            <td valign="top"><code>NAME</code><br>
1542            </td>
1543            <td valign="top"><code>REC_INDI</code><br>
1544            </td>
1545            <td valign="top"><code>STRING</code><br>
1546            </td>
1547          </tr>
1548          <tr>
1549            <td valign="top"><code>ELT_SUB_PERS_NAME_NPFX</code><br>
1550            </td>
1551            <td valign="top"><code>NPFX</code><br>
1552            </td>
1553            <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1554            </td>
1555            <td valign="top"><code>STRING</code><br>
1556            </td>
1557          </tr>
1558          <tr>
1559            <td valign="top"><code>ELT_SUB_PERS_NAME_GIVN</code><br>
1560            </td>
1561            <td valign="top"><code>GIVN</code><br>
1562            </td>
1563            <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1564            </td>
1565            <td valign="top"><code>STRING</code><br>
1566            </td>
1567          </tr>
1568          <tr>
1569            <td valign="top"><code>ELT_SUB_PERS_NAME_NICK</code><br>
1570            </td>
1571            <td valign="top"><code>NICK</code><br>
1572            </td>
1573            <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1574            </td>
1575            <td valign="top"><code>STRING</code><br>
1576            </td>
1577          </tr>
1578          <tr>
1579            <td valign="top"><code>ELT_SUB_PERS_NAME_SPFX</code><br>
1580            </td>
1581            <td valign="top"><code>SPFX</code><br>
1582            </td>
1583            <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1584            </td>
1585            <td valign="top"><code>STRING</code><br>
1586            </td>
1587          </tr>
1588          <tr>
1589            <td valign="top"><code>ELT_SUB_PERS_NAME_SURN</code><br>
1590            </td>
1591            <td valign="top"><code>SURN</code><br>
1592            </td>
1593            <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1594            </td>
1595            <td valign="top"><code>STRING</code><br>
1596            </td>
1597          </tr>
1598          <tr>
1599            <td valign="top"><code>ELT_SUB_PERS_NAME_NSFX</code><br>
1600            </td>
1601            <td valign="top"><code>NSFX</code><br>
1602            </td>
1603            <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
1604            </td>
1605            <td valign="top"><code>STRING</code><br>
1606            </td>
1607          </tr>
1608          <tr>
1609            <td valign="top"><code>ELT_SUB_PLAC</code><br>
1610            </td>
1611            <td valign="top"><code>PLAC</code><br>
1612            </td>
1613            <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
1614           <code>ELT_SUB_FAM_EVT_EVEN,<br>
1615     ELT_SUB_INDIV_ATTR,<br>
1616     ELT_SUB_INDIV_RESI</code><br>
1617            </td>
1618            <td valign="top"><code>STRING</code><br>
1619            </td>
1620          </tr>
1621          <tr>
1622            <td valign="top"><code>ELT_SUB_PLAC_FORM</code><br>
1623            </td>
1624            <td valign="top"><code>FORM</code><br>
1625            </td>
1626            <td valign="top"><code>ELT_SUB_PLAC</code><br>
1627            </td>
1628            <td valign="top"><code>STRING</code><br>
1629            </td>
1630          </tr>
1631          <tr>
1632            <td valign="top"><code>ELT_SUB_SOUR</code><br>
1633            </td>
1634            <td valign="top"><code>SOUR</code><br>
1635            </td>
1636            <td valign="top"><code>REC_FAM, REC_INDI,<br>
1637     REC_NOTE, ELT_SUB_ASSO<br>
1638           </code><code>ELT_SUB_FAM_EVT,<br>
1639           </code><code>ELT_SUB_FAM_EVT_EVEN,<br>
1640     ELT_SUB_INDIV_ATTR,<br>
1641     ELT_SUB_INDIV_RESI</code><code>,<br>
1642      ELT_SUB_INDIV_BIRT,<br>
1643      ELT_SUB_INDIV_GEN,<br>
1644      ELT_SUB_INDIV_ADOP,<br>
1645     ELT_SUB_LIO_BAPL,<br>
1646     ELT_SUB_LIO_SLGC,<br>
1647     ELT_SUB_LSS_SLGS,<br>
1648     ELT_SUB_NOTE,<br>
1649     ELT_SUB_PERS_NAME,<br>
1650     ELT_SUB_PLAC</code><br>
1651            </td>
1652            <td valign="top"><code>STRING<br>
1653  XREF_PTR(SOUR)</code><br>
1654            </td>
1655          </tr>
1656          <tr>
1657            <td valign="top"><code>ELT_SUB_SOUR_PAGE</code><br>
1658            </td>
1659            <td valign="top"><code>PAGE</code><br>
1660            </td>
1661            <td valign="top"><code>ELT_SUB_SOUR</code><br>
1662            </td>
1663            <td valign="top"><code>STRING</code><br>
1664            </td>
1665          </tr>
1666          <tr>
1667            <td valign="top"><code>ELT_SUB_SOUR_EVEN</code><br>
1668            </td>
1669            <td valign="top"><code>EVEN</code><br>
1670            </td>
1671            <td valign="top"><code>ELT_SUB_SOUR</code><br>
1672            </td>
1673            <td valign="top"><code>STRING</code><br>
1674            </td>
1675          </tr>
1676          <tr>
1677            <td valign="top"><code>ELT_SUB_SOUR_EVEN_ROLE</code><br>
1678            </td>
1679            <td valign="top"><code>ROLE</code><br>
1680            </td>
1681            <td valign="top"><code>ELT_SUB_SOUR_EVEN</code><br>
1682            </td>
1683            <td valign="top"><code>STRING</code><br>
1684            </td>
1685          </tr>
1686          <tr>
1687            <td valign="top"><code>ELT_SUB_SOUR_DATA</code><br>
1688            </td>
1689            <td valign="top"><code>DATA</code><br>
1690            </td>
1691            <td valign="top"><code>ELT_SUB_SOUR</code><br>
1692            </td>
1693            <td valign="top"><code>NULL</code><br>
1694            </td>
1695          </tr>
1696          <tr>
1697            <td valign="top"><code>ELT_SUB_SOUR_DATA_DATE</code><br>
1698            </td>
1699            <td valign="top"><code>DATE</code><br>
1700            </td>
1701            <td valign="top"><code>ELT_SUB_SOUR_DATA</code><br>
1702            </td>
1703            <td valign="top"><code>DATE</code><br>
1704            </td>
1705          </tr>
1706          <tr>
1707            <td valign="top"><code>ELT_SUB_SOUR_TEXT</code><br>
1708            </td>
1709            <td valign="top"><code>TEXT</code><br>
1710            </td>
1711            <td valign="top"><code>ELT_SUB_SOUR<br>
1712     ELT_SUB_SOUR_DATA</code><br>
1713            </td>
1714            <td valign="top"><code>STRING</code><br>
1715            </td>
1716          </tr>
1717          <tr>
1718            <td valign="top"><code>ELT_SUB_SOUR_QUAY</code><br>
1719            </td>
1720            <td valign="top"><code>QUAY</code><br>
1721            </td>
1722            <td valign="top"><code>ELT_SUB_SOUR</code><br>
1723            </td>
1724            <td valign="top"><code>STRING</code><br>
1725            </td>
1726          </tr>
1727          <tr>
1728            <td valign="top"><code>ELT_SUB_REPO</code><br>
1729            </td>
1730            <td valign="top"><code>REPO</code><br>
1731            </td>
1732            <td valign="top"><code>REC_SOUR</code><br>
1733            </td>
1734            <td valign="top"><code>XREF_PTR(REPO)</code><br>
1735            </td>
1736          </tr>
1737          <tr>
1738            <td valign="top"><code>ELT_SUB_REPO_CALN</code><br>
1739            </td>
1740            <td valign="top"><code>CALN</code><br>
1741            </td>
1742            <td valign="top"><code>ELT_SUB_REPO</code><br>
1743            </td>
1744            <td valign="top"><code>STRING</code><br>
1745            </td>
1746          </tr>
1747          <tr>
1748            <td valign="top"><code>ELT_SUB_REPO_CALN_MEDI</code><br>
1749            </td>
1750            <td valign="top"><code>MEDI</code><br>
1751            </td>
1752            <td valign="top"><code>ELT_SUB_REPO_CALN</code><br>
1753            </td>
1754            <td valign="top"><code>STRING</code><br>
1755            </td>
1756          </tr>
1757          <tr>
1758            <td valign="top"><code>ELT_SUB_FAMS</code><br>
1759            </td>
1760            <td valign="top"><code>FAMS</code><br>
1761            </td>
1762            <td valign="top"><code>REC_INDI</code><br>
1763            </td>
1764            <td valign="top"><code>XREF_PTR(FAM)</code><br>
1765            </td>
1766          </tr>
1767          <tr>
1768            <td valign="top"><code>ELT_USER</code><br>
1769            </td>
1770            <td valign="top"><code>any tag starting<br>
1771      with an underscore</code><br>
1772            </td>
1773            <td valign="top"><code>anywhere</code><br>
1774            </td>
1775            <td valign="top"><code>NULL<br>
1776      STRING<br>
1777  XREF_PTR(USER)</code><br>
1778            </td>
1779          </tr>
1780                    
1781   </tbody>     
1782 </table>
1783            
1784 <hr width="100%" size="2">      
1785 <h2><a name="Gedcom_val_types"></a>Gedcom_val types<br>
1786       </h2>
1787       Currently, the specific <code>Gedcom_val</code> types are (with <code>
1788    val</code>   of type <code>Gedcom_val</code>):<br>
1789      <br>
1790          
1791 <table cellpadding="2" cellspacing="2" border="1" width="100%">
1792        <tbody>
1793          <tr>
1794            <td valign="top"><br>
1795            </td>
1796            <td valign="top"><b>type checker</b><br>
1797            </td>
1798            <td valign="top"><b>cast operator</b><br>
1799            </td>
1800          </tr>
1801          <tr>
1802            <td valign="top">null value<br>
1803            </td>
1804            <td valign="top"><code>GEDCOM_IS_NULL(val)</code><br>
1805            </td>
1806            <td valign="top">N/A<br>
1807            </td>
1808          </tr>
1809          <tr>
1810            <td valign="top">string<br>
1811            </td>
1812            <td valign="top"><code>GEDCOM_IS_STRING(val)</code><br>
1813            </td>
1814            <td valign="top"><code>char* str = GEDCOM_STRING(val);</code><br>
1815            </td>
1816          </tr>
1817          <tr>
1818            <td valign="top">date<br>
1819            </td>
1820            <td valign="top"><code>GEDCOM_IS_DATE(val)</code><br>
1821            </td>
1822            <td valign="top"><code>struct date_value dv = GEDCOM_DATE(val);</code></td>
1823          </tr>
1824      <tr>
1825       <td valign="top">age<br>
1826       </td>
1827       <td valign="top"><code>GEDCOM_IS_AGE(val)</code><br>
1828       </td>
1829       <td valign="top"><code>struct age_value age = GEDCOM_AGE(val);</code><br>
1830       </td>
1831     </tr>
1832 <tr>
1833        <td valign="top">xref pointer<br>
1834        </td>
1835        <td valign="top"><code>GEDCOM_IS_XREF_PTR(val)</code><br>
1836        </td>
1837        <td valign="top"><code>struct xref_value *xr = GEDCOM_XREF_PTR(val);</code><br>
1838        </td>
1839      </tr>
1840                    
1841   </tbody>     
1842 </table>
1843      <br>
1844      <br>
1845        The type checker returns a true or a false value according to the
1846 type   of the value, but this is in principle only necessary in the rare
1847 circumstances    that two types are possible, or where an optional value
1848 can be provided.   &nbsp;In most cases, the type is fixed for a specific
1849 tag.<br>
1850      <br>
1851       The null value is used for when the GEDCOM spec doesn't allow a value,
1852   or  when an optional value is allowed but none is given.<br>
1853       &nbsp; <br>
1854       The string value is the most general used value currently, for all
1855 those    values that don't have a more specific meaning. &nbsp;In essence,
1856 the value    that is returned by <code>GEDCOM_STRING(val)</code> is always the same as the
1857 <code>raw_value</code> passed    to the start callback, and is thus in fact redundant.<br>
1858      <br>
1859       The date value is used for all elements that return a date. &nbsp;See 
1860 <a href="#struct_date_value">here</a> for the definition.<br>
1861  <br>
1862  The xref value is for cross-references between records in the file. &nbsp;See 
1863 <a href="#struct_xref_value">here</a> for the definition.<br>
1864      <br>
1865          
1866 <h3><a name="struct_date_value"></a>struct date_value</h3>
1867      This struct describes a date as given in the GEDCOM file, and has the
1868  following  definition:<br>
1869          
1870 <blockquote><code>struct date_value {<br>
1871      &nbsp; Date_value_type &nbsp;type;<br>
1872      &nbsp; struct date &nbsp; &nbsp; &nbsp;date1;<br>
1873      &nbsp; struct date &nbsp; &nbsp; &nbsp;date2;<br>
1874      &nbsp; char &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; phrase[MAX_PHRASE_LEN 
1875   + 1];<br>
1876      };</code><br>
1877        </blockquote>
1878        It depends on the first member, the type, which members are actually 
1879  relevant:<br>
1880        <br>
1881                    
1882   <table cellpadding="2" cellspacing="2" border="1" width="100%">
1883          <tbody>
1884            <tr>
1885              <td valign="top" align="center"><b>Date_value_type</b><br>
1886              </td>
1887              <td valign="top" align="center"><b>Meaning</b><br>
1888              </td>
1889              <td valign="top" align="center"><b>Relevant members</b><br>
1890              </td>
1891            </tr>
1892            <tr>
1893              <td valign="top"><code>DV_NO_MODIFIER</code><br>
1894              </td>
1895              <td valign="top">just a simple date<br>
1896              </td>
1897              <td valign="top">date1<br>
1898              </td>
1899            </tr>
1900            <tr>
1901              <td valign="top"><code>DV_BEFORE</code><br>
1902              </td>
1903              <td valign="top">a range (BEFORE date1)<br>
1904              </td>
1905              <td valign="top">date1<br>
1906              </td>
1907            </tr>
1908            <tr>
1909              <td valign="top"><code>DV_AFTER</code><br>
1910              </td>
1911              <td valign="top">a range (AFTER date1)<br>
1912              </td>
1913              <td valign="top">date1<br>
1914              </td>
1915            </tr>
1916            <tr>
1917              <td valign="top"><code>DV_BETWEEN</code><br>
1918              </td>
1919              <td valign="top">a range (BETWEEN date1 AND date2)<br>
1920              </td>
1921              <td valign="top">date1, date2<br>
1922              </td>
1923            </tr>
1924            <tr>
1925              <td valign="top"><code>DV_FROM</code><br>
1926              </td>
1927              <td valign="top">a period (FROM date1)<br>
1928              </td>
1929              <td valign="top">date1<br>
1930              </td>
1931            </tr>
1932            <tr>
1933              <td valign="top"><code>DV_TO</code><br>
1934              </td>
1935              <td valign="top">a period (TO date1)<br>
1936              </td>
1937              <td valign="top">date1<br>
1938              </td>
1939            </tr>
1940            <tr>
1941              <td valign="top"><code>DV_FROM_TO</code><br>
1942              </td>
1943              <td valign="top">a period (FROM date1 TO date2)<br>
1944              </td>
1945              <td valign="top">date1, date2<br>
1946              </td>
1947            </tr>
1948            <tr>
1949              <td valign="top"><code>DV_ABOUT</code><br>
1950              </td>
1951              <td valign="top">an approximation (ABOUT date1)<br>
1952              </td>
1953              <td valign="top">date1<br>
1954              </td>
1955            </tr>
1956            <tr>
1957              <td valign="top"><code>DV_CALCULATED</code><br>
1958              </td>
1959              <td valign="top">an approximation (CALCULATED date1)<br>
1960              </td>
1961              <td valign="top">date1<br>
1962              </td>
1963            </tr>
1964            <tr>
1965              <td valign="top"><code>DV_ESTIMATED</code><br>
1966              </td>
1967              <td valign="top">an approximation (ESTIMATED date1)<br>
1968              </td>
1969              <td valign="top">date1<br>
1970              </td>
1971            </tr>
1972            <tr>
1973              <td valign="top"><code>DV_INTERPRETED</code><br>
1974              </td>
1975              <td valign="top">INTERPRETED date1 FROM a given free form date 
1976  phrase<br>
1977              </td>
1978              <td valign="top">date1, phrase<br>
1979              </td>
1980            </tr>
1981            <tr>
1982              <td valign="top"><code>DV_PHRASE</code><br>
1983              </td>
1984              <td valign="top">a free form date phrase<br>
1985              </td>
1986              <td valign="top">phrase<br>
1987              </td>
1988            </tr>
1989                              
1990     </tbody>               
1991   </table>
1992        <br>
1993                    
1994   <h3><a name="struct_date"></a>struct date<br>
1995        </h3>
1996      The <code>date1</code> and <code>date2</code> also have a strict syntax:<br>
1997                    
1998   <blockquote><code>struct date {<br>
1999      &nbsp; Calendar_type &nbsp;cal;<br>
2000      &nbsp; char &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; day_str[MAX_DAY_LEN + 
2001 1];<br>
2002      &nbsp; char &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; month_str[MAX_MONTH_LEN 
2003  +  1];<br>
2004      &nbsp; char &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; year_str[MAX_YEAR_LEN 
2005 +  1];<br>
2006          <br>
2007      &nbsp; int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;day;<br>
2008      &nbsp; int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;month;<br>
2009      &nbsp; int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;year;<br>
2010      &nbsp; Year_type &nbsp; &nbsp; &nbsp;year_type;<br>
2011          <br>
2012      &nbsp; Date_type &nbsp; &nbsp; &nbsp;type;<br>
2013      &nbsp; long int &nbsp; &nbsp; &nbsp; sdn1;<br>
2014      &nbsp; long int &nbsp; &nbsp; &nbsp; sdn2;<br>
2015      };</code><br>
2016          </blockquote>
2017      The first four fields are the primary fields parsed from the value in
2018  the  GEDCOM file. &nbsp;The <code>day_str</code>, <code>month_str</code>
2019  and     <code>  year_str</code> are the literal parts of the date that denote 
2020  the day, month  and year (the <code>day_str</code> and <code>month_str</code>
2021     can be empty) . &nbsp;The calendar type <code>cal</code> is one of (see 
2022  calendar overview     <i>LINK TBD</i>):<br>
2023                              
2024     <ul>
2025            <li><code>CAL_GREGORIAN</code> : the Gregorian calendar</li>
2026            <li><code>CAL_JULIAN</code> : the Julian calendar</li>
2027            <li><code>CAL_HEBREW</code> : the Hebrew (Jewish) calendar</li>
2028            <li><code>CAL_FRENCH_REV</code> : the calendar used after the
2029 French   Revolution</li>
2030            <li><code>CAL_UNKNOWN</code> : an unknown calendar type</li>
2031                              
2032     </ul>
2033      The next four fields are deduced from the first four:<br>
2034                              
2035     <ul>
2036            <li>the <code>day</code> is just the numeric representation of 
2037 the           <code>day_str</code> (starting from 1), -1 if the <code>day_str</code>
2038      is empty</li>
2039            <li>the <code>month</code> is the month number of <code>month_str</code>
2040       in the given calendar type (also starting from 1), -1 if the <code>
2041 month_str</code>     is empty</li>
2042            <li>the <code>year</code> is the numeric representation of the 
2043         <code>    year_str</code></li>
2044                              
2045     </ul>
2046      It is possible that the <code>year_str</code> is given as e.g. "1677/78". 
2047   &nbsp;This is coming from a date in a so called "annunciation style", where 
2048   the year began on 25 March: "20 March 1677/78" is 20 March 1677 in "annunciation
2049   style" and 20 March 1678 in "circumcision style" (the current style). &nbsp;See
2050   calendar overview (<i>LINK TBD</i>).<br>
2051          <br>
2052      In this case, the <code>year</code> will contain the "circumcision style" 
2053   year (1678 in the example), and <code>year_type</code> will be <code>YEAR_DOUBLE.</code>
2054       &nbsp;Normal dates will have a <code>year_type</code> equal to <code>
2055   YEAR_SINGLE</code>   .<br>
2056          <br>
2057      Finally, the last three fields are probably the most interesting values
2058   for applications that want to process dates. &nbsp;Basically, the date
2059 is   converted to a serial day number (aka Julian day), which is the unique
2060 day   number since November 25, 4714 BC in the Gregorian calendar. &nbsp;The
2061 advantage   of these day numbers is that they are unique and independent
2062 of the calendar   system. &nbsp;Furthermore, date differences can just be
2063 computed by subtracting   the serial day numbers.<br>
2064          <br>
2065      However, since dates in GEDCOM are not necessarily exact (e.g. "MAR
2066 1990"),   it is not possible to represent all GEDCOM dates with 1 serial
2067 day number.   &nbsp;Two cases can be distinguished:<br>
2068                              
2069     <ul>
2070            <li>Exact dates (e.g. "25 MAR 1990"):</li>
2071                              
2072     </ul>
2073                              
2074     <blockquote>                                   
2075       <blockquote>These are represented by a serial day number in <code>sdn1</code>
2076       and a <code>Date_type</code> equal to <code>DATE_EXACT</code>.<br>
2077              </blockquote>
2078              </blockquote>
2079                                                  
2080         <ul>
2081                <li>Incomplete dates (e.g. "MAR 1990"):</li>
2082                                                  
2083         </ul>
2084                                                  
2085         <blockquote>                                                    
2086   
2087           
2088   <blockquote>These are represented by 2 serial day numbers (<code>sdn1</code> and <code>sdn2</code>) and a <code>Date_type</code> equal 
2089 to              <code>DATE_BOUNDED</code>.<br>
2090     <br>
2091
2092      For example, the Gregorian date "MAR 1990" is represented by the serial
2093   day numbers for "1 MAR 1990" and "31 MAR 1990", and the Gregorian date
2094 "1990"   is represented by the serial day numbers for "1 JAN 1990" and "31
2095 DEC 1990".   &nbsp;Similarly for the other calendar types.<br>
2096   </blockquote>
2097
2098                  <br>
2099 </blockquote>
2100 <h3><a name="age_value"></a>struct age_value</h3>
2101
2102      This struct describes an age as given in the GEDCOM file, and has the
2103  following  definition:<br>
2104
2105          
2106 <blockquote><code>struct age_value {<br>
2107      &nbsp; Age_type&nbsp; &nbsp; &nbsp; type;<br>
2108      &nbsp; Age_modifier &nbsp;mod;<br>
2109      &nbsp; int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; years;<br>
2110 &nbsp; int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; months;<br>
2111 &nbsp; int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; days;<br>
2112      &nbsp; char &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;phrase[MAX_PHRASE_LEN 
2113   + 1];<br>
2114      };</code><br>
2115        </blockquote>
2116 <blockquote>
2117                  </blockquote>
2118
2119                               
2120             
2121        It depends on the first member, the type, which members are actually 
2122  relevant:<br>
2123 <br>
2124 <table cellpadding="2" cellspacing="2" border="1" width="100%">
2125 <tbody><tr>
2126              <td valign="top" align="center"><b>Age_type</b><br>
2127              </td>
2128              <td valign="top" align="center"><b>Meaning</b><br>
2129              </td>
2130              <td valign="top" align="center"><b>Relevant members</b><br>
2131              </td>
2132            </tr>
2133            <tr>
2134              <td valign="top"><code>AGE_UNRECOGNIZED</code><br>
2135              </td>
2136              <td valign="top">format not recognized, full raw value in phrase<br>
2137              </td>
2138              <td valign="top">phrase<br>
2139              </td>
2140            </tr>
2141            <tr>
2142              <td valign="top"><code>AGE_CHILD</code><br>
2143              </td>
2144              <td valign="top">the indication 'CHILD'<br>
2145              </td>
2146              <td valign="top">mod<br>
2147              </td>
2148            </tr>
2149            <tr>
2150              <td valign="top"><code>AGE_INFANT</code><br>
2151              </td>
2152              <td valign="top">the indication 'INFANT'<br>
2153              </td>
2154              <td valign="top">mod<br>
2155              </td>
2156            </tr>
2157            <tr>
2158              <td valign="top"><code>AGE_STILLBORN</code><br>
2159              </td>
2160              <td valign="top">the indication 'STILLBORN'<br>
2161              </td>
2162              <td valign="top">mod<br>
2163 </td></tr><tr>
2164       <td valign="top"><code>AGE_NUMERIC</code><br>
2165       </td>
2166       <td valign="top">an indication in years, months and/or days (each can be -1 if not given)<br>
2167       </td>
2168       <td valign="top">mod, years, months, days<br>
2169       </td>
2170     </tr>
2171 </tbody>
2172 </table>
2173 <br>
2174 The modifier can be one of the following:<br>
2175 <ul>
2176 <li><code> AGE_NO_MODIFIER</code> : no modifier</li><li><code>AGE_LESS_THAN</code><code></code>&nbsp; : the modifier '&lt;' is added</li><li><code>AGE_GREATER_THAN </code>: the modifier '&gt;' is added</li>
2177 </ul>
2178 <br>
2179 <h3><a name="struct_xref_value"></a>struct xref_value</h3>
2180
2181  This struct represents a cross-reference in the GEDCOM file (but note that 
2182 the <code>Gedcom_val</code> contains a pointer to such a struct, not the struct
2183 itself). &nbsp;It is defined as:<br>
2184              
2185             <blockquote><code>struct xref_value {<br>
2186  &nbsp; Xref_type &nbsp; type,<br>
2187  &nbsp; char* &nbsp; &nbsp; &nbsp; string,<br>
2188  &nbsp; Gedcom_ctxt object<br>
2189  };</code><br>
2190                </blockquote>
2191  The <code>Xref_type</code> gives the type of the cross-reference and can 
2192 be one of:<br>
2193                
2194               <ul>
2195                  <li><code>XREF_NONE</code> (used as default value)</li>
2196                  <li><code>XREF_FAM</code></li>
2197                  <li><code>XREF_INDI</code></li>
2198                  <li><code>XREF_NOTE</code></li>
2199                  <li><code>XREF_OBJE</code></li>
2200                  <li><code>XREF_REPO</code></li>
2201                  <li><code>XREF_SOUR</code></li>
2202                  <li><code>XREF_SUBM</code></li>
2203                  <li><code>XREF_SUBN</code></li>
2204                  <li><code>XREF_USER</code> (for application-specific cross-references)<br>
2205                    <code></code></li>
2206                
2207               </ul>
2208  The <code>string</code> gives the actual cross-reference string from the 
2209 GEDCOM file, and the <code>object</code> is initially <code>NULL,</code> but
2210 can be filled by the application with an object (of any type) that corresponds 
2211 with the cross-reference, and then later extracted when the cross-reference 
2212 is used or defined again in the file. &nbsp;This relieves the application 
2213 from the burden of maintaining the mapping between cross-references and objects.<br>
2214                <br>
2215   The parser checks whether all cross-references that are used are defined
2216  (if not, an error is produced) and whether all cross-references that are
2217 defined are used (if not, a warning is produced). &nbsp;It also checks whether
2218 the type of the cross-reference is the same on definition and use (if not,
2219 an error is produced). &nbsp;The first two checks are done at the end of
2220 the parsing, because cross-references can be defined after their usage in
2221 GEDCOM.<br>
2222                <br>
2223                                                                        
2224               <hr width="100%" size="2">                            
2225               <pre>$Id$<br>$Name$<br></pre>
2226       <br>
2227                                                                         
2228               <br>
2229 </body></html>