protected static Field createField(ComplexType type, XSAttributeDecl element, Type fieldType, boolean isNillable) {
String elementName = element.getName();
XmlString dv = element.getDefaultValue();
String defValue = null;
if (dv != null) {
defValue = dv.value;
}
int flags = 0;
if (defValue == null) {
dv = element.getFixedValue();
if (dv != null) {
defValue = dv.value;
flags |= Field.CONSTANT;
}
}
Set<Constraint> constraints = new HashSet<>();
if (!isNillable) {
constraints.add(NotNullConstraint.get());
}
if (fieldType.isSimpleType()) {
constraints.addAll(fieldType.getConstraints());
}
return type.addField(elementName, fieldType, defValue, flags, constraints);
}