Hi,

You added a wrong schema, your schema should like this
<xs:element name="deliveryMode" type="soapjms:deliveryModeType" />

    <xs:complexType name="deliveryModeType">
        <xs:complexContent>
            <xs:extension base="wsdl:tExtensibilityElement">
                <xs:sequence>
                      <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:enumeration value="PERSISTENT" />
                                <xs:enumeration value="NON_PERSISTENT" />
                            </xs:restriction>
                        </xs:simpleType>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>


Willem

liucong wrote:
> Hi,
>     I want to add wsdl extension for SOAP/JMS according to
> http://www.w3.org/TR/2008/WD-soapjms-20081121/#wsdl-extensions.
>    
>     For example, I want add wsdl extension for DeliveryMode property. I
> edit the wsdl file like[1]:
>     <wsdl:binding name="JMSGreeterPortBinding"
> type="tns:JMSGreeterPortType">
>         <soap:binding style="document"
> transport="http://www.w3.org/2008/07/soap/bindings/JMS/"/>
>        
>         <soapjms:deliveryMode>PERSISTENT</soapjms:deliveryMode>
>        
>         <wsdl:operation name="greetMe">
>             <soap:operation soapAction="test" style="document"/>
>             <wsdl:input name="greetMeRequest">
>                 <soap:body use="literal"/>
>             </wsdl:input>
>             <wsdl:output name="greetMeResponse">
>                 <soap:body use="literal"/>
>             </wsdl:output>
>         </wsdl:operation>
>     ...
>     </wsdl:binding>
> 
>     If I add the extension schema like this[2]:
>    
>     <xs:element name="deliveryMode" type="soapjms:deliveryModeType" />
> 
>     <xs:complexType name="deliveryModeType">
>         <xs:complexContent>
>             <xs:extension base="wsdl:tExtensibilityElement">
>                 <xs:sequence>
>                     <xs:element name="deliveryMode">
>                         <xs:simpleType>
>                             <xs:restriction base="xs:string">
>                                 <xs:enumeration value="PERSISTENT" />
>                                 <xs:enumeration value="NON_PERSISTENT" />
>                             </xs:restriction>
>                         </xs:simpleType>
>                     </xs:element>
>                 </xs:sequence>
>             </xs:extension>
>         </xs:complexContent>
>     </xs:complexType>
> 
>     But I can't get the extension in the wsdl.
>     If I change the wsdl like this[3]:
>     <wsdl:binding name="JMSGreeterPortBinding"
> type="tns:JMSGreeterPortType">
>         <soap:binding style="document"
> transport="http://www.w3.org/2008/07/soap/bindings/JMS/"/>
>        
>        
> <soapjms:deliveryMode><soapjms:deliveryMode>PERSISTENT</soapjms:deliveryMode></soapjms:deliveryMode>
>        
>         <wsdl:operation name="greetMe">
>             <soap:operation soapAction="test" style="document"/>
>             <wsdl:input name="greetMeRequest">
>                 <soap:body use="literal"/>
>             </wsdl:input>
>             <wsdl:output name="greetMeResponse">
>                 <soap:body use="literal"/>
>             </wsdl:output>
>         </wsdl:operation>
>     ...
>     </wsdl:binding>
>    
>     I'll get the result of deliveryMode extension.
>     I think the wsdl extension just can add attributes, element to a
> extension element in CXF. But I can't get the extension element's value.
> Is it right?
> 
>     My question is: how to get the extension information in [1]. What
> does the extension schema look like?
> 
> thanks.
> Liu
> 

Reply via email to