c27e3d07664a6cc826670865b420eddb2b47700b
[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>
5
6 <body text="#000000" bgcolor="#ffffff" link="#000099" vlink="#990099" alink="#000099">
7            
8 <h1 align="center">Libgedcom interface details</h1>
9       <br>
10            
11 <h2>Index</h2>
12            
13 <ul>
14         <li><a href="#Record_identifiers">Record identifiers</a></li>
15         <li><a href="#Element_identifiers">Element identifiers</a></li>
16         <li><a href="#Gedcom_val_types">Gedcom_val types</a></li>
17                    
18   <ul>
19          <li><a href="#struct_date_value">struct date_value</a></li>
20          <li><a href="#struct_date">struct date</a></li>
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>STRING</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>STRING</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">xref pointer<br>
1826        </td>
1827        <td valign="top"><code>GEDCOM_IS_XREF_PTR(val)</code><br>
1828        </td>
1829        <td valign="top"><code>struct xref_value *xr = GEDCOM_XREF_PTR(val);</code><br>
1830        </td>
1831      </tr>
1832                    
1833   </tbody>     
1834 </table>
1835      <br>
1836      <br>
1837        The type checker returns a true or a false value according to the
1838 type   of the value, but this is in principle only necessary in the rare
1839 circumstances    that two types are possible, or where an optional value
1840 can be provided.   &nbsp;In most cases, the type is fixed for a specific
1841 tag.<br>
1842      <br>
1843       The null value is used for when the GEDCOM spec doesn't allow a value,
1844   or  when an optional value is allowed but none is given.<br>
1845       &nbsp; <br>
1846       The string value is the most general used value currently, for all
1847 those    values that don't have a more specific meaning. &nbsp;In essence,
1848 the value    that is returned by <code>GEDCOM_STRING(val)</code> is always the same as the
1849 <code>raw_value</code> passed    to the start callback, and is thus in fact redundant.<br>
1850      <br>
1851       The date value is used for all elements that return a date. &nbsp;See 
1852 <a href="#struct_date_value">here</a> for the definition.<br>
1853  <br>
1854  The xref value is for cross-references between records in the file. &nbsp;See 
1855 <a href="#struct_xref_value">here</a> for the definition.<br>
1856      <br>
1857          
1858 <h3><a name="struct_date_value"></a>struct date_value</h3>
1859      This struct describes a date as given in the GEDCOM file, and has the
1860  following  definition:<br>
1861          
1862 <blockquote><code>struct date_value {<br>
1863      &nbsp; Date_value_type &nbsp;type;<br>
1864      &nbsp; struct date &nbsp; &nbsp; &nbsp;date1;<br>
1865      &nbsp; struct date &nbsp; &nbsp; &nbsp;date2;<br>
1866      &nbsp; char &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; phrase[MAX_PHRASE_LEN 
1867   + 1];<br>
1868      };</code><br>
1869        </blockquote>
1870        It depends on the first member, the type, which members are actually 
1871  relevant:<br>
1872        <br>
1873                    
1874   <table cellpadding="2" cellspacing="2" border="1" width="100%">
1875          <tbody>
1876            <tr>
1877              <td valign="top" align="center"><b>Date_value_type</b><br>
1878              </td>
1879              <td valign="top" align="center"><b>Meaning</b><br>
1880              </td>
1881              <td valign="top" align="center"><b>Relevant members</b><br>
1882              </td>
1883            </tr>
1884            <tr>
1885              <td valign="top"><code>DV_NO_MODIFIER</code><br>
1886              </td>
1887              <td valign="top">just a simple date<br>
1888              </td>
1889              <td valign="top">date1<br>
1890              </td>
1891            </tr>
1892            <tr>
1893              <td valign="top"><code>DV_BEFORE</code><br>
1894              </td>
1895              <td valign="top">a range (BEFORE date1)<br>
1896              </td>
1897              <td valign="top">date1<br>
1898              </td>
1899            </tr>
1900            <tr>
1901              <td valign="top"><code>DV_AFTER</code><br>
1902              </td>
1903              <td valign="top">a range (AFTER date1)<br>
1904              </td>
1905              <td valign="top">date1<br>
1906              </td>
1907            </tr>
1908            <tr>
1909              <td valign="top"><code>DV_BETWEEN</code><br>
1910              </td>
1911              <td valign="top">a range (BETWEEN date1 AND date2)<br>
1912              </td>
1913              <td valign="top">date1, date2<br>
1914              </td>
1915            </tr>
1916            <tr>
1917              <td valign="top"><code>DV_FROM</code><br>
1918              </td>
1919              <td valign="top">a period (FROM date1)<br>
1920              </td>
1921              <td valign="top">date1<br>
1922              </td>
1923            </tr>
1924            <tr>
1925              <td valign="top"><code>DV_TO</code><br>
1926              </td>
1927              <td valign="top">a period (TO date1)<br>
1928              </td>
1929              <td valign="top">date1<br>
1930              </td>
1931            </tr>
1932            <tr>
1933              <td valign="top"><code>DV_FROM_TO</code><br>
1934              </td>
1935              <td valign="top">a period (FROM date1 TO date2)<br>
1936              </td>
1937              <td valign="top">date1, date2<br>
1938              </td>
1939            </tr>
1940            <tr>
1941              <td valign="top"><code>DV_ABOUT</code><br>
1942              </td>
1943              <td valign="top">an approximation (ABOUT date1)<br>
1944              </td>
1945              <td valign="top">date1<br>
1946              </td>
1947            </tr>
1948            <tr>
1949              <td valign="top"><code>DV_CALCULATED</code><br>
1950              </td>
1951              <td valign="top">an approximation (CALCULATED date1)<br>
1952              </td>
1953              <td valign="top">date1<br>
1954              </td>
1955            </tr>
1956            <tr>
1957              <td valign="top"><code>DV_ESTIMATED</code><br>
1958              </td>
1959              <td valign="top">an approximation (ESTIMATED date1)<br>
1960              </td>
1961              <td valign="top">date1<br>
1962              </td>
1963            </tr>
1964            <tr>
1965              <td valign="top"><code>DV_INTERPRETED</code><br>
1966              </td>
1967              <td valign="top">INTERPRETED date1 FROM a given free form date 
1968  phrase<br>
1969              </td>
1970              <td valign="top">date1, phrase<br>
1971              </td>
1972            </tr>
1973            <tr>
1974              <td valign="top"><code>DV_PHRASE</code><br>
1975              </td>
1976              <td valign="top">a free form date phrase<br>
1977              </td>
1978              <td valign="top">phrase<br>
1979              </td>
1980            </tr>
1981                              
1982     </tbody>               
1983   </table>
1984        <br>
1985                    
1986   <h3><a name="struct_date"></a>struct date<br>
1987        </h3>
1988      The <code>date1</code> and <code>date2</code> also have a strict syntax:<br>
1989                    
1990   <blockquote><code>struct date {<br>
1991      &nbsp; Calendar_type &nbsp;cal;<br>
1992      &nbsp; char &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; day_str[MAX_DAY_LEN + 
1993 1];<br>
1994      &nbsp; char &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; month_str[MAX_MONTH_LEN 
1995  +  1];<br>
1996      &nbsp; char &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; year_str[MAX_YEAR_LEN 
1997 +  1];<br>
1998          <br>
1999      &nbsp; int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;day;<br>
2000      &nbsp; int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;month;<br>
2001      &nbsp; int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;year;<br>
2002      &nbsp; Year_type &nbsp; &nbsp; &nbsp;year_type;<br>
2003          <br>
2004      &nbsp; Date_type &nbsp; &nbsp; &nbsp;type;<br>
2005      &nbsp; long int &nbsp; &nbsp; &nbsp; sdn1;<br>
2006      &nbsp; long int &nbsp; &nbsp; &nbsp; sdn2;<br>
2007      };</code><br>
2008          </blockquote>
2009      The first four fields are the primary fields parsed from the value in
2010  the  GEDCOM file. &nbsp;The <code>day_str</code>, <code>month_str</code>
2011  and     <code>  year_str</code> are the literal parts of the date that denote 
2012  the day, month  and year (the <code>day_str</code> and <code>month_str</code>
2013     can be empty) . &nbsp;The calendar type <code>cal</code> is one of (see 
2014  calendar overview     <i>LINK TBD</i>):<br>
2015                              
2016     <ul>
2017            <li><code>CAL_GREGORIAN</code> : the Gregorian calendar</li>
2018            <li><code>CAL_JULIAN</code> : the Julian calendar</li>
2019            <li><code>CAL_HEBREW</code> : the Hebrew (Jewish) calendar</li>
2020            <li><code>CAL_FRENCH_REV</code> : the calendar used after the
2021 French   Revolution</li>
2022            <li><code>CAL_UNKNOWN</code> : an unknown calendar type</li>
2023                              
2024     </ul>
2025      The next four fields are deduced from the first four:<br>
2026                              
2027     <ul>
2028            <li>the <code>day</code> is just the numeric representation of 
2029 the           <code>day_str</code> (starting from 1), -1 if the <code>day_str</code>
2030      is empty</li>
2031            <li>the <code>month</code> is the month number of <code>month_str</code>
2032       in the given calendar type (also starting from 1), -1 if the <code>
2033 month_str</code>     is empty</li>
2034            <li>the <code>year</code> is the numeric representation of the 
2035         <code>    year_str</code></li>
2036                              
2037     </ul>
2038      It is possible that the <code>year_str</code> is given as e.g. "1677/78". 
2039   &nbsp;This is coming from a date in a so called "annunciation style", where 
2040   the year began on 25 March: "20 March 1677/78" is 20 March 1677 in "annunciation
2041   style" and 20 March 1678 in "circumcision style" (the current style). &nbsp;See
2042   calendar overview (<i>LINK TBD</i>).<br>
2043          <br>
2044      In this case, the <code>year</code> will contain the "circumcision style" 
2045   year (1678 in the example), and <code>year_type</code> will be <code>YEAR_DOUBLE.</code>
2046       &nbsp;Normal dates will have a <code>year_type</code> equal to <code>
2047   YEAR_SINGLE</code>   .<br>
2048          <br>
2049      Finally, the last three fields are probably the most interesting values
2050   for applications that want to process dates. &nbsp;Basically, the date
2051 is   converted to a serial day number (aka Julian day), which is the unique
2052 day   number since November 25, 4714 BC in the Gregorian calendar. &nbsp;The
2053 advantage   of these day numbers is that they are unique and independent
2054 of the calendar   system. &nbsp;Furthermore, date differences can just be
2055 computed by subtracting   the serial day numbers.<br>
2056          <br>
2057      However, since dates in GEDCOM are not necessarily exact (e.g. "MAR
2058 1990"),   it is not possible to represent all GEDCOM dates with 1 serial
2059 day number.   &nbsp;Two cases can be distinguished:<br>
2060                              
2061     <ul>
2062            <li>Exact dates (e.g. "25 MAR 1990"):</li>
2063                              
2064     </ul>
2065                              
2066     <blockquote>                                   
2067       <blockquote>These are represented by a serial day number in <code>sdn1</code>
2068       and a <code>Date_type</code> equal to <code>DATE_EXACT</code>.<br>
2069              </blockquote>
2070              </blockquote>
2071                                                  
2072         <ul>
2073                <li>Incomplete dates (e.g. "MAR 1990"):</li>
2074                                                  
2075         </ul>
2076                                                  
2077         <blockquote>                                                    
2078   
2079           <blockquote>These are represented by 2 serial day numbers (<code>sdn1</code> and <code>sdn2</code>) and a <code>Date_type</code> equal 
2080 to              <code>DATE_BOUNDED</code>.<br>
2081                  <br>
2082      For example, the Gregorian date "MAR 1990" is represented by the serial
2083   day numbers for "1 MAR 1990" and "31 MAR 1990", and the Gregorian date
2084 "1990"   is represented by the serial day numbers for "1 JAN 1990" and "31
2085 DEC 1990".   &nbsp;Similarly for the other calendar types.<br>
2086                  </blockquote>
2087                  </blockquote>
2088                               
2089             <h3><a name="struct_xref_value"></a>struct xref_value</h3>
2090  This struct represents a cross-reference in the GEDCOM file (but note that 
2091 the <code>Gedcom_val</code> contains a pointer to such a struct, not the struct
2092 itself). &nbsp;It is defined as:<br>
2093              
2094             <blockquote><code>struct xref_value {<br>
2095  &nbsp; Xref_type &nbsp; type,<br>
2096  &nbsp; char* &nbsp; &nbsp; &nbsp; string,<br>
2097  &nbsp; Gedcom_ctxt object<br>
2098  };</code><br>
2099                </blockquote>
2100  The <code>Xref_type</code> gives the type of the cross-reference and can 
2101 be one of:<br>
2102                
2103               <ul>
2104                  <li><code>XREF_NONE</code> (used as default value)</li>
2105                  <li><code>XREF_FAM</code></li>
2106                  <li><code>XREF_INDI</code></li>
2107                  <li><code>XREF_NOTE</code></li>
2108                  <li><code>XREF_OBJE</code></li>
2109                  <li><code>XREF_REPO</code></li>
2110                  <li><code>XREF_SOUR</code></li>
2111                  <li><code>XREF_SUBM</code></li>
2112                  <li><code>XREF_SUBN</code></li>
2113                  <li><code>XREF_USER</code> (for application-specific cross-references)<br>
2114                    <code></code></li>
2115                
2116               </ul>
2117  The <code>string</code> gives the actual cross-reference string from the 
2118 GEDCOM file, and the <code>object</code> is initially <code>NULL,</code> but
2119 can be filled by the application with an object (of any type) that corresponds 
2120 with the cross-reference, and then later extracted when the cross-reference 
2121 is used or defined again in the file. &nbsp;This relieves the application 
2122 from the burden of maintaining the mapping between cross-references and objects.<br>
2123                <br>
2124   The parser checks whether all cross-references that are used are defined
2125  (if not, an error is produced) and whether all cross-references that are
2126 defined are used (if not, a warning is produced). &nbsp;It also checks whether
2127 the type of the cross-reference is the same on definition and use (if not,
2128 an error is produced). &nbsp;The first two checks are done at the end of
2129 the parsing, because cross-references can be defined after their usage in
2130 GEDCOM.<br>
2131                <br>
2132                                                                        
2133               <hr width="100%" size="2">                            
2134               <pre>$Id$<br>$Name$<br></pre>
2135       <br>
2136                                                                         
2137               </body></html>