if (attrsPresentMemberRequired) {
privateImplSourceFile.print("0, ");
}
for (int i = 0; i < attributeUses.size(); i++) {
XSAttributeUse attributeUse = attributeUses.get(i);
XSSimpleTypeDefinition simpleTypeDefinition = Util.getType(attributeUse);
Variety variety = Util.findVariety(simpleTypeDefinition);
if (variety == Variety.ATOMIC) {
if (Util.hasDefaultValue(attributeUse)) {
if (Util.hasFacetEnum(simpleTypeDefinition)) {
String constraintValueString = attributeUse.getConstraintValue();
List<String> enumValues = Util.stringListToList(simpleTypeDefinition.getLexicalEnumeration());
int j = 0;
while (j < enumValues.size()) {
if (enumValues.get(j).equals(constraintValueString)) {
break;
}
j++;
}
privateImplSourceFile.print(Util.createEnumValueName(cppEnumOrUnionNameCreator
.createEnumTypeName(simpleTypeDefinition, getElementStack()), enumValues, j,
simpleTypeDefinition, config));
} else {
String cppAtomicType = Util.findXSDSimpleTypeString(simpleTypeDefinition, getConfig());
String initialize = getConfig().getTypeMapping().get(cppAtomicType).getInitialize();
if (initialize != null) {
privateImplSourceFile.print(TemplateEngine.fillInInitializationTemplate(initialize,
attributeUse.getConstraintValue()));
} else {
boolean cppTypeIsString = Util.isStringType(Util.getType(attributeUse), config);
if (cppTypeIsString) {
privateImplSourceFile.print("(");
privateImplSourceFile.print(getConfig().getTypeMapping().get("string")
.getAttrAtomicType());
privateImplSourceFile.print(")\"");
}
privateImplSourceFile.print(attributeUse.getConstraintValue());
if (cppTypeIsString)
privateImplSourceFile.print("\"");
}
}
} else {
if (!attributeUse.getRequired()) {
System.err.println("optional attribute without default value: " + cppElementName + ", "
+ Util.getAttributeName(attributeUse, config));
}
if (Util.hasFacetEnum(simpleTypeDefinition)) {
privateImplSourceFile.print(Util.createEnumNotPresentName(cppEnumOrUnionNameCreator