Bug #2212


Several bug fixes for the eml2nbii.xsl stylesheet (transforming EML metadata to the federal standard, BDP)

Added by Inigo Gil over 17 years ago.

eml - general bugs
Target version:
Start date:
Due date:
% Done:


Estimated time:



Several bug fixes improved the stylesheet eml2nbii.xsl. This stylesheet converts
EML documents into the federal standard format BDP.

The stylesheet was delivered to eml-dev, and resides in the LNO CVS.

Here is a log of the changes/fixes

  • There are about 50 issues (some critical metadata loss) solved in this
    revision. Mostly are
  • metadata sections that were not completely mapped from the EML to the BDP
  • Additionally, there are a few other improvements in the mapping.
  • This revision, 3000+ lines, previous 1600. *
    • Itemized list of changes. NOTE, line numbers refer to the previous version
      (revision 1.21) of "eml2nbii.xsl" *
  • line 51: Make all possible metadata transformations, that is, set the
    variable $show_optional to true (1)
  • line 141: Loop over all entities in EML; Previosuly, only dataTable,
    spatialRaster and spatialVector considered. "view", "storedProcedure" and
    "otherEntity" added.
  • hard coded content values changed to english (dataTable to
    tabular digital data, etc)
  • line 148: BDP "Sername" (series) contents not mapped. Added EML"series"
    content, if populated in the EML instance.
  • line 158: BDP "pubPlace" contents not mapped. Added EML "pubPlace" content
    when used.
  • line 161: BDP "publish" contents not mapped. Added EML "publisher" individual
    and org. name when used.
  • line 172: BDP "onlink" contents not mapped. Added EML
    "distribution/online/url" when used.
  • line 178: Odd hard coded value removed. It is possible that the author meant
    some action.
  • line 196: BDP "purpose" contents not mapped. Added EML "purpose"
  • line 200: BDP "supplinf" contents not mapped. Added EML "additionalInfo"
  • line 243: Handling multiple single data time elements addressed (for each..),
    gelogical Scale / Alternatetimescale, etc. About 300+ lines of code replace
    about 120 of them
  • line 333: Currentness element hard coded to "as it was when data was compiled"
  • line 330: Comment change
  • line 335: Added all possible EML maintenance contents to map into BDP's update
    field. Also, there was a bug in the conditional statement.
  • line 367: Added bounding altitudes mapping to the geographic coverage mapping
    (Not considered before)
  • line 369: Added the G-poligon mapping.
  • line 539: Added taxonomic keywords, previously forced to NONE.
  • line 562: Added the case of optional classification system elements and other
    taxonomic-related metadata groups (230 lines of code)
  • line 607, 620: Access element code group duplicated for use and access
    constraints elements in BDP. Not quite accurate granularity. Removed duplicate code
  • line 607: Access element incomplete, the EML intellectual Rights section is
    relevant here. Add code.
  • line 633: Added EML contact info. Need handle refs.
  • line 641: Added in "datacred" (credit) info from EML "associated parties" and
    "funding" agency.
  • line 663: Addition of metadata: Attemting to use section 2 of BDP: Data
    Quality Info. Some sections from EML methods can be used here. quite a bit of
    code added
  • sections 3 and 4 of BDP skipped for now.
  • line 791: Misleading/Obsolete comments refined.
  • line 792: Include all EML dataset entities; add storedProcedure, view and
    otherEntity types.
  • line 794: Not sure about the loop logic. Need testing.
  • line 886: Textdomain from attribute type nominal or ordinal mapped correctly
    as is to "unrepresentable domain"
  • line 911: Unit type added to BDPs "range domain" from EML's attributes of type
    interval or ratio.
  • line 915: EMLs date time attribute type mapped correctly to unrepresentable
  • line 921: THIS MAY NEED A CHANGE. accuracy missing. It is not exactly the
    precision, but if EMLs attr. precision exists, it is mapped to BDPs attr.
    accuracy for the sake of preserving metadata.
  • line 931: This conditional is out of place: there is no need of a EML physical
    element to populate this element. All you need is a "publisher" or a "contact".
    An distribution/online element helps.
  • line 936: Distribution element. The distributor should be the publisher. If
    the publisher is not specified, it could default to the contact. Options included
  • line 960: Contact org mapped.
  • line 972: Contact person mapped
  • line 984: Contact person mapped
  • line 1058: Phone mapped better
  • line 1072: Fax mapped
  • line 1078: Email mapped
  • line 1102: In the previous version, the BDP element distribution info is only
    mapped if the EML physical element is populated. We consider the case where the
    EML "distribution" exists,
  • this opens a new case (lots of code)
  • line 1122: Sometimes the "data format " geoform is placed depending on the
    entity we have in EML (data table, spatial vector, etc)
  • line 1257: Clarification added to the hard coded text.
  • line 1338: In practice, both metadata and data have the same publication date
    (pubDate), therefore pubdate of EML data mapped to pub date of BDP metadata
  • line 1351: Try to map the metadataprovider as the metadta creator, otherwise
    (metadata provider not present in EML) default to the EML contact
  • line 1386: add contact organization or contact person name even though we
    placed already one or the other.
  • line 1475: map better the phone
  • line 1490: map the fax
  • line 1495: most importantly, map the email. *

Also available in: Atom PDF