To get a better feeling of the differences between GEDCOM 5.5.1 and the first release candidate of GEDCOM 7.0, the grammar of both versions (5.5.1 and 7.0) are shown in the table below side-by-side. A similar comparison is available for 5.5.1 vs 5.5.5. Please review the specifications to find more differences, this post just focusses on the grammars.

The following color-coding is used:

    5.5.1 construct not available in 7.0
    New construct in 7.0
    5.5.1 construct changed in 7.0

One big change isn’t highlighted here: the data types. Where values where limited in different sizes in GEDCOM 5.5.1, in GEDCOM 7.0 there are more generic data types without specified maximum length. This also means no more CONT and CONC.

GEDCOM: = GEDCOM Document :=
   
0 <<HEADER>> {1:1} 0 <<HEADER>> {1:1}
0 <<SUBMISSION_RECORD>> {0:1}  
0 <<RECORD>> {0:M} 0 <<RECORD>> {0:M}
0 TRLR {1:1} 0 TRLR {1:1}
   
HEADER: = HEADER :=
   
n HEAD {1:1} n HEAD {1:1}
+1 SOUR <APPROVED_SYSTEM_ID> {1:1} +1 SOUR <Special> {0:1}
+2 VERS <VERSION_NUMBER> {0:1} +2 VERS <Special> {0:1}
+2 NAME <NAME_OF_PRODUCT> {0:1} +2 NAME <Text> {0:1}
+2 CORP <NAME_OF_BUSINESS> {0:1} +2 CORP <Text> {0:1}
+3 <<ADDRESS_STRUCTURE>> {0:1} +3 <<ADDRESS_STRUCTURE>> {0:1}
  +3 PHON <Special> {0:M}
  +3 EMAIL <Special> {0:M}
  +3 FAX <Special> {0:M}
  +3 WWW <Special> {0:M}
+2 DATA <NAME_OF_SOURCE_DATA> {0:1} +2 DATA <Text> {0:1}
+3 DATE <PUBLICATION_DATE> {0:1} +3 DATE <DateExact> {0:1}
  +4 TIME <Time> {0:1}
+3 COPR <COPYRIGHT_SOURCE_DATA> {0:1} +3 COPR <Text> {0:1}
+4 CONT <COPYRIGHT_SOURCE_DATA> {0:M}  
+4 CONC <COPYRIGHT_SOURCE_DATA> {0:M}  
+1 DEST <RECEIVING_SYSTEM_NAME> {0:1} +1 DEST <Special> {0:1}
+1 DATE <TRANSMISSION_DATE> {0:1} +1 DATE <DateExact> {0:1}
+2 TIME <TIME_VALUE> {0:1} +2 TIME <Time> {0:1}
+1 SUBM @<XREF:SUBM>@ {1:1} +1 SUBM @<XREF:SUBM>@ {0:1}
+1 SUBN @<XREF:SUBN>@ {0:1}  
+1 FILE <FILE_NAME> {0:1}  
+1 COPR <COPYRIGHT_GEDCOM_FILE> {0:1} +1 COPR <Text> {0:1}
+1 GEDC {1:1} +1 GEDC {1:1}
+2 VERS <VERSION_NUMBER> {1:1} +2 VERS <Special> {1:1}
+2 FORM <GEDCOM_FORM> {1:1}  
+1 CHAR <CHARACTER_SET> {1:1}  
+2 VERS <VERSION_NUMBER> {0:1}  
+1 LANG <LANGUAGE_OF_TEXT> {0:1} +1 LANG <Special> {0:1}
+1 PLAC {0:1} +1 PLAC {0:1}
+2 FORM <PLACE_HIERARCHY> {1:1} +2 FORM <List:Text> {1:1}
+1 NOTE <GEDCOM_CONTENT_DESCRIPTION> {0:1} +1 <<COMMENT_STRUCTURE>> {0:1}
+2 CONT <GEDCOM_CONTENT_DESCRIPTION> {0:M}  
+2 CONC <GEDCOM_CONTENT_DESCRIPTION> {0:M}  
  +1 SCHMA {0:1}
  +1 <<ADDRESS_STRUCTURE>> {0:1}
   
RECORD: = RECORD :=
   
[ [
n <<FAM_RECORD>> {1:1} n <<FAMILY_RECORD>> {1:1}
| |
n <<INDIVIDUAL_RECORD>> {1:1} n <<INDIVIDUAL_RECORD>> {1:1}
| |
n <<MULTIMEDIA_RECORD>> {1:1} n <<MULTIMEDIA_RECORD>> {1:1}
| |
n <<NOTE_RECORD>> {1:1} n <<SHARED_NOTE_RECORD>> {1:1}
| |
n <<REPOSITORY_RECORD>> {1:1} n <<REPOSITORY_RECORD>> {1:1}
| |
n <<SOURCE_RECORD>> {1:1} n <<SOURCE_RECORD>> {1:1}
| |
n <<SUBMITTER_RECORD>> {1:1} n <<SUBMITTER_RECORD>> {1:1}
] ]
   
FAM_RECORD: = FAMILY_RECORD :=
   
n @<XREF:FAM>@ FAM {1:1} n @XREF:FAM@ FAM {1:1}
+1 RESN <RESTRICTION_NOTICE> {0:1} +1 RESN <List:Enum> {0:1}
  +1 <<FAMILY_ATTRIBUTE_STRUCTURE>> {0:M}
+1 <<FAMILY_EVENT_STRUCTURE>> {0:M} +1 <<FAMILY_EVENT_STRUCTURE>> {0:M}
  +1 <<NON_EVENT_STRUCTURE>> {0:M}
