Messages consist of one or more logical parts. Each part is associated with a type from a type system using a message-typing attribute. The set of message-typing attributes is extensible.

WSDL defines several such message-typing attributes for use with XSD:

  • element: an XSD element using a QName.
  • type: an XSD simpleType or complexType using a QName.

Other message-typing attributes may be defined as long as they use a namespace different from that of WSDL. Binding extensibility elements may also use message-typing attributes.

Example

Code

<definitions name="StockQuote"
targetNamespace="http://example.com/stockquote.wsdl"
			xmlns:tns="http://example.com/stockquote.wsdl"
			xmlns:xsd1="http://example.com/stockquote.xsd"
			xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
			xmlns="http://schemas.xmlsoap.org/wsdl/">

	<types>
		<schema targetNamespace="http://example.com/stockquote.xsd"
				xmlns="http://www.w3.org/2000/10/XMLSchema"> 
			<element name="TradePriceRequest">
				<complexType>
					<all>
						<element name="tickerSymbol" type="string"/>
					</all>
				</complexType> 
			</element>
			<element name="TradePrice"> <complexType>
					<all>
						<element name="price" type="float"/>
					</all> 
				</complexType>
			</element> 
		</schema>
	</types>
	<message name="GetLastTradePriceInput">
		<part name="body" element="xsd1:TradePriceRequest"/>
	</message>
	<message name="GetLastTradePriceOutput">
		<part name="body" element="xsd1:TradePrice"/>
	</message> 
</definitions>

Reversed UML model: