private AttributeType createComplexAttributeType(final Name assignedName,
final Collection<PropertyDescriptor> schema,
final XSDComplexTypeDefinition typeDefinition, final AttributeType superType) {
AttributeType abstractFType = getType(GML.getNameSpace(), GML.getAbstractFeatureType().getLocalPart());
assert abstractFType != null;
boolean isFeatureType = isDerivedFrom(typeDefinition, abstractFType.getName());
boolean isAbstract = false;
List<Filter> restrictions = Collections.emptyList();
InternationalString description = null;
AttributeType type;
if (isFeatureType) {
type = typeFactory.createFeatureType(assignedName, schema, null, isAbstract,
restrictions, superType, description);
} else {
boolean isIdentifiable = isIdentifiable((XSDComplexTypeDefinition) typeDefinition);
type = typeFactory.createComplexType(assignedName, schema, isIdentifiable, isAbstract,
restrictions, superType, description);
}
return type;
}