You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2008/04/17 21:00:25 UTC

svn commit: r649231 [2/6] - in /activemq/trunk/activemq-core: ./ src/main/resources/ src/main/resources/META-INF/services/org/apache/xbean/ src/main/resources/META-INF/services/org/apache/xbean/spring/ src/main/resources/META-INF/services/org/apache/xb...

Added: activemq/trunk/activemq-core/src/main/resources/activemq.xsd
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/resources/activemq.xsd?rev=649231&view=auto
==============================================================================
--- activemq/trunk/activemq-core/src/main/resources/activemq.xsd (added)
+++ activemq/trunk/activemq-core/src/main/resources/activemq.xsd Thu Apr 17 12:00:22 2008
@@ -0,0 +1,5696 @@
+<?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='disableLocking' type='xs:boolean'/>
+      <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='maxReferenceFileLength' 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='applicationContext' 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='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='regionBroker' 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='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='applicationContext' type='xs:string'/>
+      <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='cacheTempDestinations' type='xs:boolean'/>
+      <xs:attribute name='consumerSystemUsage' type='xs:string'/>
+      <xs:attribute name='consumerSystemUsagePortion' type='xs:integer'/>
+      <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='dedicatedTaskRunner' type='xs:boolean'/>
+      <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='monitorConnectionSplits' type='xs:boolean'/>
+      <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='producerSystemUsagePortion' type='xs:integer'/>
+      <xs:attribute name='regionBroker' type='xs:string'/>
+      <xs:attribute name='shutdownOnMasterFailure' type='xs:boolean'/>
+      <xs:attribute name='splitSystemUsageForProducersConsumers' 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='taskRunnerPriority' type='xs:integer'/>
+      <xs:attribute name='tempDataStore' type='xs:string'/>
+      <xs:attribute name='timeBeforePurgeTempDestinations' type='xs:integer'/>
+      <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='sendTimeout' type='xs:integer'/>
+      <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>

[... 3627 lines stripped ...]