04-04-2019 08:46 AM
HI.
I'm having a problem regarding the interface created based on a profile.
IHAC that has a custom profile respects INSPIRE Metadata Core elements and extends some elements.
For instance, the EX_Extent has in INSPIRE Core EX_GeographicBoundingBox that is defined like this:
<gmd:extent> <gmd:EX_Extent> <gmd:geographicElement> <gmd:EX_GeographicBoundingBox> <gmd:westBoundLongitude> <gco:Decimal>-15.00</gco:Decimal> </gmd:westBoundLongitude> <gmd:eastBoundLongitude> <gco:Decimal>45.00</gco:Decimal> </gmd:eastBoundLongitude> <gmd:southBoundLatitude> <gco:Decimal>35.00</gco:Decimal> </gmd:southBoundLatitude> <gmd:northBoundLatitude> <gco:Decimal>72.00</gco:Decimal> </gmd:northBoundLatitude> </gmd:EX_GeographicBoundingBox> </gmd:geographicElement> </gmd:EX_Extent> </gmd:extent>
In the custom profile the customer has defined a new field inside gmd:geographicElement called EX_GeographicDescription.
The output should be like:
<gmd:extent> <gmd:EX_Extent> <gmd:geographicElement> <gmd:EX_GeographicDescription> <gmd:extentTypeCode> <gco:Boolean>true</gco:Boolean> </gmd:extentTypeCode> <gmd:geographicIdentifier> <gmd:MD_Identifier> <gmd:code> <gco:CharacterString>NUTS3:PT11</gco:CharacterString> </gmd:code> </gmd:MD_Identifier> </gmd:geographicIdentifier> </gmd:EX_GeographicDescription> </gmd:geographicElement> </gmd:EX_Extent> </gmd:extent>
Both elements should be mandatory.
If I put both elements in the definition of the profile:
<MetadataEntity shortname="Extent"> <Name>gmd:EX_Extent</Name> <MetadataElement shortname="exDesc"> <Name>gmd:description</Name> <Obligation>Optional</Obligation> <MaximumOccurrence>1</MaximumOccurrence> <DataType>CharacterString</DataType> </MetadataElement> <MetadataElement shortname="geoEle"> <Name>gmd:geographicElement</Name> <Obligation>Mandatory</Obligation> <MaximumOccurrence>N</MaximumOccurrence> <DataType>Association</DataType> <Domain>EX_GeographicBoundingBox</Domain> <MetadataEntity shortname="GeoBndBox"> <Name>gmd:EX_GeographicBoundingBox</Name> <MetadataElement shortname="exTypeCode"> <Name>gmd:extentTypeCode</Name> <DataType>Boolean</DataType> </MetadataElement> <MetadataElement shortname="westBL"> <Name>gmd:westBoundLongitude</Name> <Obligation>Mandatory</Obligation> <MaximumOccurrence>1</MaximumOccurrence> <DataType>Decimal</DataType> <UIProperties> <DefaultValue>0.0</DefaultValue> </UIProperties> </MetadataElement> <MetadataElement shortname="eastBL"> <Name>gmd:eastBoundLongitude</Name> <Obligation>Mandatory</Obligation> <MaximumOccurrence>1</MaximumOccurrence> <DataType>Decimal</DataType> <UIProperties> <DefaultValue>0.0</DefaultValue> </UIProperties> </MetadataElement> <MetadataElement shortname="southBL"> <Name>gmd:southBoundLatitude</Name> <Obligation>Mandatory</Obligation> <MaximumOccurrence>1</MaximumOccurrence> <DataType>Decimal</DataType> <UIProperties> <DefaultValue>0.0</DefaultValue> </UIProperties> </MetadataElement> <MetadataElement shortname="northBL"> <Name>gmd:northBoundLatitude</Name> <Obligation>Mandatory</Obligation> <MaximumOccurrence>1</MaximumOccurrence> <DataType>Decimal</DataType> <UIProperties> <DefaultValue>0.0</DefaultValue> </UIProperties> </MetadataElement> </MetadataEntity> </MetadataElement> <MetadataElement shortname="geoEle"> <Name>gmd:geographicElement</Name> <Obligation>Optional</Obligation> <MaximumOccurrence>N</MaximumOccurrence> <DataType>Association</DataType> <Domain>EX_GeographicDescription</Domain> <MetadataEntity shortname="GeoDesc"> <Name>gmd:EX_GeographicDescription</Name> <MetadataElement shortname="exTypeCode"> <Name>gmd:extentTypeCode</Name> <DataType>Boolean</DataType> </MetadataElement> <MetadataElement shortname="geoId"> <Name>gmd:geographicIdentifier</Name> <Obligation>Mandatory</Obligation> <MaximumOccurrence>1</MaximumOccurrence> <DataType>Association</DataType> <Domain>MD_Identifier</Domain> <MetadataEntity shortname="geoId"> <Name>gmd:MD_Identifier</Name> <MetadataElement shortname="identCode"> <Name>gmd:code</Name> <Obligation>Mandatory</Obligation> <MaximumOccurrence>1</MaximumOccurrence> <DataType>CodeList</DataType> <Domain>MD_IdentifierCode</Domain> </MetadataElement> </MetadataEntity> </MetadataElement> </MetadataEntity> </MetadataElement> </MetadataEntity>
When trying to add or to edit a record it crashes because it says that there is already a element with the same name added. The element is gmd:geographicElement.
If I change the profile to:
<MetadataEntity shortname="Extent"> <Name>gmd:EX_Extent</Name> <MetadataElement shortname="exDesc"> <Name>gmd:description</Name> <Obligation>Optional</Obligation> <MaximumOccurrence>1</MaximumOccurrence> <DataType>CharacterString</DataType> </MetadataElement> <MetadataElement shortname="geoEle"> <Name>gmd:geographicElement</Name> <Obligation>Mandatory</Obligation> <MaximumOccurrence>N</MaximumOccurrence> <DataType>Association</DataType> <Domain>EX_GeographicBoundingBox|EX_GeographicDescription</Domain> <MetadataEntity shortname="GeoBndBox"> <Name>gmd:EX_GeographicBoundingBox</Name> <MetadataElement shortname="exTypeCode"> <Name>gmd:extentTypeCode</Name> <DataType>Boolean</DataType> </MetadataElement> <MetadataElement shortname="westBL"> <Name>gmd:westBoundLongitude</Name> <Obligation>Mandatory</Obligation> <MaximumOccurrence>1</MaximumOccurrence> <DataType>Decimal</DataType> <UIProperties> <DefaultValue>0.0</DefaultValue> </UIProperties> </MetadataElement> <MetadataElement shortname="eastBL"> <Name>gmd:eastBoundLongitude</Name> <Obligation>Mandatory</Obligation> <MaximumOccurrence>1</MaximumOccurrence> <DataType>Decimal</DataType> <UIProperties> <DefaultValue>0.0</DefaultValue> </UIProperties> </MetadataElement> <MetadataElement shortname="southBL"> <Name>gmd:southBoundLatitude</Name> <Obligation>Mandatory</Obligation> <MaximumOccurrence>1</MaximumOccurrence> <DataType>Decimal</DataType> <UIProperties> <DefaultValue>0.0</DefaultValue> </UIProperties> </MetadataElement> <MetadataElement shortname="northBL"> <Name>gmd:northBoundLatitude</Name> <Obligation>Mandatory</Obligation> <MaximumOccurrence>1</MaximumOccurrence> <DataType>Decimal</DataType> <UIProperties> <DefaultValue>0.0</DefaultValue> </UIProperties> </MetadataElement> </MetadataEntity> <MetadataEntity shortname="GeoDesc"> <Name>gmd:EX_GeographicDescription</Name> <MetadataElement shortname="exTypeCode"> <Name>gmd:extentTypeCode</Name> <DataType>Boolean</DataType> </MetadataElement> <MetadataElement shortname="geoId"> <Name>gmd:geographicIdentifier</Name> <Obligation>Mandatory</Obligation> <MaximumOccurrence>1</MaximumOccurrence> <DataType>Association</DataType> <Domain>MD_Identifier</Domain> <MetadataEntity shortname="geoId"> <Name>gmd:MD_Identifier</Name> <MetadataElement shortname="identCode"> <Name>gmd:code</Name> <Obligation>Mandatory</Obligation> <MaximumOccurrence>1</MaximumOccurrence> <DataType>CodeList</DataType> <Domain>MD_IdentifierCode</Domain> </MetadataElement> </MetadataEntity> </MetadataElement> </MetadataEntity> </MetadataElement> </MetadataEntity>
It works but has expected it only puts one element and we have to add the other manually on the editor.
Does anyone knows if there is any possibliity to change this and allow the profile to have both elements with the same tag name but with different content?
TIA
04-05-2019 03:24 PM
Hi Antonio,
According to DEV, this is considered a WAD as the original design did not take into account for such scenario.
You may consider:
(1) Ideation
https://community.hexagongeospatial.com/t5/About-the-Community/Ideation-guidelines/ba-p/16696
or
(2) Developer credit/ticket:
to request such enhancement.
Regards,
Frank