Hi Dan and Colm,
Do you have any thoughts on this ?
Thanks,
Jim

On Wed, Mar 6, 2019 at 2:26 PM Jim Ma <[email protected]> wrote:

> When I tried wsdl2java tool to generate this wrapper element and the
> output is  a doc-lit-bare style method :
> <xsd:element name="hello">
>         <xsd:complexType>
>           <xsd:complexContent>
>             <xsd:extension base=""tns:baseType">
>               <xsd:sequence>
>               <xsd:element name="id"
>               type="tns:idType" minOccurs="1" maxOccurs="1" />
>               <xsd:choice>
>               <xsd:element name="updateName"
>               type="tns:newNameType" maxOccurs="1"
>               minOccurs="0" />
>               <xsd:element name="newName" type="tns:newNameType"
> minOccurs="0" maxOccurs="1" />
>                 </xsd:choice>
>               </xsd:sequence>
>             </xsd:extension>
>           </xsd:complexContent>
>         </xsd:complexType>
>       </xsd:element>
>
> CXF takes this is a bare style if it finds there is <xsd:choice> nested in
> <xsd:sequence> and this breaks the rule(v) in jaxws sepc:
> A WSDL operation qualifies for wrapper style mapping only if the following
> criteria are met:
> (i) 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
> local name is equal to the operation name
> (iii) The output message (if present) part refers to a global element
> declaration
> (iv) The elements referred to by the input and output message(if present)
> 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 permitted) or
> attributes; furthermore, they MUST not be nillable
>
> Do you think the rule(v) should be interpreted to there should be only
> <xsd:squence> defined for complex type and <xsd:choice> is not allowed here
> like :
> <xsd:element name="p">
>   <xsd:complexType>
>     <xsd:choice>
>       <xsd:element name="choice1" maxOccurs="1" minOccurs="0"/>
>       <xsd:element name="choice2  maxOccurs="1" minOccurs="1"/>.
>   </xsd:complexType>
> </xsd:element>
>
> then <xsd:sequence> child element <xsd:choice> is allowed for wrapped
> style ?
>
> Cheers,
> Jim
>
>
>
> Cheers,
> Jim
>
>

Reply via email to