<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="#age_value">struct age_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="#struct_xref_value">struct xref_value</a><br>
+ <li><a href="#xref_value">struct xref_value</a><br>
</li>
</ul>
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>
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>REC_INDI</code><br>
</td>
- <td valign="top"><code>XREF_PTR(INDI)</code><br>
+ <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>
</tr>
<tr>
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>
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>
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>AGE</code><br>
</td>
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>
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>
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>
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>
<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>
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>
<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. 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. 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>
</table>
<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>
<li><code> AGE_NO_MODIFIER</code> : no modifier</li><li><code>AGE_LESS_THAN</code><code></code> : the modifier '<' is added</li><li><code>AGE_GREATER_THAN </code>: the modifier '>' is added</li>
</ul>
<br>
-<h3><a name="struct_xref_value"></a>struct xref_value</h3>
+<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
<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>
with the cross-reference, and then later extracted when the cross-reference
is used or defined again in the file. 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. 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
an error is produced). 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>
+An xref_value can also be retrieved by its key via the following function:<br>
+
+<blockquote><code>struct xref_value* <b>gedcom_get_by_xref</b> (char *key)</code><br>
+ </blockquote>
+The function returns <code>NULL</code> if the given key isn't used.<br>
<hr width="100%" size="2">
<pre>$Id$<br>$Name$<br></pre>
<br>
<br>
-</body></html>
\ No newline at end of file
+<br>
+<br>
+<br>
+</body></html>