You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by sa...@apache.org on 2012/02/03 10:17:00 UTC

svn commit: r1240036 - in /axis/axis2/java/core/trunk/modules/kernel/src/org/apache/axis2/description/java2wsdl: DefaultSchemaGenerator.java DocLitBareSchemaGenerator.java

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);
+
+    }
 
 }