Stylus Studio XML Editor

Table of contents

Appendices

2.8 Property

Property

The Property Component[top]

The Property Component

A "property" in the Features and Properties architecture represents a named runtime value which affects the behaviour of some aspect of a Web service interaction, much like an environment variable. For example, a reliable messaging SOAP module may specify a property to control the number of retries in the case of network failure. WSDL documents may specify the value constraints for these properties by referring to a Schema type, or by specifying a particular value. Properties, and hence property values, can be shared amongst features/bindings/modules, and are named with URIs precisely to allow this type of sharing.

The properties of the Property component are as follows:

  • {name} REQUIRED. A wsdls:anyURI as defined in [ Type]. This URI MUST be absolute as defined by [RFC2396]. This URI SHOULD be dereferenceable to a document that directly or indirectly defines the meaning and use of the Property that it identifies.

  • {required} REQUIRED. A wsdls:boolean value as defined by [ Type]. If the {required} property is true, then the requester agent MUST use the Property that is identified by the {name} URI. Otherwise, the requester agent MAY use the Property that is identified by the {name} URI. In either case, if the requester agent does use the Property that is identified by the {name} URI, then the requester agent MUST obey all semantics implied by the definition of that Property.

  • {value constraint} OPTIONAL. A type definition constraining the value of the property, or the token #value if the {value} property is not empty.

  • {value} OPTIONAL. The value of the property, an ordered list of child information items, as specified by the [children] property of element information items in [XMLInfoSet].

If a type system not based upon the XML Infoset is in use (as considered in [Using Other Schema Languages]) then additional properties would need to be added to the Property Component (along with extensibility attributes to its XML representation) to allow using such a type system to describe values and constraints for properties.

Property Composition Model[top]

Property Composition Model

At runtime, the behavior of features, (SOAP) modules and bindings may be affected by the values of in-scope properties. Properties combine into a virtual "execution context" which maps property names (URIs) to constraints. Each property URI MAY therefore be associated with AT MOST one property constraint for a given interaction.

The set of properties which are required or available for a given component consists of the combined set of ALL property declarations applicable to that componment. A property is applicable to a component if:

  • it is asserted directly within that component, or

  • it is asserted in a containing component, or

  • it is asserted in a component referred to by the current component.

If a given property is asserted at multiple locations, then the value of that property at a particular component is that given by the nearest assertion in lexical scoping order. Following these rules, the set of properties applicable at each component are as follows:

  • Interface component: all properties asserted within the interface component.

  • Interface Fault component: all properties asserted within the interface fault component and those within the parent interface component.

  • Interface Operation component: all properties asserted within the interface operation component and those within the parent interface component.

  • Message Reference component: all properties asserted within the message reference component, those within the parent interface operation component and those within its parent interface component.

  • Binding component: all properties asserted within the binding component and those within the interface component referred to by the binding component (if any).

  • Binding Fault component: all properties asserted within the binding fault component, those within the parent binding component and those within the interface component referred to by the binding component (if any).

  • Binding Operation component: all properties asserted within the binding operation component, those within the parent binding component and those within the interface component referred to by the binding component (if any).

  • Binding Message Reference component: all properties asserted within the binding message reference component, those within the parent binding operation component, those within its parent binding component and those within the interface component referred to by the binding component (if any).

Note that, in the text above, "property constraint" (or, simply, "constraint") is used to mean EITHER a constraint inside a property component OR a value, since value may be considered a special case of constraint.

XML Representation of Property Component[top]

XML Representation of Property Component
<property
      uri="xs:anyURI" 
      required="xs:boolean"? >
  <documentation />?
  [ <value /> | <constraint /> ]?
</property>

The XML representation for a Property component is an element information item with the following Infoset properties:

  • A [local name] of property

  • A [namespace name] of http://www.w3.org/2004/08/wsdl

  • One or more attribute information items amongst its [attributes] as follows:

    • A REQUIRED uri attribute information item as described below in [ ].

    • An OPTIONAL required attribute information item as described below in [ ].

    • Zero or more namespace qualified attribute information items. The [namespace name] of such attribute information items MUST NOT be http://www.w3.org/2004/08/wsdl.

  • One or more element information items amongst its [children], in order as follows:

    1. An OPTIONAL documentation element information item (see [Documentation]).

    2. One OPTIONAL element information item from among the following:

      • A value element information item as described in [ ]

      • A constraint element information item as described in [ ]

    3. Zero or more namespace-qualified element information items amongst its [children]. The [namespace name] of such element information items MUST NOT be http://www.w3.org/2004/08/wsdl.

uri attribute information item with property [owner][top]

uri attribute information item with property [owner]

The uri attribute information item specifies the URI of the property. It has the following Infoset properties:

  • A [local name] of uri

  • A [namespace name] which has no value

The type of the uri attribute information item is xs:anyURI.

required attribute information item with property [owner][top]

required attribute information item with property [owner]

The required attribute information item specifies whether use of the property is mandatory or optional.

The required attribute information item has the following Infoset properties:

  • A [local name] of required

  • A [namespace name] which has no value

The type of the required attribute information item is xs:boolean.

value element information item with property [parent][top]

value element information item with property [parent]
<property>
  <value>
    xs:anyType
  </value>
</property>

The value element information item specifies the value of the property. It has the following Infoset properties:

  • A [local name] of value

  • A [namespace name] of http://www.w3.org/2004/08/wsdl

The type of the value element information item is xs:anyType.

constraint element information item with property [parent][top]

constraint element information item with property [parent]
<property>
  <constraint>
    xs:QName
  </constraint>
</property>

The constraint element information item specifies a constraint on the value of the property. It has the following Infoset properties:

  • A [local name] of constraint

  • A [namespace name] of http://www.w3.org/2004/08/wsdl

The type of the constraint attribute information item is xs:QName.

Mapping Property's XML Representation to Component Properties[top]

Mapping Property's XML Representation to Component Properties

The mapping between the properties of the Property component (see [The Property Component]) and the XML Representation of the property element information item (see [XML Representation of Property Component]) is as described in [tab_Property_Mapping].

1tab_Property_Mapping Mapping between Property Component Properties and XML Representation Property Mapping
11{name} 11The actual value of the uri attribute information item.
11{required} 11The actual value of the required attribute information item if present, otherwise false.
11{value constraint} 11If the constraint element information item is present, the type definition referred to by the value of this element information item. Otherwise, if the value element information item is present, the token #value, otherwise empty.
11{value} 11The value of the [children] property of the value element information item, if that element is present, otherwise empty.