Re: Features and properties

Savas Parastatidis wrote:

> If I was to write an interface that advertised its requirement for
> security for all operations and transactional context for one of its
> operations, would it look like this?

Yes, it would look like this. This meaning would be as follows: a) the 
"secext" must be used for all inbound and outbound messages; b) the 
"requires-new" feature must be used for the inbound and outbound 
messages of "operation1". In the case of SOAP, the features may be 
implemented either via SOAP header blocks or SOAP bindings.

(Note: analysing your 2nd second example, I now get the impression that, 
by using the 2nd feature, you are trying to both catch 2 birds with one 
stone, i.e.: a) indicate the feature used ("wstx"); b) set the value for 
(some unspecified) property to "requires-new". This is not possible; you 
can only set property values with the "property" element.)

> <wsdl:interface>
>    <wsdl:feature
>       uri="http://schemas.xmlsoap.org/ws/2002/12/secext" 
>       required="true"/>
>    <wsdl:operation name="operatation1">
>       <wsdl:feature
>          uri="http://schemas.xmlsoap.org/ws/2002/08/wstx/requires-new"
>          required="true"/>
>       <wsdl:input message="inputMessage"/>
>       <wsdl:output message="outputMessage"/>
>    </wsdl:operation>
>    <wsdl:operation name="operatation2">
>       <wsdl:input message="inputMessage"/>
>       <wsdl:output message="outputMessage"/>
>    </wsdl:operation>
> </wsdl:interface>
> 
> Are property elements required?

No, they are not. They should only be used if you want to constraint the 
use of your feature in a particular way. For example, for a secure 
channel feature, you could set the cipher to a particular value, for 
instance "blowfish", to indicate that this is your preferred algorithm.

 > How would they be used in this context?
> Would I have to write something like this?

Yes, you would have to write something like this. There's a bug, though: 
you need to indicate the property's URI (see below). Also, you can omit 
the "feature" element since the feature will be defined implicitely via 
the "property" element.

> <wsdl:operation name="operation1">
>    <wsdl:feature
>       uri="http://schemas.xmlsoap.org/ws/2002/08/wstx"
>       required="true"/>
>    <wsdl:property>
>       <value>requires-new</value>
>    </wsdl:property>
> </wsdl:operation>

The simplified example looks like this:

  <wsdl:operation name="operation1">
     <wsdl:property
        uri="http://schemas.xmlsoap.org/ws/2002/08/wstx/some-prop">
        <value>requires-new</value>
     </wsdl:property>
  </wsdl:operation>

This means:

a) you are using the feature "wstx" (implicit) ;

b) you are using the property "some-prop", and

c) you are setting the value for this property to "requires-new".

I hope this helps,

Jean-Jacques.

Received on Tuesday, 24 June 2003 04:24:45 UTC