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

<xs:schema elementFormDefault='qualified'
           targetNamespace='http://activemq.org/config/1.0'
           xmlns:xs='http://www.w3.org/2001/XMLSchema'
           xmlns:tns='http://activemq.org/config/1.0'>

  <!-- element for type: org.apache.activemq.security.AuthorizationEntry -->
  <xs:element name='authorizationEntry'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents an entry in a {@link DefaultAuthorizationMap} for assigning
different operations (read, write, admin) of user roles to a specific
destination or a hierarchical wildcard area of destinations.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adminACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='destination' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='readACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='writeACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='admin' type='xs:string'/>
      <xs:attribute name='adminACLs' type='xs:string'/>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='queue' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            A helper method to set the destination from a configuration file
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='read' type='xs:string'/>
      <xs:attribute name='readACLs' type='xs:string'/>
      <xs:attribute name='topic' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            A helper method to set the destination from a configuration file
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='write' type='xs:string'/>
      <xs:attribute name='writeACLs' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.DefaultAuthorizationMap -->
  <xs:element name='authorizationMap'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents a destination based configuration of policies so that individual
destinations or wildcard hierarchies of destinations can be configured using
different policies. Each entry in the map represents the authorization ACLs for each operation.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='authorizationEntries' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the individual entries on the authorization map
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='defaultEntry' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:authorizationEntry'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='entries' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              A helper method to allow the destination map to be populated from a
dependency injection framework such as Spring
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='defaultEntry' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.AuthorizationPlugin -->
  <xs:element name='authorizationPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An authorization plugin where each operation on a destination is checked
against an authorizationMap
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='map' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:authorizationMap'/>
              <xs:element ref='tns:lDAPAuthorizationMap'/>
              <xs:element ref='tns:simpleAuthorizationMap'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='map' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.AxionJDBCAdapter -->
  <xs:element name='axionJDBCAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Axion specific Adapter.

Axion does not seem to support ALTER statements or sub-selects. This means:
- We cannot auto upgrade the schema was we roll out new versions of ActiveMQ
- We cannot delete durable sub messages that have be acknowledged by all consumers.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.BlobJDBCAdapter -->
  <xs:element name='blobJDBCAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This JDBCAdapter inserts and extracts BLOB data using the
getBlob()/setBlob() operations. This is a little more involved
since to insert a blob you have to:

1: insert empty blob.
2: select the blob
3: finally update the blob with data value.

The databases/JDBC drivers that use this adapter are:
<ul>
<li></li>
</ul>
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.xbean.XBeanBrokerService -->
  <xs:element name='broker'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An ActiveMQ Message Broker. It consists of a number of transport
connectors, network connectors and a bunch of properties which can be used to
configure the broker as its lazily created.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adminView' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Returns the administration view of the broker; used to create and destroy resources such as queues and topics.

Note this method returns null if JMX is disabled.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='destinationFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='destinationInterceptors' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the destination interceptors to use
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:virtualDestinationInterceptor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='destinationPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the destination specific policies available either for exact
destinations or for wildcard areas of destinations.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:policyMap'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='destinations' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the destinations which should be loaded/created on startup
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsBridgeConnectors' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:jmsQueueConnector'/>
              <xs:element ref='tns:jmsTopicConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='managementContext' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:managementContext'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='memoryManager' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:usageManager'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='messageAuthorizationPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the policy used to decide if the current connection is authorized to consume
a given message
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='networkConnectorURIs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='networkConnectors' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the network connectors which this broker will use to connect to
other brokers in a federated network
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:multicastNetworkConnector'/>
              <xs:element ref='tns:networkConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='pendingDurableSubscriberPolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:fileDurableSubscriberCursor'/>
              <xs:element ref='tns:storeDurableSubscriberCursor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='persistenceAdapter' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the persistence adaptor implementation to use for this broker
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:jdbcPersistenceAdapter'/>
              <xs:element ref='tns:journalPersistenceAdapter'/>
              <xs:element ref='tns:kahaPersistenceAdapter'/>
              <xs:element ref='tns:memoryPersistenceAdapter'/>
              <xs:element ref='tns:quickJournalPersistenceAdapter'/>
              <xs:element ref='tns:rapidPersistenceAdapter'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='persistenceFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:journaledJDBC'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='persistenceTaskRunnerFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='plugins' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets a number of broker plugins to install such as for security authentication or authorization
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:authorizationPlugin'/>
              <xs:element ref='tns:connectionDotFilePlugin'/>
              <xs:element ref='tns:destinationDotFilePlugin'/>
              <xs:element ref='tns:jaasAuthenticationPlugin'/>
              <xs:element ref='tns:jaasCertificateAuthenticationPlugin'/>
              <xs:element ref='tns:loggingBrokerPlugin'/>
              <xs:element ref='tns:multicastTraceBrokerPlugin'/>
              <xs:element ref='tns:simpleAuthenticationPlugin'/>
              <xs:element ref='tns:timeStampingBrokerPlugin'/>
              <xs:element ref='tns:udpTraceBrokerPlugin'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='proxyConnectors' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the network connectors which this broker will use to connect to
other brokers in a federated network
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='services' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the services associated with this broker such as a {@link MasterConnector}
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:broker'/>
              <xs:element ref='tns:commandAgent'/>
              <xs:element ref='tns:inboundQueueBridge'/>
              <xs:element ref='tns:inboundTopicBridge'/>
              <xs:element ref='tns:jmsQueueConnector'/>
              <xs:element ref='tns:jmsTopicConnector'/>
              <xs:element ref='tns:managementContext'/>
              <xs:element ref='tns:masterConnector'/>
              <xs:element ref='tns:multicastNetworkConnector'/>
              <xs:element ref='tns:networkConnector'/>
              <xs:element ref='tns:outboundQueueBridge'/>
              <xs:element ref='tns:outboundTopicBridge'/>
              <xs:element ref='tns:proxyConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='taskRunnerFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='tempDataStore' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='transportConnectorURIs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='transportConnectors' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the transport connectors which this broker will listen on for new
clients
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:transportConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='adminView' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Returns the administration view of the broker; used to create and destroy resources such as queues and topics.

Note this method returns null if JMX is disabled.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='advisorySupport' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Allows the support of advisory messages to be disabled for performance reasons.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='brokerName' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the name of this broker; which must be unique in the network
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='brokerObjectName' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMX ObjectName for this broker
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='dataDirectory' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the directory in which the data files will be stored by default for
the JDBC and Journal persistence adaptors.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='deleteAllMessagesOnStartup' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not all messages are deleted on startup - mostly only
useful for testing.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='destinationFactory' type='xs:string'/>
      <xs:attribute name='destinationPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the destination specific policies available either for exact
destinations or for wildcard areas of destinations.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='keepDurableSubsActive' type='xs:boolean'/>
      <xs:attribute name='managementContext' type='xs:string'/>
      <xs:attribute name='masterConnectorURI' type='xs:string'/>
      <xs:attribute name='memoryManager' type='xs:string'/>
      <xs:attribute name='messageAuthorizationPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the policy used to decide if the current connection is authorized to consume
a given message
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='pendingDurableSubscriberPolicy' type='xs:string'/>
      <xs:attribute name='persistenceAdapter' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the persistence adaptor implementation to use for this broker
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='persistenceFactory' type='xs:string'/>
      <xs:attribute name='persistenceTaskRunnerFactory' type='xs:string'/>
      <xs:attribute name='persistenceThreadPriority' type='xs:integer'/>
      <xs:attribute name='persistent' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not persistence is enabled or disabled.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='populateJMSXUserID' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not the broker should populate the JMSXUserID header.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='shutdownOnMasterFailure' type='xs:boolean'/>
      <xs:attribute name='start' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not the broker is started along with the ApplicationContext it is defined within.
Normally you would want the broker to start up along with the ApplicationContext but sometimes when working
with JUnit tests you may wish to start and stop the broker explicitly yourself.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='taskRunnerFactory' type='xs:string'/>
      <xs:attribute name='tempDataStore' type='xs:string'/>
      <xs:attribute name='tmpDataDirectory' type='xs:string'/>
      <xs:attribute name='useJmx' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not the Broker's services should be exposed into JMX or
not.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useLoggingForShutdownErrors' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not we should use commons-logging when reporting errors
when shutting down the broker
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useShutdownHook' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not we should use a shutdown handler to close down the
broker cleanly if the JVM is terminated. It is recommended you leave this
enabled.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useVirtualTopics' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not
<a href="http://incubator.apache.org/activemq/virtual-destinations.html">Virtual Topics</a>
should be supported by default if they have not been explicitly configured.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='vmConnectorURI' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.BytesJDBCAdapter -->
  <xs:element name='bytesJDBCAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This JDBCAdapter inserts and extracts BLOB data using the
