<?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.store.amq.AMQPersistenceAdapter -->
  <xs:element name='amqPersistenceAdapter'>
    <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='asyncDataManager' 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='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='referenceStoreAdapter' 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:systemUsage'/>
              <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' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='archiveDataLogs' type='xs:boolean'/>
      <xs:attribute name='asyncDataManager' type='xs:string'/>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='brokerService' type='xs:string'/>
      <xs:attribute name='checkpointInterval' type='xs:long'/>
      <xs:attribute name='cleanupInterval' type='xs:long'/>
      <xs:attribute name='directory' type='xs:string'/>
      <xs:attribute name='directoryArchive' type='xs:string'/>
      <xs:attribute name='indexBinSize' type='xs:integer'/>
      <xs:attribute name='indexKeySize' type='xs:integer'/>
      <xs:attribute name='indexPageSize' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            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='maxCheckpointMessageAddSize' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            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='maxFileLength' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            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='persistentIndex' type='xs:boolean'/>
      <xs:attribute name='referenceStoreAdapter' type='xs:string'/>
      <xs:attribute name='syncOnWrite' type='xs:boolean'/>
      <xs:attribute name='taskRunnerFactory' type='xs:string'/>
      <xs:attribute name='usageManager' type='xs:string'/>
      <xs:attribute name='useNio' 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.store.amq.AMQPersistenceAdapterFactory -->
  <xs:element name='amqPersistenceAdapterFactory'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An implementation of {@link PersistenceAdapterFactory}
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='referenceStoreAdapter' 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' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='dataDirectory' type='xs:string'/>
      <xs:attribute name='journalThreadPriority' type='xs:integer'/>
      <xs:attribute name='maxFileLength' type='xs:integer'/>
      <xs:attribute name='persistentIndex' type='xs:boolean'/>
      <xs:attribute name='referenceStoreAdapter' type='xs:string'/>
      <xs:attribute name='syncOnWrite' type='xs:boolean'/>
      <xs:attribute name='taskRunnerFactory' type='xs:string'/>
      <xs:attribute name='useNio' 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.AuthenticationUser -->
  <xs:element name='authenticationUser'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A helper object used to configure simple authentiaction plugin
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='groups' type='xs:string'/>
      <xs:attribute name='password' 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.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='unbounded'><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='unbounded'><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='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='admin' type='xs:string'/>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='groupClass' 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='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='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:element ref='tns:tempDestinationAuthorizationEntry'/>
              <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='tempDestinationAuthorizationEntry' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:tempDestinationAuthorizationEntry'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='defaultEntry' type='xs:string'/>
      <xs:attribute name='tempDestinationAuthorizationEntry' 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' minOccurs='0' maxOccurs='unbounded'/>
      </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' minOccurs='0' maxOccurs='unbounded'/>
      </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' minOccurs='0' maxOccurs='unbounded'/>
      </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='consumerSystemUsage' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:systemUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </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:mirroredQueue'/>
              <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='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:ldapNetworkConnector'/>
              <xs:element ref='tns:multicastNetworkConnector'/>
              <xs:element ref='tns:networkConnector'/>
              <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:amqPersistenceAdapter'/>
              <xs:element ref='tns:jdbcPersistenceAdapter'/>
              <xs:element ref='tns:journalPersistenceAdapter'/>
              <xs:element ref='tns:kahaPersistenceAdapter'/>
              <xs:element ref='tns:memoryPersistenceAdapter'/>
              <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:amqPersistenceAdapterFactory'/>
              <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='producerSystemUsage' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:systemUsage'/>
              <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:forwardingBridge'/>
              <xs:element ref='tns:inboundQueueBridge'/>
              <xs:element ref='tns:inboundTopicBridge'/>
              <xs:element ref='tns:jmsQueueConnector'/>
              <xs:element ref='tns:jmsTopicConnector'/>
              <xs:element ref='tns:ldapNetworkConnector'/>
              <xs:element ref='tns:managementContext'/>
              <xs:element ref='tns:masterConnector'/>
              <xs:element ref='tns:memoryUsage'/>
              <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:element ref='tns:storeUsage'/>
              <xs:element ref='tns:systemUsage'/>
              <xs:element ref='tns:tempUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='systemUsage' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:systemUsage'/>
              <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' minOccurs='0' maxOccurs='unbounded'/>
      </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='clustered' type='xs:boolean'/>
      <xs:attribute name='consumerSystemUsage' type='xs:string'/>
      <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='dataDirectoryFile' 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='enableStatistics' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not the Broker's services enable statistics or not.
          ]]></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='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='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='producerSystemUsage' type='xs:string'/>
      <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='supportFailOver' type='xs:boolean'/>
      <xs:attribute name='systemUsage' type='xs:string'/>
      <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='useLocalHostBrokerName' type='xs:boolean'/>
      <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='useMirroredQueues' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not <a
href="http://activemq.apache.org/mirrored-queues.html">Mirrored
Queues</a> should be supported by default if they have not been
explicitly configured.
          ]]></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://activemq.apache.org/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' minOccurs='0' maxOccurs='unbounded'/>
      </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='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' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <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='configuration' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:ldapNetworkConnector'/>
              <xs:element ref='tns:multicastNetworkConnector'/>
              <xs:element ref='tns:networkConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <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='networkBridgeListener' 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' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='configuration' type='xs:string'/>
      <xs:attribute name='createdByDuplex' type='xs:boolean'/>
      <xs:attribute name='localBroker' type='xs:string'/>
      <xs:attribute name='networkBridgeListener' type='xs:string'/>
      <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.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='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </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='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='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </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='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://activemq.apache.org/jmx.html">JMX</a>.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='blobTransferPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the policy used to describe how out-of-band BLOBs (Binary Large
OBjects) are transferred from producers to brokers to consumers
            ]]></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='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://activemq.apache.org/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:element name='transformer' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the transformer used to transform messages before they are sent on
to the JMS bus or when they are received from the bus but before they are
delivered to the JMS client
            ]]></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='transportListener' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Allows a listener to be configured on the ConnectionFactory so that when this factory is used
with frameworks which don't expose the Connection such as Spring JmsTemplate, you can still register
a transport listener.
            ]]></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' minOccurs='0' maxOccurs='unbounded'/>
      </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='alwaysSyncSend' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Set true if always require messages to be sync sent
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='beanName' type='xs:string'/>
      <xs:attribute name='blobTransferPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the policy used to describe how out-of-band BLOBs (Binary Large
OBjects) are transferred from producers to brokers to consumers
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='brokerURL' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the <a
href="http://activemq.apache.org/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://activemq.apache.org/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='exclusiveConsumer' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables whether or not queue consumers should be exclusive or
not for example to preserve ordering when not using <a
href="http://activemq.apache.org/message-groups.html">Message Groups</a>
          ]]></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://activemq.apache.org/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://activemq.apache.org/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='producerWindowSize' type='xs:integer'/>
      <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='transformer' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the transformer used to transform messages before they are sent on
