}
return corbatype;
}
private CorbaTypeImpl processLocalElement(XmlSchemaElement element, String uri) throws Exception {
CorbaTypeImpl membertype = new CorbaTypeImpl();
CorbaTypeImpl memtype = new CorbaTypeImpl();
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()) {
CorbaTypeImpl 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());
}
memtype = createNillableUnion(elName,
name,
elemtype.getQName(),
elementQualified);
memName = createQNameCorbaNamespace(memtype.getQName().getLocalPart());
if (memtype != null
&& !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());
membertype = convertSchemaToCorbaType(st, elemName, 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");
CorbaTypeImpl arraytype = null;
if (memName != null) {
arraytype = createArray(name, schemaName, memName, elemName,
element.getMaxOccurs(), element.getMinOccurs(), false);
} else {
arraytype = createArray(name, schemaName, membertype.getQName(), elemName,
element.getMaxOccurs(), element.getMinOccurs(), false);
}
membertype.setName(arraytype.getName());
membertype.setQName(arraytype.getQName());
membertype.setType(arraytype.getType());
if (arraytype != null
&& !isDuplicate(arraytype)) {
typeMappingType.getStructOrExceptionOrUnion().add(arraytype);
}