1 /*
2  *  "GEDKeeper", the personal genealogical database editor.
3  *  Copyright (C) 2009-2019 by Sergey V. Zhdanovskih.
4  *
5  *  This file is part of "GEDKeeper".
6  *
7  *  This program is free software: you can redistribute it and/or modify
8  *  it under the terms of the GNU General Public License as published by
9  *  the Free Software Foundation, either version 3 of the License, or
10  *  (at your option) any later version.
11  *
12  *  This program is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *  GNU General Public License for more details.
16  *
17  *  You should have received a copy of the GNU General Public License
18  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 namespace GDModel.Providers.GEDCOM
22 {
23     public enum GEDCOMTagType
24     {
25         Unknown,
26 
27         // Record's tags (don't change the order of the items, because its used to cast)
28         INDI, // Individual [std]
29         FAM, // Family [std]
30         NOTE, // Note [std]
31         OBJE, // Multimedia [std]
32         SOUR, // Source [std]
33         REPO, // Repository [std]
34         _GROUP, // Group [GK]
35         _RESEARCH, // Research [GK]
36         _TASK, // Task [GK]
37         _COMM, // Communication [GK]
38         _LOC, // Location [GEDCOM 5.5EL]
39         SUBN, // Submission [std]
40         SUBM, // Submitter [std]
41 
42         // Other tags
43         ABBR,
44         ADDR,
45         ADOP, // INDI.EVEN
46         ADR1,
47         ADR2,
48         ADR3,
49         AFN, // AncestralFileNumber
50         AGNC,
51         ALIA,
52         ANCE,
53         ANCI,
54         ANUL, // FAM.EVEN
55         ASSO,
56         AUTH,
57         BAPL,
58         BAPM, // INDI.EVEN
59         BARM, // INDI.EVEN
60         BASM, // INDI.EVEN
61         BIRT, // INDI.EVEN
62         BLES, // INDI.EVEN
63         BURI, // INDI.EVEN
64         CAST, // INDI.ATTR
65         CAUS,
66         CENS,
67         CHAN,
68         CHAR,
69         CHIL,
70         CHR, // INDI.EVEN
71         CHRA, // INDI.EVEN
72         CITY,
73         CONC,
74         CONF, // INDI.EVEN
75         CONL,
76         CONT,
77         COPR,
78         CORP,
79         CREM, // INDI.EVEN
80         CTRY,
81         DATA,
82         DATE,
83         DEAT, // INDI.EVEN
84         DESC,
85         DESI,
86         DEST,
87         DIV, // FAM.EVEN
88         DIVF, // FAM.EVEN
89         DSCR, // INDI.ATTR
90         EDUC, // INDI.ATTR
91         ENDL,
92         EVEN,
93         EMAIL,
94         EMIG, // INDI.EVEN
95         ENGA, // FAM.EVEN
96         FACT, // INDI.ATTR
97         FAMC,
98         FAMF,
99         FAMS,
100         FAX,
101         FCOM, // INDI.EVEN
102         FILE,
103         FONE,
104         FORM,
105         FROM,
106         GEDC,
107         GIVN,
108         GRAD, // INDI.EVEN
109         HEAD,
110         HUSB,
111         IDNO, // INDI.ATTR
112         IMMI, // INDI.EVEN
113         INT,
114         LANG,
115         LATI,
116         LONG,
117         MAP,
118         MARB, // FAM.EVEN
119         MARC, // FAM.EVEN
120         MARL, // FAM.EVEN
121         MARR, // FAM.EVEN
122         MARS, // FAM.EVEN
123         MEDI,
124         NAME,
125         NATI, // INDI.ATTR
126         NATU, // INDI.EVEN
127         NCHI, // INDI.ATTR
128         NICK,
129         NMR, // INDI.ATTR
130         NPFX,
131         NSFX,
132         OCCU, // INDI.ATTR
133         ORDI,
134         ORDN, // INDI.EVEN
135         PAGE,
136         PEDI,
137         PHON,
138         PLAC,
139         POST,
140         PROB, // INDI.EVEN
141         PROP, // INDI.ATTR
142         PUBL,
143         QUAY,
144         REFN,
145         RELA,
146         RELI, // INDI.ATTR
147         RESI,
148         RESN, // Restriction
149         RETI, // INDI.EVEN
150         RFN, // PermanentRecordFileNumber
151         RIN, // AutomatedRecordID
152         ROMN,
153         SEX,
154         SLGC,
155         SLGS,
156         SPFX,
157         SSN, // INDI.ATTR
158         STAE,
159         STAT,
160         SURN,
161         TEMP,
162         TEXT,
163         TIME,
164         TITL, // INDI.ATTR
165         TO,
166         TRLR,
167         TYPE,
168         VERS,
169         WIFE,
170         WILL, // INDI.EVEN
171         WWW,
172 
173         // non-standard extended tags
174         _AWARD, // [???] INDI.ATTR
175         _BGRO, // [MyFamilyTree] INDI.ATTR
176         _BOOKMARK, // [GK]
177         _CENN, // Census Name [BKW6]
178         _ELEC, // Election [???] INDI.ATTR
179         _EXCM, // Excommunication [???] INDI.ATTR
180         _EYES, // [Gen] INDI.ATTR
181         _FOLDER, // [GK]
182         _GOAL, // [GK]
183         _GRP, // Group record [Genney]
184         _HAIR, // [BKW6, PAF] INDI.ATTR
185         _HOBBY, // [???] INDI.ATTR
186         _LANG, // [GK], outdated, replaced by LANG
187         _MARN, // Married Surname [BKW6]
188         _MARNM, // Married Surname [AQ3, PAF5, Geni]
189         _MDCL, // Medical condition [???] INDI.ATTR
190         _MDNA, // [MyFamilyTree] INDI.ATTR
191         _MEMBER, // [GK]
192         _MIDN, // Middle Name [WikiTree]
193         _MILI, // [GK] INDI.ATTR
194         _MILI_DIS, // [GK] INDI.ATTR
195         _MILI_IND, // [GK] INDI.ATTR
196         _MILI_RANK, // [GK] INDI.ATTR
197         _OBIT, // Obituary [???] INDI.ATTR
198         _PATN, // Patronymic Name
199         _PATRIARCH, // [GK]
200         _PERCENT, // [GK]
201         _PLAC, // Place/Location record [Family Historian]
202         _PLC, // Place/Location record [Genney]
203         _POSITION,
204         _PRIM, // [PhpGedView, AQ3, PAF5, FO7]
205         _PRIM_CUTOUT, // [FTB]
206         _PRIORITY, // [GK]
207         _RELN, // Religious Name [BKW6]
208         _REV, // [GK]
209         _STARTDATE, // [GK]
210         _STAT,
211         _STATUS, // [GK]
212         _STOPDATE, // [GK]
213         _TRAVEL, // [GK] INDI.ATTR
214         _UID, //
215         _YDNA, // [MyFamilyTree] INDI.ATTR
216 
217         // non-standard convertible tags
218         _FREL, // [Ages, FTM/FTW, Legacy, Family Tree Maker]
219         _MREL, // [Ages, FTM/FTW, Legacy, Family Tree Maker]
220     }
221 
222     public static class GEDCOMTagName
223     {
224         public const string ABBR = "ABBR";
225         public const string ADDR = "ADDR";
226         public const string ADOP = "ADOP";
227         public const string ADR1 = "ADR1";
228         public const string ADR2 = "ADR2";
229         public const string ADR3 = "ADR3";
230         public const string AFN = "AFN"; // AncestralFileNumber
231         public const string AGNC = "AGNC";
232         public const string ALIA = "ALIA";
233         public const string ANCE = "ANCE";
234         public const string ANCI = "ANCI";
235         public const string ANUL = "ANUL";
236         public const string ASSO = "ASSO";
237         public const string AUTH = "AUTH";
238         public const string BAPL = "BAPL";
239         public const string BAPM = "BAPM";
240         public const string BARM = "BARM";
241         public const string BASM = "BASM";
242         public const string BIRT = "BIRT";
243         public const string BLES = "BLES";
244         public const string BURI = "BURI";
245         public const string CAST = "CAST";
246         public const string CAUS = "CAUS";
247         public const string CENS = "CENS";
248         public const string CHAN = "CHAN";
249         public const string CHAR = "CHAR";
250         public const string CHIL = "CHIL";
251         public const string CHR = "CHR";
252         public const string CHRA = "CHRA";
253         public const string CITY = "CITY";
254         public const string CONC = "CONC";
255         public const string CONF = "CONF";
256         public const string CONL = "CONL";
257         public const string CONT = "CONT";
258         public const string COPR = "COPR";
259         public const string CORP = "CORP";
260         public const string CREM = "CREM";
261         public const string CTRY = "CTRY";
262         public const string DATA = "DATA";
263         public const string DATE = "DATE";
264         public const string DEAT = "DEAT";
265         public const string DESC = "DESC";
266         public const string DESI = "DESI";
267         public const string DEST = "DEST";
268         public const string DIV = "DIV";
269         public const string DIVF = "DIVF";
270         public const string DSCR = "DSCR";
271         public const string EDUC = "EDUC";
272         public const string ENDL = "ENDL";
273         public const string EVEN = "EVEN";
274         public const string EMAIL = "EMAIL";
275         public const string EMIG = "EMIG";
276         public const string ENGA = "ENGA";
277         public const string FACT = "FACT";
278         public const string FAM = "FAM";
279         public const string FAMC = "FAMC";
280         public const string FAMF = "FAMF";
281         public const string FAMS = "FAMS";
282         public const string FAX = "FAX";
283         public const string FCOM = "FCOM";
284         public const string FILE = "FILE";
285         public const string FONE = "FONE";
286         public const string FORM = "FORM";
287         public const string FROM = "FROM";
288         public const string GEDC = "GEDC";
289         public const string GIVN = "GIVN";
290         public const string GRAD = "GRAD";
291         public const string HEAD = "HEAD";
292         public const string HUSB = "HUSB";
293         public const string IDNO = "IDNO";
294         public const string IMMI = "IMMI";
295         public const string INDI = "INDI"; // IndividualRecord
296         public const string INT = "INT";
297         public const string LANG = "LANG";
298         public const string LATI = "LATI";
299         public const string LONG = "LONG";
300         public const string MAP = "MAP";
301         public const string MARB = "MARB";
302         public const string MARC = "MARC";
303         public const string MARL = "MARL";
304         public const string MARR = "MARR";
305         public const string MARS = "MARS";
306         public const string MEDI = "MEDI";
307         public const string NAME = "NAME";
308         public const string NATI = "NATI";
309         public const string NATU = "NATU";
310         public const string NCHI = "NCHI";
311         public const string NICK = "NICK";
312         public const string NMR = "NMR";
313         public const string NOTE = "NOTE";
314         public const string NPFX = "NPFX";
315         public const string NSFX = "NSFX";
316         public const string OBJE = "OBJE";
317         public const string OCCU = "OCCU";
318         public const string ORDI = "ORDI";
319         public const string ORDN = "ORDN";
320         public const string PAGE = "PAGE";
321         public const string PEDI = "PEDI";
322         public const string PHON = "PHON";
323         public const string PLAC = "PLAC";
324         public const string POST = "POST";
325         public const string PROB = "PROB";
326         public const string PROP = "PROP";
327         public const string PUBL = "PUBL";
328         public const string QUAY = "QUAY";
329         public const string REFN = "REFN";
330         public const string RELA = "RELA";
331         public const string RELI = "RELI";
332         public const string REPO = "REPO";
333         public const string RESI = "RESI";
334         public const string RESN = "RESN"; // Restriction
335         public const string RETI = "RETI";
336         public const string RFN = "RFN"; // PermanentRecordFileNumber
337         public const string RIN = "RIN"; // AutomatedRecordID
338         public const string ROMN = "ROMN";
339         public const string SEX = "SEX";
340         public const string SLGC = "SLGC";
341         public const string SLGS = "SLGS";
342         public const string SOUR = "SOUR";
343         public const string SPFX = "SPFX";
344         public const string SSN = "SSN";
345         public const string STAE = "STAE";
346         public const string STAT = "STAT";
347         public const string SUBM = "SUBM";
348         public const string SUBN = "SUBN";
349         public const string SURN = "SURN";
350         public const string TEMP = "TEMP";
351         public const string TEXT = "TEXT";
352         public const string TIME = "TIME";
353         public const string TITL = "TITL";
354         public const string TO = "TO";
355         public const string TRLR = "TRLR";
356         public const string TYPE = "TYPE";
357         public const string VERS = "VERS";
358         public const string WIFE = "WIFE";
359         public const string WILL = "WILL";
360         public const string WWW = "WWW";
361 
362         // non-standard extended tags (other applications)
363         public const string _AWARD = "_AWARD";
364         public const string _BGRO = "_BGRO"; // [MyFamilyTree]
365         public const string _CENN = "_CENN"; // Census Name [BKW6]
366         public const string _ELEC = "_ELEC"; // Election [???]
367         public const string _EXCM = "_EXCM"; // Excommunication [???]
368         public const string _EYES = "_EYES"; // [Gen]
369         public const string _GRP = "_GRP"; // Group record [Genney]
370         public const string _HAIR = "_HAIR"; // [BKW6, PAF]
371         public const string _HOBBY = "_HOBBY";
372         public const string _LOC = "_LOC"; // [GEDCOM 5.5EL]
373         public const string _MARN = "_MARN"; // Married Surname [BKW6]
374         public const string _MDCL = "_MDCL"; // Medical condition [???]
375         public const string _MDNA = "_MDNA"; // [MyFamilyTree]
376         public const string _OBIT = "_OBIT"; // Obituary [???]
377         public const string _PATN = "_PATN"; // Patronymic Name
378         public const string _PLAC = "_PLAC"; // Place/Location record [Family Historian]
379         public const string _PLC = "_PLC"; // Place/Location record [Genney]
380         public const string _POSITION = "_POSITION";
381         public const string _PRIM = "_PRIM"; // [PhpGedView, AQ3, PAF5, FO7]
382         public const string _PRIM_CUTOUT = "_PRIM_CUTOUT"; // [FTB]
383         public const string _RELN = "_RELN"; // Religious Name [BKW6]
384         public const string _STAT = "_STAT";
385         public const string _TRAVEL = "_TRAVEL";
386         public const string _UID = "_UID"; //
387         public const string _YDNA = "_YDNA"; // [MyFamilyTree]
388 
389         // import only
390         public const string _MARNM = "_MARNM"; // Married Surname [AQ3, PAF5, Geni]
391         public const string _MIDN = "_MIDN"; // Middle Name [WikiTree]
392 
393         // non-standard extended tags (GEDKeeper)
394         public const string _BOOKMARK = "_BOOKMARK";
395         public const string _COMM = "_COMM";
396         public const string _FOLDER = "_FOLDER";
397         public const string _GOAL = "_GOAL";
398         public const string _GROUP = "_GROUP";
399         public const string _LANG = "_LANG"; // [GK], outdated, replaced by LANG
400         public const string _MEMBER = "_MEMBER";
401         public const string _MILI = "_MILI";
402         public const string _MILI_DIS = "_MILI_DIS";
403         public const string _MILI_IND = "_MILI_IND";
404         public const string _MILI_RANK = "_MILI_RANK";
405         public const string _PATRIARCH = "_PATRIARCH";
406         public const string _PERCENT = "_PERCENT";
407         public const string _PRIORITY = "_PRIORITY";
408         public const string _RESEARCH = "_RESEARCH";
409         public const string _REV = "_REV";
410         public const string _STARTDATE = "_STARTDATE";
411         public const string _STOPDATE = "_STOPDATE";
412         public const string _STATUS = "_STATUS";
413         public const string _TASK = "_TASK";
414 
415         // non-standard convertible tags
416         public const string _FREL = "_FREL";
417         public const string _MREL = "_MREL";
418     }
419 }
420