The v3.0 Level A model contains a new class PositionConfidenceEllipse. The definition property of this class states that it describes an ellipsoidal shape that describes the positional accuracy of the point corresponding to "a predefined confidence level (e.g. 95 %)". This confidence value is not stated anywhere in the model! Knowing an ellipsoidal confidence area without knowing the corresponding confidence level seems useless.
1) Add an attribute to the class to specify the corresponding confidence level in %.
The attributes semiMajorAxisLength and semiMinorAxisLength are typed MetresAsFloat. This type allows for extremely large values (2^24-1 * 2^104). Nevertheless, the corresponding xxxCodedError have a value "outOfRange". Actually, it is the only value besides the value "unavailable".
"unavailable" seems useless for an optional attribute. What would be the semantic difference between the attribute not being present in a data instance or the value being present with any possible value and the corresponding error being set too "unavailable"?
"outOfRange" is confusing, since it states that the value is exceeding 40.93m. What would a data set with value 50 and "outOfRange" mean? It doesn't seem wise to allow large values and hide that most of them are invalid in the definition of a corresponding errors flag's value! If the limit of 40.93m is semantically intended, a new datatype should be specialised from MetresAsFloat that has corresponding facets limiting the value space.
2) Remove literal "unavailable" from enumeration "PositionConfidenceCodedErrorEnum".
3) Change datatype of attributes semiMajorAxisLength and semiMinorAxisLength to a new typed specialised from MeteresAsFloat with facets limiting the permissible value space to the range stated in the definition of the corresponding xxxCodedError attributes.