+1 HUSB @<XREF:INDI>@ {0:1} +1 HUSB @<XREF:INDI>@ {0:1}
  +2 PHRASE <Text> {0:1}
+1 WIFE @<XREF:INDI>@ {0:1} +1 WIFE @<XREF:INDI>@ {0:1}
  +2 PHRASE <Text> {0:1}
+1 CHIL @<XREF:INDI>@ {0:M} +1 CHIL @<XREF:INDI>@ {0:M}
  +2 PHRASE <Text> {0:1}
+1 NCHI <COUNT_OF_CHILDREN> {0:1}  
  +1 <<ASSOCIATION_STRUCTURE>> {0:M}
+1 SUBM @<XREF:SUBM>@ {0:M} +1 SUBM @<XREF:SUBM>@ {0:M}
+1 <<LDS_SPOUSE_SEALING>> {0:M} +1 <<LDS_SPOUSE_SEALING>> {0:M}
+1 REFN <USER_REFERENCE_NUMBER> {0:M}  
+2 TYPE <USER_REFERENCE_TYPE> {0:1}  
+1 RIN <AUTOMATED_RECORD_ID> {0:1}  
  +1 <<IDENTIFIER_STRUCTURE>> {0:M}
+1 <<CHANGE_DATE>> {0:1} +1 <<CHANGE_DATE>> {0:1}
  +1 <<CREATION_DATE>> {0:1}
+1 <<NOTE_STRUCTURE>> {0:M} +1 <<NOTE_STRUCTURE>> {0:M}
+1 <<SOURCE_CITATION>> {0:M} +1 <<SOURCE_CITATION>> {0:M}
+1 <<MULTIMEDIA_LINK>> {0:M} +1 <<MULTIMEDIA_LINK>> {0:M}
   
INDIVIDUAL_RECORD: = INDIVIDUAL_RECORD :=
   
n @<XREF:INDI>@ INDI {1:1} n @XREF:INDI@ INDI {1:1}
+1 RESN <RESTRICTION_NOTICE> {0:1} +1 RESN <List:Enum> {0:1}
+1 <<PERSONAL_NAME_STRUCTURE>> {0:M} +1 <<PERSONAL_NAME_STRUCTURE>> {0:M}
+1 SEX <SEX_VALUE> {0:1} +1 SEX <Enum> {0:1}
+1 <<INDIVIDUAL_EVENT_STRUCTURE>> {0:M} +1 <<INDIVIDUAL_EVENT_STRUCTURE>> {0:M}
+1 <<INDIVIDUAL_ATTRIBUTE_STRUCTURE>> {0:M} +1 <<INDIVIDUAL_ATTRIBUTE_STRUCTURE>> {0:M}
  +1 <<NON_EVENT_STRUCTURE>> {0:M}
+1 <<LDS_INDIVIDUAL_ORDINANCE>> {0:M} +1 <<LDS_INDIVIDUAL_ORDINANCE>> {0:M}
+1 <<CHILD_TO_FAMILY_LINK>> {0:M} +1 FAMC @<XREF:FAM>@ {0:M}
  +2 PEDI <Enum> {0:1}
  +3 PHRASE <Text> {0:1}
  +2 STAT <Enum> {0:1}
  +3 PHRASE <Text> {0:1}
  +2 <<NOTE_STRUCTURE>> {0:M}
+1 <<SPOUSE_TO_FAMILY_LINK>> {0:M}  
  +1 FAMS @<XREF:FAM>@ {0:M}
  +2 <<NOTE_STRUCTURE>> {0:M}
+1 SUBM @<XREF:SUBM>@ {0:M} +1 SUBM @<XREF:SUBM>@ {0:M}
+1 <<ASSOCIATION_STRUCTURE>> {0:M} +1 <<ASSOCIATION_STRUCTURE>> {0:M}
+1 ALIA @<XREF:INDI>@ {0:M} +1 ALIA @<XREF:INDI>@ {0:M}
  +2 PHRASE <Text> {0:1}
+1 ANCI @<XREF:SUBM>@ {0:M} +1 ANCI @<XREF:SUBM>@ {0:M}
+1 DESI @<XREF:SUBM>@ {0:M} +1 DESI @<XREF:SUBM>@ {0:M}
+1 RFN <PERMANENT_RECORD_FILE_NUMBER> {0:1}  
+1 AFN <ANCESTRAL_FILE_NUMBER> {0:1}  
+1 REFN <USER_REFERENCE_NUMBER> {0:M}  
+2 TYPE <USER_REFERENCE_TYPE> {0:1}  
+1 RIN <AUTOMATED_RECORD_ID> {0:1}  
  +1 <<IDENTIFIER_STRUCTURE>> {0:M}
+1 <<CHANGE_DATE>> {0:1} +1 <<CHANGE_DATE>> {0:1}
  +1 <<CREATION_DATE>> {0:1}
+1 <<NOTE_STRUCTURE>> {0:M} +1 <<NOTE_STRUCTURE>> {0:M}
+1 <<SOURCE_CITATION>> {0:M} +1 <<SOURCE_CITATION>> {0:M}
+1 <<MULTIMEDIA_LINK>> {0:M} +1 <<MULTIMEDIA_LINK>> {0:M}
   
MULTIMEDIA_RECORD: = MULTIMEDIA_RECORD :=
   
n @<XREF:OBJE>@ OBJE {1:1} n @XREF:OBJE@ OBJE {1:1}
  +1 RESN <List:Enum> {0:1}
+1 FILE <MULTIMEDIA_FILE_REFN> {1:M} +1 FILE <Special> {1:M}
+2 FORM <MULTIMEDIA_FORMAT> {1:1} +2 FORM <Special> {1:1}
+3 TYPE <SOURCE_MEDIA_TYPE> {0:1}  
  +3 MEDI <Enum> {0:1}
  +4 PHRASE <Text> {0:1}
+2 TITL <DESCRIPTIVE_TITLE> {0:1} +2 TITL <Text> {0:1}
+1 REFN <USER_REFERENCE_NUMBER> {0:M}  
+2 TYPE <USER_REFERENCE_TYPE> {0:1}  
+1 RIN <AUTOMATED_RECORD_ID> {0:1}  
  +1 <<IDENTIFIER_STRUCTURE>> {0:M}
+1 <<NOTE_STRUCTURE>> {0:M} +1 <<NOTE_STRUCTURE>> {0:M}
+1 <<SOURCE_CITATION>> {0:M} +1 <<SOURCE_CITATION>> {0:M}
+1 <<CHANGE_DATE>> {0:1} +1 <<CHANGE_DATE>> {0:1}
  +1 <<CREATION_DATE>> {0:1}
   
NOTE_RECORD: = SHARED_NOTE_RECORD :=
   
n @<XREF:NOTE>@ NOTE <SUBMITTER_TEXT> {1:1} n @XREF:SNOTE@ SNOTE <Text> {1:1}
  +1 MIME <Special> {0:1}
  +1 LANG <Special> {0:1}
+1 CONC <SUBMITTER_TEXT> {0:M}  
+1 CONT <SUBMITTER_TEXT> {0:M}  
+1 REFN <USER_REFERENCE_NUMBER> {0:M}  
+2 TYPE <USER_REFERENCE_TYPE> {0:1}  
+1 RIN <AUTOMATED_RECORD_ID> {0:1}  
  +1 <<IDENTIFIER_STRUCTURE>> {0:M}
+1 <<SOURCE_CITATION>> {0:M} +1 <<SOURCE_CITATION>> {0:M}
+1 <<CHANGE_DATE>> {0:1} +1 <<CHANGE_DATE>> {0:1}
  +1 <<CREATION_DATE>> {0:1}
   
REPOSITORY_RECORD: = REPOSITORY_RECORD :=
   
n @<XREF:REPO>@ REPO {1:1} n @XREF:REPO@ REPO {1:1}
+1 NAME <NAME_OF_REPOSITORY> {1:1} +1 NAME <Text> {1:1}
+1 <<ADDRESS_STRUCTURE>> {0:1} +1 <<ADDRESS_STRUCTURE>> {0:1}
  +1 PHON <Special> {0:M}
  +1 EMAIL <Special> {0:M}
  +1 FAX <Special> {0:M}
  +1 WWW <Special> {0:M}
+1 <<NOTE_STRUCTURE>> {0:M} +1 <<NOTE_STRUCTURE>> {0:M}
+1 REFN <USER_REFERENCE_NUMBER> {0:M}  
+2 TYPE <USER_REFERENCE_TYPE> {0:1}  
+1 RIN <AUTOMATED_RECORD_ID> {0:1}  
  +1 <<IDENTIFIER_STRUCTURE>> {0:M}
+1 <<CHANGE_DATE>> {0:1} +1 <<CHANGE_DATE>> {0:1}
  +1 <<CREATION_DATE>> {0:1}
   
SOURCE_RECORD: = SOURCE_RECORD :=
   
n @<XREF:SOUR>@ SOUR {1:1} n @XREF:SOUR@ SOUR {1:1}
+1 DATA {0:1} +1 DATA {0:1}
+2 EVEN <EVENTS_RECORDED> {0:M} +2 EVEN <List:Enum> {0:M}
+3 DATE <DATE_PERIOD> {0:1} +3 DATE <DatePeriod> {0:1}
  +4 PHRASE <Text> {0:1}
+3 PLAC <SOURCE_JURISDICTION_PLACE> {0:1} +3 <<PLACE_STRUCTURE>> {0:1}
+2 AGNC <RESPONSIBLE_AGENCY> {0:1} +2 AGNC <Text> {0:1}
+2 <<NOTE_STRUCTURE>> {0:M} +2 <<NOTE_STRUCTURE>> {0:M}
+1 AUTH <SOURCE_ORIGINATOR> {0:1} +1 AUTH <Text> {0:1}
+2 CONT <SOURCE_ORIGINATOR> {0:M}  
+2 CONC <SOURCE_ORIGINATOR> {0:M}  
+1 TITL <SOURCE_DESCRIPTIVE_TITLE> {0:1} +1 TITL <Text> {0:1}
+2 CONT <SOURCE_DESCRIPTIVE_TITLE> {0:M}  
+2 CONC <SOURCE_DESCRIPTIVE_TITLE> {0:M}  
+1 ABBR <SOURCE_FILED_BY_ENTRY> {0:1} +1 ABBR <Text> {0:1}
+1 PUBL <SOURCE_PUBLICATION_FACTS> {0:1} +1 PUBL <Text> {0:1}
+2 CONT <SOURCE_PUBLICATION_FACTS> {0:M}  
+2 CONC <SOURCE_PUBLICATION_FACTS> {0:M}  
+1 TEXT <TEXT_FROM_SOURCE> {0:1} +1 TEXT <Text> {0:1}
  +2 MIME <Special> {0:1}
  +2 LANG <Special> {0:1}
+2 CONT <TEXT_FROM_SOURCE> {0:M}  
+2 CONC <TEXT_FROM_SOURCE> {0:M}  
+1 <<SOURCE_REPOSITORY_CITATION>> {0:1} +1 <<SOURCE_REPOSITORY_CITATION>> {0:M}
+1 REFN <USER_REFERENCE_NUMBER> {0:M}  
+2 TYPE <USER_REFERENCE_TYPE> {0:1}  
+1 RIN <AUTOMATED_RECORD_ID> {0:1}  
  +1 <<IDENTIFIER_STRUCTURE>> {0:M}
+1 <<CHANGE_DATE>> {0:1} +1 <<CHANGE_DATE>> {0:1}
  +1 <<CREATION_DATE>> {0:1}
+1 <<NOTE_STRUCTURE>> {0:M} +1 <<NOTE_STRUCTURE>> {0:M}
+1 <<MULTIMEDIA_LINK>> {0:M} +1 <<MULTIMEDIA_LINK>> {0:M}
   
SUBMISSION_RECORD: =  
   
n @<XREF:SUBN>@ SUBN {1:1]  
+1 SUBM @<XREF:SUBM>@ {0:1}  
+1 FAMF <NAME_OF_FAMILY_FILE> {0:1}  
+1 TEMP <TEMPLE_CODE> {0:1}  
+1 ANCE <GENERATIONS_OF_ANCESTORS> {0:1}  
+1 DESC <GENERATIONS_OF_DESCENDANTS> {0:1}  
+1 ORDI <ORDINANCE_PROCESS_FLAG> {0:1}  
+1 RIN <AUTOMATED_RECORD_ID> {0:1}  
+1 <<NOTE_STRUCTURE>> {0:M}  
+1 <<CHANGE_DATE>> {0:1}  
   
SUBMITTER_RECORD: = SUBMITTER_RECORD :=
   
n @<XREF:SUBM>@ SUBM {1:1} n @XREF:SUBM@ SUBM {1:1}
+1 NAME <SUBMITTER_NAME> {1:1} +1 NAME <Text> {1:1}
+1 <<ADDRESS_STRUCTURE>> {0:1} +1 <<ADDRESS_STRUCTURE>> {0:1}
  +1 PHON <Special> {0:M}
  +1 EMAIL <Special> {0:M}
  +1 FAX <Special> {0:M}
  +1 WWW <Special> {0:M}
+1 <<MULTIMEDIA_LINK>> {0:M} +1 <<MULTIMEDIA_LINK>> {0:M}
+1 LANG <LANGUAGE_PREFERENCE> {0:3} +1 LANG <Special> {0:M}
+1 RFN <SUBMITTER_REGISTERED_RFN> {0:1}  
+1 RIN <AUTOMATED_RECORD_ID> {0:1}  
  +1 <<IDENTIFIER_STRUCTURE>> {0:M}
+1 <<NOTE_STRUCTURE>> {0:M} +1 <<NOTE_STRUCTURE>> {0:M}
+1 <<CHANGE_DATE>> {0:1} +1 <<CHANGE_DATE>> {0:1}
  +1 <<CREATION_DATE>> {0:1}
   
ADDRESS_STRUCTURE: = ADDRESS_STRUCTURE :=
   
n ADDR <ADDRESS_LINE> {0:1} n ADDR <Special> {1:1}
+1 CONT <ADDRESS_LINE> {0:3}  
+1 ADR1 <ADDRESS_LINE1> {0:1} +1 ADR1 <Special> {0:1}
+1 ADR2 <ADDRESS_LINE2> {0:1} +1 ADR2 <Special> {0:1}
+1 ADR3 <ADDRESS_LINE3> {0:1} +1 ADR3 <Special> {0:1}
+1 CITY <ADDRESS_CITY> {0:1} +1 CITY <Special> {0:1}
+1 STAE <ADDRESS_STATE> {0:1} +1 STAE <Special> {0:1}
+1 POST <ADDRESS_POSTAL_CODE> {0:1} +1 POST <Special> {0:1}
+1 CTRY <ADDRESS_COUNTRY> {0:1} +1 CTRY <Special> {0:1}
n PHON <PHONE_NUMBER> {0:3}  
n EMAIL <ADDRESS_EMAIL> {0:3}  
n FAX <ADDRESS_FAX> {0:3}  
n WWW <ADDRESS_WEB_PAGE> {0:3}  
   
ASSOCIATION_STRUCTURE: = ASSOCIATION_STRUCTURE :=
   
n ASSO @<XREF:INDI>@ {0:1} n ASSO @<XREF:INDI>@ {1:1}
  +1 PHRASE <Text> {0:1}
  +1 ROLE <Enum> {1:1}
  +2 PHRASE <Text> {0:1}
+1 RELA <RELATION_IS_DESCRIPTOR> {1:1}  
+1 <<NOTE_STRUCTURE>> {0:M} +1 <<NOTE_STRUCTURE>> {0:M}
+1 <<SOURCE_CITATION>> {0:M} +1 <<SOURCE_CITATION>> {0:M}
   
CHANGE_DATE: = CHANGE_DATE :=
   
n CHAN {1:1} N CHAN {1:1}
+1 DATE <CHANGE_DATE> {1:1} +1 DATE <DateExact> {1:1}
+2 TIME <TIME_VALUE> {0:1} +2 TIME <Time> {0:1}
+1 <<NOTE_STRUCTURE>> {0:M} +1 <<COMMENT_STRUCTURE>> {0:M}
   
CHILD_TO_FAMILY_LINK: =  
   
n FAMC @<XREF:FAM>@ {1:1}  
+1 PEDI <PEDIGREE_LINKAGE_TYPE> {0:1}  
+1 STAT <CHILD_LINKAGE_STATUS> {0:1}  
+1 <<NOTE_STRUCTURE>> {0:M}  
   
