Skip to content

EML seems to have trouble with foreign key constraints #349

@RobLBaker

Description

@RobLBaker

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.

image

 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")

image

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions