Author: amilas
Date: Sat Dec 25 08:49:02 2010
New Revision: 1052758

URL: http://svn.apache.org/viewvc?rev=1052758&view=rev
Log:
fixed the issue AXIS2-3994

Modified:
    
axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java

Modified: 
axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java?rev=1052758&r1=1052757&r2=1052758&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
 Sat Dec 25 08:49:02 2010
@@ -781,6 +781,29 @@ public class SchemaCompiler {
                         javaClassName);
                 
xsElt.addMetaInfo(SchemaConstants.SchemaCompilerInfoHolder.CLASSNAME_KEY,
                         javaClassName);
+            } else if (referencedElement.getSchemaTypeName() != null){
+                QName schemaTypeName = referencedElement.getSchemaTypeName();
+                XmlSchema newResolvedSchema = getParentSchema(resolvedSchema, 
schemaTypeName, COMPONENT_TYPE);
+                XmlSchemaType xmlSchemaType = 
newResolvedSchema.getTypeByName(schemaTypeName);
+                if (xmlSchemaType != null) {
+                    if 
(!this.processedElementRefMap.containsKey(referencedElement.getQName())) {
+                        // we know this is a named complex type
+                        processSchema(referencedElement, xmlSchemaType, 
newResolvedSchema, false);
+                        // if this is an anonomous complex type we have to set 
this
+                        
this.processedElementRefMap.put(referencedElement.getQName(),
+                                this.processedTypemap.get(schemaTypeName));
+
+                    }
+
+                    String javaClassName = 
this.processedTypemap.get(referencedElement.getSchemaTypeName());
+                    
referencedElement.addMetaInfo(SchemaConstants.SchemaCompilerInfoHolder.CLASSNAME_KEY,
+                            javaClassName);
+                    
xsElt.addMetaInfo(SchemaConstants.SchemaCompilerInfoHolder.CLASSNAME_KEY,
+                            javaClassName);
+                } else {
+                    throw new SchemaCompilationException(" Can not find the 
schema type with name " + schemaTypeName);
+                }
+
             }
 
             // schema type name is present but not the schema type object


Reply via email to