return corbatype;
}
private CorbaType processLocalElement(QName containingTypeName,
XmlSchemaElement element, String uri) throws Exception {
CorbaType membertype = new CorbaType();
XmlSchemaType schemaType = element.getSchemaType();
QName schemaName = element.getQName();
if (schemaType == null) {
if (element.getRef().getTarget() != null) {
schemaType = findSchemaType(element.getRef().getTarget().getSchemaTypeName());
schemaName = element.getRef().getTargetQName();
} else {
schemaType = findSchemaType(element.getSchemaTypeName());
}
}
if (schemaName.getNamespaceURI().equals("")) {
schemaName = new QName(uri, schemaName.getLocalPart());
}
QName elemName = schemaName;
boolean elementQualified = getElementQualification(element, uri);
if (!elementQualified) {
elemName = new QName("", elemName.getLocalPart());
}
QName memName = null;
if (element.isNillable()) {
CorbaType elemtype = convertSchemaToCorbaType(schemaType, elemName,
schemaType, null, true);
QName name = createQNameTargetNamespace(elemtype.getQName().getLocalPart() + "_nil");
QName elName = checkPrefix(elemName);
if (elName == null) {
elName = createQNameTargetNamespace(elemName.getLocalPart());
}
CorbaType memtype = createNillableUnion(elName,
name,
elemtype.getQName(),
elementQualified);
memName = createQNameCorbaNamespace(memtype.getQName().getLocalPart());
if (!isDuplicate(memtype)) {
typeMappingType.getStructOrExceptionOrUnion().add(memtype);
}
membertype.setQName(memName);
membertype.setName(memtype.getName());
membertype.setType(memtype.getType());
} else if (schemaType != null) {
XmlSchemaType st = schemaType;
boolean anonymous = WSDLTypes.isAnonymous(st.getName());
QName typeName = null;
if (anonymous) {
typeName = new QName(elemName.getNamespaceURI(),
containingTypeName.getLocalPart() + "." + elemName.getLocalPart());
} else {
typeName = st.getQName();
}
membertype = convertSchemaToCorbaType(st, typeName, st, null, anonymous);
} else if (element.getSchemaTypeName() != null) {
QName name = checkPrefix(element.getSchemaTypeName());
membertype = getLocalType(name);
}
if (membertype == null) {
return null;
}
if (!(element.getMaxOccurs() == 1) || !(element.getMinOccurs() == 1)) {
QName name = createQNameCorbaNamespace(getModulePrefix(membertype)
+ elemName.getLocalPart() + "Array");
CorbaType arraytype = null;
if (memName != null) {
arraytype = createArray(name, /*schemaName*/name, memName, elemName,
element.getMaxOccurs(), element.getMinOccurs(), false);
} else {
arraytype = createArray(name, /*schemaName*/name, membertype.getQName(), elemName,