Among the things INSPIRE implementers can do to increase the quality of their INSPIRE datasets, the correct use of voidable elements deserves a special mention. The concept of voidable could generate confusion in the INSPIRE implementer, who could be tempted by the erroneous equivalence ‘voidable = optional to provide’.
With reference to the relevant definition in the ‘D2.5: Generic Conceptual Model’, the «voidable» stereotype does not give any information on whether or not a characteristic exists in the real world (this is expressed using multiplicity) but conversely it is used to state that no corresponding value is contained in the source spatial data set maintained by the data provider or that no corresponding value can be derived from existing values at reasonable costs.
Both mandatory and optional elements of a spatial object may be <voidable>.
Let’s consider the different cases:
at least one value for this characteristic of the spatial object exists in the real world (i.e. minimum multiplicity =1), therefore a value has to be provided – either the corresponding value (if available in the data set maintained by the data provider) or the value of void.
this characteristic of the spatial object may or may not exist in the real world (minOccurs="0") . An empty value implies that the characteristic is not present in the real world, while a value of void could be used to state that the characteristic may exist but that no corresponding value is contained in the source spatial data.
The reason for a ‘void’ value should be provided in the nilReason attribute choosing a value from the VoidReasonValue code list: