ISO 19115 (19139) – UML Diagrams (Pragmatic Subset)


1) Core Overview

classDiagram
    direction LR
    class MD_Metadata {
      +fileIdentifier : CharacterString [0..1]
      +language : LanguageCode [0..1]
      +characterSet : MD_CharacterSetCode [0..1]
      +parentIdentifier : CharacterString [0..1]
      +hierarchyLevel : MD_ScopeCode [0..*]
      +dateStamp : Date|DateTime [1]
      +metadataStandardName : CharacterString [0..1]
      +metadataStandardVersion : CharacterString [0..1]
    }

    class MD_Identification
    class MD_Distribution
    class DQ_DataQuality
    class MD_ReferenceSystem

    MD_Metadata "1" --> "1..*" MD_Identification : identificationInfo
    MD_Metadata "1" --> "0..1" MD_Distribution : distributionInfo
    MD_Metadata "1" --> "0..*" DQ_DataQuality : dataQualityInfo
    MD_Metadata "1" --> "0..*" MD_ReferenceSystem : referenceSystemInfo

2) Identification Package

classDiagram
    direction LR
    class MD_DataIdentification {
      +abstract : CharacterString [1]
      +purpose : CharacterString [0..1]
      +status : MD_ProgressCode [0..*]
      +language : LanguageCode [0..*]
      +topicCategory : MD_TopicCategoryCode [0..*]
    }

    class CI_Citation {
      +title : CharacterString [1]
      +alternateTitle : CharacterString [0..*]
      +date : CI_Date [0..*]
      +edition : CharacterString [0..1]
      +identifier : MD_Identifier [0..*]
    }

    class CI_ResponsibleParty {
      +individualName : CharacterString [0..1]
      +organisationName : CharacterString [0..1]
      +positionName : CharacterString [0..1]
      +role : CI_RoleCode [1]
    }

    class MD_MaintenanceInformation
    class MD_BrowseGraphic
    class MD_Keywords
    class MD_Constraints
    class MD_LegalConstraints
    class MD_SecurityConstraints
    class MD_AggregateInformation
    class EX_Extent

    MD_DataIdentification "1" --> "1" CI_Citation : citation
    MD_DataIdentification "1" --> "0..*" CI_ResponsibleParty : pointOfContact
    MD_DataIdentification "1" --> "0..*" MD_MaintenanceInformation : resourceMaintenance
    MD_DataIdentification "1" --> "0..*" MD_BrowseGraphic : graphicOverview
    MD_DataIdentification "1" --> "0..*" MD_Keywords : descriptiveKeywords
    MD_DataIdentification "1" --> "0..*" MD_Constraints : resourceConstraints
    MD_DataIdentification "1" --> "0..*" MD_LegalConstraints : resourceConstraints
    MD_DataIdentification "1" --> "0..*" MD_SecurityConstraints : resourceConstraints
    MD_DataIdentification "1" --> "0..*" MD_AggregateInformation : aggregationInfo
    MD_DataIdentification "1" --> "0..*" EX_Extent : extent

3) Citation & Party Package

classDiagram
    direction LR
    class CI_Citation {
      +title : CharacterString [1]
      +alternateTitle : CharacterString [0..*]
      +date : CI_Date [0..*]
      +edition : CharacterString [0..1]
      +identifier : MD_Identifier [0..*]
    }

    class CI_Date {
      +date : Date|DateTime [1]
      +dateType : CI_DateTypeCode [1]
    }

    class MD_Identifier {
      +code : CharacterString [1]
      +codespace : CharacterString [0..1]
    }

    class CI_ResponsibleParty {
      +individualName : CharacterString [0..1]
      +organisationName : CharacterString [0..1]
      +positionName : CharacterString [0..1]
      +role : CI_RoleCode [1]
    }

    class CI_Contact
    class CI_OnlineResource

    CI_ResponsibleParty "1" --> "0..1" CI_Contact : contactInfo
    CI_Contact "1" --> "0..*" CI_OnlineResource : onlineResource

4) Distribution Package

