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