Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
A description of WSDLs. Most of the verbiage here is copied verbatim from the WSDL spec: see http://www.w3.org/TR/wsdl.
TODO: * Documentation support * Schema support
- data WSDL = WSDL {
- targetNamespace :: Maybe URI
- documentName :: Maybe Name
- types :: Maybe WSDLTypes
- messages :: [WSDLMessage]
- portTypes :: [WSDLPortType]
- bindings :: [WSDLBinding]
- services :: [WSDLService]
- additionalWSDLInfo :: [ExtensibilityElement]
- data WSDLTypes = WSDLTypes {}
- data WSDLMessage = WSDLMessage {
- wsdlMessageName :: Text
- wsdlMessageParts :: [WSDLMessagePart]
- data WSDLMessagePart = WSDLMessagePart {}
- data WSDLPortType = WSDLPortType {
- wsdlPortTypeName :: Text
- wsdlPortTypeOperations :: [AbstractOperation]
- data AbstractOperation
- = AbstractOneWayOperation {
- operationName :: Text
- operationInput :: InputMessage
- operationParameterOrder :: [Text]
- | AbstractRequestResponseOperation {
- operationName :: Text
- operationInput :: InputMessage
- operationOutput :: OutputMessage
- operationFaults :: [FaultMessage]
- operationParameterOrder :: [Text]
- | AbstractSolicitResponseOperation {
- operationName :: Text
- operationOutput :: OutputMessage
- operationInput :: InputMessage
- operationFaults :: [FaultMessage]
- operationParameterOrder :: [Text]
- | AbstractNotificationOperation {
- operationName :: Text
- operationOutput :: OutputMessage
- operationParameterOrder :: [Text]
- = AbstractOneWayOperation {
- data InputMessage = InputMessage {
- inputMessageName :: Maybe Text
- inputMessageType :: Name
- data OutputMessage = OutputMessage {
- outputMessageName :: Maybe Text
- outputMessageType :: Name
- data FaultMessage = FaultMessage {
- faultMessageName :: Text
- faultMessageType :: Name
- data WSDLBinding = WSDLBinding {}
- data ConcreteOperation = ConcreteOperation {}
- data ConcreteInputMessage = ConcreteInputMessage {}
- data ConcreteOutputMessage = ConcreteOutputMessage {}
- data ConcreteFaultMessage = ConcreteFaultMessage {}
- data WSDLService = WSDLService {
- wsdlServiceName :: Text
- wsdlServicePorts :: [WSDLPort]
- additionalServiceInfo :: [ExtensibilityElement]
- data WSDLPort = WSDLPort {
- wsdlPortName :: Text
- wsdlPortBinding :: Name
- additionalPortInfo :: [ExtensibilityElement]
- type ExtensibilityElement = Node
- type Documentation = Maybe Node
- data Schema = Schema
Documentation
Represents a WSDL document; this contains the six WSDL elements as
described below, as well as name
and targetNamespace
as defined in
the spec.
WSDL documents can be assigned an optional name
attribute that serves
as a lightweight form of documentation. Optionally, a targetNamespace
attribute may be specified. This represents the URI associated with the
WSDL.
WSDL | |
|
Document elements
Type definitions
Data type definitions used to describe the messages exchanged.
Messages
data WSDLMessage Source
Represents an abstract definition of the data being transmitted. A message consists of logical parts, each of which is associated with a definition within some type system.
WSDLMessage | |
|
Port types
data WSDLPortType Source
A set of abstract operations. Each operation refers to an input
WSDLMessage
and output WSDLMessage
s.
NB: Though the WSDL spec explicitly mentions that each operation refers
to an input message, the grammar provided on the W3 site makes
<input>
optional. The wording of the spec, rather than the example
grammar, is followed here.
data AbstractOperation Source
A WSDLPortType
is a named set of AbstractOperation
s and the
abstract messages involved.
AbstractOneWayOperation | |
| |
AbstractRequestResponseOperation | |
| |
AbstractSolicitResponseOperation | |
| |
AbstractNotificationOperation | |
|
data InputMessage Source
An abstract message representing input to the given operation.
InputMessage | |
|
data OutputMessage Source
An abstract message representing output from the given operation.
OutputMessage | |
|
data FaultMessage Source
An abstract message representing faults returned by the given operation.
FaultMessage | |
|
Bindings
data WSDLBinding Source
Specifies a concrete protocol and data format specifications for the
operations and messages defined by a particular WSDLPortType
.
data ConcreteInputMessage Source
A concrete message representing input to the given operation.
data ConcreteOutputMessage Source
A concrete message representing output from the given operation.
data ConcreteFaultMessage Source
A concrete message representing faults returned by the given operation.
Services
data WSDLService Source
Used to aggregate a set of related WSDLPort
s.
WSDLService | |
|
Ports
Specifies the address for a WSDLBinding
, thus defining a single
communication endpoint.
WSDLPort | |
|
Additional properties
Extensibility elements
type ExtensibilityElement = Node Source
Certain tags in a WSDL document can have additional information associated with them by way of Extensibility Elements. These are generally used to specify binding information for a specific protocol or format (e.g. SOAP).
Documentation
type Documentation = Maybe Node Source
Documentation can appear inside any WSDL element.