Moved gedcom_set_error_handling to interface.c to make conversion of docs
[gedcom-parse.git] / doc / interface.html
index c27e3d07664a6cc826670865b420eddb2b47700b..34f8b073c214ec5f3f381ae9d9d356f0eec41723 100644 (file)
@@ -1,9 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Libgedcom interface details</title>
   
                                          
-  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"></head>
-
-<body text="#000000" bgcolor="#ffffff" link="#000099" vlink="#990099" alink="#000099">
+  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"></head><body text="#000000" bgcolor="#ffffff" link="#000099" vlink="#990099" alink="#000099">
            
 <h1 align="center">Libgedcom interface details</h1>
       <br>
         <li><a href="#Gedcom_val_types">Gedcom_val types</a></li>
                    
   <ul>
-         <li><a href="#struct_date_value">struct date_value</a></li>
-         <li><a href="#struct_date">struct date</a></li>
-     <li><a href="#struct_xref_value">struct xref_value</a><br>
+         <li><a href="#date_value">struct date_value</a></li>
+         <li><a href="#date">struct date</a></li><li><a href="#age_value">struct age_value</a><br>
+    </li>
+
+     <li><a href="#xref_value">struct xref_value</a><br>
         </li>
                    
   </ul>
@@ -29,9 +29,9 @@
 <hr width="100%" size="2">      
 <h2><a name="Record_identifiers"></a>Record identifiers</h2>
       The following table describes the identifiers to be used in the record
-  callbacks.  &nbsp;The last columns gives the <a href="#Gedcom_val_types"><code>
+  callbacks.  &nbsp;The last columns give the <a href="#Gedcom_val_types"><code>
     Gedcom_val</code>   type</a> of the <code>xref</code> and&nbsp;<code>
-val</code><code> </code> arguments in the header  start callback.<br>
+val</code><code> </code> arguments in the record  start and end callback.<br>
       <br>
            
 <table width="100%" border="1" cellspacing="2" cellpadding="2">
@@ -44,10 +44,12 @@ val</code><code> </code> arguments in the header  start callback.<br>
             <td valign="top" align="center"><b>Possible<br>
       &nbsp;<code>xref</code> types</b><br>
             </td>
-       <td valign="top" align="center"><b>Possible<br>
-       <code>val</code> types<br>
-       </b><br>
-       </td>
+       <td valign="top" align="center"><b>Possible start<br>
+       <code>val</code> types</b><br>
+       </td><td valign="top" align="center"><b>Possible end<br>
+      <code>val</code> types</b><br>
+      </td>
+
           </tr>
           <tr>
             <td valign="top"><code>REC_HEAD</code><br>
@@ -57,7 +59,9 @@ val</code><code> </code> arguments in the header  start callback.<br>
             <td valign="top"><code>NULL</code><br>
             </td>
        <td valign="top"><code>NULL</code><br>
-       </td>
+       </td><td valign="top"><code>NULL</code><br>
+      </td>
+
           </tr>
           <tr>
             <td valign="top"><code>REC_FAM</code><br>
@@ -67,7 +71,9 @@ val</code><code> </code> arguments in the header  start callback.<br>
             <td valign="top"><code>XREF_PTR(FAM)</code><br>
             </td>
        <td valign="top"><code>NULL</code><br>
-       </td>
+       </td><td valign="top"><code>NULL</code><br>
+      </td>
+
           </tr>
           <tr>
             <td valign="top"><code>REC_INDI</code><br>
@@ -77,7 +83,9 @@ val</code><code> </code> arguments in the header  start callback.<br>
             <td valign="top"><code>XREF_PTR(INDI)</code><br>
             </td>
        <td valign="top"><code>NULL</code><br>
-       </td>
+       </td><td valign="top"><code>NULL</code><br>
+      </td>
+
           </tr>
           <tr>
             <td valign="top"><code>REC_OBJE</code><br>
@@ -87,7 +95,9 @@ val</code><code> </code> arguments in the header  start callback.<br>
             <td valign="top"><code>XREF_PTR(OBJE)</code><br>
             </td>
        <td valign="top"><code>NULL</code><br>
-       </td>
+       </td><td valign="top"><code>NULL</code><br>
+      </td>
+
           </tr>
           <tr>
             <td valign="top"><code>REC_NOTE</code><br>
@@ -97,7 +107,9 @@ val</code><code> </code> arguments in the header  start callback.<br>
             <td valign="top"><code>XREF_PTR(NOTE)</code><br>
             </td>
        <td valign="top"><code>STRING</code><br>
-       </td>
+       </td><td valign="top"><code>STRING</code><br>
+      </td>
+
           </tr>
           <tr>
             <td valign="top"><code>REC_REPO</code><br>
@@ -107,7 +119,9 @@ val</code><code> </code> arguments in the header  start callback.<br>
             <td valign="top"><code>XREF_PTR(REPO)</code><br>
             </td>
        <td valign="top"><code>NULL</code><br>
-       </td>
+       </td><td valign="top"><code>NULL</code><br>
+      </td>
+
           </tr>
           <tr>
             <td valign="top"><code>REC_SOUR</code><br>
@@ -117,7 +131,9 @@ val</code><code> </code> arguments in the header  start callback.<br>
             <td valign="top"><code>XREF_PTR(SOUR)</code><br>
             </td>
        <td valign="top"><code>NULL</code><br>
-       </td>
+       </td><td valign="top"><code>NULL</code><br>
+      </td>
+
           </tr>
           <tr>
             <td valign="top"><code>REC_SUBN</code><br>
