Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-8025

wsdl2java using wrapper style cannot handle multiple levels of xsd:extension elements

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 3.3.1
    • Fix Version/s: 3.3.4, 3.4.0
    • Component/s: Tooling
    • Labels:
      None
    • Estimated Complexity:
      Unknown

      Description

      While converting a project from Metro to CXF 3.3.1, I ran into an issue where wsdl2java (using wrapper style) was generating the port type interface without errors but some method parameters were totally missing.

      Debugging found that some of our schema types use multiple levels of xsd:extension and CXF seems to stop looking after one level (in org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.internal.ProcessorUtil::getWrappedElement).

      Example element similar to our original issue: the port type interface would generate with the "id" parameter and without the "parentId" parameter (more complex example in the PR test):

      <element name="someParameter" type="x1:someParameterType"/>
      <complexType name="someParameterType">
          <complexContent>
              <extension base="x1:ParentType">
                  <sequence>
                      <element name="id" type="xsd:string" minOccurs="1" maxOccurs="1"/>
                  </sequence>
              </extension>
          </complexContent>
      </complexType>
      <complexType name="ParentType">
          <complexContent>
              <extension base="x1:EmptyGrandParentType">
                  <sequence>
                      <element name="parentId" type="xsd:string" minOccurs="1" maxOccurs="1"/>
                  </sequence>
              </extension>
          </complexContent>
      </complexType>
      <complexType name="EmptyGrandParentType"/>

       

      This schema structure appears valid (please correct me if this is wrong) and has been in use with Metro for some time, so I think this just needs a small fix.  There is a proposed patch+test PR available - it simply adds multilevel traversal to the original work supporting xsd:extension elements in CXF-2193.

      Please let me know if I can clarify or add any other info.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                coheigea Colm O hEigeartaigh
                Reporter:
                jpoje James Poje
              • Votes:
                1 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m