Uploaded image for project: 'Axis'
  1. Axis
  2. AXIS-1869

wsdl2java emits code that uses the wrong xml-types in case of declared simpleTypes´s

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • 1.2RC3
    • 1.2
    • WSDL processing
    • None
    • all environments

    Description

      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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            ddschaefer Daniel David Schäfer
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: