typeTable.addComplexSchema(name, eltOuter.getQName());
} else {
if (dataType instanceof Typedef) {
Typedef typedef = (Typedef) dataType;
DataType aliasType = typedef.getDataType();
if (aliasType instanceof FixedType) {
XmlSchemaSimpleType simpleType = new XmlSchemaSimpleType(xmlSchema, false);
XmlSchemaElement eltOuter = new XmlSchemaElement(xmlSchema, false);
eltOuter.setName(simpleName);
eltOuter.setSchemaTypeName(schemaTypeName);
simpleType.setName(simpleName);
xmlSchema.getItems().add(eltOuter);
xmlSchema.getElements().put(schemaTypeName, eltOuter);
eltOuter.setSchemaTypeName(simpleType.getQName());
xmlSchema.getItems().add(simpleType);
xmlSchema.getSchemaTypes().put(schemaTypeName, simpleType);
typeTable.addComplexSchema(name, eltOuter.getQName());
XmlSchemaElement elt1 = new XmlSchemaElement(xmlSchema, false);
elt1.setName(name);
XmlSchemaSimpleTypeRestriction restriction = new XmlSchemaSimpleTypeRestriction();
restriction.setBaseTypeName(typeTable.getSimpleSchemaTypeName(BigDecimal.class.getName()));
FixedType fixedType = (FixedType) aliasType;
XmlSchemaTotalDigitsFacet totalDigits = new XmlSchemaTotalDigitsFacet(fixedType.getDigits(), false);
restriction.getFacets().add(totalDigits);
XmlSchemaFractionDigitsFacet fractionDigits = new XmlSchemaFractionDigitsFacet(fixedType.getScale(), true);
restriction.getFacets().add(fractionDigits);
simpleType.setContent(restriction);
} else {
XmlSchemaComplexType complexType = new XmlSchemaComplexType(xmlSchema, false);
XmlSchemaSequence sequence = new XmlSchemaSequence();
XmlSchemaElement eltOuter = new XmlSchemaElement(xmlSchema, false);
eltOuter.setName(simpleName);
eltOuter.setSchemaTypeName(schemaTypeName);
complexType.setParticle(sequence);
complexType.setName(simpleName);
xmlSchema.getItems().add(eltOuter);
xmlSchema.getElements().put(schemaTypeName, eltOuter);
eltOuter.setSchemaTypeName(complexType.getQName());
xmlSchema.getItems().add(complexType);
xmlSchema.getSchemaTypes().put(schemaTypeName, complexType);
typeTable.addComplexSchema(name, eltOuter.getQName());
sequence.getItems().add(generateSchemaforFieldsandProperties(xmlSchema, aliasType, "item", false));
}
} else {
XmlSchemaComplexType complexType = new XmlSchemaComplexType(xmlSchema, false);
XmlSchemaSequence sequence = new XmlSchemaSequence();
XmlSchemaElement eltOuter = new XmlSchemaElement(xmlSchema, false);
eltOuter.setName(simpleName);
eltOuter.setSchemaTypeName(schemaTypeName);
complexType.setParticle(sequence);
complexType.setName(simpleName);
xmlSchema.getItems().add(eltOuter);
xmlSchema.getElements().put(schemaTypeName, eltOuter);
eltOuter.setSchemaTypeName(complexType.getQName());
xmlSchema.getItems().add(complexType);
xmlSchema.getSchemaTypes().put(schemaTypeName, complexType);
typeTable.addComplexSchema(name, eltOuter.getQName());
Member[] members = dataType.getMembers();
for (int i = 0; i < members.length; i++) {
Member member = members[i];
String propertyName = member.getName();
DataType propertyType = member.getDataType();
//String propname = getCorrectName(property.getSimpleName()) ;
//propertiesNames.add(propertyName) ;
sequence.getItems().add(generateSchemaforFieldsandProperties(xmlSchema, propertyType,
propertyName, false));
}