Author: sagara
Date: Fri Feb  3 09:17:00 2012
New Revision: 1240036

URL: http://svn.apache.org/viewvc?rev=1240036&view=rev
Log:
Added bare schema generation for DOM Document.  

Modified:
    
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
    
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java

Modified: 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java?rev=1240036&r1=1240035&r2=1240036&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DefaultSchemaGenerator.java
 Fri Feb  3 09:17:00 2012
@@ -2041,7 +2041,7 @@ public class DefaultSchemaGenerator impl
      * @param parameterName
      *            the parameter name
      */
-    protected void generateSchemaTypeForDocument(XmlSchemaSequence sequence,
+    protected QName generateSchemaTypeForDocument(XmlSchemaSequence sequence,
             String parameterName) {
 
         XmlSchema xmlSchema = getXmlSchema(targetNamespace);
@@ -2067,8 +2067,11 @@ public class DefaultSchemaGenerator impl
         entryElement.setQName(schemaType.getQName());
         entryElement.setMinOccurs(0);
         entryElement.setNillable(true);
-        sequence.getItems().add(entryElement);
-
+        if (sequence != null) {
+            sequence.getItems().add(entryElement);
+            
+        }
+        return schemaType.getQName();
     }
 
 

Modified: 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java?rev=1240036&r1=1240035&r2=1240036&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl/DocLitBareSchemaGenerator.java
 Fri Feb  3 09:17:00 2012
@@ -36,11 +36,13 @@ import org.apache.ws.commons.schema.XmlS
 import org.apache.ws.commons.schema.XmlSchemaElement;
 import org.apache.ws.commons.schema.XmlSchemaSequence;
 import org.apache.ws.commons.schema.utils.NamespaceMap;
+import org.w3c.dom.Document;
 
 import javax.xml.namespace.QName;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
+import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -187,6 +189,8 @@ public class DocLitBareSchemaGenerator e
                                    methodName);
                             parameterName = methodName;
 
+                        }  if (methodParameter != null && 
Document.class.isAssignableFrom(methodParameter)){                         
+                            generateBareSchemaTypeForDocument(null, 
parameterName);                            
                         } else {
                                generateSchemaForType(null, methodParameter, 
parameterName);                            
                         }                        
@@ -271,6 +275,9 @@ public class DocLitBareSchemaGenerator e
             generateBareSchemaTypeForCollection(sequence, genericParameterType,
                    parameterName, jMethod.getName());
             
+        } else if (methodParameter != null && 
Document.class.isAssignableFrom(methodParameter)) {
+            generateBareSchemaTypeForDocument(sequence,
+                    parameterName);
         } else {
             generateSchemaForType(sequence, methodParameter, parameterName);
         }
@@ -448,5 +455,34 @@ public class DocLitBareSchemaGenerator e
            QName schemaTypeName = generateSchemaForCollection(sequence,
                    genericType, partName);
        }
+       
+    /**
+     * Generate bare schema type for document.
+     * 
+     * @param sequence
+     *            the sequence
+     * @param parameterName
+     *            the parameter name
+     */
+    private void generateBareSchemaTypeForDocument(XmlSchemaSequence sequence,
+            String parameterName) {
+        QName schemaTypeName = generateSchemaTypeForDocument(sequence,
+                parameterName);
+        if (sequence != null) {
+            return;
+        }
+        XmlSchemaElement elt1 = new XmlSchemaElement();
+        elt1.setSchemaTypeName(schemaTypeName);
+        elt1.setName(parameterName);
+        elt1.setNillable(true);
+        QName elementName = new QName(schemaTargetNameSpace, parameterName,
+                schema_namespace_prefix);
+        elt1.setQName(elementName);
+        XmlSchema xmlSchema = getXmlSchema(schemaTargetNameSpace);
+        xmlSchema.getElements().add(elementName, elt1);
+        xmlSchema.getItems().add(elt1);
+        typeTable.addComplexSchema(parameterName, elementName);
+
+    }
 
 }


Reply via email to