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