@@ -127,7 +143,9 @@ val</code><code> </code> arguments in the header  start callback.<br>
             <td valign="top"><code>XREF_PTR(SUBN)</code><br>
             </td>
        <td valign="top"><code>NULL</code><br>
-       </td>
+       </td><td valign="top"><code>NULL</code><br>
+      </td>
+
           </tr>
           <tr>
             <td valign="top"><code>REC_SUBM</code><br>
@@ -137,7 +155,9 @@ val</code><code> </code> arguments in the header  start callback.<br>
             <td valign="top"><code>XREF_PTR(SUBM</code>)<br>
             </td>
        <td valign="top"><code>NULL</code><br>
-       </td>
+       </td><td valign="top"><code>NULL</code><br>
+      </td>
+
           </tr>
           <tr>
             <td valign="top"><code>REC_USER</code><br>
@@ -152,7 +172,9 @@ val</code><code> </code> arguments in the header  start callback.<br>
        <td valign="top"><code>NULL<br>
  STRING<br>
  XREF_PTR(USER)</code><br>
-       </td>
+       </td><td valign="top"><code>NULL</code><br>
+      </td>
+
           </tr>
                        
   </tbody>      
@@ -161,9 +183,9 @@ val</code><code> </code> arguments in the header  start callback.<br>
 <hr width="100%" size="2">      
 <h2><a name="Element_identifiers"></a>Element identifiers</h2>
      The following table describes the identifiers to be used in the element
-  callbacks. &nbsp;The last column gives the <a href="file:///home/verthezp/src/external/gedcom-parse/doc/interface.html#Gedcom_val_types"><code>
+  callbacks. &nbsp;The last columns give the <a href="file:///home/verthezp/src/external/gedcom-parse/doc/interface.html#Gedcom_val_types"><code>
      Gedcom_val</code>  type</a> of the <code>val</code> argument in the
-element   start callback.<br>
+element   start and end callback.<br>
      <br>
          
 <table cellpadding="2" cellspacing="2" border="1" width="100%">
@@ -177,10 +199,13 @@ element   start callback.<br>
            </td>
            <td valign="top" align="center"><b>Used within</b><br>
            </td>
-           <td valign="top" align="center"><b>Possible<br>
+           <td valign="top" align="center"><b>Possible start<br>
            <code>val</code> types<br>
            </b><br>
-           </td>
+           </td><td valign="top" align="center"><b>Possible end<br>
+      <code>val</code> types</b><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_SOUR</code><br>
@@ -190,7 +215,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_HEAD</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_SOUR_VERS</code><br>
@@ -200,7 +227,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_HEAD_SOUR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_SOUR_NAME</code><br>
@@ -210,7 +239,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_HEAD_SOUR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_SOUR_CORP</code><br>
@@ -220,7 +251,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_HEAD_SOUR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
@@ -230,7 +263,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_HEAD_SOUR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_SOUR_DATA_DATE</code><br>
@@ -240,7 +275,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
            </td>
            <td valign="top"><code>DATE</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_SOUR_DATA_COPR</code><br>
@@ -250,7 +287,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_HEAD_SOUR_DATA</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_DEST</code><br>
@@ -260,7 +299,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_HEAD</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_DATE</code><br>
@@ -270,7 +311,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_HEAD</code><br>
            </td>
            <td valign="top"><code>DATE</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_DATE_TIME</code><br>
@@ -280,7 +323,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_HEAD_DATE</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_SUBM</code><br>
@@ -290,7 +335,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_HEAD</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(SUBM)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_SUBN</code><br>
@@ -300,7 +347,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_HEAD</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(SUBN)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_FILE</code><br>
@@ -310,7 +359,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_HEAD</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_COPR</code><br>
@@ -320,7 +371,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_HEAD</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_GEDC</code><br>
@@ -330,7 +383,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_HEAD</code><br>
            </td>
            <td valign="top"><code>NULL</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_GEDC_VERS</code><br>
@@ -340,7 +395,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_HEAD_GEDC</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_GEDC_FORM</code><br>
@@ -350,7 +407,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_HEAD_GEDC</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_CHAR</code><br>
@@ -360,7 +419,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_HEAD</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_CHAR_VERS</code><br>
@@ -370,7 +431,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_HEAD_CHAR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_LANG</code><br>
@@ -380,7 +443,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_HEAD</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_PLAC</code><br>
@@ -390,7 +455,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_HEAD</code><br>
            </td>
            <td valign="top"><code>NULL</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_PLAC_FORM</code><br>
@@ -400,7 +467,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_HEAD_PLAC</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_HEAD_NOTE</code><br>
@@ -410,7 +479,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_HEAD</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>STRING</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_FAM_HUSB</code><br>
@@ -420,7 +491,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_FAM</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(INDI)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_FAM_WIFE</code><br>
@@ -430,7 +503,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_FAM</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(INDI)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_FAM_CHIL</code><br>
@@ -440,7 +515,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_FAM</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(INDI)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_FAM_NCHI</code><br>
@@ -450,7 +527,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_FAM</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_FAM_SUBM</code><br>
@@ -460,7 +539,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_FAM</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(SUBM)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_INDI_RESN</code><br>
@@ -470,7 +551,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_INDI_SEX</code><br>
@@ -480,7 +563,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_INDI_SUBM</code><br>
@@ -490,7 +575,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(SUBM)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_INDI_ALIA</code><br>
@@ -500,7 +587,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(INDI)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_INDI_ANCI</code><br>
@@ -510,7 +599,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(SUBM)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_INDI_DESI</code><br>
@@ -520,7 +611,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(SUBM)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_INDI_RFN</code><br>
@@ -530,7 +623,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_INDI_AFN</code><br>
@@ -540,7 +635,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_OBJE_FORM</code><br>
@@ -550,7 +647,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_OBJE</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_OBJE_TITL</code><br>
@@ -560,7 +659,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_OBJE</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_OBJE_BLOB</code><br>
@@ -570,7 +671,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_OBJE</code><br>
            </td>
            <td valign="top"><code>NULL</code><br>
