<?xml version='1.0'?>
<!-- NOTE: this file is autogenerated by XBeans -->

<xs:schema elementFormDefault='qualified'
           targetNamespace='http://lingo.codehaus.org/1.2'
           xmlns:xs='http://www.w3.org/2001/XMLSchema'
           xmlns:tns='http://lingo.codehaus.org/1.2'>

  <!-- element for type: org.logicblaze.lingo.jms.JmsProxyFactoryBean -->
  <xs:element name='clientProxyFactory'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Factory bean for JMS proxies. Behaves like the proxied service when
used as bean reference, exposing the specified service interface.
<p/>
<p>The service URL must be an JMS URL exposing a JMS service.
For details, see JmsClientInterceptor docs.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='connectionFactory' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Used to create a default {@link Requestor} if no requestor is explicitly
configured.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='destination' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the destination used to make requests
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='marshaller' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='messageProperties' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the message properties to be added to each message. Note that the
keys should be Strings and the values should be primitive types.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='metadataStrategy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerConfig' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the configuration of the producer used to send back responses
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:producerConfig'/>
              <xs:any/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='remoteInvocationFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='requestor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='responseDestination' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the destination used to consume responses on - or null and a
temporary queue will be created.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name='clientID' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS connections unique clientID. This is optional unless you
wish to use durable topic subscriptions. Only one connection can have a
given clientID at any time.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='connectionFactory' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Used to create a default {@link Requestor} if no requestor is explicitly
configured.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='correlationID' type='xs:string'/>
      <xs:attribute name='destination' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the destination used to make requests
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='jmsPriority' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS priority of the request message
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='jmsType' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS message type string which is appended to messages if set
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='marshaller' type='xs:string'/>
      <xs:attribute name='messageProperties' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the message properties to be added to each message. Note that the
keys should be Strings and the values should be primitive types.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='metadataStrategy' type='xs:string'/>
      <xs:attribute name='multipleResponseTimeout' type='xs:long'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum amount of time to wait for multiple results to come back
