axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel David Schäfer (JIRA) <axis-...@ws.apache.org>
Subject [jira] Commented: (AXIS-1869) wsdl2java emits code that uses the wrong xml-types in case of declared simpleTypes´s
Date Thu, 17 Mar 2005 13:40:21 GMT
     [ http://issues.apache.org/jira/browse/AXIS-1869?page=comments#action_61111 ]
     
Daniel David Schäfer commented on AXIS-1869:
--------------------------------------------

Hi,

this example shows one datatype of my wsdl:

   <simpleType name="ProductCode">
   	<restriction base="xsd:string">
   		<maxLength value="5"/>
   	</restriction>
   </simpleType>
  
The old axis made a Class called ProductCode with one member "value" an it´s getter and setter.
My methods worked like this: 

   getProductDetails(new ProductCode("XVVE-10"));

The new version (1.2RC3) does not generate these classes.
WSDL2Java generates methods like:

   getProductDetails("XVVE-10");

That´s ok. But what was´nt ok is that axis used xsd:string instead of myns:ProductCode.

Here is the little patch I have provided.

bye

Daniel


===================================================================
RCS file: /usr/local/cvsroot/dev_projects/axis12/src/org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- dev_projects/axis12/src/org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.java	2005/03/14
12:59:38	1.1
+++ dev_projects/axis12/src/org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.java	2005/03/14
13:00:11	1.2
@@ -338,7 +338,19 @@
 
                         // Otherwise, use the type at the end of the ref
                         // chain.
-                        while (elemType.getRefType() != null) {
+                        while (elemType.getRefType() != null)
+						{
+							if(!elemType.getQName().getNamespaceURI().equals("http://www.w3.org/2001/XMLSchema")
+								&& elemType.getRefType().getQName().getNamespaceURI().equals("http://www.w3.org/2001/XMLSchema")
+								&& elemType.getRefType().getRefType() == null)
+							{
+								System.out.println("INFO: Hier nutzen wir nicht " + 
+									elemType.getRefType().getQName() + ", sondern " +
+									elemType.getQName());
+								
+								break;
+							}
+							
                             elemType = elemType.getRefType();
                         }
 



> wsdl2java emits code that uses the wrong xml-types in case of declared simpleTypes´s
> ------------------------------------------------------------------------------------
>
>          Key: AXIS-1869
>          URL: http://issues.apache.org/jira/browse/AXIS-1869
>      Project: Axis
>         Type: Bug
>   Components: WSDL processing
>     Versions: 1.2RC3
>  Environment: all environments
>     Reporter: Daniel David Schäfer

>
> I got a wsdl that uses several special  data-types that are
> actually strings with a restriction of e.g. 50 charcters length.
> In earlier versions of axis, wsdl2java generated holder-classes for
> these types but now the signature has changed and I get code without
> these holders. I appreciate this, because it makes much of the 
> generated code easier to understand.
> However the generated stubs do not use the correct xml-types that
> were defined in the wsdl.
> I changed some code in 
>    org.apache.axis.wsdl.toJava.JavaBeanHelperWriter
> The loop below should stop before it gets to the element that 
> represents the wrong type:
> // Otherwise, use the type at the end of the ref
> // chain.
> while(elemType.getRefType() != null)
> {
>    if(!elemType.getQName().getNamespaceURI().equals(
>          "http://www.w3.org/2001/XMLSchema") &&
>       elemType.getRefType().getQName().getNamespaceURI().equals(
>          "http://www.w3.org/2001/XMLSchema") &&
>       elemType.getRefType().getRefType() == null)
>    {
>         System.out.println("we do not use " +
>            elemType.getRefType().getQName() + " we prefer " +
>            elemType.getQName());
>         break;
>    }
> 			
>    elemType = elemType.getRefType();
> }
> xmlType = elemType.getQName();
> This helped me to prefer my own xml-types and not to use xsd:string.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


Mime
View raw message