-           </td>
+           </td><td valign="top"><code>STRING</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_OBJE_BLOB_CONT</code><br>
@@ -580,7 +683,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_OBJE_BLOB</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_OBJE_OBJE</code><br>
@@ -590,7 +695,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_OBJE</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(OBJE)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_REPO_NAME</code><br>
@@ -600,7 +707,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_REPO</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SOUR_DATA</code><br>
@@ -610,7 +719,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SOUR</code><br>
            </td>
            <td valign="top"><code>NULL</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
@@ -620,7 +731,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SOUR_DATA</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SOUR_DATA_EVEN_DATE</code><br>
@@ -630,7 +743,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
            </td>
            <td valign="top"><code>DATE</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SOUR_DATA_EVEN_PLAC</code><br>
@@ -640,7 +755,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SOUR_DATA_EVEN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SOUR_DATA_AGNC</code><br>
@@ -650,7 +767,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SOUR_DATA</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SOUR_AUTH</code><br>
@@ -660,7 +779,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SOUR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>STRING</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SOUR_TITL</code><br>
@@ -670,7 +791,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SOUR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>STRING</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SOUR_ABBR</code><br>
@@ -680,7 +803,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SOUR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SOUR_PUBL</code><br>
@@ -690,7 +815,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SOUR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>STRING</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SOUR_TEXT</code><br>
@@ -700,7 +827,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SOUR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>STRING</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUBN_SUBM</code><br>
@@ -710,7 +839,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SUBN</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(SUBM)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUBN_FAMF</code><br>
@@ -720,7 +851,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SUBN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUBN_TEMP</code><br>
@@ -730,7 +863,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SUBN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUBN_ANCE</code><br>
@@ -740,7 +875,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SUBN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUBN_DESC</code><br>
@@ -750,7 +887,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SUBN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUBN_ORDI</code><br>
@@ -760,7 +899,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SUBN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUBN_RIN</code><br>
@@ -770,7 +911,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SUBN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUBM_NAME</code><br>
@@ -780,7 +923,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SUBM</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUBM_LANG</code><br>
@@ -790,7 +935,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SUBM</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUBM_RFN</code><br>
@@ -800,7 +947,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SUBM</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUBM_RIN</code><br>
@@ -810,7 +959,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SUBM</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_ADDR</code><br>
@@ -825,12 +976,13 @@ element   start callback.<br>
     ELT_SUB_INDIV_RESI,<br>
     ELT_SUB_INDIV_BIRT,<br>
     ELT_SUB_INDIV_GEN,<br>
-    ELT_SUB_INDIV_ADOP<br>
-          </code><br>
-          <br>
+    ELT_SUB_INDIV_ADOP,<br>
+ELT_SUB_INDIV_EVEN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>STRING</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_ADDR_CONT</code><br>
@@ -840,7 +992,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_ADDR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_ADDR_ADR1</code><br>
@@ -850,7 +1004,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_ADDR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_ADDR_ADR2</code><br>
@@ -860,7 +1016,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_ADDR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_ADDR_CITY</code><br>
@@ -870,7 +1028,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_ADDR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_ADDR_STAE</code><br>
@@ -880,7 +1040,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_ADDR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_ADDR_POST</code><br>
@@ -890,7 +1052,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_ADDR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_ADDR_CTRY</code><br>
@@ -900,7 +1064,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_ADDR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_PHON</code><br>
@@ -915,12 +1081,13 @@ element   start callback.<br>
     ELT_SUB_INDIV_RESI,<br>
     ELT_SUB_INDIV_BIRT,<br>
     ELT_SUB_INDIV_GEN,<br>
-    ELT_SUB_INDIV_ADOP<br>
-          </code><br>
-          <br>
+    ELT_SUB_INDIV_ADOP,<br>
+ELT_SUB_INDIV_EVEN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_ASSO</code><br>
@@ -929,8 +1096,17 @@ element   start callback.<br>
            </td>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
-           <td valign="top"><code>XREF_PTR(INDI)</code><br>
-           </td>
+           <td valign="top"><code>XREF_PTR(FAM),<br>
+XREF_PTR(INDI),<br>
+XREF_PTR(NOTE),<br>
+XREF_PTR(OBJE),<br>
+XREF_PTR(REPO),<br>
+XREF_PTR(SOUR),<br>
+XREF_PTR(SUBM),<br>
+XREF_PTR(SUBN)</code><br>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_ASSO_TYPE</code><br>
@@ -940,7 +1116,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_ASSO</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_ASSO_RELA</code><br>
@@ -950,7 +1128,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_ASSO</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_CHAN</code><br>
@@ -964,7 +1144,9 @@ element   start callback.<br>
           </code><br>
            </td>
            <td valign="top"><code>NULL</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_CHAN_DATE</code><br>
@@ -974,7 +1156,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_CHAN</code><br>
            </td>
            <td valign="top"><code>DATE</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_CHAN_TIME</code><br>
@@ -984,7 +1168,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_CHAN_DATE</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_FAMC</code><br>
@@ -994,7 +1180,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(FAM)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_FAMC_PEDI</code><br>
@@ -1004,7 +1192,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_FAMC</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_CONT</code><br>
@@ -1018,8 +1208,10 @@ element   start callback.<br>
     ELT_SUB_SOUR, ELT_SUB_SOUR_TEXT<br>
           </code><br>
            </td>
-           <td valign="top"><code>STRING</code><br>
-           </td>
+           <td valign="top"><code>NULL<br>STRING</code><br>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_CONC</code><br>
@@ -1034,7 +1226,9 @@ element   start callback.<br>
           </code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_EVT_TYPE</code><br>
@@ -1047,11 +1241,13 @@ element   start callback.<br>
     ELT_SUB_INDIV_RESI,<br>
     ELT_SUB_INDIV_BIRT,<br>
     ELT_SUB_INDIV_GEN,<br>
-    ELT_SUB_INDIV_ADOP<br>
-          </code><br>
+    ELT_SUB_INDIV_ADOP,<br>
+ELT_SUB_INDIV_EVEN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_EVT_DATE</code><br>
@@ -1064,13 +1260,13 @@ element   start callback.<br>
      ELT_SUB_INDIV_RESI,<br>
      ELT_SUB_INDIV_BIRT,<br>
      ELT_SUB_INDIV_GEN,<br>
-     ELT_SUB_INDIV_ADOP<br>
-          </code><br>
-          <br>
-          <br>
+     ELT_SUB_INDIV_ADOP,<br>
+ELT_SUB_INDIV_EVEN</code><br>
            </td>
            <td valign="top"><code>DATE</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_EVT_AGE</code><br>
@@ -1083,12 +1279,13 @@ element   start callback.<br>
     ELT_SUB_INDIV_RESI</code><code>,<br>
      ELT_SUB_INDIV_BIRT,<br>
      ELT_SUB_INDIV_GEN,<br>
-     ELT_SUB_INDIV_ADOP</code><br>
-          <br>
-          <br>
-           </td>
-           <td valign="top"><code>STRING</code><br>
+     ELT_SUB_INDIV_ADOP,<br>
+ELT_SUB_INDIV_EVEN</code><br>
            </td>
+           <td valign="top"><code>AGE</code><br>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_EVT_AGNC</code><br>
@@ -1101,12 +1298,13 @@ element   start callback.<br>
     ELT_SUB_INDIV_RESI</code><code>,<br>
      ELT_SUB_INDIV_BIRT,<br>
      ELT_SUB_INDIV_GEN,<br>
-     ELT_SUB_INDIV_ADOP</code><br>
-          <br>
-          <br>
+     ELT_SUB_INDIV_ADOP,<br>
+ELT_SUB_INDIV_EVEN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_EVT_CAUS</code><br>
@@ -1119,12 +1317,13 @@ element   start callback.<br>
     ELT_SUB_INDIV_RESI</code><code>,<br>
      ELT_SUB_INDIV_BIRT,<br>
      ELT_SUB_INDIV_GEN,<br>
-     ELT_SUB_INDIV_ADOP</code><br>
-          <br>
-          <br>
+     ELT_SUB_INDIV_ADOP,<br>
+ELT_SUB_INDIV_EVEN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_FAM_EVT</code><br>
@@ -1138,7 +1337,9 @@ element   start callback.<br>
            </td>
            <td valign="top"><code>NULL<br>
      STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_FAM_EVT_HUSB</code><br>
@@ -1149,7 +1350,9 @@ element   start callback.<br>
           <code>ELT_SUB_FAM_EVT_EVEN</code><br>
            </td>
            <td valign="top"><code>NULL</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_FAM_EVT_WIFE</code><br>
@@ -1160,7 +1363,9 @@ element   start callback.<br>
           <code>ELT_SUB_FAM_EVT_EVEN</code><br>
            </td>
            <td valign="top"><code>NULL</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_FAM_EVT_AGE</code><br>
@@ -1170,8 +1375,10 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_FAM_EVT_HUSB</code>,<br>
           <code>ELT_SUB_FAM_EVT_WIFE</code><br>
            </td>
-           <td valign="top"><code>STRING</code><br>
-           </td>
+           <td valign="top"><code>AGE</code><br>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_FAM_EVT_EVEN</code><br>
@@ -1181,7 +1388,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_FAM</code><br>
            </td>
            <td valign="top"><code>NULL</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_IDENT_REFN</code><br>
@@ -1194,7 +1403,9 @@ element   start callback.<br>
           </code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_IDENT_REFN_TYPE</code><br>
@@ -1204,7 +1415,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_IDENT_REFN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_IDENT_RIN</code><br>
@@ -1217,7 +1430,9 @@ element   start callback.<br>
           </code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_INDIV_ATTR</code><br>
@@ -1230,7 +1445,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_INDIV_RESI</code><br>
@@ -1240,7 +1457,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>NULL</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_INDIV_BIRT</code><br>
@@ -1251,7 +1470,9 @@ element   start callback.<br>
            </td>
            <td valign="top"><code>NULL<br>
      STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_INDIV_BIRT_FAMC</code><br>
@@ -1261,7 +1482,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_INDIV_BIRT</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(FAM)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_INDIV_GEN</code><br>
@@ -1278,7 +1501,9 @@ element   start callback.<br>
            </td>
            <td valign="top"><code>NULL<br>
      STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_INDIV_ADOP</code><br>
@@ -1289,7 +1514,9 @@ element   start callback.<br>
            </td>
            <td valign="top"><code>NULL<br>
      STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC</code><br>