to the JMS bus or when they are received from the bus but before they are
delivered to the JMS client
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='transportListener' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Allows a listener to be configured on the ConnectionFactory so that when this factory is used
with frameworks which don't expose the Connection such as Spring JmsTemplate, you can still register
a transport listener.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useAsyncSend' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Forces the use of <a
href="http://activemq.apache.org/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='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='warnAboutUnstartedConnectionTimeout' type='xs:long'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables the timeout from a connection creation to when a warning is
generated if the connection is not properly started via
{@link Connection#start()} and a message is received by a consumer. It is
a very common gotcha to forget to <a
href="http://activemq.apache.org/i-am-not-receiving-any-messages-what-is-wrong.html">start
the connection</a> so this option makes the default case to create a
warning if the user forgets. To disable the warning just set the value to <
0 (say -1).
          ]]></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' minOccurs='0' maxOccurs='unbounded'/>
      </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' minOccurs='0' maxOccurs='unbounded'/>
      </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.usage.DefaultUsageCapacity -->
  <xs:element name='defaultUsageCapacity'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Identify if a limit has been reached
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='limit' 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.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='configuration' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:ldapNetworkConnector'/>
              <xs:element ref='tns:multicastNetworkConnector'/>
              <xs:element ref='tns:networkConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <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='networkBridgeListener' 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' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='configuration' type='xs:string'/>
      <xs:attribute name='createdByDuplex' type='xs:boolean'/>
      <xs:attribute name='localBroker' type='xs:string'/>
      <xs:attribute name='networkBridgeListener' type='xs:string'/>
      <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.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' minOccurs='0' maxOccurs='unbounded'/>
      </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.FilePendingSubscriberMessageStoragePolicy -->
  <xs:element name='fileCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending 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.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.FilePendingQueueMessageStoragePolicy -->
  <xs:element name='fileQueueCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending
      ]]></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.virtual.FilteredDestination -->
  <xs:element name='filteredDestination'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents a destination which is filtered using some predicate such as a selector
so that messages are only dispatched to the destination if they match the filter.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='destination' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              The destination to send messages to if they match the filter
            ]]></xs:documentation>
          </xs:annotation>
          <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='filter' 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' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='destination' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            The destination to send messages to if they match the filter
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='filter' type='xs:string'/>
      <xs:attribute name='queue' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the destination property to the given queue name
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='selector' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS selector used to filter messages before forwarding them to this destination
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='topic' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the destination property to the given topic name
          ]]></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.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' minOccurs='0' maxOccurs='unbounded'/>
      </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='networkBridgeFailedListener' 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' minOccurs='0' maxOccurs='unbounded'/>
      </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='networkBridgeFailedListener' 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' minOccurs='0' maxOccurs='unbounded'/>
      </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' minOccurs='0' maxOccurs='unbounded'/>
      </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' minOccurs='0' maxOccurs='unbounded'/>
      </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='processExpired' type='xs:boolean'/>
      <xs:attribute name='processNonPersistent' type='xs:boolean'/>
      <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' minOccurs='0' maxOccurs='unbounded'/>
      </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:systemUsage'/>
              <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' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='adapter' type='xs:string'/>
      <xs:attribute name='brokerName' 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='directory' type='xs:string'/>
      <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' minOccurs='0' maxOccurs='unbounded'/>
      </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' minOccurs='0' maxOccurs='unbounded'/>
      </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:amqPersistenceAdapter'/>
              <xs:element ref='tns:jdbcPersistenceAdapter'/>
              <xs:element ref='tns:journalPersistenceAdapter'/>
              <xs:element ref='tns:kahaPersistenceAdapter'/>
              <xs:element ref='tns:memoryPersistenceAdapter'/>
              <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:systemUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='directory' type='xs:string'/>
      <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' minOccurs='0' maxOccurs='unbounded'/>
      </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='size' 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:systemUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='directory' type='xs:string'/>
      <xs:attribute name='maxDataFileLength' type='xs:long'/>
      <xs:attribute name='persistentIndex' type='xs:boolean'/>
      <xs:attribute name='size' type='xs:string'/>
      <xs:attribute name='usageManager' 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.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='unbounded'><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' minOccurs='0' maxOccurs='unbounded'/>
      </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.network.LdapNetworkConnector -->
  <xs:element name='ldapNetworkConnector'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        class to create dynamic network connectors listed in an directory