EVENT_DETAIL: = EVENT_DETAIL :=
   
n TYPE <EVENT_DESCRIPTOR> {0:1}  
n DATE <DATE_VALUE> {0:1} n DATE <DateValue> {0:1}
  +1 TIME <Time> {0:1}
  +1 PHRASE <Text> {0:1}
n <<PLACE_STRUCTURE>> {0:1} n <<PLACE_STRUCTURE>> {0:1}
n <<ADDRESS_STRUCTURE>> {0:1} n <<ADDRESS_STRUCTURE>> {0:1}
  n PHON <Special> {0:M}
  n EMAIL <Special> {0:M}
  n FAX <Special> {0:M}
  n WWW <Special> {0:M}
n AGNC <RESPONSIBLE_AGENCY> {0:1} n AGNC <Text> {0:1}
n RELI <RELIGIOUS_AFFILIATION> {0:1} n RELI <Text> {0:1}
n CAUS <CAUSE_OF_EVENT> {0:1} n CAUS <Text> {0:1}
n RESN <RESTRICTION_NOTICE> {0:1} n RESN <List:Enum> {0:1}
  n SDATE <DateValue> {0:1}
  +1 TIME <Time> {0:1}
  +1 PHRASE <Text> {0:1}
  n <<ASSOCIATION_STRUCTURE>> {0:M}
n <<NOTE_STRUCTURE>> {0:M} n <<NOTE_STRUCTURE>> {0:M}
n <<SOURCE_CITATION>> {0:M} n <<SOURCE_CITATION>> {0:M}
n <<MULTIMEDIA_LINK>> {0:M} n <<MULTIMEDIA_LINK>> {0:M}
  n UID <Special> {0:M}
   
FAMILY_EVENT_DETAIL: = FAMILY_EVENT_DETAIL :=
   
n HUSB {0:1} n HUSB {0:1}
+1 AGE <AGE_AT_EVENT> {1:1} +1 AGE <Age> {1:1}
  +2 PHRASE <Text> {0:1}
n WIFE {0:1} n WIFE {0:1}
+1 AGE <AGE_AT_EVENT> {1:1} +1 AGE <Age> {1:1}
  +2 PHRASE <Text> {0:1}
n <<EVENT_DETAIL>> {0:1} n <<EVENT_DETAIL>> {0:1}
   
FAMILY_EVENT_STRUCTURE: = FAMILY_EVENT_STRUCTURE :=
   
[ [
n ANUL {1:1} n [ ANUL | CENS | DIV | DIVF | ENGA |
  MARB | MARC | MARL | MARS ] {1:1}
  +1 TYPE <Text> {0:1}
+1 <<FAMILY_EVENT_DETAIL>> {0:1} +1 <<FAMILY_EVENT_DETAIL>> {0:1}
|  
n CENS {1:1}  
+1 <<FAMILY_EVENT_DETAIL>> {0:1}  
|  
n DIV {1:1}  
+1 <<FAMILY_EVENT_DETAIL>> {0:1}  
|  
n DIVF {1:1}  
+1 <<FAMILY_EVENT_DETAIL>> {0:1}  
|  
n ENGA {1:1}  
+1 <<FAMILY_EVENT_DETAIL>> {0:1}  
|  
n MARB {1:1}  
+1 <<FAMILY_EVENT_DETAIL>> {0:1}  
|  
n MARC {1:1}  
+1 <<FAMILY_EVENT_DETAIL>> {0:1}  
| |
n MARR {1:1} n MARR [Y|<NULL>] {1:1}
  +1 TYPE <Text> {0:1}
+1 <<FAMILY_EVENT_DETAIL>> {0:1} +1 <<FAMILY_EVENT_DETAIL>> {0:1}
| |
n MARL {1:1}  
+1 <<FAMILY_EVENT_DETAIL>> {0:1}  
|  
n MARS {1:1}  
+1 <<FAMILY_EVENT_DETAIL>> {0:1}  
|  
n RESI {1:1}  
+1 <<FAMILY_EVENT_DETAIL>> {0:1}  
|  
n EVEN <EVENT_DISCRIPTOR> {1:1} n EVEN <Text> {1:1}
  +1 TYPE <Text> {1:1}
+1 <<FAMILY_EVENT_DETAIL>> {0:1} +1 <<FAMILY_EVENT_DETAIL>> {0:1}
] ]
   
INDIVIDUAL_ATTRIBUTE_STRUCTURE: = INDIVIDUAL_ATTRIBUTE_STRUCTURE :=
   
[ [
n CAST <CASTE_NAME> {1:1} n [ CAST | DSCR | EDUC | NATI | OCCU | PROP |
  RELI | RESI | TITL ] <Text> {1:1}
  +1 TYPE <Text> {0:1}
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1} +1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}
|  
n DSCR <PHYSICAL_DESCRIPTION> {1:1}  
+1 CONT <PHYSICAL_DESCRIPTION> {0:M}  
+1 CONC <PHYSICAL_DESCRIPTION> {0:M}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n EDUC <SCHOLASTIC_ACHIEVEMENT> {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
| |
n IDNO <NATIONAL_ID_NUMBER> {1:1} n IDNO <Special> {1:1}
  +1 TYPE <Text> {1:1}
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1} +1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}
|  
n NATI <NATIONAL_OR_TRIBAL_ORIGIN> {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
| |
n NCHI <COUNT_OF_CHILDREN> {1:1} n [ NCHI | NMR ] <Integer> {1:1}
  +1 TYPE <Text> {0:1}
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1} +1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}
|  
n NMR <COUNT_OF_MARRIAGES> {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n OCCU <OCCUPATION> {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n PROP <POSSESSIONS> {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n RELI <RELIGIOUS_AFFILIATION> {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n RESI {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
| |
n SSN <SOCIAL_SECURITY_NUMBER> {0:1} n SSN <Special> {1:1}
  +1 TYPE <Text> {0:1}
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1} +1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}
|  
n TITL <NOBILITY_TYPE_TITLE> {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
| |
n FACT <ATTRIBUTE_DESCRIPTOR> {1:1} n FACT <Text> {1:1}
  +1 TYPE <Text> {1:1}
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1} +1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}
] ]
   
