Copied from old documentation. Removed all Gedcom_val details.
[gedcom-parse.git] / gedcom / tag_data.h
1 /* Tag data header
2    Copyright (C) 2001,2002 The Genes Development Team
3    This file is part of the Gedcom parser library.
4    Contributed by Peter Verthez <Peter.Verthez@advalvas.be>, 2001.
5
6    The Gedcom parser library is free software; you can redistribute it
7    and/or modify it under the terms of the GNU Lesser General Public
8    License as published by the Free Software Foundation; either
9    version 2.1 of the License, or (at your option) any later version.
10
11    The Gedcom parser library is distributed in the hope that it will be
12    useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Lesser General Public License for more details.
15
16    You should have received a copy of the GNU Lesser General Public
17    License along with the Gedcom parser library; if not, write to the
18    Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
19    02111-1307 USA.  */
20
21 /* $Id$ */
22 /* $Name$ */
23
24 #include "gedcom.h"
25 #include "gedcom.tabgen.h"
26 #include "tag_names.h"
27
28 typedef enum _OPT {
29   OPT_CONC = 0x01,
30   OPT_CONT = 0x02,
31   OPT_CONT_AS_CONC = 0x04
32 } Opt;
33
34 struct tag_data {
35   char *elt_name;
36   int   tag;
37   int   allowed_types;
38   Opt   options;
39 };
40
41 struct tag_data tag_data[NR_OF_ELTS] =
42 {
43   /* REC_HEAD */
44   { "REC_HEAD", TAG_HEAD, GV_NULL, 0 },
45
46   /* REC_FAM */
47   { "REC_FAM", TAG_FAM, GV_NULL, 0 },
48
49   /* REC_INDI */
50   { "REC_INDI", TAG_INDI, GV_NULL, 0 },
51
52   /* REC_OBJE */
53   { "REC_OBJE", TAG_OBJE, GV_NULL, 0 },
54
55   /* REC_NOTE */
56   { "REC_NOTE", TAG_NOTE, GV_CHAR_PTR, OPT_CONC | OPT_CONT },
57
58   /* REC_REPO */
59   { "REC_REPO", TAG_REPO, GV_NULL, 0 },
60
61   /* REC_SOUR */
62   { "REC_SOUR", TAG_SOUR, GV_NULL, 0 },
63
64   /* REC_SUBN */
65   { "REC_SUBN", TAG_SUBN, GV_NULL, 0 },
66
67   /* REC_SUBM */
68   { "REC_SUBM", TAG_SUBM, GV_NULL, 0 },
69
70   /* REC_USER */
71   { "REC_USER", 0, GV_NULL | GV_CHAR_PTR | GV_XREF_PTR, 0 },
72
73   /* ELT_HEAD_SOUR */
74   { "ELT_HEAD_SOUR", TAG_SOUR, GV_CHAR_PTR, 0 },
75
76   /* ELT_HEAD_SOUR_VERS */
77   { "ELT_HEAD_SOUR_VERS", TAG_VERS, GV_CHAR_PTR, 0 },
78
79   /* ELT_HEAD_SOUR_NAME */
80   { "ELT_HEAD_SOUR_NAME", TAG_NAME, GV_CHAR_PTR, 0 },
81
82   /* ELT_HEAD_SOUR_CORP */
83   { "ELT_HEAD_SOUR_CORP", TAG_CORP, GV_CHAR_PTR, 0 },
84
85   /* ELT_HEAD_SOUR_DATA */
86   { "ELT_HEAD_SOUR_DATA", TAG_DATA, GV_CHAR_PTR, 0 },
87
88   /* ELT_HEAD_SOUR_DATA_DATE */
89   { "ELT_HEAD_SOUR_DATA_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
90
91   /* ELT_HEAD_SOUR_DATA_COPR */
92   { "ELT_HEAD_SOUR_DATA_COPR", TAG_COPR, GV_CHAR_PTR, 0 },
93
94   /* ELT_HEAD_DEST */
95   { "ELT_HEAD_DEST", TAG_DEST, GV_CHAR_PTR, 0 },
96
97   /* ELT_HEAD_DATE */
98   { "ELT_HEAD_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
99
100   /* ELT_HEAD_DATE_TIME */
101   { "ELT_HEAD_DATE_TIME", TAG_TIME, GV_CHAR_PTR, 0 },
102
103   /* ELT_HEAD_SUBM */
104   { "ELT_HEAD_SUBM", TAG_SUBM, GV_XREF_PTR, 0 },
105
106   /* ELT_HEAD_SUBN */
107   { "ELT_HEAD_SUBN", TAG_SUBN, GV_XREF_PTR, 0 },
108
109   /* ELT_HEAD_FILE */
110   { "ELT_HEAD_FILE", TAG_FILE, GV_CHAR_PTR, 0 },
111
112   /* ELT_HEAD_COPR */
113   { "ELT_HEAD_COPR", TAG_COPR, GV_CHAR_PTR, 0 },
114
115   /* ELT_HEAD_GEDC */
116   { "ELT_HEAD_GEDC", TAG_GEDC, GV_NULL, 0 },
117
118   /* ELT_HEAD_GEDC_VERS */
119   { "ELT_HEAD_GEDC_VERS", TAG_VERS, GV_CHAR_PTR, 0 },
120
121   /* ELT_HEAD_GEDC_FORM */
122   { "ELT_HEAD_GEDC_FORM", TAG_FORM, GV_CHAR_PTR, 0 },
123
124   /* ELT_HEAD_CHAR */
125   { "ELT_HEAD_CHAR", TAG_CHAR, GV_CHAR_PTR, 0 },
126
127   /* ELT_HEAD_CHAR_VERS */
128   { "ELT_HEAD_CHAR_VERS", TAG_VERS, GV_CHAR_PTR, 0 },
129
130   /* ELT_HEAD_LANG */
131   { "ELT_HEAD_LANG", TAG_LANG, GV_CHAR_PTR, 0 },
132
133   /* ELT_HEAD_PLAC */
134   { "ELT_HEAD_PLAC", TAG_PLAC, GV_NULL, 0 },
135
136   /* ELT_HEAD_PLAC_FORM */
137   { "ELT_HEAD_PLAC_FORM", TAG_FORM, GV_CHAR_PTR, 0 },
138
139   /* ELT_HEAD_NOTE */
140   { "ELT_HEAD_NOTE", TAG_NOTE, GV_CHAR_PTR, OPT_CONC | OPT_CONT },
141
142   /* ELT_FAM_HUSB */
143   { "ELT_FAM_HUSB", TAG_HUSB, GV_XREF_PTR, 0 },
144
145   /* ELT_FAM_WIFE */
146   { "ELT_FAM_WIFE", TAG_WIFE, GV_XREF_PTR, 0 },
147
148   /* ELT_FAM_CHIL */
149   { "ELT_FAM_CHIL", TAG_CHIL, GV_XREF_PTR, 0 },
150
151   /* ELT_FAM_NCHI */
152   { "ELT_FAM_NCHI", TAG_NCHI, GV_CHAR_PTR, 0 },
153
154   /* ELT_FAM_SUBM */
155   { "ELT_FAM_SUBM", TAG_SUBM, GV_XREF_PTR, 0 },
156   
157   /* ELT_INDI_RESN */
158   { "ELT_INDI_RESN", TAG_RESN, GV_CHAR_PTR, 0 },
159   
160   /* ELT_INDI_SEX */
161   { "ELT_INDI_SEX", TAG_SEX, GV_CHAR_PTR, 0 },
162   
163   /* ELT_INDI_SUBM */
164   { "ELT_INDI_SUBM", TAG_SUBM, GV_XREF_PTR, 0 },
165   
166   /* ELT_INDI_ALIA */
167   { "ELT_INDI_ALIA", TAG_ALIA, GV_XREF_PTR, 0 },
168   
169   /* ELT_INDI_ANCI */
170   { "ELT_INDI_ANCI", TAG_ANCI, GV_XREF_PTR, 0 },
171   
172   /* ELT_INDI_DESI */
173   { "ELT_INDI_DESI", TAG_DESI, GV_XREF_PTR, 0 },
174   
175   /* ELT_INDI_RFN */
176   { "ELT_INDI_RFN", TAG_RFN, GV_CHAR_PTR, 0 },
177   
178   /* ELT_INDI_AFN */
179   { "ELT_INDI_AFN", TAG_AFN, GV_CHAR_PTR, 0 },
180   
181   /* ELT_OBJE_FORM */
182   { "ELT_OBJE_FORM", TAG_FORM, GV_CHAR_PTR, 0 },
183   
184   /* ELT_OBJE_TITL */
185   { "ELT_OBJE_TITL", TAG_TITL, GV_CHAR_PTR, 0 },
186   
187   /* ELT_OBJE_BLOB */
188   { "ELT_OBJE_BLOB", TAG_BLOB, GV_NULL, OPT_CONT_AS_CONC },
189   
190   /* ELT_OBJE_BLOB_CONT */
191   { "ELT_OBJE_BLOB_CONT", TAG_CONT, GV_CHAR_PTR, 0 },
192   
193   /* ELT_OBJE_OBJE */
194   { "ELT_OBJE_OBJE", TAG_OBJE, GV_XREF_PTR, 0 },
195   
196   /* ELT_REPO_NAME */
197   { "ELT_REPO_NAME", TAG_NAME, GV_CHAR_PTR, 0 },
198   
199   /* ELT_SOUR_DATA */
200   { "ELT_SOUR_DATA", TAG_DATA, GV_NULL, 0 },
201   
202   /* ELT_SOUR_DATA_EVEN */
203   { "ELT_SOUR_DATA_EVEN", TAG_EVEN, GV_CHAR_PTR, 0 },
204   
205   /* ELT_SOUR_DATA_EVEN_DATE */
206   { "ELT_SOUR_DATA_EVEN_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
207   
208   /* ELT_SOUR_DATA_EVEN_PLAC */
209   { "ELT_SOUR_DATA_EVEN_PLAC", TAG_PLAC, GV_CHAR_PTR, 0 },
210   
211   /* ELT_SOUR_DATA_AGNC */
212   { "ELT_SOUR_DATA_AGNC", TAG_AGNC, GV_CHAR_PTR, 0 },
213   
214   /* ELT_SOUR_AUTH */
215   { "ELT_SOUR_AUTH", TAG_AUTH, GV_CHAR_PTR, OPT_CONC | OPT_CONT },
216   
217   /* ELT_SOUR_TITL */
218   { "ELT_SOUR_TITL", TAG_TITL, GV_CHAR_PTR, OPT_CONC | OPT_CONT },
219   
220   /* ELT_SOUR_ABBR */
221   { "ELT_SOUR_ABBR", TAG_ABBR, GV_CHAR_PTR, 0 },
222   
223   /* ELT_SOUR_PUBL */
224   { "ELT_SOUR_PUBL", TAG_PUBL, GV_CHAR_PTR, OPT_CONC | OPT_CONT },
225   
226   /* ELT_SOUR_TEXT */
227   { "ELT_SOUR_TEXT", TAG_TEXT, GV_CHAR_PTR, OPT_CONC | OPT_CONT },
228   
229   /* ELT_SUBN_SUBM */
230   { "ELT_SUBN_SUBM", TAG_SUBM, GV_XREF_PTR, 0 },
231   
232   /* ELT_SUBN_FAMF */
233   { "ELT_SUBN_FAMF", TAG_FAMF, GV_CHAR_PTR, 0 },
234   
235   /* ELT_SUBN_TEMP */
236   { "ELT_SUBN_TEMP", TAG_TEMP, GV_CHAR_PTR, 0 },
237   
238   /* ELT_SUBN_ANCE */
239   { "ELT_SUBN_ANCE", TAG_ANCE, GV_CHAR_PTR, 0 },
240   
241   /* ELT_SUBN_DESC */
242   { "ELT_SUBN_DESC", TAG_DESC, GV_CHAR_PTR, 0 },
243   
244   /* ELT_SUBN_ORDI */
245   { "ELT_SUBN_ORDI", TAG_ORDI, GV_CHAR_PTR, 0 },
246   
247   /* ELT_SUBN_RIN */
248   { "ELT_SUBN_RIN", TAG_RIN, GV_CHAR_PTR, 0 },
249   
250   /* ELT_SUBM_NAME */
251   { "ELT_SUBM_NAME", TAG_NAME, GV_CHAR_PTR, 0 },
252   
253   /* ELT_SUBM_LANG */
254   { "ELT_SUBM_LANG", TAG_LANG, GV_CHAR_PTR, 0 },
255   
256   /* ELT_SUBM_RFN */
257   { "ELT_SUBM_RFN", TAG_RFN, GV_CHAR_PTR, 0 },
258   
259   /* ELT_SUBM_RIN */
260   { "ELT_SUBM_RIN", TAG_RIN, GV_CHAR_PTR, 0 },
261   
262   /* ELT_SUB_ADDR */
263   { "ELT_SUB_ADDR", TAG_ADDR, GV_CHAR_PTR, OPT_CONT },
264   
265   /* ELT_SUB_ADDR_CONT */
266   { "ELT_SUB_ADDR_CONT", TAG_CONT, GV_CHAR_PTR, 0 },
267   
268   /* ELT_SUB_ADDR_ADR1 */
269   { "ELT_SUB_ADDR_ADR1", TAG_ADR1, GV_CHAR_PTR, 0 },
270   
271   /* ELT_SUB_ADDR_ADR2 */
272   { "ELT_SUB_ADDR_ADR2", TAG_ADR2, GV_CHAR_PTR, 0 },
273   
274   /* ELT_SUB_ADDR_CITY */
275   { "ELT_SUB_ADDR_CITY", TAG_CITY, GV_CHAR_PTR, 0 },
276   
277   /* ELT_SUB_ADDR_STAE */
278   { "ELT_SUB_ADDR_STAE", TAG_STAE, GV_CHAR_PTR, 0 },
279   
280   /* ELT_SUB_ADDR_POST */
281   { "ELT_SUB_ADDR_POST", TAG_POST, GV_CHAR_PTR, 0 },
282   
283   /* ELT_SUB_ADDR_CTRY */
284   { "ELT_SUB_ADDR_CTRY", TAG_CTRY, GV_CHAR_PTR, 0 },
285   
286   /* ELT_SUB_PHON */
287   { "ELT_SUB_PHON", TAG_PHON, GV_CHAR_PTR, 0 },
288   
289   /* ELT_SUB_ASSO */
290   { "ELT_SUB_ASSO", TAG_ASSO, GV_XREF_PTR, 0 },
291   
292   /* ELT_SUB_ASSO_TYPE */
293   { "ELT_SUB_ASSO_TYPE", TAG_TYPE, GV_CHAR_PTR, 0 },
294   
295   /* ELT_SUB_ASSO_RELA */
296   { "ELT_SUB_ASSO_RELA", TAG_RELA, GV_CHAR_PTR, 0 },
297   
298   /* ELT_SUB_CHAN */
299   { "ELT_SUB_CHAN", TAG_CHAN, GV_NULL, 0 },
300   
301   /* ELT_SUB_CHAN_DATE */
302   { "ELT_SUB_CHAN_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
303   
304   /* ELT_SUB_CHAN_TIME */
305   { "ELT_SUB_CHAN_TIME", TAG_TIME, GV_CHAR_PTR, 0 },
306   
307   /* ELT_SUB_FAMC */
308   { "ELT_SUB_FAMC", TAG_FAMC, GV_XREF_PTR, 0 },
309   
310   /* ELT_SUB_FAMC_PEDI */
311   { "ELT_SUB_FAMC_PEDI", TAG_PEDI, GV_CHAR_PTR, 0 },
312   
313   /* ELT_SUB_CONT */
314   { "ELT_SUB_CONT", TAG_CONT, GV_CHAR_PTR, 0 },
315   
316   /* ELT_SUB_CONC */
317   { "ELT_SUB_CONC", TAG_CONC, GV_CHAR_PTR, 0 },
318   
319   /* ELT_SUB_EVT_TYPE */
320   { "ELT_SUB_EVT_TYPE", TAG_TYPE, GV_CHAR_PTR, 0 },
321   
322   /* ELT_SUB_EVT_DATE */
323   { "ELT_SUB_EVT_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
324   
325   /* ELT_SUB_EVT_AGE */
326   { "ELT_SUB_EVT_AGE", TAG_AGE, GV_AGE_VALUE, 0 },
327   
328   /* ELT_SUB_EVT_AGNC */
329   { "ELT_SUB_EVT_AGNC", TAG_AGNC, GV_CHAR_PTR, 0 },
330   
331   /* ELT_SUB_EVT_CAUS */
332   { "ELT_SUB_EVT_CAUS", TAG_CAUS, GV_CHAR_PTR, 0 },
333   
334   /* ELT_SUB_FAM_EVT */
335   { "ELT_SUB_FAM_EVT", 0, GV_NULL | GV_CHAR_PTR, 0 },
336   
337   /* ELT_SUB_FAM_EVT_HUSB */
338   { "ELT_SUB_FAM_EVT_HUSB", TAG_HUSB, GV_NULL, 0 },
339   
340   /* ELT_SUB_FAM_EVT_WIFE */
341   { "ELT_SUB_FAM_EVT_WIFE", TAG_WIFE, GV_NULL, 0 },
342   
343   /* ELT_SUB_FAM_EVT_AGE */
344   { "ELT_SUB_FAM_EVT_AGE", TAG_AGE, GV_AGE_VALUE, 0 },
345   
346   /* ELT_SUB_FAM_EVT_EVEN */
347   { "ELT_SUB_FAM_EVT_EVEN", TAG_EVEN, GV_NULL, 0 },
348   
349   /* ELT_SUB_IDENT_REFN */
350   { "ELT_SUB_IDENT_REFN", TAG_REFN, GV_CHAR_PTR, 0 },
351   
352   /* ELT_SUB_IDENT_REFN_TYPE */
353   { "ELT_SUB_IDENT_REFN_TYPE", TAG_TYPE, GV_CHAR_PTR, 0 },
354   
355   /* ELT_SUB_IDENT_RIN */
356   { "ELT_SUB_IDENT_RIN", TAG_RIN, GV_CHAR_PTR, 0 },
357   
358   /* ELT_SUB_INDIV_ATTR */
359   { "ELT_SUB_INDIV_ATTR", 0, GV_CHAR_PTR, 0 },
360   
361   /* ELT_SUB_INDIV_RESI */
362   { "ELT_SUB_INDIV_RESI", TAG_RESI, GV_NULL, 0 },
363   
364   /* ELT_SUB_INDIV_BIRT */
365   { "ELT_SUB_INDIV_BIRT", 0, GV_NULL | GV_CHAR_PTR, 0 },
366   
367   /* ELT_SUB_INDIV_BIRT_FAMC */
368   { "ELT_SUB_INDIV_BIRT_FAMC", TAG_FAMC, GV_XREF_PTR, 0 },
369   
370   /* ELT_SUB_INDIV_GEN */
371   { "ELT_SUB_INDIV_GEN", 0, GV_NULL | GV_CHAR_PTR, 0 },
372   
373   /* ELT_SUB_INDIV_ADOP */
374   { "ELT_SUB_INDIV_ADOP", TAG_ADOP, GV_NULL | GV_CHAR_PTR, 0 },
375   
376   /* ELT_SUB_INDIV_ADOP_FAMC */
377   { "ELT_SUB_INDIV_ADOP_FAMC", TAG_FAMC, GV_XREF_PTR, 0 },
378   
379   /* ELT_SUB_INDIV_ADOP_FAMC_ADOP */
380   { "ELT_SUB_INDIV_ADOP_FAMC_ADOP", TAG_ADOP, GV_CHAR_PTR, 0 },
381   
382   /* ELT_SUB_INDIV_EVEN */
383   { "ELT_SUB_INDIV_EVEN", TAG_EVEN, GV_NULL, 0 },
384   
385   /* ELT_SUB_LIO_BAPL */
386   { "ELT_SUB_LIO_BAPL", 0, GV_NULL, 0 },
387   
388   /* ELT_SUB_LIO_BAPL_STAT */
389   { "ELT_SUB_LIO_BAPL_STAT", TAG_STAT, GV_CHAR_PTR, 0 },
390   
391   /* ELT_SUB_LIO_BAPL_DATE */
392   { "ELT_SUB_LIO_BAPL_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
393   
394   /* ELT_SUB_LIO_BAPL_TEMP */
395   { "ELT_SUB_LIO_BAPL_TEMP", TAG_TEMP, GV_CHAR_PTR, 0 },
396   
397   /* ELT_SUB_LIO_BAPL_PLAC */
398   { "ELT_SUB_LIO_BAPL_PLAC", TAG_PLAC, GV_CHAR_PTR, 0 },
399   
400   /* ELT_SUB_LIO_SLGC */
401   { "ELT_SUB_LIO_SLGC", TAG_SLGC, GV_NULL, 0 },
402   
403   /* ELT_SUB_LIO_SLGC_FAMC */
404   { "ELT_SUB_LIO_SLGC_FAMC", TAG_FAMC, GV_XREF_PTR, 0 },
405   
406   /* ELT_SUB_LSS_SLGS */
407   { "ELT_SUB_LSS_SLGS", TAG_SLGS, GV_NULL, 0 },
408   
409   /* ELT_SUB_LSS_SLGS_STAT */
410   { "ELT_SUB_LSS_SLGS_STAT", TAG_STAT, GV_CHAR_PTR, 0 },
411   
412   /* ELT_SUB_LSS_SLGS_DATE */
413   { "ELT_SUB_LSS_SLGS_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
414   
415   /* ELT_SUB_LSS_SLGS_TEMP */
416   { "ELT_SUB_LSS_SLGS_TEMP", TAG_TEMP, GV_CHAR_PTR, 0 },
417   
418   /* ELT_SUB_LSS_SLGS_PLAC */
419   { "ELT_SUB_LSS_SLGS_PLAC", TAG_PLAC, GV_CHAR_PTR, 0 },
420   
421   /* ELT_SUB_MULTIM_OBJE */
422   { "ELT_SUB_MULTIM_OBJE", TAG_OBJE, GV_NULL | GV_XREF_PTR, 0 },
423   
424   /* ELT_SUB_MULTIM_OBJE_FORM */
425   { "ELT_SUB_MULTIM_OBJE_FORM", TAG_FORM, GV_CHAR_PTR, 0 },
426   
427   /* ELT_SUB_MULTIM_OBJE_TITL */
428   { "ELT_SUB_MULTIM_OBJE_TITL", TAG_TITL, GV_CHAR_PTR, 0 },
429   
430   /* ELT_SUB_MULTIM_OBJE_FILE */
431   { "ELT_SUB_MULTIM_OBJE_FILE", TAG_FILE, GV_CHAR_PTR, 0 },
432   
433   /* ELT_SUB_NOTE */
434   { "ELT_SUB_NOTE", TAG_NOTE, GV_NULL | GV_CHAR_PTR | GV_XREF_PTR,
435     OPT_CONT | OPT_CONC },
436   
437   /* ELT_SUB_PERS_NAME */
438   { "ELT_SUB_PERS_NAME", TAG_NAME, GV_CHAR_PTR, 0 },
439   
440   /* ELT_SUB_PERS_NAME_NPFX */
441   { "ELT_SUB_PERS_NAME_NPFX", TAG_NPFX, GV_CHAR_PTR, 0 },
442   
443   /* ELT_SUB_PERS_NAME_GIVN */
444   { "ELT_SUB_PERS_NAME_GIVN", TAG_GIVN, GV_CHAR_PTR, 0 },
445   
446   /* ELT_SUB_PERS_NAME_NICK */
447   { "ELT_SUB_PERS_NAME_NICK", TAG_NICK, GV_CHAR_PTR, 0 },
448   
449   /* ELT_SUB_PERS_NAME_SPFX */
450   { "ELT_SUB_PERS_NAME_SPFX", TAG_SPFX, GV_CHAR_PTR, 0 },
451   
452   /* ELT_SUB_PERS_NAME_SURN */
453   { "ELT_SUB_PERS_NAME_SURN", TAG_SURN, GV_CHAR_PTR, 0 },
454   
455   /* ELT_SUB_PERS_NAME_NSFX */
456   { "ELT_SUB_PERS_NAME_NSFX", TAG_NSFX, GV_CHAR_PTR, 0 },
457   
458   /* ELT_SUB_PLAC */
459   { "ELT_SUB_PLAC", TAG_PLAC, GV_CHAR_PTR, 0 },
460   
461   /* ELT_SUB_PLAC_FORM */
462   { "ELT_SUB_PLAC_FORM", TAG_FORM, GV_CHAR_PTR, 0 },
463   
464   /* ELT_SUB_SOUR */
465   { "ELT_SUB_SOUR", TAG_SOUR, GV_CHAR_PTR | GV_XREF_PTR, OPT_CONT | OPT_CONC },
466   
467   /* ELT_SUB_SOUR_PAGE */
468   { "ELT_SUB_SOUR_PAGE", TAG_PAGE, GV_CHAR_PTR, 0 },
469   
470   /* ELT_SUB_SOUR_EVEN */
471   { "ELT_SUB_SOUR_EVEN", TAG_EVEN, GV_CHAR_PTR, 0 },
472   
473   /* ELT_SUB_SOUR_EVEN_ROLE */
474   { "ELT_SUB_SOUR_EVEN_ROLE", TAG_ROLE, GV_CHAR_PTR, 0 },
475   
476   /* ELT_SUB_SOUR_DATA */
477   { "ELT_SUB_SOUR_DATA", TAG_DATA, GV_NULL, 0 },
478   
479   /* ELT_SUB_SOUR_DATA_DATE */
480   { "ELT_SUB_SOUR_DATA_DATE", TAG_DATE, GV_DATE_VALUE, 0 },
481   
482   /* ELT_SUB_SOUR_TEXT */
483   { "ELT_SUB_SOUR_TEXT", TAG_TEXT, GV_CHAR_PTR, OPT_CONT | OPT_CONC },
484   
485   /* ELT_SUB_SOUR_QUAY */
486   { "ELT_SUB_SOUR_QUAY", TAG_QUAY, GV_CHAR_PTR, 0 },
487   
488   /* ELT_SUB_REPO */
489   { "ELT_SUB_REPO", TAG_REPO, GV_XREF_PTR, 0 },
490   
491   /* ELT_SUB_REPO_CALN */
492   { "ELT_SUB_REPO_CALN", TAG_CALN, GV_CHAR_PTR, 0 },
493   
494   /* ELT_SUB_REPO_CALN_MEDI */
495   { "ELT_SUB_REPO_CALN_MEDI", TAG_MEDI, GV_CHAR_PTR, 0 },
496   
497   /* ELT_SUB_FAMS */
498   { "ELT_SUB_FAMS", TAG_FAMS, GV_XREF_PTR, 0 },
499   
500   /* ELT_USER */
501   { "ELT_USER", 0, GV_NULL | GV_CHAR_PTR | GV_XREF_PTR, 0 },
502   
503 };