Problem is ElementParameter class has to much responsibilities and fields. Some of fields are required, some are optional. Constructor should reflect which fields are required, but it doesn't. All fields are set via setter methods. This is not correct as developer may forget/doesn't know to set some particular field.
This ticket suggests to move setting some constant values during schema element parameter creation from SettingVisitor class to SchemaElementParameter class.
Separate classes may added for schema child parameters (and a parameter.schema package)