setBytes()/getBytes() operations.

The databases/JDBC drivers that use this adapter are:
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.util.CommandAgent -->
  <xs:element name='commandAgent'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An agent which listens to commands on a JMS destination
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='commandDestination' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='connection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='connectionFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:connectionFactory'/>
              <xs:element ref='tns:xaConnectionFactory'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='brokerService' type='xs:string'/>
      <xs:attribute name='brokerUrl' type='xs:string'/>
      <xs:attribute name='commandDestination' type='xs:string'/>
      <xs:attribute name='connection' type='xs:string'/>
      <xs:attribute name='connectionFactory' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.CompositeDemandForwardingBridge -->
  <xs:element name='compositeDemandForwardingBridge'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A demand forwarding bridge which works with multicast style transports where
a single Transport could be communicating with multiple remote brokers
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='durableDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='dynamicallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='excludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='localBroker' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='remoteBroker' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='staticallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='bridgeTempDestinations' type='xs:boolean'/>
      <xs:attribute name='decreaseNetworkConsumerPriority' type='xs:boolean'/>
      <xs:attribute name='dispatchAsync' type='xs:boolean'/>
      <xs:attribute name='localBroker' type='xs:string'/>
      <xs:attribute name='localBrokerName' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='networkTTL' type='xs:integer'/>
      <xs:attribute name='password' type='xs:string'/>
      <xs:attribute name='prefetchSize' type='xs:integer'/>
      <xs:attribute name='remoteBroker' type='xs:string'/>
      <xs:attribute name='userName' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.virtual.CompositeQueue -->
  <xs:element name='compositeQueue'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents a virtual queue which forwards to a number of other destinations.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='forwardTo' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the list of destinations to forward to
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='copyMessage' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether a copy of the message will be sent to each destination.
Defaults to true so that the forward destination is set as the
destination of the message
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='forwardOnly' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets if the virtual destination is forward only (and so there is no
physical queue to match the virtual queue) or if there is also a physical
queue with the same name).
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='forwardTo' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the list of destinations to forward to
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='name' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the name of this composite destination
          ]]></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.apache.activemq.broker.region.virtual.CompositeTopic -->
  <xs:element name='compositeTopic'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents a virtual topic which forwards to a number of other destinations.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='forwardTo' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the list of destinations to forward to
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='copyMessage' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether a copy of the message will be sent to each destination.
Defaults to true so that the forward destination is set as the
destination of the message
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='forwardOnly' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets if the virtual destination is forward only (and so there is no
physical queue to match the virtual queue) or if there is also a physical
queue with the same name).
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='forwardTo' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the list of destinations to forward to
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='name' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the name of this composite destination
          ]]></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.apache.activemq.broker.view.ConnectionDotFilePlugin -->
  <xs:element name='connectionDotFilePlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A <a href="http://www.graphviz.org/">DOT</a> file creator plugin which
creates a DOT file showing the current connections
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='file' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the destination file name to create the destination diagram
          ]]></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.apache.activemq.spring.ActiveMQConnectionFactory -->
  <xs:element name='connectionFactory'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A <a href="http://www.springframework.org/">Spring</a> enhanced connection
factory which will automatically use the Spring bean name as the clientIDPrefix property
so that connections created have client IDs related to your Spring.xml file for
easier comprehension from <a href="http://incubator.apache.org/activemq/jmx.html">JMX</a>.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='clientIdGenerator' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='prefetchPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the <a
href="http://incubator.apache.org/activemq/what-is-the-prefetch-limit-for.html">prefetch
policy</a> for consumers created by this connection.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:prefetchPolicy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='properties' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Get the properties from this instance for storing in JNDI
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='redeliveryPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the global redelivery policy to be used when a message is delivered but the session is rolled back
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:redeliveryPolicy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='alwaysSessionAsync' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            If this flag is set then a separate thread is not used for dispatching
messages for each Session in the Connection. However, a separate thread
is always used if there is more than one session, or the session isn't in
auto acknowledge or duplicates ok mode
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='beanName' type='xs:string'/>
      <xs:attribute name='brokerURL' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the <a
href="http://incubator.apache.org/activemq/configuring-transports.html">connection
URL</a> used to connect to the ActiveMQ broker.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='clientID' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS clientID to use for the created connection. Note that this can only be used by one connection at once so generally its a better idea
to set the clientID on a Connection
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='clientIDPrefix' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the prefix used by autogenerated JMS Client ID values which are
used if the JMS client does not explicitly specify on.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='clientIdGenerator' type='xs:string'/>
      <xs:attribute name='closeTimeout' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the timeout before a close is considered complete. Normally a
close() on a connection waits for confirmation from the broker; this
allows that operation to timeout to save the client hanging if there is
no broker
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='copyMessageOnSend' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Should a JMS message be copied to a new JMS Message object as part of the
send() method in JMS. This is enabled by default to be compliant with the
JMS specification. You can disable it if you do not mutate JMS messages
after they are sent for a performance boost
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='disableTimeStampsByDefault' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not timestamps on messages should be disabled or not. If
you disable them it adds a small performance boost.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='dispatchAsync' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables the default setting of whether or not consumers have
their messages <a
href="http://incubator.apache.org/activemq/consumer-dispatch-async.html">dispatched
synchronously or asynchronously by the broker</a>.

For non-durable topics for example we typically dispatch synchronously by
default to minimize context switches which boost performance. However
sometimes its better to go slower to ensure that a single blocked
consumer socket does not block delivery to other consumers.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='nestedMapAndListEnabled' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables/disables whether or not Message properties and MapMessage entries
support <a
href="http://incubator.apache.org/activemq/structured-message-properties-and-mapmessages.html">Nested
Structures</a> of Map and List objects
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='objectMessageSerializationDefered' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            When an object is set on an ObjectMessage, the JMS spec requires the
object to be serialized by that set method. Enabling this flag causes the
object to not get serialized. The object may subsequently get serialized
if the message needs to be sent over a socket or stored to disk.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='optimizeAcknowledge' type='xs:boolean'/>
      <xs:attribute name='optimizedMessageDispatch' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            If this flag is set then an larger prefetch limit is used - only
applicable for durable topic subscribers.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='password' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS password used for connections created from this factory
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='prefetchPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the <a
href="http://incubator.apache.org/activemq/what-is-the-prefetch-limit-for.html">prefetch
policy</a> for consumers created by this connection.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='properties' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Get the properties from this instance for storing in JNDI
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='redeliveryPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the global redelivery policy to be used when a message is delivered but the session is rolled back
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='statsEnabled' type='xs:boolean'/>
      <xs:attribute name='useAsyncSend' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Forces the use of <a
href="http://incubator.apache.org/activemq/async-sends.html">Async Sends</a>
which adds a massive performance boost; but means that the send() method
will return immediately whether the message has been sent or not which
could lead to message loss.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useBeanNameAsClientIdPrefix' type='xs:boolean'/>
      <xs:attribute name='useCompression' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables the use of compression of the message bodies
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useRetroactiveConsumer' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not retroactive consumers are enabled. Retroactive consumers allow
non-durable topic subscribers to receive old messages that were published before the
non-durable subscriber started.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useSyncSend' type='xs:boolean'/>
      <xs:attribute name='userName' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS userName used by connections created by this factory
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='watchTopicAdvisories' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.ConstantPendingMessageLimitStrategy -->
  <xs:element name='constantPendingMessageLimitStrategy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This PendingMessageLimitStrategy is configured to a constant value for all subscriptions.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='limit' type='xs:integer'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.DB2JDBCAdapter -->
  <xs:element name='db2JDBCAdapter'>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter -->
  <xs:element name='defaultJDBCAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Implements all the default JDBC operations that are used by the JDBCPersistenceAdapter. <p/> sub-classing is
encouraged to override the default implementation of methods to account for differences in JDBC Driver
implementations. <p/> The JDBCAdapter inserts and extracts BLOB data using the getBytes()/setBytes() operations. <p/>
The databases/JDBC drivers that use this adapter are:
<ul>
<li></li>
</ul>
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.DemandForwardingBridge -->
  <xs:element name='demandForwardingBridge'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Forwards messages from the local broker to the remote broker based on demand.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='durableDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='dynamicallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='excludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='localBroker' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='remoteBroker' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='staticallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='bridgeTempDestinations' type='xs:boolean'/>
      <xs:attribute name='decreaseNetworkConsumerPriority' type='xs:boolean'/>
      <xs:attribute name='dispatchAsync' type='xs:boolean'/>
      <xs:attribute name='localBroker' type='xs:string'/>
      <xs:attribute name='localBrokerName' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='networkTTL' type='xs:integer'/>
      <xs:attribute name='password' type='xs:string'/>
      <xs:attribute name='prefetchSize' type='xs:integer'/>
      <xs:attribute name='remoteBroker' type='xs:string'/>
      <xs:attribute name='userName' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.view.DestinationDotFilePlugin -->
  <xs:element name='destinationDotFilePlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A <a href="http://www.graphviz.org/">DOT</a>
