In the <attributes> section of the EML BP, the text states that @id elements are required only if the attribute will be referenced by an annotation or other EML element. This doesn't clearly represent the fact that there is an EML 2.2.0 requirement that any element containing a child <annotation> must have a unique @id attribute, with some exceptions when an annotation is in an <annotations> list references other elements. See the EML documentation here and here for more information. Since this requirement is not defined in the EML schema (XSD) it is difficult to catch this error with standard schema validators. There are a few ways to check this (EML R package, emlvp, and NCEAS EML parser). This WILL cause an error in the EDI congruence checker since it uses the NCEAS EML parser.
**Description and title edited in response to discussion below
In the <attributes> section of the EML BP, the text states that @id elements are required only if the attribute will be referenced by an annotation or other EML element. This doesn't clearly represent the fact that there is an EML 2.2.0 requirement that any element containing a child <annotation> must have a unique @id attribute, with some exceptions when an annotation is in an <annotations> list references other elements. See the EML documentation here and here for more information. Since this requirement is not defined in the EML schema (XSD) it is difficult to catch this error with standard schema validators. There are a few ways to check this (EML R package, emlvp, and NCEAS EML parser). This WILL cause an error in the EDI congruence checker since it uses the NCEAS EML parser.
**Description and title edited in response to discussion below