INDIVIDUAL_EVENT_DETAIL: = INDIVIDUAL_EVENT_DETAIL :=
   
n <<EVENT_DETAIL>> {1:1} n <<EVENT_DETAIL>> {1:1}
n AGE <AGE_AT_EVENT> {0:1} n AGE <Age> {0:1}
  +1 PHRASE <Text> {0:1}
   
INDIVIDUAL_EVENT_STRUCTURE: = INDIVIDUAL_EVENT_STRUCTURE :=
   
[ [
n BIRT {1:1} n [ BIRT | CHR ] {1:1}
  +1 TYPE <Text> {0:1}
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1} +1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}
+1 FAMC @<XREF:FAM>@ {0:1} +1 FAMC @<XREF:FAM>@ {0:1}
|  
n CHR {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
+1 FAMC @<XREF:FAM>@ {0:1}  
| |
n DEAT {1:1} n DEAT [Y|<NULL>] {1:1}
  +1 TYPE <Text> {0:1}
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1} +1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}
| |
n BURI {1:1} n [ BURI | CREM | BAPM | BARM | BASM | BLES |
  CHRA | CONF | FCOM | ORDN | NATU | EMIG |
  IMMI | CENS | PROB | WILL | GRAD | RETI ] {1:1}
  +1 TYPE <Text> {0:1}
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1} +1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}
|  
n CREM {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
| |
n ADOP {1:1} n ADOP {1:1}
  +1 TYPE <Text> {0:1}
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1} +1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}
+1 FAMC @<XREF:FAM>@ {0:1} +1 FAMC @<XREF:FAM>@ {0:1}
+2 ADOP <ADOPTED_BY_WHICH_PARENT> {0:1} +2 ADOP <Enum> {0:1}
  +3 PHRASE <Text> {0:1}
