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