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