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