server using the LDAP v3 protocol as defined in RFC 2251, the
entries listed in the directory server must implement the ipHost
and ipService objectClasses as defined in RFC 2307.
      ]]></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='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='unbounded'><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' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='base' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            sets the base LDAP dn used for lookup operations
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='bridgeTempDestinations' type='xs:boolean'/>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='brokerService' 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='destinationFilter' type='xs:string'/>
      <xs:attribute name='dispatchAsync' type='xs:boolean'/>
      <xs:attribute name='duplex' type='xs:boolean'/>
      <xs:attribute name='dynamicOnly' 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='objectName' type='xs:string'/>
      <xs:attribute name='password' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            sets the LDAP password for access credentials
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='prefetchSize' type='xs:integer'/>
      <xs:attribute name='searchFilter' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            sets the LDAP search filter as defined in RFC 2254
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='searchScope' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            sets the LDAP search scope
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='uri' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            sets the LDAP server URI
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='user' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            sets the LDAP user for access credentials
          ]]></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.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='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' minOccurs='0' maxOccurs='unbounded'/>
      </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='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' minOccurs='0' maxOccurs='unbounded'/>
      </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://activemq.apache.org/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' minOccurs='0' maxOccurs='unbounded'/>
      </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:systemUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='directory' 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.usage.MemoryUsage -->
  <xs:element name='memoryUsage'>
    <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='limiter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:defaultUsageCapacity'/>
              <xs:element ref='tns:usageCapacity'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='parent' 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' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='limit' type='xs:long'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the memory limit in bytes. Setting the limit in bytes will set the
usagePortion to 0 since the UsageManager is not going to be portion based
off the parent. 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='limiter' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <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='pollingTime' type='xs:integer'/>
      <xs:attribute name='portion' type='xs:float'/>
      <xs:attribute name='usage' type='xs:long'/>
      <xs:attribute name='usagePortion' type='xs:float'/>
      <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://activemq.apache.org/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.broker.region.virtual.MirroredQueue -->
  <xs:element name='mirroredQueue'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Creates <a href="http://activemq.org/site/mirrored-queues.html">Mirrored
Queue</a> using a prefix and postfix to define the topic name on which to mirror the queue to.
      ]]></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' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerService' type='xs:string'/>
      <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='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.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='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='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='unbounded'><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' minOccurs='0' maxOccurs='unbounded'/>
      </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='brokerService' 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='destinationFilter' type='xs:string'/>
      <xs:attribute name='dispatchAsync' type='xs:boolean'/>
      <xs:attribute name='duplex' type='xs:boolean'/>
      <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='objectName' type='xs:string'/>
      <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='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' minOccurs='0' maxOccurs='unbounded'/>
      </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='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='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='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='unbounded'><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' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='bridgeTempDestinations' type='xs:boolean'/>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='brokerService' 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='destinationFilter' type='xs:string'/>
      <xs:attribute name='discoveryAgent' type='xs:string'/>
      <xs:attribute name='discoveryURI' type='xs:string'/>
      <xs:attribute name='dispatchAsync' type='xs:boolean'/>
      <xs:attribute name='duplex' type='xs:boolean'/>
      <xs:attribute name='dynamicOnly' 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='objectName' type='xs:string'/>
      <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' minOccurs='0' maxOccurs='unbounded'/>
      </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' minOccurs='0' maxOccurs='unbounded'/>
      </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' minOccurs='0' maxOccurs='unbounded'/>
      </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://activemq.apache.org/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='pendingDurableSubscriberPolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:fileDurableSubscriberCursor'/>
              <xs:element ref='tns:storeDurableSubscriberCursor'/>
              <xs:element ref='tns:vmDurableCursor'/>
              <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='pendingQueuePolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:fileQueueCursor'/>
              <xs:element ref='tns:storeCursor'/>
              <xs:element ref='tns:vmQueueCursor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='pendingSubscriberPolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:fileCursor'/>
              <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' minOccurs='0' maxOccurs='unbounded'/>
      </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='enableAudit' type='xs:boolean'/>
      <xs:attribute name='maxAuditDepth' type='xs:integer'/>
      <xs:attribute name='maxProducersToAudit' type='xs:integer'/>
      <xs:attribute name='maxQueueAuditDepth' type='xs:integer'/>
      <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://activemq.apache.org/message-groups.html">Message Groups</a>