file creator plugin which creates a DOT file showing the current topic & queue hierarchies.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='file' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the destination file name to create the destination diagram
          ]]></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.apache.activemq.filter.DefaultDestinationMapEntry -->
  <xs:element name='destinationEntry'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A default entry in a DestinationMap which holds a single value.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='destination' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='value' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='queue' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            A helper method to set the destination from a configuration file
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='topic' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            A helper method to set the destination from a configuration file
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='value' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.FilePendingDurableSubscriberMessageStoragePolicy -->
  <xs:element name='fileDurableSubscriberCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending messages for durable subscribers
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.FixedCountSubscriptionRecoveryPolicy -->
  <xs:element name='fixedCountSubscriptionRecoveryPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This implementation of {@link SubscriptionRecoveryPolicy} will keep a fixed count
of last messages.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='maximumSize' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum number of messages that this destination will hold around in RAM
          ]]></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.apache.activemq.broker.region.policy.FixedSizedSubscriptionRecoveryPolicy -->
  <xs:element name='fixedSizedSubscriptionRecoveryPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This implementation of {@link SubscriptionRecoveryPolicy} will keep a fixed
amount of memory available in RAM for message history which is evicted in
time order.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='buffer' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='buffer' type='xs:string'/>
      <xs:attribute name='maximumSize' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum amount of RAM in bytes that this buffer can hold in RAM
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useSharedBuffer' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.ForwardingBridge -->
  <xs:element name='forwardingBridge'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Forwards all messages from the local broker to the remote broker.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='localBroker' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='remoteBroker' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='clientId' type='xs:string'/>
      <xs:attribute name='destinationFilter' type='xs:string'/>
      <xs:attribute name='dispatchAsync' type='xs:boolean'/>
      <xs:attribute name='localBroker' type='xs:string'/>
      <xs:attribute name='prefetchSize' type='xs:integer'/>
      <xs:attribute name='remoteBroker' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.ImageBasedJDBCAdaptor -->
  <xs:element name='imageBasedJDBCAdaptor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Provides JDBCAdapter since that uses
IMAGE datatype to hold binary data.

The databases/JDBC drivers that use this adapter are:
<ul>
<li>Sybase</li>
<li>MS SQL</li>
</ul>
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.jms.InboundQueueBridge -->
  <xs:element name='inboundQueueBridge'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Create an Inbound Queue Bridge
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='consumer' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerQueue' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsConnector' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:jmsQueueConnector'/>
              <xs:element ref='tns:jmsTopicConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerQueue' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='consumer' type='xs:string'/>
      <xs:attribute name='consumerConnection' type='xs:string'/>
      <xs:attribute name='consumerQueue' type='xs:string'/>
      <xs:attribute name='doHandleReplyTo' type='xs:boolean'/>
      <xs:attribute name='inboundQueueName' type='xs:string'/>
      <xs:attribute name='jmsConnector' type='xs:string'/>
      <xs:attribute name='jmsMessageConvertor' type='xs:string'/>
      <xs:attribute name='localQueueName' type='xs:string'/>
      <xs:attribute name='maximumRetries' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum number of retries if a send fails before closing the
bridge
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='producerConnection' type='xs:string'/>
      <xs:attribute name='producerQueue' type='xs:string'/>
      <xs:attribute name='selector' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.jms.InboundTopicBridge -->
  <xs:element name='inboundTopicBridge'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Create an Inbound Topic Bridge
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='consumer' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerTopic' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsConnector' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:jmsQueueConnector'/>
              <xs:element ref='tns:jmsTopicConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerTopic' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='consumer' type='xs:string'/>
      <xs:attribute name='consumerConnection' type='xs:string'/>
      <xs:attribute name='consumerName' type='xs:string'/>
      <xs:attribute name='consumerTopic' type='xs:string'/>
      <xs:attribute name='doHandleReplyTo' type='xs:boolean'/>
      <xs:attribute name='inboundTopicName' type='xs:string'/>
      <xs:attribute name='jmsConnector' type='xs:string'/>
      <xs:attribute name='jmsMessageConvertor' type='xs:string'/>
      <xs:attribute name='localTopicName' type='xs:string'/>
      <xs:attribute name='maximumRetries' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum number of retries if a send fails before closing the
bridge
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='producerConnection' type='xs:string'/>
      <xs:attribute name='producerTopic' type='xs:string'/>
      <xs:attribute name='selector' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.IndividualDeadLetterStrategy -->
  <xs:element name='individualDeadLetterStrategy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A {@link DeadLetterStrategy} where each destination has its own individual
DLQ using the subject naming hierarchy.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='queuePrefix' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the prefix to use for all dead letter queues for queue messages
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='topicPrefix' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the prefix to use for all dead letter queues for topic messages
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useQueueForQueueMessages' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether a queue or topic should be used for queue messages sent to a
DLQ. The default is to use a Queue
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useQueueForTopicMessages' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether a queue or topic should be used for topic messages sent to a
DLQ. The default is to use a Queue
          ]]></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.apache.activemq.store.jdbc.adapter.InformixJDBCAdapter -->
  <xs:element name='informixJDBCAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        JDBC Adapter for Informix database.
Because Informix database restricts length of composite primary keys, length of
<i>container name</i> field and <i>subscription id</i> field must be reduced to 150 characters.
Therefore be sure not to use longer names for container name and subscription id than 150 characters.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.JaasAuthenticationPlugin -->
  <xs:element name='jaasAuthenticationPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Provides a JAAS based authentication plugin
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='configuration' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JAAS configuration domain name used
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='discoverLoginConfig' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables the auto-discovery of the login.config file for JAAS to initialize itself.
This flag is enabled by default such that if the <b>java.security.auth.login.config</b> system property
is not defined then it is set to the location of the <b>login.config</b> file on the classpath.
          ]]></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.apache.activemq.security.JaasCertificateAuthenticationPlugin -->
  <xs:element name='jaasCertificateAuthenticationPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Provides a JAAS based SSL certificate authentication plugin
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='configuration' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JAAS configuration domain name used
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='discoverLoginConfig' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables the auto-discovery of the login.config file for JAAS to initialize itself.
This flag is enabled by default such that if the <b>java.security.auth.login.config</b> system property
is not defined then it is set to the location of the <b>login.config</b> file on the classpath.
          ]]></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.apache.activemq.store.jdbc.JDBCPersistenceAdapter -->
  <xs:element name='jdbcPersistenceAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A {@link PersistenceAdapter} implementation using JDBC for persistence
storage.

This persistence adapter will correctly remember prepared XA transactions,
but it will not keep track of local transaction commits so that operations
performed against the Message store are done as a single uow.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adapter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:axionJDBCAdapter'/>
              <xs:element ref='tns:blobJDBCAdapter'/>
              <xs:element ref='tns:bytesJDBCAdapter'/>
              <xs:element ref='tns:db2JDBCAdapter'/>
              <xs:element ref='tns:defaultJDBCAdapter'/>
              <xs:element ref='tns:imageBasedJDBCAdaptor'/>
              <xs:element ref='tns:informixJDBCAdapter'/>
              <xs:element ref='tns:oracleJDBCAdapter'/>
              <xs:element ref='tns:streamJDBCAdapter'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='dataSource' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='databaseLocker' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the database locker strategy to use to lock the database on startup
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='ds' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='scheduledThreadPoolExecutor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='usageManager' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:usageManager'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='wireFormat' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='adapter' type='xs:string'/>
      <xs:attribute name='brokerService' type='xs:string'/>
      <xs:attribute name='cleanupPeriod' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the number of milliseconds until the database is attempted to be cleaned up for durable topics
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='createTablesOnStartup' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not tables are created on startup
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='dataDirectory' type='xs:string'/>
      <xs:attribute name='dataDirectoryFile' type='xs:string'/>
      <xs:attribute name='dataSource' type='xs:string'/>
      <xs:attribute name='databaseLocker' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the database locker strategy to use to lock the database on startup
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='ds' type='xs:string'/>
      <xs:attribute name='scheduledThreadPoolExecutor' type='xs:string'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='usageManager' type='xs:string'/>
      <xs:attribute name='useDatabaseLock' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not an exclusive database lock should be used to enable JDBC Master/Slave. Enabled by default.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='wireFormat' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.jms.JmsQueueConnector -->
  <xs:element name='jmsQueueConnector'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A Bridge to other JMS Queue providers
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              One way to configure the local connection - this is called by The
BrokerService when the Connector is embedded
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='inboundMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='inboundQueueBridges' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:inboundQueueBridge'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='localQueueConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='localQueueConnectionFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:connectionFactory'/>
              <xs:element ref='tns:xaConnectionFactory'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundQueueBridges' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:outboundQueueBridge'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundQueueConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundQueueConnectionFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:connectionFactory'/>
              <xs:element ref='tns:xaConnectionFactory'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='brokerService' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            One way to configure the local connection - this is called by The
BrokerService when the Connector is embedded
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='inboundMessageConvertor' type='xs:string'/>
      <xs:attribute name='jndiLocalTemplate' type='xs:string'/>
      <xs:attribute name='jndiOutboundTemplate' type='xs:string'/>
      <xs:attribute name='localConnectionFactoryName' type='xs:string'/>
      <xs:attribute name='localPassword' type='xs:string'/>
      <xs:attribute name='localQueueConnection' type='xs:string'/>
      <xs:attribute name='localQueueConnectionFactory' type='xs:string'/>
      <xs:attribute name='localUsername' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='outboundMessageConvertor' type='xs:string'/>
      <xs:attribute name='outboundPassword' type='xs:string'/>
      <xs:attribute name='outboundQueueConnection' type='xs:string'/>
      <xs:attribute name='outboundQueueConnectionFactory' type='xs:string'/>
      <xs:attribute name='outboundQueueConnectionFactoryName' type='xs:string'/>
      <xs:attribute name='outboundUsername' type='xs:string'/>
      <xs:attribute name='replyToDestinationCacheSize' type='xs:integer'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.jms.JmsTopicConnector -->
  <xs:element name='jmsTopicConnector'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A Bridge to other JMS Topic providers
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              One way to configure the local connection - this is called by The
BrokerService when the Connector is embedded
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='inboundMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='inboundTopicBridges' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:inboundTopicBridge'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='localTopicConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='localTopicConnectionFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:connectionFactory'/>
              <xs:element ref='tns:xaConnectionFactory'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundTopicBridges' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:outboundTopicBridge'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundTopicConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundTopicConnectionFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:connectionFactory'/>
              <xs:element ref='tns:xaConnectionFactory'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='brokerService' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            One way to configure the local connection - this is called by The
BrokerService when the Connector is embedded
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='inboundMessageConvertor' type='xs:string'/>
      <xs:attribute name='jndiLocalTemplate' type='xs:string'/>
      <xs:attribute name='jndiOutboundTemplate' type='xs:string'/>
      <xs:attribute name='localConnectionFactoryName' type='xs:string'/>
      <xs:attribute name='localPassword' type='xs:string'/>
      <xs:attribute name='localTopicConnection' type='xs:string'/>
      <xs:attribute name='localTopicConnectionFactory' type='xs:string'/>
      <xs:attribute name='localUsername' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='outboundMessageConvertor' type='xs:string'/>
      <xs:attribute name='outboundPassword' type='xs:string'/>
      <xs:attribute name='outboundTopicConnection' type='xs:string'/>
      <xs:attribute name='outboundTopicConnectionFactory' type='xs:string'/>
      <xs:attribute name='outboundTopicConnectionFactoryName' type='xs:string'/>
      <xs:attribute name='outboundUsername' type='xs:string'/>
      <xs:attribute name='replyToDestinationCacheSize' type='xs:integer'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.journal.JournalPersistenceAdapter -->
  <xs:element name='journalPersistenceAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An implementation of {@link PersistenceAdapter} designed for use with a
{@link Journal} and then check pointing asynchronously on a timeout with some
other long term persistent storage.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='journal' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='longTermPersistence' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:jdbcPersistenceAdapter'/>
              <xs:element ref='tns:journalPersistenceAdapter'/>
              <xs:element ref='tns:kahaPersistenceAdapter'/>
              <xs:element ref='tns:memoryPersistenceAdapter'/>
              <xs:element ref='tns:quickJournalPersistenceAdapter'/>
              <xs:element ref='tns:rapidPersistenceAdapter'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='taskRunnerFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='usageManager' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:usageManager'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='journal' type='xs:string'/>
      <xs:attribute name='longTermPersistence' type='xs:string'/>
      <xs:attribute name='maxCheckpointMessageAddSize' type='xs:integer'/>
      <xs:attribute name='maxCheckpointWorkers' type='xs:integer'/>
      <xs:attribute name='taskRunnerFactory' type='xs:string'/>
      <xs:attribute name='usageManager' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.PersistenceAdapterFactoryBean -->
  <xs:element name='journaledJDBC'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Creates a default persistence model using the Journal and JDBC
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adapter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:axionJDBCAdapter'/>
              <xs:element ref='tns:blobJDBCAdapter'/>
              <xs:element ref='tns:bytesJDBCAdapter'/>
              <xs:element ref='tns:db2JDBCAdapter'/>
              <xs:element ref='tns:defaultJDBCAdapter'/>
              <xs:element ref='tns:imageBasedJDBCAdaptor'/>
              <xs:element ref='tns:informixJDBCAdapter'/>
              <xs:element ref='tns:oracleJDBCAdapter'/>
              <xs:element ref='tns:streamJDBCAdapter'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='dataSource' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='jdbcAdapter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:jdbcPersistenceAdapter'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='journal' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='taskRunnerFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='adapter' type='xs:string'/>
      <xs:attribute name='createTablesOnStartup' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not tables are created on startup
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='dataDirectory' type='xs:string'/>
      <xs:attribute name='dataDirectoryFile' type='xs:string'/>
      <xs:attribute name='dataSource' type='xs:string'/>
      <xs:attribute name='jdbcAdapter' type='xs:string'/>
      <xs:attribute name='journal' type='xs:string'/>
      <xs:attribute name='journalArchiveDirectory' type='xs:string'/>
      <xs:attribute name='journalLogFileSize' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the size of the journal log files
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='journalLogFiles' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the number of journal log files to use
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='journalThreadPriority' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the thread priority of the journal thread
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='taskRunnerFactory' type='xs:string'/>
      <xs:attribute name='useDatabaseLock' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not an exclusive database lock should be used to enable JDBC Master/Slave. Enabled by default.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useJournal' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables the use of the journal. The default is to use the journal
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useQuickJournal' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables the use of quick journal, which keeps messages in the journal and just
stores a reference to the messages in JDBC. Defaults to false so that messages actually reside
long term in the JDBC database.
          ]]></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.apache.activemq.store.kahadaptor.KahaPersistenceAdapter -->
  <xs:element name='kahaPersistenceAdapter'>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='usageManager' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:usageManager'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='dir' type='xs:string'/>
      <xs:attribute name='indexType' type='xs:string'/>
      <xs:attribute name='maxDataFileLength' type='xs:long'/>
      <xs:attribute name='usageManager' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.LDAPAuthorizationMap -->
  <xs:element name='lDAPAuthorizationMap'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An {@link AuthorizationMap} which uses LDAP
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='context' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='options' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='queueSearchMatchingFormat' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='topicSearchMatchingFormat' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='adminAttribute' type='xs:string'/>
      <xs:attribute name='adminBase' type='xs:string'/>
      <xs:attribute name='authentication' type='xs:string'/>
      <xs:attribute name='connectionPassword' type='xs:string'/>
      <xs:attribute name='connectionProtocol' type='xs:string'/>
      <xs:attribute name='connectionURL' type='xs:string'/>
      <xs:attribute name='connectionUsername' type='xs:string'/>
      <xs:attribute name='context' type='xs:string'/>
      <xs:attribute name='initialContextFactory' type='xs:string'/>
      <xs:attribute name='options' type='xs:string'/>
      <xs:attribute name='queueSearchMatchingFormat' type='xs:string'/>
      <xs:attribute name='queueSearchSubtreeBool' type='xs:boolean'/>
      <xs:attribute name='readAttribute' type='xs:string'/>
      <xs:attribute name='readBase' type='xs:string'/>
      <xs:attribute name='topicSearchMatchingFormat' type='xs:string'/>
      <xs:attribute name='topicSearchSubtreeBool' type='xs:boolean'/>
      <xs:attribute name='writeAttribute' type='xs:string'/>
      <xs:attribute name='writeBase' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.LastImageSubscriptionRecoveryPolicy -->
  <xs:element name='lastImageSubscriptionRecoveryPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This implementation of {@link SubscriptionRecoveryPolicy} will only keep
the last message.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.util.LoggingBrokerPlugin -->
  <xs:element name='loggingBrokerPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A simple Broker interceptor which allows you to enable/disable logging.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='ackLog' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='adminConnectionContext' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='log' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='next' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:loggingBrokerPlugin'/>
              <xs:element ref='tns:multicastTraceBrokerPlugin'/>
              <xs:element ref='tns:timeStampingBrokerPlugin'/>
              <xs:element ref='tns:udpTraceBrokerPlugin'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='pendingDurableSubscriberPolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:fileDurableSubscriberCursor'/>
              <xs:element ref='tns:storeDurableSubscriberCursor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='sendLog' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='ackLog' type='xs:string'/>
      <xs:attribute name='adminConnectionContext' type='xs:string'/>
      <xs:attribute name='log' type='xs:string'/>
      <xs:attribute name='next' type='xs:string'/>
      <xs:attribute name='pendingDurableSubscriberPolicy' type='xs:string'/>
      <xs:attribute name='sendLog' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.jmx.ManagementContext -->
  <xs:element name='managementContext'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A Flow provides different dispatch policies within the NMR
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='MBeanServer' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Get the MBeanServer
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='server' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='MBeanServer' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Get the MBeanServer
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='connectorPath' type='xs:string'/>
      <xs:attribute name='connectorPort' type='xs:integer'/>
      <xs:attribute name='createConnector' type='xs:boolean'/>
      <xs:attribute name='createMBeanServer' type='xs:boolean'/>
      <xs:attribute name='findTigerMbeanServer' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables/disables the searching for the Java 5 platform MBeanServer
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='jmxDomainName' type='xs:string'/>
      <xs:attribute name='rmiServerPort' type='xs:integer'/>
      <xs:attribute name='server' type='xs:string'/>
      <xs:attribute name='useMBeanServer' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.ft.MasterConnector -->
  <xs:element name='masterConnector'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Connects a Slave Broker to a Master when using <a
href="http://incubator.apache.org/activemq/masterslave.html">Master Slave</a>
for High Availability of messages.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='brokerService' type='xs:string'/>
      <xs:attribute name='localURI' type='xs:string'/>
      <xs:attribute name='password' type='xs:string'/>
      <xs:attribute name='remoteURI' type='xs:string'/>
      <xs:attribute name='remoteUri' type='xs:string'/>
      <xs:attribute name='userName' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.memory.MemoryPersistenceAdapter -->
  <xs:element name='memoryPersistenceAdapter'>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='usageManager' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:usageManager'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='usageManager' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.group.MessageGroupHashBucketFactory -->
  <xs:element name='messageGroupHashBucketFactory'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A factory to create instances of {@link SimpleMessageGroupMap} when
implementing the <a
href="http://incubator.apache.org/activemq/message-groups.html">Message
Groups</a> functionality.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='bucketCount' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the number of hash buckets to use for the message group
functionality. This is only applicable to using message groups to
parallelize processing of a queue while preserving order across an
individual JMSXGroupID header value. This value sets the number of hash
buckets that will be used (i.e. the maximum possible concurrency).
          ]]></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.apache.activemq.network.MulticastNetworkConnector -->
  <xs:element name='multicastNetworkConnector'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A network connector which uses some kind of multicast-like transport that
communicates with potentially many remote brokers over a single logical
{@link Transport} instance such as when using multicast.

This implementation does not depend on multicast at all; any other group
based transport could be used.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='bridge' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:compositeDemandForwardingBridge'/>
              <xs:element ref='tns:demandForwardingBridge'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='connectionFilter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='durableDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='dynamicallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='excludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='localTransport' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='remoteTransport' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the remote transport implementation
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='staticallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='bridge' type='xs:string'/>
      <xs:attribute name='bridgeTempDestinations' type='xs:boolean'/>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='conduitSubscriptions' type='xs:boolean'/>
      <xs:attribute name='connectionFilter' type='xs:string'/>
      <xs:attribute name='decreaseNetworkConsumerPriority' type='xs:boolean'/>
      <xs:attribute name='dispatchAsync' type='xs:boolean'/>
      <xs:attribute name='durableDestinations' type='xs:string'/>
      <xs:attribute name='dynamicOnly' type='xs:boolean'/>
      <xs:attribute name='localTransport' type='xs:string'/>
      <xs:attribute name='localUri' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='networkTTL' type='xs:integer'/>
      <xs:attribute name='password' type='xs:string'/>
      <xs:attribute name='prefetchSize' type='xs:integer'/>
      <xs:attribute name='remoteTransport' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the remote transport implementation
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='remoteURI' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the remote transport URI to some group transport like
<code>multicast://address:port</code>
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='userName' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.util.MulticastTraceBrokerPlugin -->
  <xs:element name='multicastTraceBrokerPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A Broker interceptor which allows you to trace all operations to a Multicast socket.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='address' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='adminConnectionContext' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='next' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:loggingBrokerPlugin'/>
              <xs:element ref='tns:multicastTraceBrokerPlugin'/>
              <xs:element ref='tns:timeStampingBrokerPlugin'/>
              <xs:element ref='tns:udpTraceBrokerPlugin'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='pendingDurableSubscriberPolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:fileDurableSubscriberCursor'/>
              <xs:element ref='tns:storeDurableSubscriberCursor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='wireFormat' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='wireFormatFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='address' type='xs:string'/>
      <xs:attribute name='adminConnectionContext' type='xs:string'/>
      <xs:attribute name='broadcast' type='xs:boolean'/>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='maxTraceDatagramSize' type='xs:integer'/>
      <xs:attribute name='next' type='xs:string'/>
      <xs:attribute name='pendingDurableSubscriberPolicy' type='xs:string'/>
      <xs:attribute name='timeToLive' type='xs:integer'/>
      <xs:attribute name='wireFormat' type='xs:string'/>
      <xs:attribute name='wireFormatFactory' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.DiscoveryNetworkConnector -->
  <xs:element name='networkConnector'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A network connector which uses a discovery agent to detect the remote brokers
available and setup a connection to each available remote broker
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='connectionFilter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='discoveryAgent' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='durableDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='dynamicallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='excludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='staticallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='bridgeTempDestinations' type='xs:boolean'/>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='conduitSubscriptions' type='xs:boolean'/>
      <xs:attribute name='connectionFilter' type='xs:string'/>
      <xs:attribute name='decreaseNetworkConsumerPriority' type='xs:boolean'/>
      <xs:attribute name='discoveryAgent' type='xs:string'/>
      <xs:attribute name='discoveryURI' type='xs:string'/>
      <xs:attribute name='dispatchAsync' type='xs:boolean'/>
      <xs:attribute name='durableDestinations' type='xs:string'/>
      <xs:attribute name='dynamicOnly' type='xs:boolean'/>
      <xs:attribute name='failover' type='xs:boolean'/>
      <xs:attribute name='localUri' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='networkTTL' type='xs:integer'/>
      <xs:attribute name='password' type='xs:string'/>
      <xs:attribute name='prefetchSize' type='xs:integer'/>
      <xs:attribute name='uri' type='xs:string'/>
      <xs:attribute name='userName' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.NoSubscriptionRecoveryPolicy -->
  <xs:element name='noSubscriptionRecoveryPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This SubscriptionRecoveryPolicy disable recovery of messages.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.OldestMessageEvictionStrategy -->
  <xs:element name='oldestMessageEvictionStrategy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An eviction strategy which evicts the oldest message first (which is the
default).
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='evictExpiredMessagesHighWatermark' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the high water mark on which we will eagerly evict expired messages from RAM
          ]]></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.apache.activemq.broker.region.policy.OldestMessageWithLowestPriorityEvictionStrategy -->
  <xs:element name='oldestMessageWithLowestPriorityEvictionStrategy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An eviction strategy which evicts the oldest message with the lowest priority first.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='evictExpiredMessagesHighWatermark' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the high water mark on which we will eagerly evict expired messages from RAM
          ]]></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.apache.activemq.store.jdbc.adapter.OracleJDBCAdapter -->
  <xs:element name='oracleJDBCAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Implements all the default JDBC operations that are used
by the JDBCPersistenceAdapter.
<p/>
Subclassing is encouraged to override the default
implementation of methods to account for differences
in JDBC Driver implementations.
<p/>
The JDBCAdapter inserts and extracts BLOB data using the
getBytes()/setBytes() operations.
<p/>
The databases/JDBC drivers that use this adapter are:
<ul>
<li></li>
</ul>
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.jms.OutboundQueueBridge -->
  <xs:element name='outboundQueueBridge'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Create an Outbound Queue Bridge
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='consumer' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerQueue' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsConnector' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:jmsQueueConnector'/>
              <xs:element ref='tns:jmsTopicConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerQueue' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='consumer' type='xs:string'/>
      <xs:attribute name='consumerConnection' type='xs:string'/>
      <xs:attribute name='consumerQueue' type='xs:string'/>
      <xs:attribute name='doHandleReplyTo' type='xs:boolean'/>
      <xs:attribute name='jmsConnector' type='xs:string'/>
      <xs:attribute name='jmsMessageConvertor' type='xs:string'/>
      <xs:attribute name='localQueueName' type='xs:string'/>
      <xs:attribute name='maximumRetries' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum number of retries if a send fails before closing the
bridge
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='outboundQueueName' type='xs:string'/>
      <xs:attribute name='producerConnection' type='xs:string'/>
      <xs:attribute name='producerQueue' type='xs:string'/>
      <xs:attribute name='selector' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.jms.OutboundTopicBridge -->
  <xs:element name='outboundTopicBridge'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Create an Outbound Topic Bridge
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='consumer' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerTopic' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsConnector' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:jmsQueueConnector'/>
              <xs:element ref='tns:jmsTopicConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerTopic' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='consumer' type='xs:string'/>
      <xs:attribute name='consumerConnection' type='xs:string'/>
      <xs:attribute name='consumerName' type='xs:string'/>
      <xs:attribute name='consumerTopic' type='xs:string'/>
      <xs:attribute name='doHandleReplyTo' type='xs:boolean'/>
      <xs:attribute name='jmsConnector' type='xs:string'/>
      <xs:attribute name='jmsMessageConvertor' type='xs:string'/>
      <xs:attribute name='localTopicName' type='xs:string'/>
      <xs:attribute name='maximumRetries' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum number of retries if a send fails before closing the
bridge
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='outboundTopicName' type='xs:string'/>
      <xs:attribute name='producerConnection' type='xs:string'/>
      <xs:attribute name='producerTopic' type='xs:string'/>
      <xs:attribute name='selector' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.PolicyEntry -->
  <xs:element name='policyEntry'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents an entry in a {@link PolicyMap} for assigning policies to a
specific destination or a hierarchical wildcard area of destinations.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='deadLetterStrategy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the policy used to determine which dead letter queue destination
should be used
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:individualDeadLetterStrategy'/>
              <xs:element ref='tns:sharedDeadLetterStrategy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='destination' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='dispatchPolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:roundRobinDispatchPolicy'/>
              <xs:element ref='tns:simpleDispatchPolicy'/>
              <xs:element ref='tns:strictOrderDispatchPolicy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='messageEvictionStrategy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the eviction strategy used to decide which message to evict when the
slow consumer needs to discard messages
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:oldestMessageEvictionStrategy'/>
              <xs:element ref='tns:oldestMessageWithLowestPriorityEvictionStrategy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='messageGroupMapFactory' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the factory used to create new instances of {MessageGroupMap} used to implement the
<a href="http://incubator.apache.org/activemq/message-groups.html">Message Groups</a> functionality.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:messageGroupHashBucketFactory'/>
              <xs:element ref='tns:simpleMessageGroupMapFactory'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='pendingMessageLimitStrategy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the strategy to calculate the maximum number of messages that are
allowed to be pending on consumers (in addition to their prefetch sizes).

Once the limit is reached, non-durable topics can then start discarding
old messages. This allows us to keep dispatching messages to slow
consumers while not blocking fast consumers and discarding the messages
oldest first.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:constantPendingMessageLimitStrategy'/>
              <xs:element ref='tns:prefetchRatePendingMessageLimitStrategy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='pendingQueueMessageStoragePolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:vmCursor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='subscriptionRecoveryPolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:fixedCountSubscriptionRecoveryPolicy'/>
              <xs:element ref='tns:fixedSizedSubscriptionRecoveryPolicy'/>
              <xs:element ref='tns:lastImageSubscriptionRecoveryPolicy'/>
              <xs:element ref='tns:noSubscriptionRecoveryPolicy'/>
              <xs:element ref='tns:queryBasedSubscriptionRecoveryPolicy'/>
              <xs:element ref='tns:timedSubscriptionRecoveryPolicy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='deadLetterStrategy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the policy used to determine which dead letter queue destination
should be used
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='dispatchPolicy' type='xs:string'/>
      <xs:attribute name='memoryLimit' type='xs:long'/>
      <xs:attribute name='messageEvictionStrategy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the eviction strategy used to decide which message to evict when the
slow consumer needs to discard messages
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='messageGroupMapFactory' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the factory used to create new instances of {MessageGroupMap} used to implement the
<a href="http://incubator.apache.org/activemq/message-groups.html">Message Groups</a> functionality.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='pendingMessageLimitStrategy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the strategy to calculate the maximum number of messages that are
allowed to be pending on consumers (in addition to their prefetch sizes).

Once the limit is reached, non-durable topics can then start discarding
old messages. This allows us to keep dispatching messages to slow
consumers while not blocking fast consumers and discarding the messages
oldest first.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='pendingQueueMessageStoragePolicy' type='xs:string'/>
      <xs:attribute name='queue' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            A helper method to set the destination from a configuration file
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='sendAdvisoryIfNoConsumers' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sends an advisory message if a non-persistent message is sent and there
are no active consumers
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='subscriptionRecoveryPolicy' type='xs:string'/>
      <xs:attribute name='topic' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            A helper method to set the destination from a configuration file
          ]]></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.apache.activemq.broker.region.policy.PolicyMap -->
  <xs:element name='policyMap'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents a destination based configuration of policies so that individual
destinations or wildcard hierarchies of destinations can be configured using
different policies.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='defaultEntry' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:policyEntry'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='entries' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              A helper method to allow the destination map to be populated from a
dependency injection framework such as Spring
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='policyEntries' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the individual entries on the policy map
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='defaultEntry' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.ActiveMQPrefetchPolicy -->
  <xs:element name='prefetchPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Defines the prefetch message policies for different types of consumers
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='all' type='xs:integer'/>
      <xs:attribute name='durableTopicPrefetch' type='xs:integer'/>
      <xs:attribute name='inputStreamPrefetch' type='xs:integer'/>
      <xs:attribute name='maximumPendingMessageLimit' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets how many messages a broker will keep around, above the prefetch limit, for non-durable
topics before starting to discard older messages.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='optimizeDurableTopicPrefetch' type='xs:integer'/>
      <xs:attribute name='queueBrowserPrefetch' type='xs:integer'/>
      <xs:attribute name='queuePrefetch' type='xs:integer'/>
      <xs:attribute name='topicPrefetch' type='xs:integer'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.PrefetchRatePendingMessageLimitStrategy -->
  <xs:element name='prefetchRatePendingMessageLimitStrategy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This PendingMessageLimitStrategy sets the maximum pending message limit value to be
a multiplier of the prefetch limit of the subscription.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='multiplier' type='xs:double'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the multiplier of the prefetch size which will be used to define the maximum number of pending
messages for non-durable topics before messages are discarded.
          ]]></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.apache.activemq.proxy.ProxyConnector -->
  <xs:element name='proxyConnector'>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='server' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='bind' type='xs:string'/>
      <xs:attribute name='localUri' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='remote' type='xs:string'/>
      <xs:attribute name='server' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy -->
  <xs:element name='queryBasedSubscriptionRecoveryPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This implementation of {@link SubscriptionRecoveryPolicy} will perform a user
specific query mechanism to load any messages they may have missed.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='query' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the query strategy to load initial messages
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='query' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the query strategy to load initial messages
          ]]></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.apache.activemq.command.ActiveMQQueue -->
  <xs:element name='queue'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An ActiveMQ Queue Destination
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='compositeDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='properties' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Get the properties from this instance for storing in JNDI
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='physicalName' type='xs:string'/>
      <xs:attribute name='properties' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Get the properties from this instance for storing in JNDI
          ]]></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.apache.activemq.store.journal.QuickJournalPersistenceAdapter -->
  <xs:element name='quickJournalPersistenceAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An implementation of {@link PersistenceAdapter} designed for use with a
{@link Journal} and then check pointing asynchronously on a timeout with some
other long term persistent storage.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='journal' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='longTermPersistence' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:jdbcPersistenceAdapter'/>
              <xs:element ref='tns:journalPersistenceAdapter'/>
              <xs:element ref='tns:kahaPersistenceAdapter'/>
              <xs:element ref='tns:memoryPersistenceAdapter'/>
              <xs:element ref='tns:quickJournalPersistenceAdapter'/>
              <xs:element ref='tns:rapidPersistenceAdapter'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='taskRunnerFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='usageManager' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:usageManager'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='journal' type='xs:string'/>
      <xs:attribute name='longTermPersistence' type='xs:string'/>
      <xs:attribute name='maxCheckpointMessageAddSize' type='xs:integer'/>
      <xs:attribute name='maxCheckpointWorkers' type='xs:integer'/>
      <xs:attribute name='taskRunnerFactory' type='xs:string'/>
      <xs:attribute name='usageManager' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.rapid.RapidPersistenceAdapter -->
  <xs:element name='rapidPersistenceAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An implementation of {@link PersistenceAdapter} designed for use with a
{@link Journal} and then check pointing asynchronously on a timeout with some
other long term persistent storage.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='journal' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='taskRunnerFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='usageManager' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:usageManager'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='journal' type='xs:string'/>
      <xs:attribute name='maxCheckpointMessageAddSize' type='xs:integer'/>
      <xs:attribute name='maxCheckpointWorkers' type='xs:integer'/>
      <xs:attribute name='taskRunnerFactory' type='xs:string'/>
      <xs:attribute name='usageManager' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.RedeliveryPolicy -->
  <xs:element name='redeliveryPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Configuration options used to control how messages are re-delivered when they