if communicating with multiple servers and aggregating together the
results.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='multipleResponsesExpected' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not multiple response messages are expected. Typically
multiple responses are only expected when the {@link #getDestination()}
method returns a {@link Topic} but there could be circumstances when
sending a request to a queue results in messages being fanned out to many
servers which could all respond.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='persistentDelivery' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the delivery mode to be persistent or non-persistent.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='producerConfig' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the configuration of the producer used to send back responses
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='remoteInvocationFactory' type='xs:string'/>
      <xs:attribute name='remoteReferenceTimeout' type='xs:long'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum amount of time an inactive remote object reference will
keep around until it is garbage collected.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='requestor' type='xs:string'/>
      <xs:attribute name='responseDestination' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the destination used to consume responses on - or null and a
temporary queue will be created.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='responseTimeout' type='xs:long'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum amount of time (in milliseconds) to wait for responses
to come back before timing out the request. You should typically set this
value greater than the {@link #getTimeToLive()} property which is used to
set the expiration time on the request message.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='serviceInterface' type='xs:string'/>
      <xs:attribute name='serviceUrl' type='xs:string'/>
      <xs:attribute name='timeToLive' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS expiration timeout (in milliseconds) of the request message
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.logicblaze.lingo.jms.JmsProducerConfig -->
  <xs:element name='producerConfig'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A simple bean of JMS producer configuration options.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='connectionFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name='acknowledgementMode' type='xs:integer'/>
      <xs:attribute name='clientID' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS connections unique clientID. This is optional unless you
wish to use durable topic subscriptions. Only one connection can have a
given clientID at any time.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='connectionFactory' type='xs:string'/>
      <xs:attribute name='deliveryMode' type='xs:integer'/>
      <xs:attribute name='disableMessageID' type='xs:boolean'/>
      <xs:attribute name='disableMessageTimestamp' type='xs:boolean'/>
      <xs:attribute name='priority' type='xs:integer'/>
      <xs:attribute name='timeToLive' type='xs:integer'/>
      <xs:attribute name='transactedMode' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.logicblaze.lingo.jms.JmsServiceExporter -->
  <xs:element name='serviceExporter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A JMS MessageListener that exports the specified service bean as a JMS
service endpoint, accessible via a JMS proxy. <p/>
<p>
Note: JMS services exported with this class can be accessed by any JMS
client, as there isn't any special handling involved.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='connectionFactory' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Used to create a default {@link JmsProducer} if no producer is explicitly
configured.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='destination' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              If specified then the service will be auto-subscribed to this destination
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='invocationFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='marshaller' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='metadataStrategy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerConfig' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the configuration of the producer used to send back responses
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:producerConfig'/>
              <xs:any/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='remoteInvocationExecutor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='responseRequestor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='service' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name='clientID' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS connections unique clientID. This is optional unless you
wish to use durable topic subscriptions. Only one connection can have a
given clientID at any time.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='connectionFactory' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Used to create a default {@link JmsProducer} if no producer is explicitly
configured.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='destination' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            If specified then the service will be auto-subscribed to this destination
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='ignoreFailures' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not failures should be ignored (and just logged) or
thrown as runtime exceptions into the JMS provider
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='invocationFactory' type='xs:string'/>
      <xs:attribute name='marshaller' type='xs:string'/>
      <xs:attribute name='messageSelector' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the message selector applied to the subscription
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='metadataStrategy' type='xs:string'/>
      <xs:attribute name='noLocal' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not topic subscriptions should receive locally produced
messages
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='persistentDelivery' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the delivery mode to be persistent or non-persistent.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='producerConfig' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the configuration of the producer used to send back responses
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='registerTraceInterceptor' type='xs:boolean'/>
      <xs:attribute name='remoteInvocationExecutor' type='xs:string'/>
      <xs:attribute name='responseRequestor' type='xs:string'/>
      <xs:attribute name='service' type='xs:string'/>
      <xs:attribute name='serviceInterface' type='xs:string'/>
      <xs:attribute name='subscriberName' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the durable subscriber name and enables a durable subscription.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.logicblaze.lingo.jms.JmsServiceExporterMessageListener -->
  <xs:element name='serviceExporterMessageListener'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A JMS MessageListener that exports the specified service bean as a JMS
service endpoint, accessible via a JMS proxy. <p/>
<p>
Note: JMS services exported with this class can be accessed by any JMS
client, as there isn't any special handling involved.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='connectionFactory' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Used to create a default {@link JmsProducer} if no producer is explicitly
configured.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='invocationFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='marshaller' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='metadataStrategy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerConfig' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the configuration of the producer used to send back responses
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:producerConfig'/>
              <xs:any/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='proxy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='remoteInvocationExecutor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='responseRequestor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='service' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any/></xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name='clientID' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS connections unique clientID. This is optional unless you
wish to use durable topic subscriptions. Only one connection can have a
given clientID at any time.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='connectionFactory' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Used to create a default {@link JmsProducer} if no producer is explicitly
configured.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='ignoreFailures' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not failures should be ignored (and just logged) or
thrown as runtime exceptions into the JMS provider
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='invocationFactory' type='xs:string'/>
      <xs:attribute name='marshaller' type='xs:string'/>
      <xs:attribute name='metadataStrategy' type='xs:string'/>
      <xs:attribute name='persistentDelivery' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the delivery mode to be persistent or non-persistent.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='producerConfig' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the configuration of the producer used to send back responses
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='proxy' type='xs:string'/>
      <xs:attribute name='registerTraceInterceptor' type='xs:boolean'/>
      <xs:attribute name='remoteInvocationExecutor' type='xs:string'/>
      <xs:attribute name='responseRequestor' type='xs:string'/>
      <xs:attribute name='service' type='xs:string'/>
      <xs:attribute name='serviceInterface' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


</xs:schema>