functionality.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='optimizedDispatch' type='xs:boolean'/>
      <xs:attribute name='pendingDurableSubscriberPolicy' type='xs:string'/>
      <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='pendingQueuePolicy' type='xs:string'/>
      <xs:attribute name='pendingSubscriberPolicy' type='xs:string'/>
      <xs:attribute name='producerFlowControl' type='xs:boolean'/>
      <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' minOccurs='0' maxOccurs='unbounded'/>
      </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' minOccurs='0' maxOccurs='unbounded'/>
      </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' minOccurs='0' maxOccurs='unbounded'/>
      </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
      ]]></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' minOccurs='0' maxOccurs='unbounded'/>
      </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.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' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='deadLetterQueue' type='xs:string'/>
      <xs:attribute name='processExpired' type='xs:boolean'/>
      <xs:attribute name='processNonPersistent' 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.SimpleAuthenticationPlugin -->
  <xs:element name='simpleAuthenticationPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Provides a simple authentication plugin
      ]]></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='unbounded'><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='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='users' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets individual users for authentication
            ]]></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' minOccurs='0' maxOccurs='unbounded'/>
      </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='tempDestinationAuthorizationEntry' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:tempDestinationAuthorizationEntry'/>
              <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' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='adminACLs' type='xs:string'/>
      <xs:attribute name='readACLs' type='xs:string'/>
      <xs:attribute name='tempDestinationAuthorizationEntry' 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' minOccurs='0' maxOccurs='unbounded'/>
      </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://activemq.apache.org/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' minOccurs='0' maxOccurs='unbounded'/>
      </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='destinationMessageCountStatement' 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='findNextMessagesStatement' type='xs:string'/>
      <xs:attribute name='lastAckedDurableSubscriberMessageStatement' 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='nextDurableSubscriberMessageStatement' 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.StorePendingQueueMessageStoragePolicy -->
  <xs:element name='storeCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending 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.StorePendingDurableSubscriberMessageStoragePolicy -->
  <xs:element name='storeDurableSubscriberCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending messages for a durable
      ]]></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.usage.StoreUsage -->
  <xs:element name='storeUsage'>
    <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='limiter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:defaultUsageCapacity'/>
              <xs:element ref='tns:usageCapacity'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='parent' 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='store' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:amqPersistenceAdapter'/>
              <xs:element ref='tns:jdbcPersistenceAdapter'/>
              <xs:element ref='tns:journalPersistenceAdapter'/>
              <xs:element ref='tns:kahaPersistenceAdapter'/>
              <xs:element ref='tns:memoryPersistenceAdapter'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='limit' type='xs:long'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the memory limit in bytes. Setting the limit in bytes will set the
usagePortion to 0 since the UsageManager is not going to be portion based
off the parent. 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='limiter' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <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='pollingTime' type='xs:integer'/>
      <xs:attribute name='store' type='xs:string'/>
      <xs:attribute name='usagePortion' type='xs:float'/>
      <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' minOccurs='0' maxOccurs='unbounded'/>
      </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.usage.SystemUsage -->
  <xs:element name='systemUsage'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Holder for Usage instances for memory, store and temp files Main use case is
manage memory usage.
      ]]></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:amqPersistenceAdapter'/>
              <xs:element ref='tns:jdbcPersistenceAdapter'/>
              <xs:element ref='tns:journalPersistenceAdapter'/>
              <xs:element ref='tns:kahaPersistenceAdapter'/>
              <xs:element ref='tns:memoryPersistenceAdapter'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='memoryUsage' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:memoryUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='parent' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:systemUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='storeUsage' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:storeUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='tempStore' 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='tempUsage' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:tempUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='adapter' type='xs:string'/>
      <xs:attribute name='memoryUsage' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='parent' type='xs:string'/>
      <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='sendFailIfNoSpaceExplicitySet' type='xs:boolean'/>
      <xs:attribute name='storeUsage' type='xs:string'/>
      <xs:attribute name='tempStore' type='xs:string'/>
      <xs:attribute name='tempUsage' 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.TempDestinationAuthorizationEntry -->
  <xs:element name='tempDestinationAuthorizationEntry'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents an entry in a {@link DefaultAuthorizationMap} for assigning
