ISO 19115 make a clear distinction between "set" and "sequence". Quoting section B.4.7 at page 78:
— begin quote —
Set: finite collection of objects, where each object appears in the collection only once. A set shall not contain any duplicated instances. The order of the elements of the set is not specified. This class is documented in full in ISO TS 19103.
Sequence: A sequence refers to a collection of sequential ordering between its elements. Sequences can be repeated, and may be used as a list or an array. This class is documented in full in ISO TS 19103.
— end quote —
Unfortunately, ISO 19115 provides very few hints about the expected collection type for attributes. The only explicit indications I have found are:
- MD_GridSpatialRepresentation.axisDimensionProperties : Sequence<MD_Identifier>
- MD_Georectified.cornerPoints : Sequence<GM_Point>
- ScopeDescription.attributes : Set<GF_AttributeType>
- ScopeDescription.features : Set<GF_FeatureType>
- ScopeDescription.featureInstances : Set<GF_FeatureType>
For all other attributes, I have done a search on "set" and "sequence" keywords and found no hint at all. It is worth to point out that in the above list, all element types except MD_Identifier are external to ISO 19115. The MD_GridSpatialRepresentation.axisDimensionProperties attribute is treated especially since it seems to be the only association to an other ISO 19115 object in which the collection type is explicitly specified. Clearly, axis order matter since it is an essential information for understanding coordinate tuples (e.g. (latitude, longitude) vs (longitude, latitude)). For all other associations, Set may be a default collection type. Sequence could be a default collection type too. None of them seem to violate the specification...
My bet is that Set is the default collection type, because it is consistent with 1) the collection type of non-ISO 19115 objects (namely GF_AttributeType and GF_FeatureType), assuming that the collection appears explicitly as an attribute in ISO 19115 because there is no association to non-ISO 19115 objects and 2) the only place where the type of a collection of ISO 19115 objects is explicitly specified is for Sequence<MD_Identifier>.
It doesn't means that GeoAPI can't use List, since ISO 19115 seems quite open on this issue. The question still open...
For now there is three votes in favor of java.util.List (Stephane, Jody, Frederic), and 0.5 vote in favor of java.util.Set (weakly me; I don't have a strong feeling about that). If there is no additional comments, I will replace Set by List next week before GeoAPI 1.1 release.