@@ -1299,7 +1526,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_INDIV_ADOP</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(FAM)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC_ADOP</code><br>
@@ -1309,7 +1538,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_INDIV_ADOP_FAMC</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_INDIV_EVEN</code><br>
@@ -1319,7 +1550,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>NULL</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_LIO_BAPL</code><br>
@@ -1329,7 +1562,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>NULL</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_LIO_BAPL_STAT</code><br>
@@ -1341,7 +1576,9 @@ element   start callback.<br>
           </code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_LIO_BAPL_DATE</code><br>
@@ -1354,7 +1591,9 @@ element   start callback.<br>
           <br>
            </td>
            <td valign="top"><code>DATE</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_LIO_BAPL_TEMP</code><br>
@@ -1367,7 +1606,9 @@ element   start callback.<br>
           <br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_LIO_BAPL_PLAC</code><br>
@@ -1380,7 +1621,9 @@ element   start callback.<br>
           <br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_LIO_SLGC</code><br>
@@ -1390,7 +1633,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>NULL</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_LIO_SLGC_FAMC</code><br>
@@ -1400,7 +1645,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_LIO_SLGC</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(FAM)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
@@ -1410,7 +1657,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_FAM</code><br>
            </td>
            <td valign="top"><code>NULL</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_LSS_SLGS_STAT</code><br>
@@ -1420,7 +1669,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_LSS_SLGS_DATE</code><br>
@@ -1430,7 +1681,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
            </td>
            <td valign="top"><code>DATE</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_LSS_SLGS_TEMP</code><br>
@@ -1440,7 +1693,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_LSS_SLGS_PLAC</code><br>
@@ -1450,7 +1705,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_LSS_SLGS</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
@@ -1466,12 +1723,15 @@ element   start callback.<br>
      ELT_SUB_INDIV_BIRT,<br>
      ELT_SUB_INDIV_GEN,<br>
      ELT_SUB_INDIV_ADOP,<br>
+ELT_SUB_INDIV_EVEN,<br>
     ELT_SUB_SOUR</code><br>
            </td>
            <td valign="top"><code>NULL<br>
  XREF_PTR(OBJE)<br>
        </code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_MULTIM_OBJE_FORM</code><br>
@@ -1481,7 +1741,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_MULTIM_OBJE_TITL</code><br>
@@ -1491,7 +1753,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_MULTIM_OBJE_FILE</code><br>
@@ -1501,7 +1765,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_MULTIM_OBJE</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_NOTE</code><br>
@@ -1519,6 +1785,7 @@ element   start callback.<br>
      ELT_SUB_INDIV_BIRT,<br>
      ELT_SUB_INDIV_GEN,<br>
      ELT_SUB_INDIV_ADOP,<br>
+ELT_SUB_INDIV_EVEN,<br>
     ELT_SUB_LIO_BAPL,<br>
     ELT_SUB_LIO_SLGC,<br>
     ELT_SUB_LSS_SLGS,<br>
@@ -1533,7 +1800,11 @@ element   start callback.<br>
      STRING<br>
  XREF_PTR(NOTE)<br>
        </code><br>
-           </td>
+           </td><td valign="top"><code>STRING<br>
+      <br>
+NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
@@ -1543,7 +1814,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_PERS_NAME_NPFX</code><br>
@@ -1553,7 +1826,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_PERS_NAME_GIVN</code><br>
@@ -1563,7 +1838,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_PERS_NAME_NICK</code><br>
@@ -1573,7 +1850,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_PERS_NAME_SPFX</code><br>
@@ -1583,7 +1862,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_PERS_NAME_SURN</code><br>
@@ -1593,7 +1874,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_PERS_NAME_NSFX</code><br>
@@ -1603,7 +1886,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_PERS_NAME</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_PLAC</code><br>
@@ -1613,10 +1898,17 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_FAM_EVT</code>,<br>
           <code>ELT_SUB_FAM_EVT_EVEN,<br>
     ELT_SUB_INDIV_ATTR,<br>
-    ELT_SUB_INDIV_RESI</code><br>
+    ELT_SUB_INDIV_RESI</code><code>,
+     <br>
+ELT_SUB_INDIV_BIRT,<br>
+     ELT_SUB_INDIV_GEN,<br>
+     ELT_SUB_INDIV_ADOP,<br>
+ELT_SUB_INDIV_EVEN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_PLAC_FORM</code><br>
@@ -1626,7 +1918,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_PLAC</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_SOUR</code><br>
@@ -1642,6 +1936,7 @@ element   start callback.<br>
      ELT_SUB_INDIV_BIRT,<br>
      ELT_SUB_INDIV_GEN,<br>
      ELT_SUB_INDIV_ADOP,<br>
+ELT_SUB_INDIV_EVEN,<br>
     ELT_SUB_LIO_BAPL,<br>
     ELT_SUB_LIO_SLGC,<br>
     ELT_SUB_LSS_SLGS,<br>
@@ -1651,7 +1946,10 @@ element   start callback.<br>
            </td>
            <td valign="top"><code>STRING<br>
  XREF_PTR(SOUR)</code><br>
-           </td>
+           </td><td valign="top"><code>STRING<br>
+NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_SOUR_PAGE</code><br>
@@ -1661,7 +1959,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_SOUR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_SOUR_EVEN</code><br>
@@ -1671,7 +1971,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_SOUR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_SOUR_EVEN_ROLE</code><br>
@@ -1681,7 +1983,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_SOUR_EVEN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_SOUR_DATA</code><br>
@@ -1691,7 +1995,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_SOUR</code><br>
            </td>
            <td valign="top"><code>NULL</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_SOUR_DATA_DATE</code><br>
@@ -1701,7 +2007,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_SOUR_DATA</code><br>
            </td>
            <td valign="top"><code>DATE</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_SOUR_TEXT</code><br>
@@ -1712,7 +2020,9 @@ element   start callback.<br>
     ELT_SUB_SOUR_DATA</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_SOUR_QUAY</code><br>
@@ -1722,7 +2032,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_SOUR</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_REPO</code><br>
@@ -1732,7 +2044,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_SOUR</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(REPO)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_REPO_CALN</code><br>
@@ -1742,7 +2056,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_REPO</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_REPO_CALN_MEDI</code><br>
@@ -1752,7 +2068,9 @@ element   start callback.<br>
            <td valign="top"><code>ELT_SUB_REPO_CALN</code><br>
            </td>
            <td valign="top"><code>STRING</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_SUB_FAMS</code><br>
@@ -1762,7 +2080,9 @@ element   start callback.<br>
            <td valign="top"><code>REC_INDI</code><br>
            </td>
            <td valign="top"><code>XREF_PTR(FAM)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
          <tr>
            <td valign="top"><code>ELT_USER</code><br>
@@ -1775,7 +2095,9 @@ element   start callback.<br>
            <td valign="top"><code>NULL<br>
      STRING<br>
  XREF_PTR(USER)</code><br>
-           </td>
+           </td><td valign="top"><code>NULL</code><br>
+      </td>
+
          </tr>
                    
   </tbody>     
@@ -1822,6 +2144,14 @@ element   start callback.<br>
            <td valign="top"><code>struct date_value dv = GEDCOM_DATE(val);</code></td>
          </tr>
      <tr>
+      <td valign="top">age<br>
+      </td>
+      <td valign="top"><code>GEDCOM_IS_AGE(val)</code><br>
+      </td>
+      <td valign="top"><code>struct age_value age = GEDCOM_AGE(val);</code><br>
+      </td>
+    </tr>
+<tr>
        <td valign="top">xref pointer<br>
        </td>
        <td valign="top"><code>GEDCOM_IS_XREF_PTR(val)</code><br>
@@ -1849,13 +2179,13 @@ the value    that is returned by <code>GEDCOM_STRING(val)</code> is always the s
 <code>raw_value</code> passed    to the start callback, and is thus in fact redundant.<br>
      <br>
       The date value is used for all elements that return a date. &nbsp;See 
-<a href="#struct_date_value">here</a> for the definition.<br>
+<a href="#date_value">here</a> for the definition.<br>
  <br>
  The xref value is for cross-references between records in the file. &nbsp;See 
-<a href="#struct_xref_value">here</a> for the definition.<br>
+<a href="#xref_value">here</a> for the definition.<br>
      <br>
          
-<h3><a name="struct_date_value"></a>struct date_value</h3>
+<h3><a name="date_value"></a>struct date_value</h3>
      This struct describes a date as given in the GEDCOM file, and has the
  following  definition:<br>
          
@@ -1973,7 +2303,9 @@ the value    that is returned by <code>GEDCOM_STRING(val)</code> is always the s
            <tr>
              <td valign="top"><code>DV_PHRASE</code><br>
              </td>
-             <td valign="top">a free form date phrase<br>
+             <td valign="top">a free form date phrase
+(date1 and date2 can contain meaningful values, if the dates could be parsed,
+but did not result in a valid date; the sdn values will then still be -1)<br>
              </td>
              <td valign="top">phrase<br>
              </td>
@@ -1982,8 +2314,11 @@ the value    that is returned by <code>GEDCOM_STRING(val)</code> is always the s
     </tbody>               
   </table>
        <br>
+The following function creates a new <code>date_value</code> struct and initializes it properly, or copies an existing date value:
+<blockquote><code>struct date_value* <b>gedcom_new_date_value</b> (const struct date_value* copy_from);<br></code></blockquote>
+<code></code>If the parameter <code>copy_from</code> is <code>NULL</code>, a new value is created and given initial values. &nbsp;If it is non-<code>NULL</code>, the value is copied into a new date value.<br>
                    
-  <h3><a name="struct_date"></a>struct date<br>
+  <h3><a name="date"></a>struct date<br>
        </h3>
      The <code>date1</code> and <code>date2</code> also have a strict syntax:<br>
                    
@@ -2076,17 +2411,178 @@ day number.   &nbsp;Two cases can be distinguished:<br>
                                                  
         <blockquote>                                                    
   
-          <blockquote>These are represented by 2 serial day numbers (<code>sdn1</code> and <code>sdn2</code>) and a <code>Date_type</code> equal 
+          
+  <blockquote>These are represented by 2 serial day numbers (<code>sdn1</code> and <code>sdn2</code>) and a <code>Date_type</code> equal 
 to              <code>DATE_BOUNDED</code>.<br>
-                 <br>
+    <br>
+
      For example, the Gregorian date "MAR 1990" is represented by the serial
   day numbers for "1 MAR 1990" and "31 MAR 1990", and the Gregorian date
 "1990"   is represented by the serial day numbers for "1 JAN 1990" and "31
 DEC 1990".   &nbsp;Similarly for the other calendar types.<br>
+</blockquote>
+  </blockquote>
+<blockquote>
+
                  </blockquote>