different operations (read, write, admin) of user roles to a temporary
destination
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adminACLs' 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='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='unbounded'><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='unbounded'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='admin' type='xs:string'/>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='groupClass' 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='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='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.usage.TempUsage -->
  <xs:element name='tempUsage'>
    <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='limiter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:defaultUsageCapacity'/>
              <xs:element ref='tns:usageCapacity'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='parent' 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='store' 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' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='limit' type='xs:long'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the memory limit in bytes. Setting the limit in bytes will set the
usagePortion to 0 since the UsageManager is not going to be portion based
off the parent. 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='limiter' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <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='pollingTime' type='xs:integer'/>
      <xs:attribute name='store' type='xs:string'/>
      <xs:attribute name='usagePortion' type='xs:float'/>
      <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:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='adminConnectionContext' type='xs:string'/>
      <xs:attribute name='next' 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
      ]]></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' minOccurs='0' maxOccurs='unbounded'/>
      </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' minOccurs='0' maxOccurs='unbounded'/>
      </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='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' minOccurs='0' maxOccurs='unbounded'/>
      </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='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.usage.UsageCapacity -->
  <xs:element name='usageCapacity'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Identify if a limit has been reached
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='limit' 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.broker.region.virtual.VirtualDestinationInterceptor -->
  <xs:element name='virtualDestinationInterceptor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Implements <a
href="http://activemq.apache.org/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' minOccurs='0' maxOccurs='unbounded'/>
      </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.VMPendingSubscriberMessageStoragePolicy -->
  <xs:element name='vmCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending messages held
      ]]></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.VMPendingDurableSubscriberMessageStoragePolicy -->
  <xs:element name='vmDurableCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending
      ]]></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.VMPendingQueueMessageStoragePolicy -->
  <xs:element name='vmQueueCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending 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.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://activemq.apache.org/jmx.html">JMX</a>.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='blobTransferPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the policy used to describe how out-of-band BLOBs (Binary Large
OBjects) are transferred from producers to brokers to consumers
            ]]></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='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://activemq.apache.org/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:element name='transformer' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the transformer used to transform messages before they are sent on
to the JMS bus or when they are received from the bus but before they are
delivered to the JMS client
            ]]></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='transportListener' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Allows a listener to be configured on the ConnectionFactory so that when this factory is used
with frameworks which don't expose the Connection such as Spring JmsTemplate, you can still register
a transport listener.
            ]]></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' minOccurs='0' maxOccurs='unbounded'/>
      </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='alwaysSyncSend' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Set true if always require messages to be sync sent
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='beanName' type='xs:string'/>
      <xs:attribute name='blobTransferPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the policy used to describe how out-of-band BLOBs (Binary Large
OBjects) are transferred from producers to brokers to consumers
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='brokerURL' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the <a
href="http://activemq.apache.org/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://activemq.apache.org/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='exclusiveConsumer' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables whether or not queue consumers should be exclusive or
not for example to preserve ordering when not using <a
href="http://activemq.apache.org/message-groups.html">Message Groups</a>
          ]]></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://activemq.apache.org/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://activemq.apache.org/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='producerWindowSize' type='xs:integer'/>
      <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='transformer' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the transformer used to transform messages before they are sent on
to the JMS bus or when they are received from the bus but before they are
delivered to the JMS client
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='transportListener' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Allows a listener to be configured on the ConnectionFactory so that when this factory is used
with frameworks which don't expose the Connection such as Spring JmsTemplate, you can still register
a transport listener.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useAsyncSend' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Forces the use of <a
href="http://activemq.apache.org/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='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='warnAboutUnstartedConnectionTimeout' type='xs:long'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables the timeout from a connection creation to when a warning is
generated if the connection is not properly started via
{@link Connection#start()} and a message is received by a consumer. It is
a very common gotcha to forget to <a
href="http://activemq.apache.org/i-am-not-receiving-any-messages-what-is-wrong.html">start
the connection</a> so this option makes the default case to create a
warning if the user forgets. To disable the warning just set the value to <
0 (say -1).
          ]]></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>
