Hello! I have an example xml file containing EML that contains a foreign key constraint. When I use EML::read_eml() followed by EML::eml_validate(), it fails to validate the file (even though it validates using https://knb.ecoinformatics.org/emlparser/). After exporting the R object to .xml using EML::write_eml(), the .xml file now fails to validate using https://knb.ecoinformatics.org/emlparser/.
If I remove the foreign key constraints, the file validates in R and the newly exported .xml file also validates using the knb tool.
I suspect that R/EML is introducing invalid eml when importing to R, that these error cause the EML to fail to validate using EML::eml_validate and that the errors are then persist when the file is written back to .xml.

meta<-EML::read_eml("foreign_key_metadata.xml", from="xml")
EML::eml_validate(meta)
[1] FALSE
attr(,"errors")
[1] "Element 'entityReference': This element is not expected. Expected is one of ( constraintDescription, key )."
[2] "Element 'entityReference': This element is not expected. Expected is one of ( constraintDescription, key )."
If I then write the R-object back to .xml, it fails to parse using the knb.ecoinformatics parser:
EML::write_eml(meta, file="foreign_key_export.xml")

Unfortunately, github doesn't support uploading/attaching .xml files, but I am happy to supply the original file via email for the purposes of testing and replication.
Hello! I have an example xml file containing EML that contains a foreign key constraint. When I use EML::read_eml() followed by EML::eml_validate(), it fails to validate the file (even though it validates using https://knb.ecoinformatics.org/emlparser/). After exporting the R object to .xml using EML::write_eml(), the .xml file now fails to validate using https://knb.ecoinformatics.org/emlparser/.
If I remove the foreign key constraints, the file validates in R and the newly exported .xml file also validates using the knb tool.
I suspect that R/EML is introducing invalid eml when importing to R, that these error cause the EML to fail to validate using EML::eml_validate and that the errors are then persist when the file is written back to .xml.
If I then write the R-object back to .xml, it fails to parse using the knb.ecoinformatics parser:
Unfortunately, github doesn't support uploading/attaching .xml files, but I am happy to supply the original file via email for the purposes of testing and replication.