The CombinedCurveSegmentPropertyType is not a typical property type referring or including one curve segment object. Instead it contains a choice of either including zero or one CubicBSpline or LineStringSegment elements. This in not typical GML property type use, and may create problems to some implementing software.
Proposal: create a new AbstractCombinedCurveSegmentPropertyType with only the gml:AssociationAttributeGroup and no elements. The create concrete extending types CubicBSplinePropertyType and LineStringSegmentPropertyType and let the elements have the AbstractCombinedCurveSegmentProperty as their substitutionGroup. Then change the type of curveSegment property of the CombinedSegmentedCurveType from CombinedCurveSegmentPropertyType to AbstractCombinedCurveSegmentProperty. This would also make it easier to add more curve segment types later.
The same issue applies to CombinedSegmentedRingType