| <?xml version="1.0" encoding="UTF-8" standalone="yes"?> |
| <xsd:schema xmlns="http://www.mulesource.org/schema/mule/core/2.0" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xmlns:xsd="http://www.w3.org/2001/XMLSchema" |
| xmlns:spring="http://www.springframework.org/schema/beans" |
| xmlns:spring-context="http://www.springframework.org/schema/context" |
| targetNamespace="http://www.mulesource.org/schema/mule/core/2.0" |
| attributeFormDefault="unqualified" |
| elementFormDefault="qualified"> |
| |
| <xsd:import namespace="http://www.w3.org/XML/1998/namespace"/> |
| <xsd:import namespace="http://www.springframework.org/schema/beans" |
| schemaLocation="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"/> |
| <xsd:import namespace="http://www.springframework.org/schema/context" |
| schemaLocation="http://www.springframework.org/schema/context/spring-context-2.5.xsd"/> |
| |
| <!--==============================================================--> |
| <!-- Structure --> |
| <!--==============================================================--> |
| |
| <!-- This defines the structure in abstract terms (except for a few simple/unique things like |
| global properties). We then provide some implementations below. Other modules |
| can provide other implementations. --> |
| |
| <xsd:element name="mule" type="muleType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Either the root element of a Mule configuration, |
| or a "top-level" element in a Spring configuration, |
| that contains further Mule elements. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="muleType"> |
| <xsd:sequence> |
| <xsd:element name="description" type="descriptionType" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| This can hold any kind of documentation consistent with the overall XML format). |
| It is intended to be "human readable" only and is not used by the system. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:choice minOccurs="0" maxOccurs="unbounded"> |
| <xsd:group ref="springRootElements"/> |
| <xsd:group ref="muleRootElements"/> |
| </xsd:choice> |
| </xsd:sequence> |
| </xsd:complexType> |
| |
| <xsd:group name="springRootElements"> |
| <xsd:choice> |
| <xsd:element ref="spring:beans"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Allow embedding of further spring documents. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element ref="spring:bean"> |
| <xsd:annotation> |
| <xsd:documentation> |
| We support direct use of spring beans via this tag. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element ref="spring-context:property-placeholder"> |
| <xsd:annotation> |
| <xsd:documentation> |
| We support direct use of property placeholders via this tag. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:choice> |
| </xsd:group> |
| |
| <xsd:group name="muleRootElements"> |
| <xsd:choice> |
| <xsd:element name="global-property" type="globalPropertyType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An global property is a named string. |
| It can be used inserted in most attribute values using the ${...} syntax. |
| So the attribute value "${foo}" would be replaced by the value associated with |
| the property named "foo". |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="configuration" type="configurationType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Defaults and general settings for the entire Mule system. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="notifications" type="notificationManagerType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Register listeners for notifications |
| and associate interfaces with particular events. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element ref="abstract-extension"/> |
| <xsd:element ref="abstract-security-manager"/> |
| <xsd:element ref="abstract-transaction-manager"/> |
| <xsd:element ref="abstract-connector"/> |
| <xsd:element ref="abstract-global-endpoint"/> |
| <xsd:element ref="abstract-transformer"/> |
| <xsd:element ref="abstract-filter"/> |
| <xsd:element ref="abstract-model"/> |
| </xsd:choice> |
| </xsd:group> |
| |
| <xsd:complexType name="descriptionType"> |
| <xsd:complexContent mixed="true"> |
| <xsd:extension base="xsd:anyType"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="abstract-extension" abstract="true" type="abstractExtensionType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for arbitrary extensions as children of the mule element. |
| Other transports and modules may extend this if they need to add global |
| elements to the configuration (but consider the more specific elements |
| like abstract-connector first). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractExtensionType"/> |
| |
| <xsd:element name="abstract-connector" abstract="true" type="abstractConnectorType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for connector elements. |
| Connector elements allow properties to be configured across all endpoints that |
| use the same transport. |
| If multiple connectors are defined for the same transport then each endpoint |
| must name which connector is being used. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractConnectorType"> |
| <xsd:attribute name="name" type="substitutableName" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Identifies the connector so that other elements can reference it. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:element name="abstract-global-endpoint" abstract="true" type="abstractGlobalEndpointType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for global endpoint elements. |
| Global endpoints are named templates that allow us to define an endpoint once |
| and refer to it in several places. |
| Currently the same template is used for both inbound and outbound endpoints. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractGlobalEndpointType"> |
| <xsd:attribute name="name" type="substitutableName" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Identifies the endpoint so that other elements can reference it. |
| This name can also be referenced in MuleClient. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:element name="abstract-inbound-endpoint" abstract="true" type="abstractInboundEndpointType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for inbound endpoint elements. |
| Inbound endpoints receive messages from the underlying transport. |
| The message payload is then delivered to the component for processing. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractInboundEndpointType"> |
| <xsd:attribute name="name" type="substitutableName"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Identifies the inbound endpoint in the registry, but is of relatively little use |
| - it cannot be referred to from MuleClient, for example. |
| For more useful aliases, use global endpoints. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:element name="abstract-outbound-endpoint" abstract="true" type="abstractOutboundEndpointType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for outbound endpoint elements. |
| Outbound endpoints dispatch messages to the underlying transport. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractOutboundEndpointType"> |
| <xsd:attribute name="name" type="substitutableName"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Identifies the outbound endpoint in the registry, but is of relatively little use |
| - it cannot be referred to from MuleClient, for example. |
| For more useful aliases, use global endpoints. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:element name="abstract-transformer" abstract="true" type="abstractTransformerType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for transformer elements. |
| Transformers convert message payloads. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractTransformerType"> |
| <xsd:attribute name="name" type="substitutableName"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Identifies the transformer so that other elements can reference it. |
| Required if the transformer is defined at the global level. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="returnClass" type="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The class of the message generated by the transformer. |
| This is used if transformers are auto-selected |
| (which is somewhat incomplete at the moment?). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="ignoreBadInput" type="substitutableBoolean"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Many transformers only accept certain classes. |
| Such transformers are never called with inappropriate input |
| (whatever the value of this attribute). |
| If a transformer forms part of a chain and cannot accept the current message class, |
| then this flag controls whether the remaining part of the chain is evaluated. |
| If true, the next transformer is called. |
| If false the chain ends, keeping the result generated up to that point. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:complexType name="globalPropertyType"> |
| <xsd:attribute name="name" type="substitutableName" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The name of the property. |
| This is used inside ${...}. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="value" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The value of the property. |
| This replaces each occurence of ${...}. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <!-- seemed pointless making these simple container types abstract --> |
| <xsd:complexType name="inboundCollectionType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-catch-all-strategy" minOccurs="0"/> |
| <xsd:element ref="abstract-inbound-endpoint" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="abstract-inbound-router" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| |
| <xsd:element name="abstract-catch-all-strategy" abstract="true" type="abstractCatchAllStrategyType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for catch-all strategy elements. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractCatchAllStrategyType"/> |
| |
| <xsd:element name="abstract-inbound-router" abstract="true" type="abstractInboundRouterType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for inbound router elements. |
| Inbound routers control how incoming messages are handled. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractInboundRouterType"/> |
| |
| <xsd:element name="abstract-filter" abstract="true" type="abstractFilterType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for filter elements. |
| Filters are used to make decisions within the Mule framework. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractFilterType"> |
| <xsd:attribute name="name" type="substitutableName"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Identifies the filter so that other elements can reference it. |
| Required if the filter is defined at the global level. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="not" type="substitutableBoolean"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Inverts the filter's condition. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:complexType name="outboundCollectionType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-catch-all-strategy" minOccurs="0"/> |
| <xsd:element ref="abstract-outbound-router" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="matchAll" type="substitutableBoolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation> |
| If true, the output message will be sent to all routers, otherwise only |
| the first matching router is used. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:element name="abstract-outbound-router" abstract="true" type="abstractOutboundRouterType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for outbound router elements. |
| Outbound routers control how outgoing messages are delivered to the outbound endpoints. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractOutboundRouterType"/> |
| |
| <xsd:element name="abstract-transaction-manager" abstract="true" type="abstractTransactionManagerType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for transaction manager elements. |
| Transaction managers are used to co-ordinate transactions. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractTransactionManagerType"/> |
| |
| <xsd:complexType name="configurationType"> |
| <xsd:sequence> |
| <xsd:element name="default-threading-profile" type="threadingProfileType" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The default threading profile, |
| used by components and by endpoints for dispatching and receiving |
| if no more specific configuration is given. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="default-dispatcher-threading-profile" type="threadingProfileType" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The default dispatching threading profile, modifies the default-threading-profile |
| values and is used by endpoints for dispatching |
| if no more specific configuration is given. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="default-receiver-threading-profile" type="threadingProfileType" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The default receiving threading profile, modifies the default-threading-profile |
| values and is used by endpoints for receiving |
| if no more specific configuration is given. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="default-component-threading-profile" type="threadingProfileType" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The default component threading profile, modifies the default-threading-profile |
| values and is used if no more specific configuration is given. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| <xsd:attribute name="defaultSynchronousEndpoints" type="substitutableBoolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation> |
| If true then connections to endpoints will wait for a response. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="defaultRemoteSync" type="substitutableBoolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation> |
| If true then connections to endpoints will wait for a response from the remote service. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="defaultSynchronousEventTimeout" type="xsd:string" default="3000"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The default period (ms) to wait for a synchronous response. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="defaultTransactionTimeout" type="xsd:string" default="5000"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The default timeout for transactions, |
| used if no more specific configuration is given. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:complexType name="notificationManagerType"> |
| <xsd:sequence> |
| <xsd:element name="notification" type="defineNotificationType" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Associate an event with an interface. |
| Listeners which implement the interface will receive instances of the event. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="disable-notification" type="disableNotificationType" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Block the association of an event with a particular interface. |
| This filters events after the association with a particular interface |
| (and so takes precedence). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="notification-listener" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Register a bean as a listener with the notification system. |
| Events are dispatched by reflection - the listener will receive all events |
| associated with any interfaces it implements. |
| The relationship between interfaces and events is configured by the |
| notification and disable-notification elements. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:attribute name="ref" type="xsd:NMTOKEN" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The bean that will receive notifications. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="subscription" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An optional string that is compared with the event's resource identifier. |
| Only events with matching identifiers will be sent. |
| If no value is given, all events are sent. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| </xsd:element> |
| </xsd:sequence> |
| <xsd:attribute name="dynamic" type="substitutableBoolean"> |
| <xsd:annotation> |
| <xsd:documentation> |
| If the notification manager is dynamic then programatic updates to the manager |
| (ie via Java code) will affect all messages. |
| Otherwise, some parts of the system may cache state for |
| efficiency and so not generate newly enabled notifications. |
| The default value is false. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:complexType name="defineNotificationType"> |
| <xsd:attribute name="event-class" type="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The class associated with a notification event that will be delivered to the interface. |
| This can be used instead of the event attribute to specify a custom class. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="event" type="notificationTypes"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The notification event to deliver. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="interface-class" type="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The interface (class name) that will receive the notification event. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="interface" type="notificationTypes"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The interface that will receive the notification event. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:complexType name="disableNotificationType"> |
| <xsd:attribute name="event-class" type="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The class associated with an event that will no longer be delivered to any interface. |
| This can be used instead of the event attribute to specify a custom class. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="event" type="notificationTypes"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The event to not deliver. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="interface-class" type="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The interface (class name) that will no longer receive an event. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="interface" type="notificationTypes"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The interface that will no longer receive an event. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| |
| <xsd:simpleType name="notificationTypes"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The interface that will no longer receive an event. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:NMTOKEN"> |
| <xsd:enumeration value="MANAGER"/> |
| <xsd:enumeration value="MODEL"/> |
| <xsd:enumeration value="SERVICE"/> |
| <xsd:enumeration value="SECURITY"/> |
| <xsd:enumeration value="MESSAGE"/> |
| <xsd:enumeration value="MANAGEMENT"/> |
| <xsd:enumeration value="CONNECTION"/> |
| <xsd:enumeration value="REGISTRY"/> |
| <xsd:enumeration value="CUSTOM"/> |
| <xsd:enumeration value="EXCEPTION"/> |
| <xsd:enumeration value="TRANSACTION"/> |
| <xsd:enumeration value="ROUTING"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| <!--==============================================================--> |
| <!-- Models --> |
| <!--==============================================================--> |
| |
| <xsd:element name="abstract-model" abstract="true" type="abstractModelType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for model elements. |
| A model provides basic settings and processing for all the services it contains. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractModelType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-exception-strategy" minOccurs="0"/> |
| <xsd:group ref="entryPointResolvers"/> |
| <xsd:element ref="abstract-service" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="name" type="nonBlankString"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The name used to identify this model. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:element name="seda-model" type="sedaModelType" substitutionGroup="abstract-model"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A SEDA (Staged Event Drivern Architecture) model has separate threads and |
| queues for each component. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="sedaModelType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractModelType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-queue-profile" minOccurs="0"/> |
| </xsd:sequence> |
| <xsd:attribute name="inherit" type="xsd:boolean"> |
| <xsd:annotation> |
| <xsd:documentation> |
| If true then this model element is an extension of a previous model |
| element with the same name. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="model" type="defaultModelType" substitutionGroup="abstract-model"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The default model is a SEDA model. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="defaultModelType"> |
| <xsd:complexContent> |
| <xsd:extension base="sedaModelType"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <!-- Model elements --> |
| |
| <xsd:element name="abstract-queue-profile" abstract="true" type="abstractQueueProfileType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for queue profile elements. |
| A queue profile controls how messages are queued before being processed. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractQueueProfileType"/> |
| |
| <!-- to give a cleaner config we allow either a set or an individual entry (but not both).--> |
| <xsd:group name="entryPointResolvers"> |
| <xsd:choice> |
| <xsd:element ref="abstract-entry-point-resolver-set" minOccurs="0"/> |
| <!-- we could allow many of these, but it looks ugly --> |
| <xsd:element ref="abstract-entry-point-resolver" minOccurs="0"/> |
| </xsd:choice> |
| </xsd:group> |
| |
| <xsd:element name="abstract-entry-point-resolver-set" abstract="true" type="abstractEntryPointResolverSetType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for entry point resolver set elements. |
| These combine a group of entry point resolvers, trying them in turn until one succeeds. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractEntryPointResolverSetType"/> |
| |
| <xsd:element name="legacy-entry-point-resolver-set" type="extensibleEntryPointResolverSet" |
| substitutionGroup="abstract-entry-point-resolver-set"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An extensible set of entry point resolvers (which determine how a message is passed to a component in |
| Java) |
| that already contains resolvers to implement the standard logic. |
| This is already provided by default and is only needed explicitly if |
| it will be extended with other entry point resolvers. |
| This element can be set on the model or component; |
| the model value provides a default which individual component values can override. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="entry-point-resolver-set" type="extensibleEntryPointResolverSet" |
| substitutionGroup="abstract-entry-point-resolver-set"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An extensible set of entry point resolvers. |
| These determine how a message is passed to a component in Java. |
| Each entry point resolver is tried in turn until one succeeds in delivering the messge to the component. |
| This element can be set on the model or component; |
| the model value provides a default which individual component values can override. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="extensibleEntryPointResolverSet"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractEntryPointResolverSetType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-entry-point-resolver" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="custom-entry-point-resolver-set" type="customEntryPointResolverSetType" |
| substitutionGroup="abstract-entry-point-resolver-set"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A custom entry point resolver set. |
| This allows user-supplied code to determine how a message is passed to a component in Java. |
| This element can be set on the model or component; |
| the model value provides a default which individual component values can override. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="customEntryPointResolverSetType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractEntryPointResolverSetType"> |
| <xsd:sequence> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="class" type="substitutableClass" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An implementation of the EntryPointResolverSet interface. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="abstract-entry-point-resolver" abstract="true" type="abstractEntryPointResolverType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for an entry point resolver element. |
| Entry point resolvers define how payloads are delivered to Java code |
| (ie they choose the method to call). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="callable-entry-point-resolver" type="abstractEntryPointResolverType" |
| substitutionGroup="abstract-entry-point-resolver"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An entry point resolver for components that implement the Callable interface. |
| This passes a MuleEventContext to the component. |
| This element can be set on the model or component; |
| the model value provides a default which individual component values can override. |
| This element can also be used directly or as part of a set of resolvers; |
| the resolvers in a set are used in turn until one is successful. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractEntryPointResolverType"/> |
| |
| <xsd:element name="custom-entry-point-resolver" type="customEntryPointResolverType" |
| substitutionGroup="abstract-entry-point-resolver"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A custom entry point resolver. |
| This allows user-supplied code to determine how a message is passed to a component in Java. |
| This element can be set on the model or component; |
| the model value provides a default which individual component values can override. |
| This element can also be used directly or as part of a set of resolvers; |
| the resolvers in a set are used in turn until one is successful. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="customEntryPointResolverType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractEntryPointResolverType"> |
| <xsd:sequence> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="class" type="substitutableClass" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An implementation of the EntryPointResolver interface. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="baseEntryPointResolverType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractEntryPointResolverType"> |
| <xsd:attribute name="transformFirst" type="substitutableBoolean"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Should the message be transformer before being delivered to the component? |
| By default, messages are transformed. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="acceptVoidMethods" type="substitutableBoolean"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Should the resolver call void methods? |
| By default, void methods are not considered as possible candidates for message delivery. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="property-entry-point-resolver" type="propertyEntryPointResolverType" |
| substitutionGroup="abstract-entry-point-resolver"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Use a message property to select the component method to be called. |
| This element can be set on the model or component; |
| the model value provides a default which individual component values can override. |
| This element can also be used directly or as part of a set of resolvers; |
| the resolvers in a set are used in turn until one is successful. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="propertyEntryPointResolverType"> |
| <xsd:complexContent> |
| <xsd:extension base="baseEntryPointResolverType"> |
| <xsd:attribute name="property" type="substitutableName"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The name of the message property used to select a method on the component. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="method-entry-point-resolver" type="methodEntryPointResolverType" |
| substitutionGroup="abstract-entry-point-resolver"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Deliver the message to a named method. |
| This element can be set on the model or component; |
| the model value provides a default which individual component values can override. |
| This element can also be used directly or as part of a set of resolvers; |
| the resolvers in a set are used in turn until one is successful. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="methodEntryPointResolverType"> |
| <xsd:complexContent> |
| <xsd:extension base="baseEntryPointResolverType"> |
| <xsd:sequence> |
| <xsd:element ref="include-entry-point" minOccurs="1" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="reflection-entry-point-resolver" type="reflectionEntryPointResolverType" |
| substitutionGroup="abstract-entry-point-resolver"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Generate a list of candidate methods from the component via reflections. |
| This element can be set on the model or component; |
| the model value provides a default which individual component values can override. |
| This element can also be used directly or as part of a set of resolvers; |
| the resolvers in a set are used in turn until one is successful. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="reflectionEntryPointResolverType"> |
| <xsd:complexContent> |
| <xsd:extension base="baseEntryPointResolverType"> |
| <xsd:sequence> |
| <xsd:element name="exclude-object-methods" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| If specified, methods in the Java Object interface are not included in |
| the list of possible methods that can receive the message. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="exclude-entry-point" type="methodType" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Explicitly exclude a named method from receiving the message. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="array-entry-point-resolver" type="complexEntryPointResolverType" |
| substitutionGroup="abstract-entry-point-resolver"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Deliver the message to a method which takes a single array as argument. |
| This element can be set on the model or component; |
| the model value provides a default which individual component values can override. |
| This element can also be used directly or as part of a set of resolvers; |
| the resolvers in a set are used in turn until one is successful. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="no-arguments-entry-point-resolver" type="complexEntryPointResolverType" |
| substitutionGroup="abstract-entry-point-resolver"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Call a method without arguments (the message is not passed to the component). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="complexEntryPointResolverType"> |
| <xsd:complexContent> |
| <xsd:extension base="reflectionEntryPointResolverType"> |
| <xsd:sequence> |
| <xsd:element ref="include-entry-point" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="enableDiscovery" type="substitutableBoolean"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="include-entry-point" type="methodType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A possible method for delivery. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="methodType"> |
| <xsd:attribute name="method" type="nonBlankString"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The name of the method. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| |
| <!--==============================================================--> |
| <!-- Services --> |
| <!--==============================================================--> |
| |
| <xsd:element name="abstract-service" abstract="true" type="abstractServiceType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for a service element. |
| Services combine message routing with a Java (typically) component. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractServiceType"> |
| <xsd:attribute name="name" type="nonBlankString" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The name used to identify this service. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:complexType name="baseServiceType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Base support for a model-based wrapper around the POJO service (SEDA, Streaming, etc.) |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="abstractServiceType"> |
| <xsd:sequence> |
| <xsd:element name="description" type="descriptionType" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| This can hold any kind of documentation consistent with the overall XML format). |
| It is intended to be "human readable" only and is not used by the system. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="inbound" type="inboundCollectionType" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The elements within "inbound" describe how messages enter the service. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <!-- minOccurs="0" to allow for <forwarding-router/> and/or default component --> |
| <xsd:element ref="abstract-component" minOccurs="0"/> |
| <xsd:element name="outbound" type="outboundCollectionType" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The elements within "outbound" describe how messages leave the service. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="async-reply" type="asyncReplyCollectionType" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The elements within "async-reply" describe how asynchronous replies are handled. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element ref="abstract-exception-strategy" minOccurs="0"/> |
| </xsd:sequence> |
| <xsd:attribute name="initialState" default="started"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The initial state of the service. |
| Usually a service is started automatically, but this attribute can block any |
| initial startup ("stopped") or stop the service immediately after initial |
| startup ("paused"). |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:NMTOKEN"> |
| <xsd:enumeration value="started"/> |
| <xsd:enumeration value="stopped"/> |
| <xsd:enumeration value="paused"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="abstract-exception-strategy" abstract="true" type="abstractExceptionStrategyType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for an exception strategy element. |
| Exception strategies define how Mule should react to errors. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:complexType name="abstractExceptionStrategyType"> |
| <xsd:sequence> |
| <xsd:element name="commit-transaction" type="exceptionPatternType" maxOccurs="1" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation>Defines when a current transaction gets rolled-back depending on the name of the |
| exception caught. Users can set a comma delimited list of wildcard patterns that wil be matched |
| angainst the fully qualified classname of the current exception. Patterns defined for this |
| element will leave the current transaction (if any) untouched and llow it to be committed. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="rollback-transaction" type="exceptionPatternType" maxOccurs="1" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation>Defines when a current transaction gets rolled-back depending on the name of the |
| exception caught. Users can set a comma delimited list of wildcard patterns that wil be matched |
| angainst the fully qualified classname of the current exception. Patterns defined for this |
| element will rollback the current transaction (if any). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| <xsd:attribute name="enableNotifications" type="xsd:boolean"> |
| <xsd:annotation> |
| <xsd:documentation>Determines whether ExceptionNotifications wil be fired from this strategy when an |
| exception occurs. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:complexType name="exceptionPatternType"> |
| <xsd:attribute name="exception-pattern" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation>A comma-separate list of wildcard expressions that will be matched against the |
| fully qualified cassname of the current exception received by the ExceptionStrategy. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:complexType name="asyncReplyCollectionType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-inbound-endpoint" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="abstract-async-reply-router" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="abstract-transformer" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="timeout" type="substitutableInt"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The timeout (ms) to wait for a reply. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="failOnTimeout" type="substitutableBoolean"> |
| <xsd:annotation> |
| <xsd:documentation> |
| If the router times out before all expected events have been received should an exception be thrown |
| or should the current events be returned for processing. The default is false. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:element name="abstract-async-reply-router" abstract="true" type="abstractAsyncReplyRouterType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for an async reply router element. |
| Asynchronous replies are handled via this router. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractAsyncReplyRouterType"/> |
| |
| <xsd:element name="service" type="sedaServiceType" substitutionGroup="abstract-service"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The standard SEDA service. |
| A service describes how to receive messages, deliver them to |
| a component, and handle the results (if any). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="sedaServiceType"> |
| <xsd:complexContent> |
| <xsd:extension base="baseServiceType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-component-threading-profile" minOccurs="0"/> |
| <xsd:element ref="abstract-queue-profile" minOccurs="0"/> |
| </xsd:sequence> |
| <xsd:attribute name="queueTimeout" type="substitutableInt"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The timeout used when taking messages from the SEDA queue. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="custom-service" type="customServiceType" substitutionGroup="abstract-service"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A user-implemeted service |
| (typically used only in testing). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="customServiceType"> |
| <xsd:complexContent> |
| <xsd:extension base="baseServiceType"> |
| <xsd:attribute name="class" type="substitutableClass" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The class to use for the service. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="abstract-component-threading-profile" abstract="true" |
| type="abstractComponentThreadingProfileType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for component threading profile element. |
| Threading profils define how thread pools interact with the component. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractComponentThreadingProfileType"/> |
| |
| <!--==============================================================--> |
| <!-- Components --> |
| <!--==============================================================--> |
| |
| <xsd:element name="abstract-component" abstract="true" type="abstractComponentType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for component element. |
| A component processes data. Typically it is a Java object. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractComponentType"> |
| <xsd:sequence> |
| <xsd:group ref="entryPointResolvers"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| |
| <xsd:element name="component" type="defaultJavaComponentType" substitutionGroup="abstract-component"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A simple POJO (Plain Old Java Object) component |
| that will be invoked by Mule when a message is received. |
| The instance can be specified via a factory, or via a class. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="defaultJavaComponentType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractComponentType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-object-factory" minOccurs="0"/> |
| <xsd:element ref="abstract-lifecycle-adapter-factory" minOccurs="0"/> |
| <xsd:element name="binding" type="pojoBindingType" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A binding associates a Mule endpoint with an injected Java interface |
| (this is like using Spring to inject a bean, but instead of calling a |
| method on the bean a message is sent to an endpoint). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| <xsd:attribute name="class" type="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Specify a component class. |
| This is a shortcut that is equivalent to providing a prototype-object element. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="pooled-component" type="pooledJavaComponentType" substitutionGroup="abstract-component"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A pooled POJO (Plain Old Java Object) component |
| that will be invoked by Mule when a message is received. |
| The instance can be specified via a factory, or via a class. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="pooledJavaComponentType"> |
| <xsd:complexContent> |
| <xsd:extension base="defaultJavaComponentType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-pooling-profile" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation>Characteristics of the object pool</xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| |
| <xsd:complexType name="pojoBindingType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-outbound-endpoint" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="interface" use="required" type="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The interface to be injected. |
| A proxy will be created that implements this interface by calling out to the endpoint. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="method" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The method on the interface that should be used. |
| This can be omitted if the interface has a single method. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:complexType name="defaultComponentType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractComponentType"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="bridge-component" type="defaultComponentType" substitutionGroup="abstract-component"> |
| <xsd:annotation> |
| <xsd:documentation> |
| This transfers a message from inbound to outbound endpoints. |
| This name is provided for backwards compatability - it is equivalent to not specifying any component. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <!-- don't expose this, it's not needed --> |
| <!-- xsd:element name="pass-through-component" type="defaultComponentType" substitutionGroup="abstract-component"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The default, "do nothing" component. |
| The message is simply transferred from inbound to outbound endpoints. |
| This is the default and need not be specified. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element --> |
| |
| <xsd:element name="echo-component" type="defaultComponentType" substitutionGroup="abstract-component"> |
| <xsd:annotation> |
| <xsd:documentation> |
| This logs the message and returns the payload back as the result. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="log-component" type="defaultComponentType" substitutionGroup="abstract-component"> |
| <xsd:annotation> |
| <xsd:documentation> |
| This logs the message content (or content length if it is a large message). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="null-component" type="defaultComponentType" substitutionGroup="abstract-component"> |
| <xsd:annotation> |
| <xsd:documentation> |
| This will throw an exception if it receives a message. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| |
| <!--==============================================================--> |
| <!-- Transactions --> |
| <!--==============================================================--> |
| |
| <xsd:element name="abstract-transaction" abstract="true" type="abstractTransactionType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for transaction elements. |
| Transactions allow a series of operations to be grouped together. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractTransactionType"> |
| <xsd:attribute name="action"> |
| <xsd:annotation> |
| <xsd:documentation> |
| NONE - Never participate in a transaction; |
| ALWAYS_BEGIN - Always start a new transaction when receiving an event. An exception will be thrown |
| if a transaction already exists; |
| BEGIN_OR_JOIN - If a transaction is already in progress when an event is received, join the |
| transaction, otherwise start a new transaction; |
| ALWAYS_JOIN - Always expects a transaction to be in progress when an event is received, if there is |
| no transaction an exception is thrown; |
| JOIN_IF_POSSIBLE - Will join the current transaction if one is available otherwise no transaction is |
| created. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:NMTOKEN"> |
| <xsd:enumeration value="NONE"/> |
| <xsd:enumeration value="ALWAYS_BEGIN"/> |
| <xsd:enumeration value="BEGIN_OR_JOIN"/> |
| <xsd:enumeration value="ALWAYS_JOIN"/> |
| <xsd:enumeration value="JOIN_IF_POSSIBLE"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute name="timeout" type="substitutableInt"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Timeout for transaction (ms). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:complexType name="baseTransactionType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractTransactionType"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="custom-transaction" type="customTransactionType" substitutionGroup="abstract-transaction"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Allow access to user-defined or otherwise unsupported third party transactions. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="customTransactionType"> |
| <xsd:complexContent> |
| <xsd:extension base="baseTransactionType"> |
| <xsd:attribute name="factory-class" type="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A class that implements the TransactionFactory interface. |
| This will be instantiated and used to generate a transaction. |
| The attribute and the "factory-ref" attribute are mutually exclusive; |
| one of the two is required. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="factory-ref" type="xsd:NMTOKEN"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A bean that implements the TransactionFactory interface. |
| This will be used to generate a transaction. |
| The attribute and the "factory-class" attribute are mutually exclusive; |
| one of the two is required. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="transactionManagerType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractTransactionManagerType"> |
| <xsd:attribute name="name" type="substitutableName" default="transactionManager" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An optional name for the transaction manager. |
| The default value is "transactionManager". |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="websphere-transaction-manager" type="transactionManagerType" |
| substitutionGroup="abstract-transaction-manager"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The Websphere transaction manager. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="jboss-transaction-manager" type="transactionManagerType" |
| substitutionGroup="abstract-transaction-manager"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The JBoss transaction manager. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:complexType name="jndiTransactionManagerType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractTransactionManagerType"> |
| <xsd:sequence> |
| <xsd:element name="environment" type="mapType" minOccurs="0" maxOccurs="1"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The JNDI environment. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="weblogic-transaction-manager" type="jndiTransactionManagerType" |
| substitutionGroup="abstract-transaction-manager"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The Weblogic transaction manager. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="jrun-transaction-manager" type="transactionManagerType" |
| substitutionGroup="abstract-transaction-manager"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The JRun transaction manager. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="resin-transaction-manager" type="transactionManagerType" |
| substitutionGroup="abstract-transaction-manager"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The Resin transaction manager. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="jndi-transaction-manager" substitutionGroup="abstract-transaction-manager"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Retrieve a named transaction manager factory from JNDI. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:complexContent> |
| <xsd:extension base="jndiTransactionManagerType"> |
| <xsd:attribute name="jndiName" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The name of the manager factory to retrieve (eg java:/TransactionManager). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="custom-transaction-manager" type="customTransactionManagerType" |
| substitutionGroup="abstract-transaction-manager"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A user-implemented transaction manager. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="customTransactionManagerType"> |
| <xsd:complexContent> |
| <xsd:extension base="jndiTransactionManagerType"> |
| <xsd:sequence> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="class" type="substitutableClass" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The class to instantiate to create a transaction manager. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| |
| <!--==============================================================--> |
| <!-- Endpoint elements --> |
| <!--==============================================================--> |
| |
| <xsd:element name="endpoint" type="globalEndpointType" substitutionGroup="abstract-global-endpoint"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An endpoint "template" which can be used to construct an inbound or outbound endpoint |
| elsewhere in the configuration by referencing the endpoint's name. |
| Each transport implements its own endpoint element, with a more friendly syntax, |
| but this generic element can be used with any transport by supplying the correct |
| address URI. For example, "vm://foo" describes a VM transport endpoint. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="globalEndpointType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractGlobalEndpointType"> |
| <xsd:group ref="defaultEndpointElements"/> |
| <xsd:attributeGroup ref="defaultEndpointAttributes"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="inbound-endpoint" type="inboundEndpointType" substitutionGroup="abstract-inbound-endpoint"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An inbound endpoint receives messages from the associated transport. |
| Each transport implements its own inbound endpoint element, with a more friendly syntax, |
| but this generic element can be used with any transport by supplying the correct |
| address URI. For example, "vm://foo" describes a VM transport endpoint. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="inboundEndpointType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractInboundEndpointType"> |
| <xsd:group ref="defaultEndpointElements"/> |
| <xsd:attributeGroup ref="defaultEndpointAttributes"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="outbound-endpoint" type="outboundEndpointType" substitutionGroup="abstract-outbound-endpoint"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An outbound endpoint sends messages to the associated transport. |
| Each transport implements its own outbound endpoint element, with a more friendly syntax, |
| but this generic element can be used with any transport by supplying the correct |
| address URI. For example, "vm://foo" describes a VM transport endpoint. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="outboundEndpointType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractOutboundEndpointType"> |
| <xsd:group ref="defaultEndpointElements"/> |
| <xsd:attributeGroup ref="defaultEndpointAttributes"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <!-- these include option/repeats - should be embedded once --> |
| <xsd:group name="defaultEndpointElements"> |
| <xsd:sequence> |
| <xsd:sequence minOccurs="0" maxOccurs="unbounded"> |
| <xsd:group ref="endpointTransformers"/> |
| <xsd:element ref="abstract-transaction" minOccurs="0"/> |
| <xsd:element ref="abstract-filter" minOccurs="0"/> |
| <xsd:element ref="abstract-security-filter" minOccurs="0"/> |
| <xsd:group ref="propertiesGroup"/> |
| </xsd:sequence> |
| </xsd:sequence> |
| </xsd:group> |
| |
| <xsd:element name="abstract-security-filter" abstract="true" type="abstractSecurityFilterType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for security filter elements. |
| Security filters can control access to the system, etc. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="abstractSecurityFilterType"/> |
| |
| <xsd:attributeGroup name="defaultEndpointAttributes"> |
| <xsd:attributeGroup ref="restrictedEndpointAttributes"/> |
| <!-- these next two attributes are mutually exclusive and one is required. |
| but there is no way to define this in a schema... --> |
| <!-- endpoint references - dynamically checked to make sure not top level --> |
| <xsd:attribute name="ref" type="xsd:NMTOKEN"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A reference to a global endpoint. |
| If this attribute is used then the endpoint is used as a template to construct this endpoint. |
| A template fixes the address (protocol, path, host, etc), and may specify initial values for |
| various properties, but further properties can be defined locally (as long as they don't |
| change the address in any way). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <!-- explicit or global endpoints --> |
| <xsd:attribute name="address" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The generic address for this endpoint. |
| If this attribute is used then the protocol must be specified as part of the URI. |
| Alternatively, most transports provide alternative attributes for specifying the address |
| (path, host etc). |
| Note that the address attribute cannot be combined with "ref" or with the transport-provided |
| alternative attributes. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:attributeGroup> |
| |
| <xsd:attributeGroup name="restrictedEndpointAttributes"> |
| <xsd:attribute name="synchronous" type="substitutableBoolean"> |
| <xsd:annotation> |
| <xsd:documentation> |
| If true the result from the component processing the incoming message will be |
| returned as a response. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="remoteSync" type="substitutableBoolean"> |
| <xsd:annotation> |
| <xsd:documentation> |
| If true the component will wait for a response to the outgoing message before |
| replying to the incoming message. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="remoteSyncTimeout" type="substitutableInt"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The timeout for the remoteSync wait (ms). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="encoding" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| String encoding used for messages. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="connector-ref" type="xsd:NMTOKEN"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The name of the connector associated with this endpoint. |
| This must be specified if more than one connector is defined for this transport. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="transformer-refs" type="xsd:NMTOKENS"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A list of transformers which will be applied in order to the message before it is |
| delivered to the component. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="responseTransformer-refs" type="xsd:NMTOKENS"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A list of transformers which will be applied in order to the synchronous response |
| before it is returned via the transport. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:attributeGroup> |
| |
| <xsd:complexType name="endpointRefType"> |
| <xsd:attribute name="address" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The destination address for a reply message. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="ref" type="xsd:NMTOKEN"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The reference name of a global endpoint to use. If this EndpointRef will be associated to a message |
| such as a Reply-To address, this endpoint ref has to be available on the remote Mule instance that reads the |
| Reply-To address. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:group name="endpointTransformers"> |
| <xsd:annotation> |
| <xsd:documentation> |
| This allows the user to specify either a simple list of (normal) transformers or |
| separate bracketed lists of normal and response transformers. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:choice> |
| <xsd:group ref="transformersList"/> |
| <xsd:sequence> |
| <xsd:element name="transformers" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A list of transformer elements that will be applied to the message |
| before it is delivered to the component. |
| Note that a list of transformers can also be specified directly |
| (without the "transformers" element), but then it is not possible |
| to also specify response transformers |
| (using the "response-transformers" element). |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:group ref="transformersList"/> |
| </xsd:complexType> |
| </xsd:element> |
| <xsd:element name="response-transformers" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A list of transformer elements that will be applied to the response message |
| returned from the component. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:group ref="transformersList"/> |
| </xsd:complexType> |
| </xsd:element> |
| </xsd:sequence> |
| </xsd:choice> |
| </xsd:group> |
| |
| <xsd:group name="transformersList"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A list of transformers - normal or response, depending on context. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:element ref="abstract-transformer" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| </xsd:group> |
| |
| <!--==============================================================--> |
| <!-- Filter elements --> |
| <!--==============================================================--> |
| |
| <xsd:element name="filter" type="refFilterType" substitutionGroup="abstract-filter"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A filter that is defined elsewhere (at the global level, or as a Spring bean). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="refFilterType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractFilterType"> |
| <xsd:attribute name="ref" type="xsd:NMTOKEN" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The name of the filter to use. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="not-filter" type="unitaryFilterType" substitutionGroup="abstract-filter"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Invert the enclosed filter |
| (so if it returns true for some message, this will return false, and vice-versa). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="unitaryFilterType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractFilterType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-filter"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="and-filter" type="collectionFilterType" substitutionGroup="abstract-filter"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Return true only if all the enclosed filters return true. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="or-filter" type="collectionFilterType" substitutionGroup="abstract-filter"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Return true if any of the enclosed filters returns true. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="collectionFilterType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractFilterType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-filter" minOccurs="2" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="wildcard-filter" type="wildcardFilterType" substitutionGroup="abstract-filter"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A filter that matches string messages against wildcards. |
| It performs matches with "*", i.e. "jms.events.*" would catch "jms.events.customer" |
| and "jms.events.receipts". |
| This filter accepts a comma-separated list of patterns, so more than one filter pattern can be |
| matched for a given argument: "jms.events.*, jms.actions.*" will match "jms.events.system" |
| and "jms.actions" but not "jms.queue". |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="wildcardFilterType"> |
| <xsd:complexContent> |
| <xsd:extension base="caseSensitivePatternFilterType"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="expression-filter" type="expressionFilterType" substitutionGroup="abstract-filter"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A filter that can evaluate a range of expressions. It supports some base expression types |
| such as 'header', 'payload' (payload type), 'regex' and 'wildcard'. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="expressionFilterType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractFilterType"> |
| <xsd:attribute name="evaluator" use="required"> |
| <xsd:annotation> |
| <xsd:documentation>The expression evaluator to use. The expression filter supports some types |
| such as header, payload, exception, wildcard and regex, that are in-built filters not |
| registered with the ExpressionEvaluatorManager. All others are registered with the |
| ExpressionEvaluatorManager. Where XPath, bean and ongl are used, the expression should be a |
| boolean expression. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:restriction base="substitutableName"> |
| <xsd:enumeration value="header"/> |
| <xsd:enumeration value="payload-type"/> |
| <xsd:enumeration value="exception-type"/> |
| <xsd:enumeration value="wildcard"/> |
| <xsd:enumeration value="regex"/> |
| <xsd:enumeration value="ognl"/> |
| <xsd:enumeration value="xpath"/> |
| <xsd:enumeration value="jxpath"/> |
| <xsd:enumeration value="bean"/> |
| <xsd:enumeration value="custom"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute name="expression" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation>The expression that will be evaluated. This should always be a boolean |
| expression. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="customEvaluator" type="substitutableName"> |
| <xsd:annotation> |
| <xsd:documentation>Must be set if the evaluator is set to 'custom'. Also the custom evaluator |
| must be registered with the ExpressionEvaluatorManager if it is to be used here. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="nullReturnsTrue" type="substitutableBoolean"> |
| <xsd:annotation> |
| <xsd:documentation>If the specified expression returns null should the filter return true or |
| false. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| |
| <xsd:element name="regex-filter" type="patternFilterType" substitutionGroup="abstract-filter"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A filter that matches string messages against a regular expression. |
| The Java regular expression engine (java.util.regex.Pattern) is used. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="patternFilterType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractFilterType"> |
| <xsd:attribute name="pattern" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The pattern to use when matching. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="message-property-filter" type="caseSensitivePatternFilterType" |
| substitutionGroup="abstract-filter"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A filter that matches properties on an event. |
| This can be very useful as the event properties represent all the meta information about the event |
| from the underlying transport, so for an event received over HTTP you can check for HTTP headers etc. |
| The pattern should be expressed as a key/value pair, i.e. "propertyName=value". |
| If you want to compare more than one property you can use the logic filters for And, Or and Not |
| expressions. |
| By default the comparison is case sensitive; you can set the caseSensitive property to override this. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="caseSensitivePatternFilterType"> |
| <xsd:complexContent> |
| <xsd:extension base="patternFilterType"> |
| <xsd:attribute name="caseSensitive" type="substitutableBoolean" default="true"> |
| <xsd:annotation> |
| <xsd:documentation> |
| If false, the comparison ignores case. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="exception-type-filter" type="typeFilterType" substitutionGroup="abstract-filter"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A filter that matches the type of an exception. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="payload-type-filter" type="typeFilterType" substitutionGroup="abstract-filter"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A filter that matches the type of the payload. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="typeFilterType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractFilterType"> |
| <xsd:attribute name="expectedType" type="substitutableClass" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The expected class used in the comparison. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="custom-filter" type="customFilterType" substitutionGroup="abstract-filter"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A user-implemented filter. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="customFilterType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractFilterType"> |
| <xsd:sequence> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="class" type="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An implementation of the Filter interface. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| |
| <!-- security filters --> |
| |
| <xsd:element name="encryption-security-filter" type="encryptionSecurityFilterType" |
| substitutionGroup="abstract-security-filter"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A filter that provides password based encyption. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="encryptionSecurityFilterType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractSecurityFilterType"> |
| <xsd:attribute name="strategy-ref" type="xsd:NMTOKEN"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The name of the encryption strategy to use. |
| This should be configured using the password-encryption-strategy element, |
| inside a security-manager element at the top level. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| |
| <!--==============================================================--> |
| <!-- Transformer elements --> |
| <!--==============================================================--> |
| |
| <xsd:element name="transformer" type="refTransformerType" substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A reference to a transformer defined elsewhere. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="refTransformerType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractTransformerType"> |
| <xsd:attribute name="ref" type="xsd:NMTOKEN" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The name of the transformer to use, |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="auto-transformer" type="abstractTransformerType" substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that uses the transform discovery mechanism to convert the message payload. This |
| transformer works much better when transforming custom object types rather that java types since there |
| is less chance for ambiguity. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="custom-transformer" type="customTransformerType" substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A user-implemented transformer. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="customTransformerType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractTransformerType"> |
| <xsd:sequence> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="class" type="substitutableClass" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An implementation of the Transformer interface. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="message-properties-transformer" type="messagePropertiesTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that can add or delete message properties. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="messagePropertiesTransformerType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractTransformerType"> |
| <xsd:sequence> |
| <xsd:element name="delete-message-property" type="keyType" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Delete a message property. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="add-message-property" type="keyValueType" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Add a message property. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="add-message-properties" type="mapType" minOccurs="0" maxOccurs="1"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Add a set of message properties. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| <xsd:attribute name="overwrite" type="substitutableBoolean" use="optional" default="true"> |
| <xsd:annotation> |
| <xsd:documentation> |
| If false, a property is not added if the message already contains a property with that name. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="no-action-transformer" type="abstractTransformerType" substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that has no effect. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="base64-encoder-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that base64 encodes a string or byte array message. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="base64-decoder-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that base64 decodes a message to give an array of bytes. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="xml-entity-encoder-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that encodes a string using XML entities. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="xml-entity-decoder-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that decodes a string containing XML entities. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="gzip-compress-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that compresses a byte array using gzip. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="gzip-uncompress-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that uncompresses a byte array using gzip. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="byte-array-to-hex-string-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that converts a byte array to a string of hexadecimal digits. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="hex-string-to-byte-array-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that converts a string of hexadecimal digits to a byte array. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="byte-array-to-object-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that converts a byte array to an object (either deserializing or converting to a string). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="object-to-byte-array-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that serializes all objects except strings (which are converted using getBytes()). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="object-to-string-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that gives a human-readable description of various types (useful for debugging). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="byte-array-to-serializable-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that converts a byte array to an object (ie deserializing the object). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="serializable-to-byte-array-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that converts an object to a byte array (ie serializing the object). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="byte-array-to-string-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that converts a byte array to a string. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="string-to-byte-array-transformer" type="abstractTransformerType" |
| substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that converts a string to a byte array. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="append-string-transformer" substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that appends a string to a string payload. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:complexContent> |
| <xsd:extension base="abstractTransformerType"> |
| <xsd:attribute name="message" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The string to append. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:element name="encrypt-transformer" type="encryptionTransformerType" substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that encrypts a message. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="decrypt-transformer" type="encryptionTransformerType" substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that decrypts a message. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:complexType name="encryptionTransformerType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractTransformerType"> |
| <xsd:attribute name="strategy-ref" type="xsd:NMTOKEN"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The name of the encryption strategy to use. |
| This should be configured using the password-encryption-strategy element, |
| inside a security-manager element at the top level. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="expression-transformer" substitutionGroup="abstract-transformer"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A transformer that evaluates one or more expressions on the current event. Each expression equates to a |
| parameter in the return message. The return message for 2 or more expressions will be an Object[]. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexType> |
| <xsd:complexContent> |
| <xsd:extension base="abstractTransformerType"> |
| <xsd:sequence minOccurs="1" maxOccurs="unbounded"> |
| <xsd:element name="return-argument"> |
| <xsd:complexType> |
| <xsd:attributeGroup ref="expressionAttributes"/> |
| <xsd:attribute name="optional" type="substitutableBoolean" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation>An optional expression means that if the expression evaluates |
| to null, it will continue to the next expression without error. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| </xsd:element> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| </xsd:element> |
| |
| <xsd:attributeGroup name="expressionAttributes"> |
| <xsd:attribute name="evaluator" use="required"> |
| <xsd:annotation> |
| <xsd:documentation>The expression evaluator to use. Expression Evaluators must be registered with the |
| ExpressionEvaluatrManager before thay can be used. Using the custom evaluator allows the developer |
| to define their on in the 'custom-evaluator' attribute. Note that some evaluators such as xpath, |
| groovy and bean are loaded from other mule modules (xml and scripting respectively), these modules |
| wll need to be on your classpath before the evaluator can be used. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:restriction base="substitutableName"> |
| <xsd:enumeration value="groovy"/> |
| <xsd:enumeration value="header"/> |
| <xsd:enumeration value="headers"/> |
| <xsd:enumeration value="headers-list"/> |
| <xsd:enumeration value="attachment"/> |
| <xsd:enumeration value="attachments"/> |
| <xsd:enumeration value="attachments-list"/> |
| <xsd:enumeration value="payload"/> |
| <xsd:enumeration value="xpath"/> |
| <xsd:enumeration value="jxpath"/> |
| <xsd:enumeration value="bean"/> |
| <xsd:enumeration value="ognl"/> |
| <xsd:enumeration value="function"/> |
| <xsd:enumeration value="custom"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute name="expression" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation>The expression to evaluate. The syntax of this will change depeneding on the |
| evaluator being used. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="custom-evaluator" type="substitutableName" use="optional"> |
| <xsd:annotation> |
| <xsd:documentation>The name of the custom evaluator to use. This attribute is only used when the |
| evaluator attribute is set to 'custom'. Users can plug in their own expression evaluators by |
| registering them with the ExpressionEvaluatorManager. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:attributeGroup> |
| |
| <!--==============================================================--> |
| <!-- Shared elements --> |
| <!--==============================================================--> |
| |
| <xsd:element name="queue-profile" type="queueProfileType" substitutionGroup="abstract-queue-profile"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Configure the queue used on a component. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="queueProfileType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractQueueProfileType"> |
| <xsd:attribute name="maxOutstandingMessages" type="substitutableInt"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The maximum size of the queue. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="persistent" type="substitutableBoolean" default="false"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Whether the queue is persistent. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="abstract-security-manager" type="abstractSecurityManagerType" abstract="true"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A security manager is a container for security providers. More than one |
| security manager may be configured; each contains providers from a particular |
| module and has that module's type. This element is abstract - a security |
| related module or transport will provide a suitable implementation. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:complexType name="abstractSecurityManagerType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| This is an empty holder that can be extended by modules that want to |
| provide security managers. Typically it will contain elements called |
| module:type-security-provider which extend securityProviderType |
| where "module" might be "acegi" and "type" might de "delegate", for example. |
| Alternatively (or in addition) it may contain encryption strategies, |
| which should follow a similar scheme and extend encryptionStrategyType. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="id" fixed="_muleSecurityManager"/> |
| <xsd:attribute name="name" fixed="_muleSecurityManager"/> |
| </xsd:complexType> |
| |
| <xsd:element name="security-manager" type="securityManagerType" substitutionGroup="abstract-security-manager"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The default security manager. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:complexType name="securityManagerType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The default security manager (type mule:defaultSecurityManagerType) provides |
| basic support for security functions. Other modules (eg Acegi, JAAS, PGP) |
| provide more advanced functionality. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="abstractSecurityManagerType"> |
| <xsd:sequence> |
| <xsd:element name="custom-security-provider" type="customSecurityProviderType" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Allow any implementation of UMOSecurityProvider to be used. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="custom-encryption-strategy" type="customEncryptionStrategyType" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Allow any implementation of UMOEncryptionStrategy to be used. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="secret-key-encryption-strategy" type="secretKeyEncryptionStrategyType" |
| minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Provides secret key-based encryption using JCE. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="password-encryption-strategy" type="passwordEncryptionStrategyType" |
| minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Provides password-based encryption using JCE. Users must specify a password and |
| optionally a salt and iteration count as well. The default algorithm is |
| PBEWithMD5AndDES, but users can specify any valid algorithm supported by JCE. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="securityProviderType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A security provider is a source of a particular security-related functionality. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="name" type="substitutableName" use="required"/> |
| </xsd:complexType> |
| |
| <xsd:complexType name="encryptionStrategyType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An encryption strategy provides support for a particular encryption algorithm. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="name" type="substitutableName" use="required"/> |
| </xsd:complexType> |
| |
| <xsd:complexType name="customSecurityProviderType"> |
| <xsd:complexContent> |
| <xsd:extension base="securityProviderType"> |
| <xsd:sequence> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="provider-ref" type="xsd:NMTOKEN" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The name of the security provider to use. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="customEncryptionStrategyType"> |
| <xsd:complexContent> |
| <xsd:extension base="encryptionStrategyType"> |
| <xsd:sequence> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="strategy-ref" type="xsd:NMTOKEN" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A reference to the encryption strategy (which may be a Spring bean that |
| implements the EncryptionStrategy interface). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="passwordEncryptionStrategyType"> |
| <xsd:complexContent> |
| <xsd:extension base="encryptionStrategyType"> |
| <xsd:attribute name="password" type="xsd:string" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The password to use. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="salt" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The salt to use (this helps prevent dictionary attacks). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="iterationCount" type="substitutableInt"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The number of itreations to use. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="secretKeyEncryptionStrategyType"> |
| <xsd:complexContent> |
| <xsd:extension base="encryptionStrategyType"> |
| <xsd:attribute name="key" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The key to use. |
| This and the keyFactory-ref attribute are mutually exclusive. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="keyFactory-ref" type="xsd:NMTOKEN"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The name of the key factory to use. |
| This should implement the ObjectFactory interface and return a byte array. |
| This and the key attribute are mutually exclusive. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="component-threading-profile" type="threadingProfileType" |
| substitutionGroup="abstract-component-threading-profile"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The threading profile to use on the component. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <!-- this is a general threading type used by various elements here --> |
| <xsd:complexType name="threadingProfileType"> |
| <xsd:complexContent> |
| <!-- this is a hack that allows us to use this general threading profile as a component threading profile |
| without retyping everything --> |
| <xsd:extension base="abstractComponentThreadingProfileType"> |
| <xsd:attribute name="maxThreadsActive" type="substitutableInt"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The maximum number of threads that will be used. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="maxThreadsIdle" type="substitutableInt"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The maximum number of idle threads stored in the pool. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="threadTTL" type="substitutableInt"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The time excess threads in the pool live before being discarded. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="poolExhaustedAction"> |
| <xsd:annotation> |
| <xsd:documentation> |
| How tasks should be handled when no more threads are available. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:NMTOKEN"> |
| <xsd:enumeration value="WAIT"/> |
| <xsd:enumeration value="DISCARD"/> |
| <xsd:enumeration value="DISCARD_OLDEST"/> |
| <xsd:enumeration value="ABORT"/> |
| <xsd:enumeration value="RUN"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute name="threadWaitTimeout" type="substitutableInt"> |
| <xsd:annotation> |
| <xsd:documentation> |
| How long to wait (when the pool exhausted action is WAIT). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="doThreading" type="substitutableBoolean" default="true"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Whether threading should be used at all (default is true). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="maxBufferSize" type="substitutableInt"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The size of the queue used (when the pool exhausted action is WAIT). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <!--==============================================================--> |
| <!-- Exception strategies --> |
| <!--==============================================================--> |
| |
| <xsd:element name="default-service-exception-strategy" type="endpointExceptionStrategyType" |
| substitutionGroup="abstract-exception-strategy"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Provide default exception handling via an endpoint. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="default-connector-exception-strategy" type="endpointExceptionStrategyType" |
| substitutionGroup="abstract-exception-strategy"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Provide default exception handling via an endpoint. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="endpointExceptionStrategyType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractExceptionStrategyType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-outbound-endpoint" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="custom-exception-strategy" type="customExceptionStrategyType" |
| substitutionGroup="abstract-exception-strategy"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A user-defined exception stratgey. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="customExceptionStrategyType"> |
| <xsd:complexContent> |
| <xsd:extension base="endpointExceptionStrategyType"> |
| <xsd:sequence> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="class" type="substitutableClass" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A class that implements the ExceptionListener interface. |
| In addition, if an outbound-endpoint element is specified, |
| it is set as an "endpoint" bean property. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| |
| <!-- Custom connector element --> |
| |
| <xsd:element name="custom-connector" type="customConnectorType" substitutionGroup="abstract-connector"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A user-defined connector. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="customConnectorType"> |
| <xsd:complexContent> |
| <xsd:extension base="connectorType"> |
| <xsd:attribute name="class" type="substitutableClass" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A class that implements the Connector interface. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| |
| <!--==============================================================--> |
| <!-- Routers --> |
| <!--==============================================================--> |
| |
| <!-- Inbound Router implementations --> |
| |
| <xsd:element name="idempotent-secure-hash-receiver-router" type="filteredInboundRouterType" |
| substitutionGroup="abstract-inbound-router"/> |
| <xsd:element name="inbound-pass-through-router" type="filteredInboundRouterType" |
| substitutionGroup="abstract-inbound-router"/> |
| <xsd:complexType name="filteredInboundRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractInboundRouterType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-filter" minOccurs="0"/> |
| <!-- TODO this doesn't make sense here, need to re-visit <xsd:element ref="abstract-message-info-mapping" minOccurs="0"/>--> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="abstract-message-info-mapping" abstract="true" type="abstractMessageInfoMappingType"/> |
| <xsd:complexType name="abstractMessageInfoMappingType"/> |
| |
| <xsd:element name="idempotent-receiver-router" type="filteredInboundRouterType" |
| substitutionGroup="abstract-inbound-router"/> |
| |
| <xsd:element name="wire-tap-router" type="wireTapRouterType" substitutionGroup="abstract-inbound-router"/> |
| <xsd:complexType name="wireTapRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="filteredInboundRouterType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-outbound-endpoint" minOccurs="1" maxOccurs="1"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="forwarding-router" type="selectiveConsumerRouterType" |
| substitutionGroup="abstract-inbound-router"/> |
| |
| <xsd:element name="selective-consumer-router" type="selectiveConsumerRouterType" |
| substitutionGroup="abstract-inbound-router"/> |
| |
| <xsd:element name="correlation-resequencer-router" type="baseAggregatorRouterType" |
| substitutionGroup="abstract-inbound-router"/> |
| |
| <xsd:complexType name="selectiveConsumerRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="filteredInboundRouterType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-transformer" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="transformer-refs" type="xsd:NMTOKENS"/> |
| <xsd:attribute name="transformFirst" type="substitutableBoolean"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="message-chunking-aggregator-router" type="messageChunkingAggregatorRouterType" |
| substitutionGroup="abstract-inbound-router"/> |
| <xsd:complexType name="messageChunkingAggregatorRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="baseAggregatorRouterType"> |
| <xsd:attribute name="correlationExpression" type="xsd:string"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="custom-correlation-aggregator-router" type="customCorrelationAggregatorRouterType" |
| substitutionGroup="abstract-inbound-router"/> |
| <xsd:complexType name="customCorrelationAggregatorRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="messageChunkingAggregatorRouterType"> |
| <xsd:attribute name="class" type="substitutableClass" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="collection-aggregator-router" type="baseAggregatorRouterType" |
| substitutionGroup="abstract-inbound-router"/> |
| |
| <xsd:element name="custom-inbound-router" type="customInboundRouterType" |
| substitutionGroup="abstract-inbound-router"/> |
| |
| <xsd:complexType name="customInboundRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="filteredInboundRouterType"> |
| <xsd:sequence> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="abstract-inbound-endpoint" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="class" type="substitutableClass" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="baseAggregatorRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="filteredInboundRouterType"> |
| <xsd:attribute name="timeout" type="substitutableInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <!-- ResponseRouters --> |
| |
| <xsd:element name="single-async-reply-router" type="asyncReplyRouterType" |
| substitutionGroup="abstract-async-reply-router"> |
| <xsd:annotation> |
| <xsd:documentation>Configures a Single Response Router. This will return the first event it receives on a |
| reply endpoint and will discard the rest. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:element name="collection-async-reply-router" type="asyncReplyRouterType" |
| substitutionGroup="abstract-async-reply-router"> |
| <xsd:annotation> |
| <xsd:documentation>Configures a Collection Response Router. This will return a MuleMEssageCollection message |
| type that will contain all events recieved for the current correlation. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:complexType name="asyncReplyRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractAsyncReplyRouterType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-inbound-endpoint" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element ref="abstract-message-info-mapping" minOccurs="0"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="custom-async-reply-router" type="customAsyncReplyRouterType" |
| substitutionGroup="abstract-async-reply-router"/> |
| <xsd:complexType name="customAsyncReplyRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="asyncReplyRouterType"> |
| <xsd:sequence> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="class" type="substitutableClass" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| |
| <!-- Outbound Router implementations --> |
| |
| <xsd:element name="outbound-pass-through-router" type="outboundRouterType" |
| substitutionGroup="abstract-outbound-router"/> |
| <xsd:complexType name="outboundRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractOutboundRouterType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-outbound-endpoint" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element name="reply-to" type="endpointRefType" minOccurs="0"/> |
| <xsd:element ref="abstract-transaction" minOccurs="0"/> |
| <xsd:element ref="abstract-message-info-mapping" minOccurs="0"/> |
| </xsd:sequence> |
| <xsd:attribute name="enableCorrelation" default="IF_NOT_SET"> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:NMTOKEN"> |
| <xsd:enumeration value="ALWAYS"/> |
| <xsd:enumeration value="NEVER"/> |
| <xsd:enumeration value="IF_NOT_SET"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="filtering-router" type="filteringOutboundRouterType" |
| substitutionGroup="abstract-outbound-router"/> |
| <xsd:element name="chaining-router" type="filteringOutboundRouterType" |
| substitutionGroup="abstract-outbound-router"/> |
| <xsd:element name="exception-based-router" type="filteringOutboundRouterType" |
| substitutionGroup="abstract-outbound-router"/> |
| <xsd:element name="multicasting-router" type="filteringOutboundRouterType" |
| substitutionGroup="abstract-outbound-router"/> |
| <xsd:element name="template-endpoint-router" type="filteringOutboundRouterType" |
| substitutionGroup="abstract-outbound-router"/> |
| <xsd:complexType name="filteringOutboundRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="outboundRouterType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-filter" minOccurs="0"/> |
| <xsd:element ref="abstract-transformer" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="transformer-refs" type="xsd:NMTOKENS"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="endpoint-selector-router" type="endpointSelectorRouterType" |
| substitutionGroup="abstract-outbound-router"/> |
| <xsd:complexType name="endpointSelectorRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="filteringOutboundRouterType"> |
| <xsd:attributeGroup ref="expressionAttributes"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="list-message-splitter-router" type="messageSplitterOutboundRouterType" |
| substitutionGroup="abstract-outbound-router"/> |
| <xsd:complexType name="messageSplitterOutboundRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="filteringOutboundRouterType"> |
| <!-- this isn't exposed to the user afaict? --> |
| <!-- xsd:attribute name="multimatch" type="substitutableBoolean"/ --> |
| <xsd:attribute name="honorSynchronicity" type="substitutableBoolean"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="message-chunking-router" type="chunkingRouterType" substitutionGroup="abstract-outbound-router"/> |
| <xsd:complexType name="chunkingRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="filteringOutboundRouterType"> |
| <xsd:attribute name="messageSize" type="substitutableInt"/> |
| <xsd:attribute name="numberOfMessages" type="substitutableInt"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="static-recipient-list-router" type="staticRecipientListRouterType" |
| substitutionGroup="abstract-outbound-router"/> |
| <xsd:complexType name="staticRecipientListRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="filteringOutboundRouterType"> |
| <xsd:sequence> |
| <xsd:element name="recipients" type="listOrSetType" minOccurs="0" maxOccurs="1"/> |
| </xsd:sequence> |
| <xsd:attribute name="recipientsProperty" type="xsd:string"/> |
| <xsd:attribute name="recipientsDelimiter" type="xsd:string"/> |
| <xsd:attribute name="synchronous" type="xsd:boolean"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="recipient-list-router" type="recipientListRouterType" |
| substitutionGroup="abstract-outbound-router"/> |
| <xsd:complexType name="recipientListRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="filteringOutboundRouterType"> |
| <xsd:attributeGroup ref="expressionAttributes"/> |
| <xsd:attribute name="synchronous" type="xsd:boolean"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="custom-outbound-router" type="customOutboundRouterType" |
| substitutionGroup="abstract-outbound-router"/> |
| <xsd:complexType name="customOutboundRouterType"> |
| <xsd:complexContent> |
| <xsd:extension base="filteringOutboundRouterType"> |
| <xsd:sequence> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="class" type="substitutableClass" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| |
| <!-- Catch all strategy implementations --> |
| |
| <xsd:element name="logging-catch-all-strategy" type="loggingCatchAllStrategyType" |
| substitutionGroup="abstract-catch-all-strategy"/> |
| <xsd:complexType name="loggingCatchAllStrategyType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractCatchAllStrategyType"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="custom-catch-all-strategy" type="customCatchAllStrategyType" |
| substitutionGroup="abstract-catch-all-strategy"/> |
| <xsd:complexType name="customCatchAllStrategyType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractCatchAllStrategyType"> |
| <xsd:sequence> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="class" type="substitutableClass" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="forwarding-catch-all-strategy" type="forwardingCatchAllStrategyType" |
| substitutionGroup="abstract-catch-all-strategy"/> |
| <xsd:complexType name="forwardingCatchAllStrategyType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractCatchAllStrategyType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-outbound-endpoint" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="custom-forwarding-catch-all-strategy" type="customForwardingCatchAllStrategyType" |
| substitutionGroup="abstract-catch-all-strategy"/> |
| <xsd:complexType name="customForwardingCatchAllStrategyType"> |
| <xsd:complexContent> |
| <xsd:extension base="forwardingCatchAllStrategyType"> |
| <xsd:sequence> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="class" type="substitutableClass" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <!-- Message Info Mappers --> |
| |
| <xsd:element name="expression-message-info-mapping" type="expressionMessageInfoMappingType" |
| substitutionGroup="abstract-message-info-mapping"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Allows expressions to be configured to extract the message information. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <xsd:complexType name="expressionMessageInfoMappingType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractMessageInfoMappingType"> |
| <xsd:attribute name="messageIdExpression" type="xsd:string" use="required"/> |
| <xsd:attribute name="correlationIdExpression" type="xsd:string" use="required"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="custom-message-info-mapping" type="customMessageInfoMappingType" |
| substitutionGroup="abstract-message-info-mapping"> |
| <xsd:annotation> |
| <xsd:documentation> |
| This allows configuraton of a custom implementation of MessageInfoMapping |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="customMessageInfoMappingType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractMessageInfoMappingType"> |
| <xsd:sequence> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| </xsd:sequence> |
| <xsd:attribute name="class" type="substitutableClass" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An implementation of the MessageInfoMapping interface. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <!--==============================================================--> |
| <!-- Lifecycle Adapters --> |
| <!--==============================================================--> |
| |
| <xsd:element name="abstract-lifecycle-adapter-factory" abstract="true" type="abstractLifecycleAdapterFactory"/> |
| <xsd:complexType name="abstractLifecycleAdapterFactory"> |
| <xsd:annotation> |
| <xsd:documentation> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:complexType> |
| <xsd:complexType name="customLifecycleAdapterFactory"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractLifecycleAdapterFactory"> |
| <xsd:attribute name="class" type="substitutableClass" use="required"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An implementation of the LifecycleAdapter interface. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| <xsd:element name="custom-lifecycle-adapter-factory" type="customLifecycleAdapterFactory" |
| substitutionGroup="abstract-lifecycle-adapter-factory"> |
| <xsd:annotation> |
| <xsd:documentation> |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| |
| <!--==============================================================--> |
| <!-- Object Factories --> |
| <!--==============================================================--> |
| |
| <xsd:element name="abstract-object-factory" abstract="true" type="abstractObjectFactoryType"/> |
| <xsd:complexType name="abstractObjectFactoryType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A factory which will be used by Mule to create new instances of this object |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:sequence> |
| <xsd:group ref="propertiesGroup"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Properties to be set on the created object |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:group> |
| </xsd:sequence> |
| </xsd:complexType> |
| |
| <xsd:complexType name="genericObjectFactoryType"> |
| <xsd:sequence> |
| <xsd:element ref="abstract-object-factory"/> |
| </xsd:sequence> |
| </xsd:complexType> |
| |
| <xsd:element name="spring-object" type="springBeanLookupType" substitutionGroup="abstract-object-factory"/> |
| <xsd:complexType name="springBeanLookupType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractObjectFactoryType"> |
| <xsd:attribute name="bean" type="substitutableName"> |
| <xsd:annotation> |
| <xsd:documentation>Name of Spring bean to look up</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="singleton-object" type="singletonObjectFactoryType" substitutionGroup="abstract-object-factory"/> |
| <xsd:complexType name="singletonObjectFactoryType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractObjectFactoryType"> |
| <xsd:attribute name="class" type="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation>Class name</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="prototype-object" type="prototypeObjectFactoryType" substitutionGroup="abstract-object-factory"/> |
| <xsd:complexType name="prototypeObjectFactoryType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractObjectFactoryType"> |
| <xsd:attribute name="class" type="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation>Class name</xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:element name="abstract-pooling-profile" abstract="true" type="abstractPoolingProfileType"/> |
| <xsd:complexType name="abstractPoolingProfileType"/> |
| |
| <xsd:element name="pooling-profile" type="poolingProfileType" substitutionGroup="abstract-pooling-profile"/> |
| <xsd:complexType name="poolingProfileType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractPoolingProfileType"> |
| <xsd:attribute name="maxActive" type="xsd:string"/> |
| <xsd:attribute name="maxIdle" type="xsd:string"/> |
| <xsd:attribute name="initialisationPolicy" default="INITIALISE_ONE"> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:NMTOKEN"> |
| <xsd:enumeration value="INITIALISE_NONE"/> |
| <xsd:enumeration value="INITIALISE_ONE"/> |
| <xsd:enumeration value="INITIALISE_ALL"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute name="exhaustedAction" default="WHEN_EXHAUSTED_GROW"> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:NMTOKEN"> |
| <xsd:enumeration value="WHEN_EXHAUSTED_GROW"/> |
| <xsd:enumeration value="WHEN_EXHAUSTED_WAIT"/> |
| <xsd:enumeration value="WHEN_EXHAUSTED_FAIL"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:attribute> |
| <xsd:attribute name="maxWait" type="xsd:string"/> |
| <!-- <xsd:attribute name="factory" type="xsd:string" default="org.mule.config.pool.CommonsPoolFactory"/> --> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| |
| <!--==============================================================--> |
| <!-- Utils / Standard Types --> |
| <!--==============================================================--> |
| |
| |
| <xsd:complexType name="abstractAgentType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A placeholder for agents. Not used in core, but common to several modules. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:complexContent> |
| <xsd:extension base="abstractExtensionType"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <!-- corresponds to TlsIndirectKeyStore, named as tls-client in transport namespace --> |
| <xsd:complexType name="tlsClientKeyStoreType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Configure client key stores. |
| TLS/SSL connections are made on behalf of an entity, which can be anonymous or identified by a |
| certificate - this interface specifies how a keystore can be used to provide the certificates |
| (and associated private keys) necessary for identification. |
| This is also used as the trust store if no other trust store is specified and the |
| explicitTrustStoreOnly parameter in the server trust store configuration is false. |
| WARNING - due to restrictions in library implementations the values specified here typically apply |
| to all connectors using this transport. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="path" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The location (which will be resolved relative to the current classpath and file system, if |
| possible) of the keystore that contains public certificates and private keys for identification. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="storePassword" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The password used to protect the keystore. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="class" type="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The type of keystore used (a Java class name). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <!-- corresponds to TlsDirectKeyStore, named as tls-key-store in transport namespace --> |
| <xsd:complexType name="tlsKeyStoreType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Configure key stores. |
| TLS/SSL connections are made on behalf of an entity, which can be anonymous or identified by a |
| certificate - this interface specifies how a keystore can be used to provide the certificates |
| (and associated private keys) necessary for identification. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="path" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The location (which will be resolved relative to the current classpath and file system, if |
| possible) of the keystore that contains public certificates and private keys for identification. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="class" type="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The type of keystore used (a Java class name). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="keyPassword" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The password used to protect the private key. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="storePassword" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The password used to protect the keystore. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="algorithm" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The algorithm used by the key store. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <!-- corresponds to TlsIndirectTrustStore, named as tls-trust-store in transport namespace --> |
| <xsd:complexType name="tlsTrustStoreType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Configure a trust store. |
| TLS/SSL connections are made to trusted systems - the public certificates of trusted systems are store |
| in a keystore (called a trust store) and used to verify that the connection made to a remote system |
| "really is" the expected identity. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="path" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The location (which will be resolved relative to the current classpath and file system, if |
| possible) of the keystore that contains public certificates of trusted servers. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="storePassword" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The password used to protected the trust store. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <!-- corresponds to TlsDirectTrustStore, named as tls-server in transport namespace |
| note that this extends tlsTrustStoreType, so only one of the two is needed --> |
| <xsd:complexType name="tlsServerTrustStoreType"> |
| <xsd:complexContent> |
| <xsd:extension base="tlsTrustStoreType"> |
| <xsd:attribute name="class" type="substitutableClass"/> |
| <xsd:attribute name="algorithm" type="xsd:string"/> |
| <!-- should be of type TrustManagerFactory --> |
| <xsd:attribute name="factory-ref" type="xsd:NMTOKEN"/> |
| <xsd:attribute name="explicitOnly" type="substitutableBoolean"/> |
| <xsd:attribute name="requireClientAuthentication" type="substitutableBoolean"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <!-- corresponds to TlsProtocolHandler, named as tls-protocol-handler --> |
| <xsd:complexType name="tlsProtocolHandler"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Configure the global Java protocol handler. |
| WARNING - Untested. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:attribute name="property" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Set the java.protocol.handler.pkgs system property. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:complexType> |
| |
| <xsd:simpleType name="propertyPlaceholderType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A type that defines an Ant-style property placeholder |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:restriction base="xsd:string"> |
| <xsd:pattern value="(\$\{[^\}]+\})"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A custom xsd:NMTOKEN-like type that also allows for Ant-style property placeholders |
| and a leading [ |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:union> |
| <xsd:simpleType> |
| <xsd:restriction base="propertyPlaceholderType"/> |
| </xsd:simpleType> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:string"> |
| <xsd:pattern value="\[?[A-Za-z0-9_\.$]+"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:union> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="nonBlankString"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A custom xsd:string-like type that cannot be empty |
| (is there a better way?) |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:union> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:string"> |
| <xsd:pattern value=".*[^ ]+.*"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:union> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="substitutableName"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A custom xsd:NMTOKEN type that also allows for Ant-style property placeholders. |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:union> |
| <xsd:simpleType> |
| <xsd:restriction base="propertyPlaceholderType"/> |
| </xsd:simpleType> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:NMTOKEN"/> |
| </xsd:simpleType> |
| </xsd:union> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="substitutablePortNumber"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A custom xsd:int type that also allows for Ant-style property placeholders and restrict the |
| int value to a valid port number |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:union> |
| <xsd:simpleType> |
| <xsd:restriction base="propertyPlaceholderType"/> |
| </xsd:simpleType> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:int"> |
| <xsd:minInclusive value="0"/> |
| <xsd:maxInclusive value="65536"/> |
| </xsd:restriction> |
| </xsd:simpleType> |
| </xsd:union> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="substitutableInt"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A custom xsd:int type that also allows for Ant-style property placeholders |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:union> |
| <xsd:simpleType> |
| <xsd:restriction base="propertyPlaceholderType"/> |
| </xsd:simpleType> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:int"/> |
| </xsd:simpleType> |
| </xsd:union> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="substitutableLong"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A custom xsd:long type that also allows for Ant-style property placeholders |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:union> |
| <xsd:simpleType> |
| <xsd:restriction base="propertyPlaceholderType"/> |
| </xsd:simpleType> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:long"/> |
| </xsd:simpleType> |
| </xsd:union> |
| </xsd:simpleType> |
| |
| <xsd:simpleType name="substitutableBoolean"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A custom xsd:boolean type that also allows for Ant-style property placeholders |
| </xsd:documentation> |
| </xsd:annotation> |
| <xsd:union> |
| <xsd:simpleType> |
| <xsd:restriction base="propertyPlaceholderType"/> |
| </xsd:simpleType> |
| <xsd:simpleType> |
| <xsd:restriction base="xsd:boolean"/> |
| </xsd:simpleType> |
| </xsd:union> |
| </xsd:simpleType> |
| |
| <!-- i found this a bit confusing, so here's some background... |
| this type is typically called from something like |
| <xsd:element name="properties" type="mapType/> |
| and the "properties" element generates a ChildMapDefinitionParser that |
| can "receive" the map entries generated by the embedded spring <entry..> |
| elements and which is then set via "setProperties" on the parent. |
| in other words, it's a map, and despite the name "properties" has |
| nothing to do with the spring <property ...> element. |
| spring elements like <entry...> are handled by |
| MuleHierarchicalBeanDefinitionParserDelegate which punts them to |
| the spring handler --> |
| <xsd:element name="properties" type="mapType"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Set Mule properties. |
| These are name/value pairs that can be set on components, services, etc, |
| and which provide a generic way of configuring the system. |
| In Mule v2 you typically shouldn't need to use generic properties like |
| this, since almost all functionality is exposed via dedicated elements. |
| However, they can be useful in configuring obscure or overlooked options |
| and in configuring transports from the generic endpoint elements. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:complexType name="mapType"> |
| <xsd:complexContent> |
| <xsd:extension base="spring:mapType"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:group name="propertiesGroup"> |
| <xsd:sequence> |
| <xsd:element name="property" type="keyValueType" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Set a Mule property. |
| This is a name/value pair that can be set on components, services, etc, |
| and which provide a generic way of configuring the system. |
| In Mule v2 you typically shouldn't need to use a generic property like |
| this, since almost all functionality is exposed via dedicated elements. |
| However, it can be useful in configuring obscure or overlooked options |
| and in configuring transports from the generic endpoint elements. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element ref="properties" minOccurs="0"/> |
| </xsd:sequence> |
| </xsd:group> |
| |
| <xsd:complexType name="listOrSetType"> |
| <xsd:complexContent> |
| <xsd:extension base="spring:listOrSetType"/> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="referenceType"> |
| <xsd:attribute name="ref" type="xsd:NMTOKEN"/> |
| </xsd:complexType> |
| |
| <xsd:complexType name="keyType"> |
| <xsd:attribute name="key" type="xsd:string"/> |
| </xsd:complexType> |
| |
| <xsd:complexType name="valueType"> |
| <xsd:attribute name="value" type="xsd:string"/> |
| <xsd:attribute name="value-ref" type="xsd:NMTOKEN"/> |
| </xsd:complexType> |
| |
| <xsd:complexType name="keyValueType"> |
| <xsd:complexContent> |
| <xsd:extension base="keyType"> |
| <xsd:attribute name="value" type="xsd:string"/> |
| <xsd:attribute name="value-ref" type="xsd:NMTOKEN"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| |
| <!--==============================================================--> |
| <!-- Connector support --> |
| <!--==============================================================--> |
| |
| <xsd:complexType name="connectorType"> |
| <xsd:complexContent> |
| <xsd:extension base="abstractConnectorType"> |
| <xsd:sequence> |
| <!-- for normal connectors, this is for emergency use only, but it is |
| critical for custom connector --> |
| <xsd:element ref="spring:property" minOccurs="0" maxOccurs="unbounded"/> |
| <xsd:element name="receiver-threading-profile" type="threadingProfileType" minOccurs="0"/> |
| <xsd:element name="dispatcher-threading-profile" type="threadingProfileType" minOccurs="0"/> |
| <xsd:element ref="abstract-exception-strategy" minOccurs="0"/> |
| <xsd:element name="service-overrides" type="serviceOverridesType" minOccurs="0"/> |
| </xsd:sequence> |
| <xsd:attribute name="createDispatcherPerRequest" type="substitutableBoolean"/> |
| <xsd:attribute name="createMultipleTransactedReceivers" type="substitutableBoolean"/> |
| <xsd:attribute name="numberOfConcurrentTransactedReceivers" type="substitutableInt"/> |
| <xsd:attribute name="dynamicNotification" type="substitutableBoolean"/> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="serviceOverridesType"> |
| <xsd:attribute name="messageReceiver" type="xsd:NMTOKEN"/> |
| <xsd:attribute name="transactedMessageReceiver" type="xsd:NMTOKEN"/> |
| <xsd:attribute name="dispatcherFactory" type="xsd:NMTOKEN"/> |
| <xsd:attribute name="inboundTransformer" type="xsd:NMTOKEN"/> |
| <xsd:attribute name="outboundTransformer" type="xsd:NMTOKEN"/> |
| <xsd:attribute name="responseTransformer" type="xsd:NMTOKEN"/> |
| <xsd:attribute name="endpointBuilder" type="xsd:NMTOKEN"/> |
| <xsd:attribute name="messageAdapter" type="xsd:NMTOKEN"/> |
| <xsd:attribute name="streamMessageAdapter" type="xsd:NMTOKEN"/> |
| <xsd:attribute name="serviceFinder" type="xsd:NMTOKEN"/> |
| <xsd:attribute name="sessionHandler" type="xsd:NMTOKEN"/> |
| </xsd:complexType> |
| |
| <!--==============================================================--> |
| <!-- JNDI support --> |
| <!--==============================================================--> |
| |
| <xsd:complexType name="jndiConnectorType"> |
| <xsd:complexContent> |
| <xsd:extension base="connectorType"> |
| <xsd:sequence> |
| <xsd:element name="jndi-provider-property" type="keyValueType" minOccurs="0" maxOccurs="unbounded"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Direct setting of a JNDI property. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| <xsd:element name="jndi-provider-properties" type="mapType" minOccurs="0"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Direct setting of JNDI properties |
| (this allows access to the full Spring map entry). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:element> |
| </xsd:sequence> |
| <xsd:attribute name="jndiContext-ref" type="xsd:NMTOKEN"> |
| <xsd:annotation> |
| <xsd:documentation> |
| Set the complete context directly, via a bean reference. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="jndiInitialFactory" type="substitutableClass"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The initial context factory to use. The value |
| of the property should be the fully qualified class name |
| of the factory class that will create an initial context. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="jndiProviderUrl" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The service provider to use. The value of the property |
| should contain a URL string (e.g. "ldap://somehost:389"). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| <xsd:attribute name="jndiUrlPkgPrefixes" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| The list of package prefixes to use when |
| loading in URL context factories. The value |
| of the property should be a colon-separated list of package |
| prefixes for the class name of the factory class that will create |
| a URL context factory. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| </xsd:extension> |
| </xsd:complexContent> |
| </xsd:complexType> |
| |
| <xsd:complexType name="dataReferenceType" mixed="true"> |
| <xsd:attribute name="file" type="xsd:string"/> |
| <xsd:attribute name="ref" type="xsd:string"/> |
| <!--I don't like this flag, may be we could use content-type mappings... --> |
| <xsd:attribute name="binary" type="substitutableBoolean"/> |
| </xsd:complexType> |
| |
| <!-- these cannot be references (unless we use qualified attribute names, which are ugly), |
| but serve as templates to cut+paste in individual transports |
| |
| <xsd:attribute name="path" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A file location. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| |
| <xsd:attribute name="user" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A username. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| |
| <xsd:attribute name="password" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A password. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| |
| <xsd:attribute name="host" type="xsd:string"> |
| <xsd:annotation> |
| <xsd:documentation> |
| An IP address (eg www.mulesource.com, localhost, 127.0.0.1). |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| |
| <xsd:attribute name="port" type="substitutablePortNumber"> |
| <xsd:annotation> |
| <xsd:documentation> |
| A port number. |
| </xsd:documentation> |
| </xsd:annotation> |
| </xsd:attribute> |
| |
| --> |
| |
| |
| </xsd:schema> |