are rolled back.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='backOffMultiplier' type='xs:short'/>
      <xs:attribute name='collisionAvoidancePercent' type='xs:short'/>
      <xs:attribute name='initialRedeliveryDelay' type='xs:long'/>
      <xs:attribute name='maximumRedeliveries' type='xs:integer'/>
      <xs:attribute name='useCollisionAvoidance' type='xs:boolean'/>
      <xs:attribute name='useExponentialBackOff' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.RoundRobinDispatchPolicy -->
  <xs:element name='roundRobinDispatchPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Simple dispatch policy that sends a message to every subscription that
matches the message.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.SharedDeadLetterStrategy -->
  <xs:element name='sharedDeadLetterStrategy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A default implementation of {@link DeadLetterStrategy} which uses
a constant destination.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='deadLetterQueue' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='deadLetterQueue' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.SimpleAuthenticationPlugin -->
  <xs:element name='simpleAuthenticationPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Provides a simple authentication
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='userGroups' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the groups a user is in. The key is the user name and the value is a Set of groups
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='userPasswords' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the map indexed by user name with the value the password
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='userGroups' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the groups a user is in. The key is the user name and the value is a Set of groups
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='userPasswords' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the map indexed by user name with the value the password
          ]]></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.apache.activemq.security.SimpleAuthorizationMap -->
  <xs:element name='simpleAuthorizationMap'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An AuthorizationMap which is configured with individual DestinationMaps for
each operation.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adminACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:authorizationMap'/>
              <xs:element ref='tns:policyMap'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='readACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:authorizationMap'/>
              <xs:element ref='tns:policyMap'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='writeACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:authorizationMap'/>
              <xs:element ref='tns:policyMap'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='adminACLs' type='xs:string'/>
      <xs:attribute name='readACLs' type='xs:string'/>
      <xs:attribute name='writeACLs' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.SimpleDispatchPolicy -->
  <xs:element name='simpleDispatchPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Simple dispatch policy that sends a message to every subscription that
matches the message.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.jms.SimpleJmsMessageConvertor -->
  <xs:element name='simpleJmsMessageConvertor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Converts Message from one JMS to another
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='connection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='connection' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.group.SimpleMessageGroupMapFactory -->
  <xs:element name='simpleMessageGroupMapFactory'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A factory to create instances of {@link SimpleMessageGroupMap} when implementing the
<a href="http://incubator.apache.org/activemq/message-groups.html">Message Groups</a> functionality.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.Statements -->
  <xs:element name='statements'>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='createSchemaStatements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='dropSchemaStatements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='addMessageStatement' type='xs:string'/>
      <xs:attribute name='binaryDataType' type='xs:string'/>
      <xs:attribute name='containerNameDataType' type='xs:string'/>
      <xs:attribute name='createDurableSubStatement' type='xs:string'/>
      <xs:attribute name='deleteOldMessagesStatement' type='xs:string'/>
      <xs:attribute name='deleteSubscriptionStatement' type='xs:string'/>
      <xs:attribute name='durableSubAcksTableName' type='xs:string'/>
      <xs:attribute name='durableSubscriberMessageCountStatement' type='xs:string'/>
      <xs:attribute name='findAllDestinationsStatement' type='xs:string'/>
      <xs:attribute name='findAllDurableSubMessagesStatement' type='xs:string'/>
      <xs:attribute name='findAllDurableSubsStatement' type='xs:string'/>
      <xs:attribute name='findAllMessagesStatement' type='xs:string'/>
      <xs:attribute name='findDurableSubMessagesStatement' type='xs:string'/>
      <xs:attribute name='findDurableSubStatement' type='xs:string'/>
      <xs:attribute name='findLastSequenceIdInAcksStatement' type='xs:string'/>
      <xs:attribute name='findLastSequenceIdInMsgsStatement' type='xs:string'/>
      <xs:attribute name='findMessageSequenceIdStatement' type='xs:string'/>
      <xs:attribute name='findMessageStatement' type='xs:string'/>
      <xs:attribute name='lockCreateStatement' type='xs:string'/>
      <xs:attribute name='lockTableName' type='xs:string'/>
      <xs:attribute name='lockUpdateStatement' type='xs:string'/>
      <xs:attribute name='longDataType' type='xs:string'/>
      <xs:attribute name='messageTableName' type='xs:string'/>
      <xs:attribute name='msgIdDataType' type='xs:string'/>
      <xs:attribute name='nextDurableSubscriberMessageIdStatement' type='xs:string'/>
      <xs:attribute name='nextDurableSubscriberMessageStatement' type='xs:string'/>
      <xs:attribute name='prevDurableSubscriberMessageIdStatement' type='xs:string'/>
      <xs:attribute name='removeAllMessagesStatement' type='xs:string'/>
      <xs:attribute name='removeAllSubscriptionsStatement' type='xs:string'/>
      <xs:attribute name='removeMessageStatment' type='xs:string'/>
      <xs:attribute name='sequenceDataType' type='xs:string'/>
      <xs:attribute name='stringIdDataType' type='xs:string'/>
      <xs:attribute name='tablePrefix' type='xs:string'/>
      <xs:attribute name='updateLastAckOfDurableSubStatement' type='xs:string'/>
      <xs:attribute name='updateMessageStatement' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='useLockCreateWhereClause' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.StorePendingDurableSubscriberMessageStoragePolicy -->
  <xs:element name='storeDurableSubscriberCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending messages for a durable subscriber
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.StreamJDBCAdapter -->
  <xs:element name='streamJDBCAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This JDBCAdapter inserts and extracts BLOB data using the
setBinaryStream()/getBinaryStream() operations.

The databases/JDBC drivers that use this adapter are:
<ul>
<li>Axion</li>
</ul>
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.StrictOrderDispatchPolicy -->
  <xs:element name='strictOrderDispatchPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Dispatch policy that causes every subscription to see messages in the same order.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.util.TimeStampingBrokerPlugin -->
  <xs:element name='timeStampingBrokerPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A Broker interceptor which updates a JMS Client's timestamp on the message
with a broker timestamp. Useful when the clocks on client machines are known to
not be correct and you can only trust the time set on the broker machines.

Enabling this plugin will break JMS compliance since the timestamp that the producer
sees on the messages after as send() will be different from the timestamp the consumer
will observe when he receives the message. This plugin is not enabled in the default
ActiveMQ configuration.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adminConnectionContext' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='next' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:loggingBrokerPlugin'/>
              <xs:element ref='tns:multicastTraceBrokerPlugin'/>
              <xs:element ref='tns:timeStampingBrokerPlugin'/>
              <xs:element ref='tns:udpTraceBrokerPlugin'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='pendingDurableSubscriberPolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:fileDurableSubscriberCursor'/>
              <xs:element ref='tns:storeDurableSubscriberCursor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='adminConnectionContext' type='xs:string'/>
      <xs:attribute name='next' type='xs:string'/>
      <xs:attribute name='pendingDurableSubscriberPolicy' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.TimedSubscriptionRecoveryPolicy -->
  <xs:element name='timedSubscriptionRecoveryPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This implementation of {@link SubscriptionRecoveryPolicy} will keep a timed
