Open smrgeoinfo opened 1 year ago
HiIn V1.0 & V2.0, I believe that one could use an XML attribute rather than the value of the XML element.I believe that in the current version (V1.3) a value can be added in either (or unwisely both)[I’m not in a position to check at the moment, waiting on delayed BA flight out of Heathrow to Sydney]Evert Bleys4 Tudor PlaceHUGHES ACTAustraliaMob: 0411 483 876On 18 Jul 2023, at 19:35, Stephen Richard @.***> wrote: the mcc:URI element can have no content according to the xml schema, the only way to put a URI in is in the uuid attribute defined on gco:AbstractObject. What is the logic for this, or is it an error? from https://schemas.isotc211.org/19115/-3/mcc/1.0/commonClasses.xsd
so in a data instance it looks like this
The rule against not populating both an element & an attribute - where such rule logically exists - can't be enforced in XSD. It has to be in something like Schematron.
In ISO 19139, these "co-constraints" were listed in Table A.1. There wasn't one that matches this particular instance, because ISO 19139 encoded the "logical" URI type specifically as an attribute of type xs:anyURI. I'm pretty sure there weren't any elements that semantically "required" a URI.
In ISO 19115-1:2014, only conceptIdentifier uses the "commonly used" class URI
I'm not sure why ISO 19115-3 didn't include a "co-constraint" requirement on the anyURI type to say that the URI should be in the attribute, or only in one of the attribute & the element.
I guess I'm to blame on this one... slipped through the cracks somehow.
possible fixes...
for <complexType name="URI_Type">
URI as string value in mcc:URI
<extension base="gco:AbstractObject_Type">
<sequence>
<element name="uri" type="gco:CharacterString_PropertyType"/>
</sequence>
</extension>
OR uri attribute on mcc:URI
<extension base="gco:AbstractObject_Type">
<sequence/>
<attribute name="uri" type="xs:anyURI"/>
</extension>
....
the mcc:URI element can have no content according to the xml schema, the only way to put a URI in is in the uuid attribute defined on gco:AbstractObject. What is the logic for this, or is it an error?
from https://schemas.isotc211.org/19115/-3/mcc/1.0/commonClasses.xsd
so in a data instance it looks like this