Author: amilas
Date: Tue Dec 11 06:03:16 2007
New Revision: 603246

URL: http://svn.apache.org/viewvc?rev=603246&view=rev
Log:
fixed an issue with processing the elements with named types

Modified:
    
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
    
webservices/axis2/trunk/java/modules/adb-codegen/test-resources/testsuite/union2.xsd

Modified: 
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
URL: 
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java?rev=603246&r1=603245&r2=603246&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
 (original)
+++ 
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
 Tue Dec 11 06:03:16 2007
@@ -645,24 +645,25 @@
             }
 
             // here what we want is to set the schema type name for the element
-            if (referencedElement.getSchemaType() != null) {
-                if 
(!this.processedElementRefMap.containsKey(referencedElement.getQName())){
-                    if ((referencedElement.getSchemaTypeName() != null)
-                            && 
this.baseSchemaTypeMap.containsKey(referencedElement.getSchemaTypeName())){
-                       // this element refers to an defined xml schema type
-                       
this.processedElementRefMap.put(referencedElement.getQName(),
+            if (referencedElement.getSchemaTypeName() != null){
+                // i.e this element refers to an complex type name
+                if 
(!this.processedElementRefMap.containsKey(referencedElement.getQName())) {
+                    if 
(this.baseSchemaTypeMap.containsKey(referencedElement.getSchemaTypeName())) {
+                        
this.processedElementRefMap.put(referencedElement.getQName(),
                                 
this.baseSchemaTypeMap.get(referencedElement.getSchemaTypeName()));
                     } else {
-                        processSchema(referencedElement, 
referencedElement.getSchemaType(), resolvedSchema, true);
-                        // if this is an anonomous complex type we have to set 
this
+                        XmlSchema resolvedTypeSchema = 
getParentSchema(resolvedSchema,
+                                referencedElement.getSchemaTypeName(),
+                                COMPONENT_TYPE);
+                        XmlSchemaType xmlSchemaType = 
resolvedTypeSchema.getTypeByName(
+                                
referencedElement.getSchemaTypeName().getLocalPart());
+                        processSchema(referencedElement, xmlSchemaType, 
resolvedTypeSchema, true);
                         
this.processedElementRefMap.put(referencedElement.getQName(),
                                 
this.processedTypemap.get(referencedElement.getSchemaTypeName()));
                     }
-
                 }
                 String javaClassName;
-                if ((referencedElement.getSchemaTypeName() != null)
-                        && 
this.baseSchemaTypeMap.containsKey(referencedElement.getSchemaTypeName())) {
+                if 
(this.baseSchemaTypeMap.containsKey(referencedElement.getSchemaTypeName())) {
                     // here we have to do nothing since we do not generate a 
name
                 } else {
                     javaClassName = (String) 
this.processedTypemap.get(referencedElement.getSchemaTypeName());
@@ -671,8 +672,21 @@
                     
xsElt.addMetaInfo(SchemaConstants.SchemaCompilerInfoHolder.CLASSNAME_KEY,
                             javaClassName);
                 }
+            } else if (referencedElement.getSchemaType() != null) {
+                if 
(!this.processedElementRefMap.containsKey(referencedElement.getQName())) {
 
+                    processSchema(referencedElement, 
referencedElement.getSchemaType(), resolvedSchema, true);
+                    // if this is an anonomous complex type we have to set this
+                    
this.processedElementRefMap.put(referencedElement.getQName(),
+                            
this.processedTypemap.get(referencedElement.getSchemaTypeName()));
 
+                }
+                
+                String javaClassName = (String) 
this.processedTypemap.get(referencedElement.getSchemaTypeName());
+                
referencedElement.addMetaInfo(SchemaConstants.SchemaCompilerInfoHolder.CLASSNAME_KEY,
+                        javaClassName);
+                
xsElt.addMetaInfo(SchemaConstants.SchemaCompilerInfoHolder.CLASSNAME_KEY,
+                        javaClassName);
             }
 
             // schema type name is present but not the schema type object
@@ -2652,11 +2666,11 @@
         boolean isExists = false;
         switch (componetType) {
             case COMPONENT_TYPE : {
-                isExists = (schema.getTypeByName(componentQName) != null);
+                isExists = 
(schema.getTypeByName(componentQName.getLocalPart()) != null);
                 break;
             }
             case COMPONENT_ELEMENT : {
-                isExists = (schema.getElementByName(componentQName) != null);
+                isExists = 
(schema.getElementByName(componentQName.getLocalPart()) != null);
                 break;
             }
             case COMPONENT_ATTRIBUTE : {

Modified: 
webservices/axis2/trunk/java/modules/adb-codegen/test-resources/testsuite/union2.xsd
URL: 
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/test-resources/testsuite/union2.xsd?rev=603246&r1=603245&r2=603246&view=diff
==============================================================================
--- 
webservices/axis2/trunk/java/modules/adb-codegen/test-resources/testsuite/union2.xsd
 (original)
+++ 
webservices/axis2/trunk/java/modules/adb-codegen/test-resources/testsuite/union2.xsd
 Tue Dec 11 06:03:16 2007
@@ -36,4 +36,14 @@
         <s:union memberTypes="s:date s:dateTime s:gYear s:gYearMonth">
         </s:union>
     </s:simpleType>
+
+    <s:element name="TestElement">
+        <s:complexType>
+            <s:sequence>
+               <s:element name="creationDate" type="s:string"/>
+               <s:element name="CreationDate" type="s:string"/> 
+            </s:sequence>
+        </s:complexType>
+    </s:element>
+
 </s:schema>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to