buffer of messages around in memory and use that to recover new
subscriptions.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='recoverDuration' type='xs:long'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.command.ActiveMQTopic -->
  <xs:element name='topic'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An ActiveMQ Topic Destination
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='compositeDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='properties' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Get the properties from this instance for storing in JNDI
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='physicalName' type='xs:string'/>
      <xs:attribute name='properties' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Get the properties from this instance for storing in JNDI
          ]]></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.apache.activemq.broker.TransportConnector -->
  <xs:element name='transportConnector'>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='broker' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:loggingBrokerPlugin'/>
              <xs:element ref='tns:multicastTraceBrokerPlugin'/>
              <xs:element ref='tns:timeStampingBrokerPlugin'/>
              <xs:element ref='tns:udpTraceBrokerPlugin'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='brokerInfo' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='discoveryAgent' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='messageAuthorizationPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the policy used to decide if the current connection is authorized to consume
a given message
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='server' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='taskRunnerFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='broker' type='xs:string'/>
      <xs:attribute name='brokerInfo' type='xs:string'/>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='connectUri' type='xs:string'/>
      <xs:attribute name='disableAsyncDispatch' type='xs:boolean'/>
      <xs:attribute name='discoveryAgent' type='xs:string'/>
      <xs:attribute name='discoveryUri' type='xs:string'/>
      <xs:attribute name='enableStatusMonitor' type='xs:boolean'/>
      <xs:attribute name='messageAuthorizationPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the policy used to decide if the current connection is authorized to consume
a given message
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='server' type='xs:string'/>
      <xs:attribute name='taskRunnerFactory' type='xs:string'/>
      <xs:attribute name='uri' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the server transport URI to use if there is not a
{@link TransportServer} configured via the
{@link #setServer(TransportServer)} method. This value is used to lazy
create a {@link TransportServer} instance
          ]]></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.apache.activemq.broker.util.UDPTraceBrokerPlugin -->
  <xs:element name='udpTraceBrokerPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A Broker interceptor which allows you to trace all operations to a UDP socket.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='address' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='adminConnectionContext' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='next' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:loggingBrokerPlugin'/>
              <xs:element ref='tns:multicastTraceBrokerPlugin'/>
              <xs:element ref='tns:timeStampingBrokerPlugin'/>
              <xs:element ref='tns:udpTraceBrokerPlugin'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='pendingDurableSubscriberPolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:fileDurableSubscriberCursor'/>
              <xs:element ref='tns:storeDurableSubscriberCursor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='wireFormat' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='wireFormatFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='address' type='xs:string'/>
      <xs:attribute name='adminConnectionContext' type='xs:string'/>
      <xs:attribute name='broadcast' type='xs:boolean'/>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='maxTraceDatagramSize' type='xs:integer'/>
      <xs:attribute name='next' type='xs:string'/>
      <xs:attribute name='pendingDurableSubscriberPolicy' type='xs:string'/>
      <xs:attribute name='wireFormat' type='xs:string'/>
      <xs:attribute name='wireFormatFactory' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.memory.UsageManager -->
  <xs:element name='usageManager'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Used to keep track of how much of something is being used so that
a productive working set usage can be controlled.

Main use case is manage memory usage.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='parent' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:usageManager'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='limit' type='xs:long'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the memory limit in bytes.

When set using XBean, you can use values such as: "20 mb", "1024 kb", or "1 gb"
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='parent' type='xs:string'/>
      <xs:attribute name='percentUsage' type='xs:integer'/>
      <xs:attribute name='percentUsageMinDelta' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the minimum number of percentage points the usage has to change before a UsageListener
event is fired by the manager.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='sendFailIfNoSpace' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not a send() should fail if there is no space free. The default
value is false which means to block the send() method until space becomes available
          ]]></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.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor -->
  <xs:element name='virtualDestinationInterceptor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Implements <a
href="http://incubator.apache.org/activemq/virtual-destinations.html">Virtual
Topics</a>.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='virtualDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:compositeQueue'/>
              <xs:element ref='tns:compositeTopic'/>
              <xs:element ref='tns:virtualTopic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.virtual.VirtualTopic -->
  <xs:element name='virtualTopic'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Creates <a href="http://activemq.org/site/virtual-destinations.html">Virtual
Topics</a> using a prefix and postfix. The virtual destination creates a
wildcard that is then used to look up all active queue subscriptions which
match.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='postfix' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets any postix used to identify the queue consumers
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='prefix' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the prefix wildcard used to identify the queue consumers for a given
topic
          ]]></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.apache.activemq.broker.region.policy.VMPendingQueueMessageStoragePolicy -->
  <xs:element name='vmCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending messages held in the JVM
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.spring.ActiveMQXAConnectionFactory -->
  <xs:element name='xaConnectionFactory'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A <a href="http://www.springframework.org/">Spring</a> enhanced XA connection
factory which will automatically use the Spring bean name as the clientIDPrefix property
so that connections created have client IDs related to your Spring.xml file for
easier comprehension from <a href="http://incubator.apache.org/activemq/jmx.html">JMX</a>.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='clientIdGenerator' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='prefetchPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the <a
href="http://incubator.apache.org/activemq/what-is-the-prefetch-limit-for.html">prefetch
policy</a> for consumers created by this connection.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:prefetchPolicy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='properties' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Get the properties from this instance for storing in JNDI
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='redeliveryPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the global redelivery policy to be used when a message is delivered but the session is rolled back
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:redeliveryPolicy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other'/>
      </xs:sequence>
      <xs:attribute name='alwaysSessionAsync' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            If this flag is set then a separate thread is not used for dispatching
messages for each Session in the Connection. However, a separate thread
is always used if there is more than one session, or the session isn't in
auto acknowledge or duplicates ok mode
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='beanName' type='xs:string'/>
      <xs:attribute name='brokerURL' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the <a
href="http://incubator.apache.org/activemq/configuring-transports.html">connection
URL</a> used to connect to the ActiveMQ broker.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='clientID' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS clientID to use for the created connection. Note that this can only be used by one connection at once so generally its a better idea
to set the clientID on a Connection
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='clientIDPrefix' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the prefix used by autogenerated JMS Client ID values which are
used if the JMS client does not explicitly specify on.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='clientIdGenerator' type='xs:string'/>
      <xs:attribute name='closeTimeout' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the timeout before a close is considered complete. Normally a
close() on a connection waits for confirmation from the broker; this
allows that operation to timeout to save the client hanging if there is
no broker
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='copyMessageOnSend' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Should a JMS message be copied to a new JMS Message object as part of the
send() method in JMS. This is enabled by default to be compliant with the
JMS specification. You can disable it if you do not mutate JMS messages
after they are sent for a performance boost
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='disableTimeStampsByDefault' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not timestamps on messages should be disabled or not. If
you disable them it adds a small performance boost.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='dispatchAsync' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables the default setting of whether or not consumers have
their messages <a
href="http://incubator.apache.org/activemq/consumer-dispatch-async.html">dispatched
synchronously or asynchronously by the broker</a>.

For non-durable topics for example we typically dispatch synchronously by
default to minimize context switches which boost performance. However
sometimes its better to go slower to ensure that a single blocked
consumer socket does not block delivery to other consumers.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='nestedMapAndListEnabled' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables/disables whether or not Message properties and MapMessage entries
support <a
href="http://incubator.apache.org/activemq/structured-message-properties-and-mapmessages.html">Nested
Structures</a> of Map and List objects
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='objectMessageSerializationDefered' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            When an object is set on an ObjectMessage, the JMS spec requires the
object to be serialized by that set method. Enabling this flag causes the
object to not get serialized. The object may subsequently get serialized
if the message needs to be sent over a socket or stored to disk.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='optimizeAcknowledge' type='xs:boolean'/>
      <xs:attribute name='optimizedMessageDispatch' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            If this flag is set then an larger prefetch limit is used - only
applicable for durable topic subscribers.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='password' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS password used for connections created from this factory
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='prefetchPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the <a
href="http://incubator.apache.org/activemq/what-is-the-prefetch-limit-for.html">prefetch
policy</a> for consumers created by this connection.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='properties' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Get the properties from this instance for storing in JNDI
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='redeliveryPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the global redelivery policy to be used when a message is delivered but the session is rolled back
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='statsEnabled' type='xs:boolean'/>
      <xs:attribute name='useAsyncSend' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Forces the use of <a
href="http://incubator.apache.org/activemq/async-sends.html">Async Sends</a>
which adds a massive performance boost; but means that the send() method
will return immediately whether the message has been sent or not which
could lead to message loss.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useBeanNameAsClientIdPrefix' type='xs:boolean'/>
      <xs:attribute name='useCompression' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables the use of compression of the message bodies
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useRetroactiveConsumer' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not retroactive consumers are enabled. Retroactive consumers allow
non-durable topic subscribers to receive old messages that were published before the
non-durable subscriber started.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useSyncSend' type='xs:boolean'/>
      <xs:attribute name='userName' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS userName used by connections created by this factory
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='watchTopicAdvisories' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


</xs:schema>
