The constraint in MD_MaintenanceInformation (Fig. 10 of ISO 19115-1, and Table B.6) says at least one of maintenanceAndUpdateFrequency or userDefinedMaintenanceFrequency must be present: {count (maintenanceAndUpdateFrequency + userDefinedMaintenanceFrequency) >0}.
This should be updated to include maintenanceDate, that is, either
{count (maintenanceAndUpdateFrequency + userDefinedMaintenanceFrequency + maintenanceDate) >0}, or
changed to replace maintenanceAndUpdateFrequency (a codelist type) with the _CIDate (date/date-time) type maintenanceDate: {count (userDefinedMaintenanceFrequency + maintenanceDate) >0}
The reason: is to make MD_MaintenanceInformation more useful for the purpose of automatic checking for updates:
Only userDefinedMaintenanceFrequency and maintenanceDate are useful for automated maintenance, (the values in the _MDMaintenanceFrequencyCode codelist are too nebulous to use for the purposes of automatic checking for updates).
Having only one of userDefinedMaintenanceFrequency and maintenanceDate is sufficient for automated processing.
If maintenanceDate or userDefinedMaintenanceFrequency is encoded, the codelist value in maintenanceAndUpdateFrequency is redundant for automated processing (it may be useful for human viewing, though it would need to be validated in comparison to the period or date encoded in userDefinedMaintenanceFrequency and maintenanceDate).
The constraint in MD_MaintenanceInformation (Fig. 10 of ISO 19115-1, and Table B.6) says at least one of maintenanceAndUpdateFrequency or userDefinedMaintenanceFrequency must be present:
{count (maintenanceAndUpdateFrequency + userDefinedMaintenanceFrequency) >0}
.This should be updated to include maintenanceDate, that is, either
{count (maintenanceAndUpdateFrequency + userDefinedMaintenanceFrequency + maintenanceDate) >0}
, or{count (userDefinedMaintenanceFrequency + maintenanceDate) >0}
The reason: is to make MD_MaintenanceInformation more useful for the purpose of automatic checking for updates: