#ifdef __GLASGOW_HASKELL__
#define GENERIC , Generic
#else
#define GENERIC
#endif
#define INSTANCES (Eq, Show, Typeable GENERIC)
module Text.XML.WSDL.Types where
import Data.Text (Text)
import Data.Typeable (Typeable)
import Data.XML.Types (Name, Node)
import Network.URI (URI)
#ifdef __GLASGOW_HASKELL__
import GHC.Generics
#endif
data WSDL = WSDL
{ targetNamespace :: Maybe URI
, documentName :: Maybe Name
, types :: Maybe WSDLTypes
, messages :: [WSDLMessage]
, portTypes :: [WSDLPortType]
, bindings :: [WSDLBinding]
, services :: [WSDLService]
, additionalWSDLInfo :: [ExtensibilityElement]
} deriving INSTANCES
data WSDLTypes = WSDLTypes
{ schemas :: [Schema]
, additionalTypeInfo :: [ExtensibilityElement]
} deriving INSTANCES
data WSDLMessage = WSDLMessage
{ wsdlMessageName :: Text
, wsdlMessageParts :: [WSDLMessagePart]
} deriving INSTANCES
data WSDLMessagePart = WSDLMessagePart
{ wsdlMessagePartName :: Name
, wsdlMessagePartElement :: Maybe Name
, wsdlMessagePartType :: Maybe Name
} deriving INSTANCES
data WSDLPortType = WSDLPortType
{ wsdlPortTypeName :: Text
, wsdlPortTypeOperations :: [AbstractOperation]
} deriving INSTANCES
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] }
deriving INSTANCES
data InputMessage = InputMessage
{ inputMessageName :: Maybe Text
, inputMessageType :: Name
} deriving INSTANCES
data OutputMessage = OutputMessage
{ outputMessageName :: Maybe Text
, outputMessageType :: Name
} deriving INSTANCES
data FaultMessage = FaultMessage
{ faultMessageName :: Text
, faultMessageType :: Name
} deriving INSTANCES
data WSDLBinding = WSDLBinding
{ wsdlBindingName :: Text
, wsdlBindingType :: Name
, wsdlBindingOperations :: [ConcreteOperation]
, additionalBindingInfo :: [ExtensibilityElement]
} deriving INSTANCES
data ConcreteOperation = ConcreteOperation
{ cOperationName :: Text
, cOperationInput :: Maybe ConcreteInputMessage
, cOperationOutput :: Maybe ConcreteOutputMessage
, cOperationFault :: [ConcreteFaultMessage]
, additionalOperationInfo :: [ExtensibilityElement]
} deriving INSTANCES
data ConcreteInputMessage = ConcreteInputMessage
{ cInputMessageName :: Maybe Text
, additionalConcreteInputInfo :: [ExtensibilityElement]
} deriving INSTANCES
data ConcreteOutputMessage = ConcreteOutputMessage
{ cOutputMessageName :: Maybe Text
, additionalConcreteOutputInfo :: [ExtensibilityElement]
} deriving INSTANCES
data ConcreteFaultMessage = ConcreteFaultMessage
{ cFaultMessageName :: Text
, additionalConcreteFaultInfo :: [ExtensibilityElement]
} deriving INSTANCES
data WSDLService = WSDLService
{ wsdlServiceName :: Text
, wsdlServicePorts :: [WSDLPort]
, additionalServiceInfo :: [ExtensibilityElement]
} deriving INSTANCES
data WSDLPort = WSDLPort
{ wsdlPortName :: Text
, wsdlPortBinding :: Name
, additionalPortInfo :: [ExtensibilityElement]
} deriving INSTANCES
type ExtensibilityElement = Node
type Documentation = Maybe Node
data Schema = Schema deriving INSTANCES