+<code></code>To ensure that an updated date value is consistent, i.e. all
+its struct fields are consistent with each other, the following function
+can be used:<br>
+<blockquote><code>int <b>gedcom_normalize_date</b> (Date_input compute_from, struct date_value* value);<br></code></blockquote>
+
+<code></code>The <code>compute_from</code> parameter determines which fields
+will be taken as input to compute the other fields. &nbsp;The following table
+gives an overview of the input and output parameters (the calendar type <code>cal</code> is always an input parameter, and should not be <code>CAL_UNKNOWN</code>):<br>
+<br>
+<table cellpadding="2" cellspacing="2" border="1" width="100%">
+  <tbody>
+    <tr>
+      <td valign="top" align="center"><b>compute_from</b><br>
+      </td>
+      <td valign="top" align="center"><b>input parameters</b><br>
+      </td>
+      <td valign="top" align="center"><b>output parameters</b><br>
+      </td>
+    </tr>
+    <tr>
+      <td valign="top"><code>DI_FROM_STRINGS</code><br>
+      </td>
+      <td valign="top"><code>day_str, month_str, year_str</code><br>
+      </td>
+      <td valign="top"><code>day, month, year, year_type<br>
+type, sdn1, sdn2</code><br>
+      </td>
+    </tr>
+    <tr>
+      <td valign="top"><code>DI_FROM_NUMBERS</code><br>
+      </td>
+      <td valign="top"><code>day, month, year, year_type</code><br>
+      </td>
+      <td valign="top"><code>day_str, month_str, year_str<br>
+
+type, sdn1, sdn2</code><br>
+      </td>
+    </tr>
+    <tr>
+      <td valign="top"><code>DI_FROM_SDN</code><br>
+      </td>
+      <td valign="top"><code>type, sdn1, sdn2</code><br>
+      </td>
+      <td valign="top"><code>day, month, year<br>
+day_str, month_str, year_str</code><br>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<br>
+If the type in the date value is <code>DV_PHRASE</code>, no conversions take
+place, otherwise one or both of the date structs are processed according
+to the table above, depending on the type. &nbsp;The function returns 0 in case of success, non-zero in case of an error.<br>
+<br>
+This function could also be used to convert a date from one calendar to another,
+because the serial day number is calendar independent (error handling is
+ignored in this example):<br>
+<blockquote><code>struct date_value* dv = gedcom_new_date_value(NULL);<br>
+dv-&gt;date1.cal = CAL_GREGORIAN;<br>
+dv-&gt;date1.day &nbsp; = 4</code>;<br>
+  <code>dv-&gt;date1.month = 2;<br>
+dv-&gt;date1.year &nbsp;= 1799;<br>
+dv-&gt;date1.year_type = YEAR_SINGLE;<br>
+gedcom_normalize_date(DI_FROM_NUMBERS, dv);<br>
+  <br>
+dv-&gt;date1.cal = CAL_FRENCH_REV;<br>
+gedcom_normalize_date(DI_FROM_SDN, dv);<br>
+/* the day, month and year are now filled in according to the French Revolution calendar */</code><br>
+       </blockquote>
+
+<blockquote>
                  </blockquote>
+
+
+<h3><a name="age_value"></a>struct age_value</h3>
+
+     This struct describes an age as given in the GEDCOM file, and has the
+ following  definition:<br>
+
+         
+<blockquote><code>struct age_value {<br>
+     &nbsp; Age_type&nbsp; &nbsp; &nbsp; type;<br>
+     &nbsp; Age_modifier &nbsp;mod;<br>
+     &nbsp; int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; years;<br>
+&nbsp; int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; months;<br>
+&nbsp; int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; days;<br>
+     &nbsp; char &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;phrase[MAX_PHRASE_LEN 
+  + 1];<br>
+     };</code><br>
+       </blockquote>
+<blockquote>
+                 </blockquote>
+
                               
-            <h3><a name="struct_xref_value"></a>struct xref_value</h3>
+            
+       It depends on the first member, the type, which members are actually 
+ relevant:<br>
+<br>
+<table cellpadding="2" cellspacing="2" border="1" width="100%">
+<tbody><tr>
+             <td valign="top" align="center"><b>Age_type</b><br>
+             </td>
+             <td valign="top" align="center"><b>Meaning</b><br>
+             </td>
+             <td valign="top" align="center"><b>Relevant members</b><br>
+             </td>
+           </tr>
+           <tr>
+             <td valign="top"><code>AGE_UNRECOGNIZED</code><br>
+             </td>
+             <td valign="top">format not recognized, full raw value in phrase<br>
+             </td>
+             <td valign="top">phrase<br>
+             </td>
+           </tr>
+           <tr>
+             <td valign="top"><code>AGE_CHILD</code><br>
+             </td>
+             <td valign="top">the indication 'CHILD'<br>
+             </td>
+             <td valign="top">mod<br>
+             </td>
+           </tr>
+           <tr>
+             <td valign="top"><code>AGE_INFANT</code><br>
+             </td>
+             <td valign="top">the indication 'INFANT'<br>
+             </td>
+             <td valign="top">mod<br>
+             </td>
+           </tr>
+           <tr>
+             <td valign="top"><code>AGE_STILLBORN</code><br>
+             </td>
+             <td valign="top">the indication 'STILLBORN'<br>
+             </td>
+             <td valign="top">mod<br>
+</td></tr><tr>
+      <td valign="top"><code>AGE_NUMERIC</code><br>
+      </td>
+      <td valign="top">an indication in years, months and/or days (each can be -1 if not given)<br>
+      </td>
+      <td valign="top">mod, years, months, days<br>
+      </td>
+    </tr>
+</tbody>
+</table>
+<br>
+The modifier can be one of the following:<br>
+<ul>
+<li><code> AGE_NO_MODIFIER</code> : no modifier</li><li><code>AGE_LESS_THAN</code><code></code>&nbsp; : the modifier '&lt;' is added</li><li><code>AGE_GREATER_THAN </code>: the modifier '&gt;' is added</li>
+</ul>
+The following function creates a new <code>age_value</code> struct and initializes it properly, or copies an existing age value:
+<blockquote><code>struct age_value* <b>gedcom_new_age_value</b> (const struct age_value* copy_from);<br></code></blockquote>
+
+<code></code>If the parameter <code>copy_from</code> is <code>NULL</code>, a new value is created and given initial values. &nbsp;If it is non-<code>NULL</code>, the value is copied into a new age value.<br>
+<h3><a name="xref_value"></a>struct xref_value</h3>
+
  This struct represents a cross-reference in the GEDCOM file (but note that 
 the <code>Gedcom_val</code> contains a pointer to such a struct, not the struct
 itself). &nbsp;It is defined as:<br>
