Stylus Studio XML Editor

Table of contents

Appendices

2.5 Port Type Operation

Port Type Operation

The Port Type Operation Component[top]

The Port Type Operation Component

A port type operation component describes an operation that a given port type supports. An operation is a set of message references. Message references may be to messages this operation accepts, that is input messages, or messages this operation sends, that is output or fault messages.

Port type operation components are local to port type components, they cannot be referred to by QName, despite having both {name} and {target namespace} properties

The properties of the Port Type Operation Component are as follows:

  • {name} An NCName as defined by [XMLNS].

  • {target namespace} A namespace name, as defined in [XMLNS].

  • {variety} One of Input-Only, Output-Only, Input-Output or Output-Input

  • {messages} A set of message reference components

For each port type operation component in the {operations} property of a port type component the combination of {name} and {target namespace} properties must be unique.

In cases where, due to a port type extending one or more other port types, two or more port type operation components have the same value for their {name} and {target namespace} properties, then the component models of those port type operation components MUST be equivalent (see [Equivalence of components]). If the port type operation components are equivalent then they are considered to collapse into a single component. It is an error if two port type operation components have the same value for their {name} and {target namespace} properties but are not equivalent.

NOTE: 

Due to the above rules, if two port types that have the same value for their {target namespace} property also have one or more operations that have the same value for their {name} property then those two port types cannot both form part of the derivation chain of a derived port type unless those operations are the same operation. Therefore it is considered good practice to ensure, where necessary, that operation names within a namespace are unique, thus allowing such derivation to occur without error.

Port Type Operation Varieties[top]

Port Type Operation Varieties

The following list defines the semantics of each of the possible values of the {variety} property:

  • {variety} is Input-Output. The semantics are that when the input message is sent to the service, one of the following MUST happen: the output message is generated; or one of the fault messages listed is generated instead. It is an error for both an output message and a fault message to be generated in response to the same input message.

  • {variety} is Input-Only. The semantics are that when a message is sent to the service, the service consumes it but does not produce any output message. There MUST NOT be any fault messages indicated in this case.

  • {variety} is Output-Input. The semantics are that the service will generate the output message and in return the input message MUST be received or one of the fault messages listed MUST be received.

  • {variety} is Output-Only. The semantics are that the service will generate the output message but does not expect to receive any response message or fault messages. There MUST NOT be any fault messages indicated in this case.

XML Representation of Port Type Operation Component[top]

XML Representation of Port Type Operation Component

The XML representation for a port type operation component is an element information item with the following Infoset properties;

  • A [local name] of operation

  • A [namespace name] of http://www.w3.org/2003/03/wsdl

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

    • A name 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/2003/03/wsdl.

  • One or more element information item amongst its [children] as follows:

    • An optional documentation element information item (see [Documentation]).

    • One of:

      • An input element information item followed by an optional output element information item and zero or more fault element information items

      • An output element information item followed by an optional input element information item and zero or more fault element information items

  • Zero or more namespace qualified element information items amongst its [children]. Such element information items MUST be a member of one of the element substitution groups related to port type operations described in [Language Extensibility].

name attribute information item with operation [owner][top]

name attribute information item with operation [owner]

The name attribute information item identifies a given operation element information item inside a given portType element information item.

The name attribute information item has the following Infoset properties;

  • A [local name] of name

  • A [namespace name] which has no value

The type of the name attribute information item is xs:NCName.

Mapping Port Type Operation's XML Representation to Component Properties[top]

Mapping Port Type Operation's XML Representation to Component Properties

The mapping between the properties of the Port Type Operation Component (see [The Port Type Operation Component]) and the XML Representation of the portType element information item (see [XML Representation of Port Type Operation Component]) is as described in [tab_PortTypeOperation_Mapping].

1tab_PortTypeOperation_Mapping Mapping between Port Type Operation Component Properties and XML Representation Property Mapping
11{name} 11The actual value of the name attribute information item
11{target namespace} 11 The actual value of the targetNamespace attribute information item of the [parent] definitions element information item of the [parent] portType element information item.
11{variety} 11If [children] contains an input element information item and no output element information item then Input-Only, else if [children] contains an input element information item followed by an output element information item then Input-Output, else if [children] contains an output element information item and no input element information item then Output-Only else if [children] contains an output element information item followed by an input element information item then Output-Input.
11{messages} 11 The set of message references corresponding to the input, output and fault element information items in [children], if any.