|  
n BAPM {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n BARM {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n BASM {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n BLES {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n CHRA {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n CONF {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n FCOM {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n ORDN {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n NATU {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n EMIG {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n IMMI {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n CENS {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n PROB {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n WILL {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n GRAD {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
|  
n RETI {1:1}  
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}  
| |
n EVEN {1:1} n EVEN <Text> {1:1}
  +1 TYPE <Text> {1:1}
+1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1} +1 <<INDIVIDUAL_EVENT_DETAIL>> {0:1}
] ]
   
LDS_INDIVIDUAL_ORDINANCE: = LDS_INDIVIDUAL_ORDINANCE :=
   
[ [
n BAPL {1:1} n [ BAPL | CONL | ENDL | INIT ] {1:1}
+1 DATE <DATE_LDS_ORD> {0:1} +1 DATE <DateValue> {0:1}
  +2 TIME <Time> {0:1}
  +2 PHRASE <Text> {0:1}
+1 TEMP <TEMPLE_CODE> {0:1} +1 TEMP <Text> {0:1}
+1 PLAC <PLACE_LIVING_ORDINANCE> {0:1} +1 <<PLACE_STRUCTURE>> {0:1}
+1 STAT <LDS_BAPTISM_DATE_STATUS> {0:1} +1 STAT <Enum> {0:1}
+2 DATE <CHANGE_DATE> {1:1} +2 DATE <DateExact> {1:1}
  +3 TIME <Time> {0:1}
+1 <<NOTE_STRUCTURE>> {0:M} +1 <<NOTE_STRUCTURE>> {0:M}
+1 <<SOURCE_CITATION>> {0:M} +1 <<SOURCE_CITATION>> {0:M}
|  
n CONL {1:1}  
+1 DATE <DATE_LDS_ORD> {0:1}  
+1 TEMP <TEMPLE_CODE> {0:1}  
+1 PLAC <PLACE_LIVING_ORDINANCE> {0:1}  
+1 STAT <LDS_BAPTISM_DATE_STATUS> {0:1}  
+2 DATE <CHANGE_DATE> {1:1}  
+1 <<NOTE_STRUCTURE>> {0:M}  
+1 <<SOURCE_CITATION>> {0:M}  
|  
n ENDL {1:1}  
+1 DATE <DATE_LDS_ORD> {0:1}  
+1 TEMP <TEMPLE_CODE> {0:1}  
+1 PLAC <PLACE_LIVING_ORDINANCE> {0:1}  
+1 STAT <LDS_ENDOWMENT_DATE_STATUS> {0:1}  
+2 DATE <CHANGE_DATE> {1:1}  
+1 <<NOTE_STRUCTURE>> {0:M}  
+1 <<SOURCE_CITATION>> {0:M}  
| |
n SLGC {1:1} n SLGC {1:1}
+1 DATE <DATE_LDS_ORD> {0:1} +1 DATE <DateValue> {0:1}
  +2 TIME <Time> {0:1}
  +2 PHRASE <Text> {0:1}
+1 TEMP <TEMPLE_CODE> {0:1} +1 TEMP <Text> {0:1}
+1 PLAC <PLACE_LIVING_ORDINANCE> {0:1} +1 <<PLACE_STRUCTURE>> {0:1}
+1 FAMC @<XREF:FAM>@ {1:1} +1 FAMC @<XREF:FAM>@ {1:1}
+1 STAT <LDS_CHILD_SEALING_DATE_STATUS> {0:1} +1 STAT <Enum> {0:1}
+2 DATE <CHANGE_DATE> {1:1} +2 DATE <DateExact> {1:1}
  +3 TIME <Time> {0:1}
+1 <<NOTE_STRUCTURE>> {0:M} +1 <<NOTE_STRUCTURE>> {0:M}
+1 <<SOURCE_CITATION>> {0:M} +1 <<SOURCE_CITATION>> {0:M}
] ]
   
LDS_SPOUSE_SEALING: = LDS_SPOUSE_SEALING :=
   
n SLGS {1:1} n SLGS {1:1}
+1 DATE <DATE_LDS_ORD> {0:1} +1 DATE <DateValue> {0:1}
  +2 TIME <Time> {0:1}
  +2 PHRASE <Text> {0:1}
+1 TEMP <TEMPLE_CODE> {0:1} +1 TEMP <Text> {0:1}
+1 PLAC <PLACE_LIVING_ORDINANCE> {0:1} +1 <<PLACE_STRUCTURE>> {0:1}
+1 STAT <LDS_SPOUSE_SEALING_DATE_STATUS> {0:1} +1 STAT <Enum> {0:1}
+2 DATE <CHANGE_DATE> {1:1} +2 DATE <DateExact> {1:1}
  +3 TIME <Time> {0:1}
+1 <<NOTE_STRUCTURE>> {0:M} +1 <<NOTE_STRUCTURE>> {0:M}
+1 <<SOURCE_CITATION>> {0:M} +1 <<SOURCE_CITATION>> {0:M}
   
MULTIMEDIA_LINK: = MULTIMEDIA_LINK :=
   
[  
n OBJE @<XREF:OBJE>@ {1:1} n OBJE @<XREF:OBJE>@ {1:1}
  +1 CROP {0:1}
  +2 TOP <Integer> {0:1}
  +2 LEFT <Integer> {0:1}
  +2 HEIGHT <Integer> {0:1}
  +2 WIDTH <Integer> {0:1}
|  
n OBJE {1:1}  
+1 FILE <MULTIMEDIA_FILE_REFN> {1:M}  
+2 FORM <MULTIMEDIA_FORMAT> {1:1}  
+3 TYPE <SOURCE_MEDIA_TYPE> {0:1}  
+2 TITL <DESCRIPTIVE_TITLE> {0:1}  
]  
   
NOTE_STRUCTURE: = NOTE_STRUCTURE :=
   
[ [
n NOTE @<XREF:NOTE>@ {1:1} n SNOTE @<XREF:SNOTE>@ {1:1}
| |
n NOTE <SUBMITTER_TEXT> {1:1} n NOTE <Text> {1:1}
  +1 <<SOURCE_CITATION>> {0:M}
  +1 MIME <Special> {0:1}
  +1 LANG <Special> {0:1}
+1 CONC <SUBMITTER_TEXT> {0:M}  
+1 CONT <SUBMITTER_TEXT> {0:M}  
] ]
   
PERSONAL_NAME_PIECES: = PERSONAL_NAME_PIECES :=
   
n NPFX <NAME_PIECE_PREFIX> {0:1} n NPFX <Text> {0:M}
n GIVN <NAME_PIECE_GIVEN> {0:1} n GIVN <Text> {0:M}
n NICK <NAME_PIECE_NICKNAME> {0:1} n NICK <Text> {0:M}
n SPFX <NAME_PIECE_SURNAME_PREFIX> {0:1} n SPFX <Text> {0:M}
n SURN <NAME_PIECE_SURNAME> {0:1} n SURN <Text> {0:M}
n NSFX <NAME_PIECE_SUFFIX> {0:1} n NSFX <Text> {0:M}
n <<NOTE_STRUCTURE>> {0:M}  
n <<SOURCE_CITATION>> {0:M}  
   
PERSONAL_NAME_STRUCTURE: = PERSONAL_NAME_STRUCTURE :=
   
n NAME <NAME_PERSONAL> {1:1} n NAME <Personal Name> {1:1}
+1 TYPE <NAME_TYPE> {0:1} +1 TYPE <Enum> {0:1}
  +2 PHRASE <Text> {0:1}
+1 <<PERSONAL_NAME_PIECES>> {0:1} +1 <<PERSONAL_NAME_PIECES>> {0:1}
+1 FONE <NAME_PHONETIC_VARIATION> {0:M}  
+2 TYPE <PHONETIC_TYPE> {1:1}  
+2 <<PERSONAL_NAME_PIECES>> {0:1}  
+1 ROMN <NAME_ROMANIZED_VARIATION> {0:M}  
+2 TYPE <ROMANIZED_TYPE> {1:1}  
  +1 TRAN <Personal Name> {0:M}
  +2 LANG <Special> {1:1}
+2 <<PERSONAL_NAME_PIECES>> {0:1} +2 <<PERSONAL_NAME_PIECES>> {0:1}
  +1 <<NOTE_STRUCTURE>> {0:M}
  +1 <<SOURCE_CITATION>> {0:M}
   
PLACE_STRUCTURE: = PLACE_STRUCTURE :=
   
n PLAC <PLACE_VALUE> {1:1} n PLAC <List:Text> {1:1}
+1 FORM <PLACE_HIERARCHY> {0:1} +1 FORM <List:Text> {0:1}
+1 FONE <PLACE_PHONETIC_VARIATION> {0:M}  
+2 TYPE <PHONETIC_TYPE> {1:1}  
+1 ROMN <PLACE_ROMANIZED_VARIATION> {0:M}  
+2 TYPE <ROMANIZED_TYPE> {1:1}  
  +1 LANG <Special> {0:1}
  +1 TRAN <List:Text> {0:M}
  +2 LANG <Special> {1:1}
+1 MAP {0:1} +1 MAP {0:1}
+2 LATI <PLACE_LATITUDE> {1:1} +2 LATI <Special> {1:1}
+2 LONG <PLACE_LONGITUDE> {1:1} +2 LONG <Special> {1:1}
  +1 EXID <Special> {0:M}
  +2 TYPE <Text> {0:1}
+1 <<NOTE_STRUCTURE>> {0:M} +1 <<NOTE_STRUCTURE>> {0:M}
   
SOURCE_CITATION: = SOURCE_CITATION :=
   
[  
n SOUR @<XREF:SOUR>@ {1:1} n SOUR @<XREF:SOUR>@ {1:1}
+1 PAGE <WHERE_WITHIN_SOURCE> {0:1} +1 PAGE <Text> {0:1}
+1 EVEN <EVENT_TYPE_CITED_FROM> {0:1}  
+2 ROLE <ROLE_IN_EVENT> {0:1}  
+1 DATA {0:1} +1 DATA {0:1}
+2 DATE <ENTRY_RECORDING_DATE> {0:1} +2 DATE <DateValue> {0:1}
  +3 TIME <Time> {0:1}
  +3 PHRASE <Text> {0:1}
+2 TEXT <TEXT_FROM_SOURCE> {0:M} +2 TEXT <Text> {0:M}
+3 CONC <TEXT_FROM_SOURCE> {0:M}  
+3 CONT <TEXT_FROM_SOURCE> {0:M}  
  +3 MIME <Special> {0:1}
  +3 LANG <Special> {0:1}
  +1 EVEN <Enum> {0:1}
  +2 PHRASE <Text> {0:1}
  +2 ROLE <Enum> {0:1}
  +3 PHRASE <Text> {0:1}
+1 QUAY <CERTAINTY_ASSESSMENT> {0:1} +1 QUAY <Enum> {0:1}
+1 <<MULTIMEDIA_LINK>> {0:M} +1 <<MULTIMEDIA_LINK>> {0:M}
+1 <<NOTE_STRUCTURE>> {0:M} +1 <<COMMENT_STRUCTURE>> {0:M}
  +1 SNOTE @<XREF:SNOTE>@ {0:M}
|  
n SOUR <SOURCE_DESCRIPTION> {1:1}  
+1 CONC <SOURCE_DESCRIPTION> {0:M}  
+1 CONT <SOURCE_DESCRIPTION> {0:M}  
+1 TEXT <TEXT_FROM_SOURCE> {0:M}  
+2 CONC <TEXT_FROM_SOURCE> {0:M}  
+2 CONT <TEXT_FROM_SOURCE> {0:M}  
+1 <<MULTIMEDIA_LINK>> {0:M}  
+1 <<NOTE_STRUCTURE>> {0:M}  
+1 QUAY <CERTAINTY_ASSESSMENT> {0:1}  
]  
   
SOURCE_REPOSITORY_CITATION: = SOURCE_REPOSITORY_CITATION :=
   
n REPO @<XREF:REPO>@ {1:1} n REPO @<XREF:REPO>@ {1:1}
+1 <<NOTE_STRUCTURE>> {0:M} +1 <<NOTE_STRUCTURE>> {0:M}
+1 CALN <SOURCE_CALL_NUMBER> {0:M} +1 CALN <Special> {0:M}
+2 MEDI <SOURCE_MEDIA_TYPE> {0:1} +2 MEDI <Enum> {0:1}
  +3 PHRASE <Text> {0:1}
   
SPOUSE_TO_FAMILY_LINK: =  
   
n FAMS @<XREF:FAM>@ {1:1}  
+1 <<NOTE_STRUCTURE>> {0:M}  
   
  COMMENT_STRUCTURE :=
   
  n COMM <Text> {1:1}
  +1 MIME <Special> {0:1}
  +1 LANG <Special> {0:1}
   
  CREATION_DATE :=
   
  n CREA {1:1}
  +1 DATE <DateExact> {1:1}
  +2 TIME <Time> {0:1}
   
  FAMILY_ATTRIBUTE_STRUCTURE :=
   
  [
  n NCHI <Integer> {1:1}
  +1 TYPE <Text> {0:1}
  +1 <<FAMILY_EVENT_DETAIL>> {0:1}
  |
  n RESI <Text> {1:1}
  +1 TYPE <Text> {0:1}
  +1 <<FAMILY_EVENT_DETAIL>> {0:1}
  |
  n FACT <Text> {1:1}
  +1 TYPE <Text> {1:1}
  +1 <<FAMILY_EVENT_DETAIL>> {0:1}
  ]
   
  IDENTIFIER_STRUCTURE :=
   
  [
  n REFN <Special> {1:1}
  +1 TYPE <Text> {0:1}
  |
  n UID <Special> {1:1}
  |
  n EXID <Special> {1:1}
  +1 TYPE <Text> {0:1}
  ]
   
  NON_EVENT_STRUCTURE :=
   
  n NO <Enum> {1:1}
  +1 DATE <DatePeriod> {0:1}
  +2 PHRASE <Text> {0:1}
  +1 <<NOTE_STRUCTURE>> {0:M}
  +1 <<SOURCE_CITATION>> {0:M}