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