@@ -2109,7 +2605,9 @@ be one of:<br>
                  <li><code>XREF_REPO</code></li>
                  <li><code>XREF_SOUR</code></li>
                  <li><code>XREF_SUBM</code></li>
-                 <li><code>XREF_SUBN</code></li>
+                 <li><code>XREF_SUBN</code></li><li><code>XREF_ANY</code> (if the type is not known, see below)<br>
+  </li>
+
                  <li><code>XREF_USER</code> (for application-specific cross-references)<br>
                    <code></code></li>
                
@@ -2120,6 +2618,10 @@ can be filled by the application with an object (of any type) that corresponds
 with the cross-reference, and then later extracted when the cross-reference 
 is used or defined again in the file. &nbsp;This relieves the application 
 from the burden of maintaining the mapping between cross-references and objects.<br>
+<br>
+The value <code>XREF_ANY</code> is used when the type of the object is not
+immediately known: it has to come from further information. &nbsp;This is
+the case in an association (<code>ELT_SUB_ASSO</code>): the type is then given by the <code>TYPE</code> subtag.<br>
                <br>
   The parser checks whether all cross-references that are used are defined
  (if not, an error is produced) and whether all cross-references that are
@@ -2128,10 +2630,69 @@ the type of the cross-reference is the same on definition and use (if not,
 an error is produced). &nbsp;The first two checks are done at the end of
 the parsing, because cross-references can be defined after their usage in
 GEDCOM.<br>
-               <br>
+<br>
+The following functions are available to manipulate xref_value objects:<br>
+<blockquote><code>struct xref_value* <b>gedcom_get_by_xref</b> (const char *key)</code><br>
+  <blockquote>&nbsp;Retrieve an xref_value by its key. &nbsp;Returns <code>NULL</code> if the given key isn't a valid cross-reference key (see below) or isn't used.<br>
+  </blockquote>
+  <code>struct xref_value* <b>gedcom_add_xref</b> (Xref_type type, const char* key, Gedcom_ctxt object)</code> <br>
+  <blockquote>Add an xref_value of the given <code>type</code> (see list above), with the given <code>key</code>, to the given <code>object</code>, with a use count equal to 0. &nbsp;Returns the new xref_value if success. &nbsp;Returns <code>NULL</code> in one of the following cases:<br>
+    <ul>
+      <li>the key isn't a valid cross-reference key (see below)</li>
+      <li>there is already an xref_value with the same key</li>
+      <li>there was a memory allocation error</li>
+    </ul>
+  </blockquote>
+  <code>int <b>gedcom_delete_xref</b> (const char* key)<br>
+  </code>
+  <blockquote>Delete the xref_value corresponding to the given key. &nbsp;Returns 0 if success. &nbsp;Returns 1 in one of the following cases:<br>
+    <ul>
+      <li>the key isn't a valid cross-reference key (see below)</li>
+      <li>there is no xref_value with the given key</li>
+      <li>the xref_value is still in use, i.e. its use count is not 0 (see <code>gedcom_link_xref</code> and <code>gedcom_unlink_xref</code> below)</li>
+    </ul>
+  </blockquote>
+  <code>struct xref_value* <b>gedcom_link_xref</b> (Xref_type type, const char* key)<br>
+struct xref_value* <b>gedcom_unlink_xref</b> (Xref_type type, const char* key)</code><br>
+  <blockquote>Declare
+the xref_value corresponding to the given key as being used/no longer used
+(linked to or unlinked) as the given type. &nbsp;The use of these functions
+is not mandatory, but it can aid in spotting places in the code where xref_value
+objects are deleted while they are still referenced.<br>
+    <br>
+Returns the xref_value object if success, and its use count is incremented/decremented. &nbsp;Returns <code>NULL</code> in one of the following cases:<br>
+    <ul>
+      <li>the key isn't a valid cross-reference key (see below)</li>
+      <li>there is no xref_value with the given key</li>
+      <li>the xref_value was previously added as another type than the type provided here<br>
+      </li>
+    </ul>
+  </blockquote>
+</blockquote>
+<blockquote>
+                       </blockquote>
+
+A cross-reference key must be a string of maximum 22 characters, of the following format:<br>
+<ul>
+  <li>an at sign ('@')</li>
+  <li>followed by an alphanumeric character (A-Z, a-z, 0-9 or underscore)</li>
+  <li>followed by zero or more characters, which can be any character except an at sign</li>
+  <li>terminated by an at sign ('@')</li>
+</ul>
+An example would thus be: "@This is an xref_val@".<br>
+
                                                                        
               <hr width="100%" size="2">                            
               <pre>$Id$<br>$Name$<br></pre>
       <br>
                                                                         
-              </body></html>
\ No newline at end of file
+              <br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+<br>
+</body></html>
\ No newline at end of file