You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by am...@apache.org on 2007/12/11 15:03:17 UTC

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

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: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org