classDiagram
    direction LR
    class MD_Distribution

    class MD_Format {
      +name : CharacterString [1]
      +version : CharacterString [0..1]
    }

    class MD_DigitalTransferOptions {
      +unitsOfDistribution : CharacterString [0..1]
      +transferSize : Real [0..1]
    }

    class CI_OnlineResource {
      +linkage : URL [1]
      +protocol : CharacterString [0..1]
      +name : CharacterString [0..1]
      +description : CharacterString [0..1]
      +function : CI_OnLineFunctionCode [0..1]
    }

    class MD_Distributor

    MD_Distribution "1" --> "0..*" MD_Format : distributionFormat
    MD_Distribution "1" --> "0..*" MD_DigitalTransferOptions : transferOptions
    MD_Distribution "1" --> "0..*" MD_Distributor : distributor
    MD_DigitalTransferOptions "1" --> "0..*" CI_OnlineResource : onLine

5) Extent Package

classDiagram
    direction LR
    class EX_Extent {
      +description : CharacterString [0..1]
    }

    class EX_GeographicBoundingBox {
      +westBoundLongitude : Decimal [1]
      +eastBoundLongitude : Decimal [1]
      +southBoundLatitude : Decimal [1]
      +northBoundLatitude : Decimal [1]
    }

    class EX_GeographicExtent
    class EX_TemporalExtent
    class EX_SpatialTemporalExtent
    class EX_VerticalExtent {
      +minimumValue : Real [0..1]
      +maximumValue : Real [0..1]
      +verticalCRS : RS_Identifier [0..1]
    }

    EX_Extent "1" --> "0..*" EX_GeographicExtent : geographicElement
    EX_Extent "1" --> "0..*" EX_TemporalExtent : temporalElement
    EX_Extent "1" --> "0..*" EX_SpatialTemporalExtent : temporalElement
    EX_Extent "1" --> "0..*" EX_VerticalExtent : verticalElement
    EX_GeographicExtent <|-- EX_GeographicBoundingBox

6) Data Quality Package

classDiagram
    direction LR
    class DQ_DataQuality
    class DQ_Scope {
      +level : MD_ScopeCode [0..1]
    }
    class DQ_Element
    class LI_Lineage {
      +statement : CharacterString [0..1]
    }
    class LI_ProcessStep
    class LI_Source

    DQ_DataQuality "1" --> "1" DQ_Scope : scope
    DQ_DataQuality "1" --> "0..*" DQ_Element : report
    DQ_DataQuality "1" --> "0..1" LI_Lineage : lineage
    LI_Lineage "1" --> "0..*" LI_ProcessStep : processStep
    LI_Lineage "1" --> "0..*" LI_Source : source

7) Reference System Package

classDiagram
    direction LR
    class MD_ReferenceSystem
    class RS_Identifier {
      +code : CharacterString [1]
      +codespace : CharacterString [0..1]
      +version : CharacterString [0..1]
    }

    MD_ReferenceSystem "1" --> "0..1" RS_Identifier : referenceSystemIdentifier

8) CodeLists (Enumerations)

classDiagram
    direction LR
    class CI_RoleCode {
      <<enumeration>>
      resourceProvider
      custodian
      owner
      user
      distributor
      originator
      pointOfContact
      processor
      publisher
      author
    }

    class MD_ScopeCode {
      <<enumeration>>
      dataset
      series
      service
      tile
      feature
      attribute
      collectionHardware
      collectionSession
    }

    class MD_SpatialRepresentationTypeCode {
      <<enumeration>>
      vector
      grid
      textTable
      tin
      stereoModel
      video
    }

    class MD_ProgressCode {
      <<enumeration>>
      completed
      historicalArchive
      obsolete
      onGoing
      planned
      required
      underDevelopment
    }

    class CI_OnLineFunctionCode {
      <<enumeration>>
      download
      information
      offlineAccess
      order
      search
    }

    class MD_TopicCategoryCode {
      <<enumeration>>
      farming
      biota
      boundaries
      climatologyMeteorologyAtmosphere
      environment
      geoscientificInformation
      health
      imageryBaseMapsEarthCover
      inlandWaters
      intelligenceMilitary
      location
      oceans
      planningCadastre
      society
      structure
      transportation
      utilitiesCommunication
      elevation
    }

Notes

  • This is a focused subset covering core ISO 19115/19139 concepts used most often in practice.