Description
JAX-WS Spec:
2.3.1.2 Wrapper Style
A WSDL operation qualifies for wrapper style mapping only if the following criteria are met:
The operation's input and output messages (if present) each contain only a single part
(ii) The input message part refers to a global element declaration whose localname is equal to the operation name
(iii) The output message part refers to a global element declaration
(iv) The elements referred to by the input and output message parts (henceforth referred to as wrapper
elements) are both complex types defined using the xsd:sequence compositor
(v) The wrapper elements only contain child elements, they must not contain other structures such as
wildcards (element or attribute), xsd:choice, substitution groups (element references are not per-
mitted) or attributes; furthermore, they must not be nillable.
CXF wsdl2java does not encode the following as SOAPBinding.ParameterStyle.WRAPPED:
<xsd:complexType name="BaseRequestType">
<xsd:sequence>
<xsd:element name="foo" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="MyMethod">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="tns:BaseRequestType">
<xsd:sequence>
<xsd:element name="bar" type="xsd:string"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
...
According to the JAX-WS spec, I don't understand why CXF cannot generate WRAPPED style code for this construct – namely xsd:extension of a type that is already "Wrapped-compliant".
Attachments
Issue Links
- relates to
-
CXF-8025 wsdl2java using wrapper style cannot handle multiple levels of xsd:extension elements
-
- Closed
-