Most of the discussion has centered on the debate of if FeatureType is an AttributeType or not (specifically a ComplexAttribute).

Argument For FeatureType as a ComplexType: Feature represents content that can be navigated by xpath in exactly the same manner as a complex content. Whatever problems we run into with Feature we will also run into with complex content.

Argument for AttributeType refering to a FeatureType: Some of the concerns of AttributeType are not applicable to FeatureType (such as multiplicity for example).

Design Ideas (No Decision reached yet):

class Type {
}
class ComplexType extends Type {
   List<Type> types();
}
class Complex extends Attribtue {
   ComplexType getType();
   List<Attribute> attributes();
   List<Type> types();
   List<Object) values();
}
class FeatureType extends ComplexType {
}
class FeatureCollectionType extends FeatureType {   
}

Attachments: