[jbosstools-commits] JBoss Tools SVN: r40762 - in trunk/esb/plugins/org.jboss.tools.esb.core: resources/help and 3 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu May 3 13:49:15 EDT 2012


Author: scabanovich
Date: 2012-05-03 13:49:13 -0400 (Thu, 03 May 2012)
New Revision: 40762

Added:
   trunk/esb/plugins/org.jboss.tools.esb.core/resources/meta/esb131.meta
   trunk/esb/plugins/org.jboss.tools.esb.core/schemas/jbossesb-1.3.1.xsd
Modified:
   trunk/esb/plugins/org.jboss.tools.esb.core/plugin.xml
   trunk/esb/plugins/org.jboss.tools.esb.core/resources/help/keys-esb-attrs.properties
   trunk/esb/plugins/org.jboss.tools.esb.core/resources/help/keys-esb.properties
   trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBConstants.java
   trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBEntityRecognizer.java
   trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/SpecificActionLoader.java
Log:
JBIDE-11769
https://issues.jboss.org/browse/JBIDE-11769
Support for jbossesb-1.3.1.xsd

Modified: trunk/esb/plugins/org.jboss.tools.esb.core/plugin.xml
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.core/plugin.xml	2012-05-03 17:25:19 UTC (rev 40761)
+++ trunk/esb/plugins/org.jboss.tools.esb.core/plugin.xml	2012-05-03 17:49:13 UTC (rev 40762)
@@ -8,6 +8,7 @@
       <meta path="meta/esb-notifiers.meta"/>
       <meta path="meta/esb12.meta"/>
       <meta path="meta/esb13.meta"/>
+      <meta path="meta/esb131.meta"/>
       <meta path="meta/esb-riftsaw-actions.meta"/>
    </extension>
 
@@ -116,6 +117,10 @@
          <uri 
             name="http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.0.xsd" 
             uri="platform:/plugin/org.jboss.tools.esb.core/schemas/jbossesb-1.3.0.xsd"/>
+
+         <uri 
+            name="http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.1.xsd" 
+            uri="platform:/plugin/org.jboss.tools.esb.core/schemas/jbossesb-1.3.1.xsd"/>
       </catalogContribution>
    </extension>
 

Modified: trunk/esb/plugins/org.jboss.tools.esb.core/resources/help/keys-esb-attrs.properties
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.core/resources/help/keys-esb-attrs.properties	2012-05-03 17:25:19 UTC (rev 40761)
+++ trunk/esb/plugins/org.jboss.tools.esb.core/resources/help/keys-esb-attrs.properties	2012-05-03 17:49:13 UTC (rev 40762)
@@ -179,3 +179,4 @@
 ESB.jndi_pkg_prefix=JNDI pkg Prefix
 ESB.connection_factory=Connection Factory
 ESB.attachment_name=Message Attachment Name
+ESB.record_route=Record Route

Modified: trunk/esb/plugins/org.jboss.tools.esb.core/resources/help/keys-esb.properties
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.core/resources/help/keys-esb.properties	2012-05-03 17:25:19 UTC (rev 40761)
+++ trunk/esb/plugins/org.jboss.tools.esb.core/resources/help/keys-esb.properties	2012-05-03 17:49:13 UTC (rev 40762)
@@ -256,6 +256,8 @@
 ESBServices101_Properties.Title=Services List
 ESBServices110_Properties.Title=Services List
 ESBServices120_Properties.Title=Services List
+ESBServices130_Properties.Title=Services List
+ESBServices131_Properties.Title=Services List
 
 ESB.AddProperty.WindowTitle=Add Property
 ESB.AddProperty.Title=ESB Property
@@ -430,6 +432,8 @@
 
 ESBService101_Properties.Title=ESB Service
 ESBService110_Properties.Title=ESB Service
+ESBService120_Properties.Title=ESB Service
+ESBService130_Properties.Title=ESB Service
 
 #Listeners List
 

Added: trunk/esb/plugins/org.jboss.tools.esb.core/resources/meta/esb131.meta
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.core/resources/meta/esb131.meta	                        (rev 0)
+++ trunk/esb/plugins/org.jboss.tools.esb.core/resources/meta/esb131.meta	2012-05-03 17:49:13 UTC (rev 40762)
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE XModelEntityGroup PUBLIC "-//Red Hat, Inc.//DTD Meta 1.0//EN"
+                                   "meta.dtd">
+<XModelEntityGroup>
+ <VERSION DEPENDS="Model:1.0" MODULE="ESB" VERSION="1.0"/>
+ <MAPPINGS>
+  <MAPPING name="FileVersions">
+   <PAIR name="ESB1.3.1" value="FileESB131"/>
+  </MAPPING>
+ </MAPPINGS>
+ <ICONS>
+  <GROUP name="main">
+   <GROUP name="esb"/>
+  </GROUP>
+ </ICONS>
+ <GlobalActions kind="list"/>
+ <XModelEntity ImplementingClass="%ESB%"
+  PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.esb.ui.editor.form.ESBXMLFormLayoutData;children=%ESBOrderedService%"
+  XMLSUBPATH="service" name="ESBService131">
+  <XChildrenEntities>
+   <XChildEntity maxCount="1" name="ESBSecurity101P" required="yes"/>
+   <XChildEntity name="ESBProperty"/>
+   <XChildEntity maxCount="1" name="ESBListeners130" required="yes"/>
+   <XChildEntity maxCount="1" name="ESBActions130" required="yes"/>
+  </XChildrenEntities>
+  <XEntityRenderer>
+   <ICONS>
+    <ICON info="main.esb.service" type="main"/>
+   </ICONS>
+  </XEntityRenderer>
+  <XModelAttributes>
+   <XModelAttribute default="service" loader="ElementType" name="element type">
+    <Editor name="Uneditable"/>
+   </XModelAttribute>
+   <XModelAttributeReference
+    attributes="name,category,description,invm scope,invm transacted"
+    entity="ESBService101" name="service"/>
+   <XModelAttribute PROPERTIES="category=advanced"
+    name="alertTimeThreshold" xmlname="alertTimeThreshold"/>
+   <XModelAttribute PROPERTIES="category=advanced"
+    name="alertLengthThreshold" xmlname="alertLengthThreshold"/>
+   <XModelAttribute PROPERTIES="category=advanced" name="record route" xmlname="recordRoute">
+    <Constraint loader="ListString">
+     <value/>
+     <value name="true"/>
+     <value name="false"/>
+    </Constraint>
+    <Editor name="ListString"/>
+   </XModelAttribute>
+   <XModelAttribute TRIM="no" name="comment" visibility="false" xmlname="#comment">
+    <Editor name="Note"/>
+   </XModelAttribute>
+  </XModelAttributes>
+  <XActionItem kind="list">
+   <XActionItemReference entity="ESBService101" name="CreateActions" path="CreateActions"/>
+   <XActionItemReference entity="ESBService101" name="CopyActions" path="CopyActions"/>
+   <XActionItemReference entity="ESBService101" name="DeleteActions" path="DeleteActions"/>
+   <XActionItemReference entity="ESBProperty" name="Properties"/>
+   <XActionItemReference entity="ESBProperty" name="MoveActions"/>
+  </XActionItem>
+  <XDependencies/>
+ </XModelEntity>
+ <XModelEntity ImplementingClass="%ESB%"
+  PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.esb.ui.editor.form.ESBXMLFormLayoutData;saveDefault=false;children=%Ordered%"
+  XMLSUBPATH="services" name="ESBServices131">
+  <XChildrenEntities>
+   <XChildEntity name="ESBService131"/>
+  </XChildrenEntities>
+  <XEntityRenderer>
+   <ICONS>
+    <ICON info="main.esb.services" type="main"/>
+   </ICONS>
+  </XEntityRenderer>
+  <XModelAttributes>
+   <XModelAttribute default="services list" loader="ElementType" name="element type">
+    <Editor name="Uneditable"/>
+   </XModelAttribute>
+   <XModelAttribute PROPERTIES="category=general;id=true"
+    default="Services" name="name" visibility="false">
+    <Editor name="Uneditable"/>
+   </XModelAttribute>
+   <XModelAttribute TRIM="no" name="comment" visibility="false" xmlname="#comment">
+    <Editor name="Note"/>
+   </XModelAttribute>
+  </XModelAttributes>
+  <XActionItem kind="list">
+   <XActionItem kind="list" name="CreateActions">
+    <XActionItem HandlerClassName="%Create%" ICON="action.empty"
+     PROPERTIES="validator.add=true" WizardClassName="%Default%"
+     displayName="Add Service..." kind="action" name="AddService">
+     <EntityData EntityName="ESBService131">
+      <AttributeData AttributeName="name"/>
+      <AttributeData AttributeName="category"/>
+      <AttributeData AttributeName="description"/>
+     </EntityData>
+    </XActionItem>
+   </XActionItem>
+   <XActionItemReference entity="ESBServices101" name="CopyActions" path="CopyActions"/>
+   <XActionItemReference entity="ESBServices101" name="DeleteActions" path="DeleteActions"/>
+   <XActionItemReference entity="ESBProperty" name="Properties"/>
+  </XActionItem>
+  <XDependencies/>
+ </XModelEntity>
+ <XModelEntity
+  ImplementationLoadingClass="org.jboss.tools.esb.core.model.ESBFileLoader"
+  ImplementingClass="org.jboss.tools.esb.core.model.ESBFileImpl"
+  ObjectEditorClass="%XML%"
+  PROPERTIES="formFactory=%Default%;formLayout=org.jboss.tools.esb.ui.editor.form.ESBXMLFormLayoutData;children=%EntityOrdered%;editorTreeConstraint=org.jboss.tools.esb.core.model.impl.ESBTreeConstraint"
+  XMLSUBPATH="jbossesb" name="FileESB131">
+  <XChildrenEntities>
+   <XChildEntity maxCount="1" name="ESBGlobals120" required="yes"/>
+   <XChildEntity maxCount="1" name="ESBProviders130" required="yes"/>
+   <XChildEntity maxCount="1" name="ESBServices131" required="yes"/>
+  </XChildrenEntities>
+  <XEntityRenderer>
+   <ICONS>
+    <ICON info="main.esb.file" type="main"/>
+   </ICONS>
+  </XEntityRenderer>
+  <XModelAttributes>
+   <XModelAttribute default="JBoss esb" loader="ElementType" name="element type">
+    <Editor name="Uneditable"/>
+   </XModelAttribute>
+   <XModelAttribute PROPERTIES="category=general" name="name" xmlname="NAME"/>
+   <XModelAttribute default="xml" name="extension" xmlname="EXTENSION">
+    <Editor name="Uneditable"/>
+   </XModelAttribute>
+   <XModelAttribute TRIM="no" name="comment" visibility="false" xmlname="#comment">
+    <Editor name="Note"/>
+   </XModelAttribute>
+   <XModelAttribute loader="ElementType" name="_lateload" visibility="false">
+    <Editor name="Uneditable"/>
+   </XModelAttribute>
+   <XModelAttribute default="no" name="isIncorrect" visibility="false">
+    <Constraint loader="List">
+     <value name="yes"/>
+     <value name="no"/>
+    </Constraint>
+    <Editor name="Uneditable"/>
+   </XModelAttribute>
+   <XModelAttribute name="incorrectBody" visibility="false"/>
+   <XModelAttribute PROPERTIES="save=always"
+    default="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.1.xsd"
+    name="xmlns" xmlname="xmlns"/>
+   <XModelAttribute PROPERTIES="save=always"
+    default="http://www.w3.org/2001/XMLSchema-instance" name="xmlns:xsi" xmlname="xmlns:xsi"/>
+   <XModelAttribute PROPERTIES="save=always"
+    default="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.1.xsd http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.1.xsd"
+    name="xsi:schemaLocation" xmlname="xsi:schemaLocation"/>
+   <XModelAttribute name="encoding">
+    <Constraint loader="ListString">
+     <value name="ISO-8859-1"/>
+     <value name="UTF-8"/>
+    </Constraint>
+    <Editor name="ListString"/>
+   </XModelAttribute>
+   <XModelAttribute PROPERTIES="category=general" default="180"
+    name="parameter reload secs" xmlname="parameterReloadSecs"/>
+  </XModelAttributes>
+  <XActionItem kind="list">
+   <XActionItem BaseActionName="Open" HandlerClassName="%Open%"
+    ICON="action.empty" displayName="Open" kind="action" name="Open"/>
+   <XActionItem displayName="Open With" group="1" kind="list" name="OpenWith">
+    <XActionItem HIDE="always"
+     HandlerClassName="org.jboss.tools.common.meta.action.impl.handlers.OpenWithExternalHandler"
+     ICON="action.empty" PROPERTIES="extension=struts-config"
+     displayName="Open with External Program" kind="action" name="OpenWithSelected"/>
+    <XActionItem HIDE="always"
+     HandlerClassName="org.jboss.tools.common.meta.action.impl.handlers.OpenWithChoiceHandler"
+     ICON="action.empty" PROPERTIES="extension=struts-config"
+     displayName="Choose Program..." kind="action" name="OpenWithChoice">
+     <EntityData EntityName="OpenWithHelper">
+      <AttributeData AttributeName="name"/>
+      <AttributeData AttributeName="default"/>
+     </EntityData>
+    </XActionItem>
+   </XActionItem>
+   <XActionItem kind="list" name="EditActions">
+    <XActionItem HIDE="always"
+     HandlerClassName="org.jboss.tools.jsf.model.handlers.RenameFacesConfigHandler"
+     ICON="action.empty" PROPERTIES="validator.edit=true"
+     WizardClassName="%Default%" displayName="Rename..." kind="action" name="Rename">
+     <EntityData EntityName="FileESB110">
+      <AttributeData AttributeName="name"/>
+     </EntityData>
+    </XActionItem>
+    <XActionItem
+     HandlerClassName="org.jboss.tools.common.model.filesystems.impl.handlers.RenameEclipseFileHandler"
+     ICON="action.empty" displayName="Rename..." kind="action" name="RenameEclipse"/>
+   </XActionItem>
+   <XActionItemReference entity="FileTXT" name="SaveActions"/>
+   <XActionItem ICON="action.empty" displayName="New" group="1"
+    kind="list" name="CreateActions"/>
+   <XActionItemReference entity="FileESB101" name="CopyActions"/>
+   <XActionItemReference entity="FileTXT" name="DeleteActions"/>
+   <XActionItemReference entity="FileTXT" name="Properties"/>
+   <XActionItemReference entity="FileTXT" name="DiscardActions"/>
+  </XActionItem>
+  <XDependencies/>
+ </XModelEntity>
+ <XModelEntity name="FileESB131_EditorActionList">
+  <XChildrenEntities/>
+  <XEntityRenderer/>
+  <XModelAttributes/>
+  <XActionItem kind="list">
+   <XActionItem displayName="New" group="1" kind="list" name="CreateActions"/>
+   <XActionItem ICON="action.empty" kind="list" name="Properties">
+    <XActionItem HandlerClassName="%Properties%" ICON="action.empty"
+     displayName="Properties..." kind="action" name="Properties"/>
+   </XActionItem>
+  </XActionItem>
+  <XDependencies/>
+ </XModelEntity>
+ <XEntityExtension name="FileFolder">
+  <XChildrenEntities>
+   <XChildEntity name="FileESB131"/>
+  </XChildrenEntities>
+  <XActionItem kind="list"/>
+ </XEntityExtension>
+ <XEntityExtension name="FileSystemFolder">
+  <XChildrenEntities>
+   <XChildEntity name="FileESB131"/>
+  </XChildrenEntities>
+  <XActionItem kind="list"/>
+ </XEntityExtension>
+</XModelEntityGroup>

Added: trunk/esb/plugins/org.jboss.tools.esb.core/schemas/jbossesb-1.3.1.xsd
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.core/schemas/jbossesb-1.3.1.xsd	                        (rev 0)
+++ trunk/esb/plugins/org.jboss.tools.esb.core/schemas/jbossesb-1.3.1.xsd	2012-05-03 17:49:13 UTC (rev 40762)
@@ -0,0 +1,2192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Generated by Turbo XML 2.4.1.100. Conforms to w3c http://www.w3.org/2001/XMLSchema-->
+<xsd:schema
+	xmlns:jesb="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.1.xsd"
+	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	elementFormDefault="qualified"
+	targetNamespace="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.1.xsd">
+
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+		Document root + some basic types.
+		88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+
+	<xsd:element name="jbossesb">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				The jbossesb configuration for a single instance.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element maxOccurs="1" minOccurs="0"
+					ref="jesb:globals" />
+				<xsd:element maxOccurs="1" minOccurs="0"
+					ref="jesb:providers" />
+				<xsd:element maxOccurs="1" minOccurs="0"
+					ref="jesb:services" />
+			</xsd:sequence>
+			<xsd:attribute default="180" name="parameterReloadSecs"
+				use="optional" />
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="property">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A simple name-value pair.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="xsd:anyType">
+					<xsd:attribute name="name" type="xsd:string"
+						use="required" />
+					<xsd:attribute name="value" type="xsd:string" />
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	
+	<xsd:element name="globals">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+                A container for the configurations global to a jbossesb config file
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:sequence>
+                <xsd:element name="war-security" minOccurs="0" maxOccurs="1">
+                    <xsd:annotation>
+                            <xsd:documentation xml:lang="en">
+                            Security configuration that is global to the jboss-esb.xml file. 
+                            These configuration settings are shared for all http-providers and EBWS that are defined in jboss-esb.xml.Domain.
+                            </xsd:documentation>
+                    </xsd:annotation>
+                    <xsd:complexType>
+                        <xsd:attribute name="method" use="optional" default="BASIC">
+	                        <xsd:simpleType>
+	                            <xsd:restriction base="xsd:NMTOKEN">
+		                            <xsd:enumeration value="BASIC" />
+	                                <xsd:enumeration value="DIGEST" />
+	                                <xsd:enumeration value="CLIENT-CERT" />
+	                            </xsd:restriction>
+	                        </xsd:simpleType>
+                        </xsd:attribute>
+                        <xsd:attribute name="domain" type="xsd:string" use="optional">
+                            <xsd:annotation>
+                                <xsd:documentation xml:lang="en">Security Domain.</xsd:documentation>
+                            </xsd:annotation>
+                        </xsd:attribute>
+                    </xsd:complexType>
+                </xsd:element>
+            </xsd:sequence>
+        </xsd:complexType>
+    </xsd:element>
+
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+		Provider and Bus base types.
+		88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+
+	<xsd:element name="providers">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A container for the providers referenced in the jbossesb
+				config file
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element maxOccurs="unbounded" minOccurs="0"
+					ref="jesb:provider" />
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:complexType abstract="true" name="provider">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				Abstract provider.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:sequence>
+			<xsd:element maxOccurs="unbounded" minOccurs="0"
+				ref="jesb:property" />
+		</xsd:sequence>
+		<xsd:attribute name="name" type="xsd:string" use="required" />
+	</xsd:complexType>
+	<xsd:element abstract="true" name="provider" type="jesb:provider" />
+
+	<xsd:complexType name="bus-provider">
+		<xsd:complexContent>
+			<xsd:extension base="jesb:provider">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						A provider of a bus. So for instance you can
+						have a jms-provider (JBossMQ) or an
+						ftp-provider.
+					</xsd:documentation>
+				</xsd:annotation>
+				<xsd:sequence>
+					<xsd:element maxOccurs="unbounded" minOccurs="1"
+						ref="jesb:bus" />
+				</xsd:sequence>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+	<xsd:element name="bus-provider"
+		substitutionGroup="jesb:provider">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				Generic Bus Provider.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus-provider" />
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:complexType name="bus">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A bus (also called "channel" by others) is a means by
+				which Services communicate with each other (JMS, FTP,
+				HTTP, etc).
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:sequence>
+			<xsd:element maxOccurs="unbounded" minOccurs="0"
+				ref="jesb:property" />
+		</xsd:sequence>
+		<xsd:attribute name="busid" type="xsd:string" use="required">
+			<xsd:annotation>
+				<xsd:documentation xml:lang="en">
+					An id such that this bus can be referenced by
+					Service listn.
+				</xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+	<xsd:element name="bus" type="jesb:bus" />
+
+	<xsd:element name="schedule-provider"
+		substitutionGroup="jesb:provider">
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:provider">
+					<xsd:sequence>
+						<xsd:element maxOccurs="unbounded" minOccurs="1"
+							ref="jesb:schedule" />
+					</xsd:sequence>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:complexType abstract="true" name="schedule">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				Schedule Configuration.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:sequence>
+			<xsd:element maxOccurs="unbounded" minOccurs="0"
+				ref="jesb:property" />
+		</xsd:sequence>
+		<xsd:attribute name="scheduleid" type="xsd:string"
+			use="required">
+			<xsd:annotation>
+				<xsd:documentation xml:lang="en">
+					An id such that this schedule can be referenced by
+					Service listner.
+				</xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="startDate" type="xsd:dateTime"
+			use="optional">
+			<xsd:annotation>
+				<xsd:documentation xml:lang="en">
+					Schedule start time and date.
+				</xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="endDate" type="xsd:dateTime"
+			use="optional">
+			<xsd:annotation>
+				<xsd:documentation xml:lang="en">
+					Schedule end time and date.
+				</xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+	<xsd:element abstract="true" name="schedule" type="jesb:schedule" />
+
+	<xsd:element name="simple-schedule"
+		substitutionGroup="jesb:schedule">
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:schedule">
+                    <xsd:attribute name="frequency" use="optional" type="xsd:long" default="10">
+                        <xsd:annotation>
+                            <xsd:documentation xml:lang="en">Schedule frequency.</xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:attribute>
+                    <xsd:attribute name="frequencyUnits" use="optional" type="jesb:frequency-unit" default="seconds">
+                        <xsd:annotation>
+                            <xsd:documentation xml:lang="en">Schedule frequency time units.</xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:attribute>
+					<xsd:attribute default="-1" name="execCount" type="xsd:int" use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								Schedule execution count. -1 to execute indefinitely.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+    <xsd:simpleType name="frequency-unit">
+        <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="seconds"/>
+            <xsd:enumeration value="milliseconds"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <xsd:element name="cron-schedule"
+		substitutionGroup="jesb:schedule">
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:schedule">
+					<xsd:attribute name="cronExpression"
+						type="xsd:string" use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								Schedule CRON expression.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+		Service and Action types.
+		88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+
+	<xsd:element name="services">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A container for services.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element maxOccurs="unbounded" minOccurs="1"
+					ref="jesb:service" />
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="service">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A service has listener or gateways and a list of
+				actions.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element maxOccurs="1" minOccurs="0" ref="jesb:security" />
+                <xsd:element maxOccurs="unbounded" minOccurs="0"
+                    ref="jesb:property" />
+				<xsd:element maxOccurs="1" minOccurs="0"
+					ref="jesb:listeners" />
+				<xsd:element maxOccurs="1" minOccurs="0"
+					ref="jesb:actions" />
+			</xsd:sequence>
+			<xsd:attribute name="category"
+				use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The service category which will be used to store
+						a reference to this service in the registry.
+					</xsd:documentation>
+				</xsd:annotation>
+                                <xsd:simpleType>
+                                        <xsd:restriction base="xsd:string">
+                                                <xsd:maxLength value="255"/>
+                                        </xsd:restriction>
+				</xsd:simpleType>
+			</xsd:attribute>
+			<xsd:attribute name="name"
+				use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The service name which will be used to store a
+						reference to this service in the registry.
+					</xsd:documentation>
+				</xsd:annotation>
+                                <xsd:simpleType>
+                                        <xsd:restriction base="xsd:string">
+                                                <xsd:maxLength value="255"/>
+                                        </xsd:restriction>
+                                </xsd:simpleType>
+			</xsd:attribute>
+			<xsd:attribute name="description"
+				use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The service description which stored with this
+						service in the registry, so that the purpose of
+						this service can be understood by a human.
+					</xsd:documentation>
+				</xsd:annotation>
+                                <xsd:simpleType>
+                                        <xsd:restriction base="xsd:string">
+                                                <xsd:maxLength value="255"/>
+                                        </xsd:restriction>
+                                </xsd:simpleType>
+			</xsd:attribute>
+			<xsd:attribute name="alertTimeThreshold"
+				use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						A value used for monitoring to produce alerts
+						if the service takes longer to complete than
+						the value of the field.
+					</xsd:documentation>
+				</xsd:annotation>
+				<xsd:simpleType>
+					<xsd:restriction base="xsd:decimal"/>
+				</xsd:simpleType>
+			</xsd:attribute>
+			<xsd:attribute name="alertLengthThreshold"
+				use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						A value used for monitoring to produce alerts
+						if the service takes longer to complete than
+						the value of the field.
+					</xsd:documentation>
+				</xsd:annotation>
+				<xsd:simpleType>
+					<xsd:restriction base="xsd:decimal"/>
+				</xsd:simpleType>
+			</xsd:attribute>
+            <xsd:attribute name="invmScope" type="jesb:invmScope" use="optional">
+                <xsd:annotation>
+                    <xsd:documentation xml:lang="en">
+                        All services are locally invokable over an "in VM" transport.  Invokability
+                        can be scoped using this attribute.  An "invmScope" value of "NONE" means that
+                        the Service should not be locally invokable over the "in VM" transport.
+                        More fine grained scoping will be added in the future.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:attribute>
+            <xsd:attribute name="invmTransacted" type="xsd:boolean">
+                <xsd:annotation>
+                    <xsd:documentation xml:lang="en">
+                        Should the InVM listener execute in a transacted environment?
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:attribute>
+            <xsd:attribute name="recordRoute" type="xsd:boolean">
+                <xsd:annotation>  
+                    <xsd:documentation xml:lang="en">
+                        Should the service update the message header upon service entrance and exit?
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:attribute>
+
+		</xsd:complexType>
+	</xsd:element>
+
+    <xsd:simpleType name="invmScope">
+        <xsd:restriction base="xsd:NMTOKEN">
+            <!-- Not invokable over InVM -->
+            <xsd:enumeration value="NONE" />
+
+            <!-- Invokable over InVM only from within the same/local deployment. -->
+            <!-- xsd:enumeration value="LOCAL" / -->
+
+            <!-- (DEFAULT) Invokable over InVM from within the same classloader scope. -->
+            <xsd:enumeration value="GLOBAL" />
+        </xsd:restriction>
+    </xsd:simpleType>
+
+    <xsd:simpleType name="mepType">
+		<xsd:restriction base="xsd:string">
+			<xsd:enumeration value="RequestResponse" />
+			<xsd:enumeration value="OneWay" />
+		</xsd:restriction>
+	</xsd:simpleType>
+
+	<xsd:element name="actions">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A container for actions belonging to this service.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element maxOccurs="unbounded" minOccurs="1"
+					ref="jesb:action" />
+			</xsd:sequence>
+			<xsd:attribute name="mep" type="jesb:mepType" />
+                        <xsd:attribute name="inXsd" type="xsd:string" />
+                        <xsd:attribute name="outXsd" type="xsd:string" />
+                        <xsd:attribute name="requestLocation" type="xsd:string"/>
+                        <xsd:attribute name="responseLocation" type="xsd:string"/>
+                        <xsd:attribute name="faultXsd" type="xsd:string" />
+                        <xsd:attribute name="webservice" type="xsd:boolean" default="true"/>
+                        <xsd:attribute name="validate" type="xsd:boolean" default="false"/>
+                        <xsd:attribute name="addressing" type="xsd:boolean" default="false"/>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="action">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				An action which will act on the message when it is
+				received by the service. Actions can be chained. Hence
+				you can specify a list of actions. Action are
+				'pluggable' and can be custom code, however JBossESB
+				comes with a list of predefined actions.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element maxOccurs="unbounded" minOccurs="0"
+					ref="jesb:property" />
+			</xsd:sequence>
+			<xsd:attribute name="name" type="xsd:string"
+				use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The logical name of the action.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="class" type="xsd:string"
+				use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The full classname of the java class in which
+						this action is defined.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="process" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The name of the method on the action that needs
+						to be called when the message is received.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="alertTimeThreshold"
+				use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						A value used for monitoring to produce alerts
+						if the service takes longer to complete than
+						the value of the field.
+					</xsd:documentation>
+				</xsd:annotation>
+				<xsd:simpleType>
+					<xsd:restriction base="xsd:decimal"/>
+				</xsd:simpleType>
+			</xsd:attribute>
+			<xsd:attribute name="alertLengthThreshold"
+				use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						A value used for monitoring to produce alerts
+						if the service takes longer to complete than
+						the value of the field.
+					</xsd:documentation>
+				</xsd:annotation>
+				<xsd:simpleType>
+					<xsd:restriction base="xsd:decimal"/>
+				</xsd:simpleType>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="security">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element maxOccurs="unbounded" minOccurs="0" ref="jesb:property" />
+			</xsd:sequence>
+			<xsd:attribute name="runAs" type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+					 Is used to specify that a specific security role given by the role-name value should be used 
+					 as the security identity for this service.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="rolesAllowed" type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+					Specifies one or more logical roles that are allowed to acccess the service.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="moduleName" type="xsd:string" use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="useCallerIdentity" type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+					Is used to indicate that the current caller's identity should be propagated as the security identity
+					this service.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="callbackHandler" type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+					CallbackHandler implementation class. This will override the global callbackhandler 
+					which can be specified in jbossesb-properties.xml
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+		Listener base types.
+		88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+
+	<xsd:element name="listeners">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A container for all listener for a service.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element maxOccurs="unbounded" minOccurs="1"
+					ref="jesb:abstract-listener" />
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:complexType name="listener">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A listener is a listener or a gateway. The listener
+				defines to which bus the service is listening. The
+				service can simultaneniously listen to multiple buses.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:sequence>
+			<xsd:element maxOccurs="unbounded" minOccurs="0"
+				ref="jesb:property" />
+		</xsd:sequence>
+		<xsd:attribute name="name" type="xsd:string" use="required">
+			<xsd:annotation>
+				<xsd:documentation xml:lang="en">
+					The logical name of the listener.
+				</xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute default="$not-defined$" name="busidref"
+			type="xsd:string" use="optional">
+			<xsd:annotation>
+				<xsd:documentation xml:lang="en">
+					A reference to an existing bus, as defined in the
+					'buses' section of this jbossesb config.
+				</xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+    <xsd:complexType abstract="true" name="gateway-only-listener">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+                Listener type that can only act as a message-unaware listener (gateway) .
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="jesb:listener" />
+        </xsd:complexContent>
+    </xsd:complexType>
+
+    <xsd:complexType name="dual-listener">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+                Listener type that can act as both a message-aware and message-unaware listener (gateway).
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexContent>
+            <xsd:extension base="jesb:listener">
+                <xsd:attribute default="1" name="maxThreads" type="xsd:int" use="optional">
+                    <xsd:annotation>
+                        <xsd:documentation xml:lang="en">
+                            The number of threads which will be started for this
+                            listener.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:attribute>
+                <xsd:attribute default="false" name="is-gateway" type="xsd:boolean" use="optional">
+                    <xsd:annotation>
+                        <xsd:documentation xml:lang="en">
+                            true if the listener is a gateway. A gateway is an
+                            ESB-Unware listener, while a listener is ESB-aware
+                            and as such expects jbossesb formatted messages.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:attribute>
+            </xsd:extension>
+        </xsd:complexContent>
+    </xsd:complexType>
+
+    <xsd:element name="abstract-listener" type="jesb:listener" abstract="true"/>
+
+    <xsd:element name="listener" type="jesb:dual-listener" substitutionGroup="jesb:abstract-listener"/>
+
+	<xsd:complexType abstract="true"
+		name="abstract-scheduled-listener">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				Abstract scheduled listener.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexContent>
+			<xsd:extension base="jesb:dual-listener">
+				<xsd:attribute default="-1"
+					name="poll-frequency-seconds" type="xsd:int" use="optional">
+<!-- Purposely defaults to -1 -->
+					<xsd:annotation>
+						<xsd:documentation xml:lang="en">
+							DEPRECATED (use "schedule-frequency" or
+							"scheduleidref"): The frequency with which
+							this listener is scheduled (in seconds).
+							Defaults to 10 seconds.
+						</xsd:documentation>
+					</xsd:annotation>
+				</xsd:attribute>
+				<xsd:attribute default="-1" name="schedule-frequency"
+					type="xsd:int" use="optional">
+<!-- Purposely defaults to -1 -->
+					<xsd:annotation>
+						<xsd:documentation xml:lang="en">
+							The frequency with which this listener is
+							scheduled (in seconds). Defaults to 10
+							seconds.
+						</xsd:documentation>
+					</xsd:annotation>
+				</xsd:attribute>
+				<xsd:attribute name="scheduleidref" type="xsd:string"
+					use="optional">
+					<xsd:annotation>
+						<xsd:documentation xml:lang="en">
+							The id reference for the schedule that's
+							driving this scheduled listener.
+						</xsd:documentation>
+					</xsd:annotation>
+				</xsd:attribute>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<xsd:element name="scheduled-listener"
+		substitutionGroup="jesb:abstract-listener">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				Scheduled listener.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension
+					base="jesb:abstract-scheduled-listener">
+					<xsd:attribute name="event-processor"
+						type="xsd:string" use="required">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								Message Composer class name.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="transacted"
+						type="xsd:boolean">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								Should the schedule execute in a
+								transacted environment?
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<!-- JCA Types -->
+	<xsd:element name="activation-config">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				Activation configuration for jca bus or listener.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element maxOccurs="unbounded" minOccurs="1"
+					ref="jesb:property" />
+			</xsd:sequence>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="jca-gateway" substitutionGroup="jesb:abstract-listener">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A specific gateway using JCA inflow.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:gateway-only-listener">
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="0"
+							ref="jesb:activation-config" />
+					</xsd:sequence>
+					<xsd:attribute name="adapter" type="xsd:string"
+						use="required" />
+					<xsd:attribute name="endpointClass"
+						type="xsd:string" use="required" />
+					<xsd:attribute name="messagingType"
+						type="xsd:string" use="optional" />
+					<xsd:attribute name="jcaBridge" type="xsd:string"
+						use="optional" />
+					<xsd:attribute name="transacted" type="xsd:boolean"
+						use="optional" />
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+		JMS Type Implementations.
+		88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+
+	<xsd:element name="jms-message-filter">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A JMS filter can add information to a Queue, or Topic.
+				For example you can defined a message-selector. However,
+				you can also push the queue name and type into this
+				filter given you did not already specify them in the
+				jms-bus.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:attribute name="dest-name" type="xsd:string"
+				use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						Name of the Queue of Topic.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="dest-type" use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						A Queue delivers a message once, a topic
+						broadcasts a message to all registered
+						listeners.
+					</xsd:documentation>
+				</xsd:annotation>
+				<xsd:simpleType>
+					<xsd:restriction base="xsd:NMTOKEN">
+						<xsd:enumeration value="QUEUE" />
+						<xsd:enumeration value="TOPIC" />
+					</xsd:restriction>
+				</xsd:simpleType>
+			</xsd:attribute>
+			<xsd:attribute name="selector" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						A message-selector allows multiple listeners to
+						register with the same queue/topic, but they
+						will filter on this message-selector.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="true" name="persistent"
+				type="xsd:boolean" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						If false, JMS messages will be sent
+						non-persistent. Default is to send messages with
+						DeliveryMode.PERSISTENT.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="AUTO_ACKNOWLEDGE"
+				name="acknowledge-mode" type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						JMS Session acknowledge mode. Can be on of
+						AUTO_ACKNOWLEDGE (default), CLIENT_ACKNOWLEDGE,
+						or DUPS_OK_ACKNOWLEDGE.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute 
+				name="jms-security-principal" type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						JMS destination username. Will be used when creating a connection
+						to the destination.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute 
+				name="jms-security-credential" type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						JMS destination password. Will be used when creating a connection
+						to the destination. Will be ignored if username is not specified.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="false" name="transacted"
+				type="xsd:boolean" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						If true, JMS sessions will be transaction aware.
+						Default is false.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="jms-bus" substitutionGroup="jesb:bus">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A JMS-Bus is a specific instance of a bus using the JMS
+				protocol.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus">
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="0"
+							ref="jesb:jms-message-filter" />
+					</xsd:sequence>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:complexType name="jms-provider-type">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A specific instance of a provider, providing JMS.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexContent>
+			<xsd:extension base="jesb:bus-provider">
+				<xsd:attribute name="connection-factory"
+					type="xsd:string" use="required">
+					<xsd:annotation>
+						<xsd:documentation xml:lang="en">
+							The connection-factory used to lookup
+							queues/topics in a naming directory (JNDI)
+						</xsd:documentation>
+					</xsd:annotation>
+				</xsd:attribute>
+				<xsd:attribute name="jndi-context-factory"
+					type="xsd:string">
+					<xsd:annotation>
+						<xsd:documentation xml:lang="en">
+							The context factory class the JBossESB will
+							use to do naming lookups.
+						</xsd:documentation>
+					</xsd:annotation>
+				</xsd:attribute>
+				<xsd:attribute name="jndi-pkg-prefix"
+					type="xsd:string">
+					<xsd:annotation>
+						<xsd:documentation xml:lang="en">
+							The pkg-prefix which will be used to do
+							naming lookups. It is left empty by default.
+						</xsd:documentation>
+					</xsd:annotation>
+				</xsd:attribute>
+				<xsd:attribute name="jndi-URL" type="xsd:anyURI">
+					<xsd:annotation>
+						<xsd:documentation xml:lang="en">
+							The URL used to do naming lookups.
+						</xsd:documentation>
+					</xsd:annotation>
+				</xsd:attribute>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+	<xsd:element name="jms-provider" substitutionGroup="jesb:provider"
+		type="jesb:jms-provider-type" />
+
+	<xsd:element name="jms-jca-provider"
+		substitutionGroup="jesb:provider">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A specific instance of a provider, providing JMS through
+				JCA inflow.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:jms-provider-type">
+                    <xsd:sequence>
+                        <xsd:element maxOccurs="1" minOccurs="0"
+                        ref="jesb:activation-config" />
+                    </xsd:sequence>
+					<xsd:attribute name="adapter" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The artifact containing the resource
+								adapter.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="endpointClass"
+						type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The class name of the JCA endpoint.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="messagingType"
+						type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The class name of the messaging specific
+								interface.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="jcaBridge" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The class name of the JCA Bridge.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="transacted"
+						type="xsd:boolean">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The transacted flag.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="providerAdapterJNDI" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The JNDI location of an alternate provider adapter
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="jms-listener"
+		substitutionGroup="jesb:abstract-listener">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A specific listener using the jms protocol.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:dual-listener">
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="0"
+							ref="jesb:jms-message-filter" />
+					</xsd:sequence>
+					<xsd:attribute name="clientId" type="xsd:string" use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								Client ID to be associated with the connection.  Used to associate a connection and its objects with
+								state maintained on behalf of the client by a provider e.g. durable subscriptions.
+								<p/>
+								If a clientId is required (e.g. when a 'durableSubscriptionName' is specified), but is not specified,
+								it will default to the listener name.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>			
+					<xsd:attribute name="durableSubscriptionName" type="xsd:string" use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								Durable subscription name.  Only relevant for JMS Topics.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>			
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+		FS Type Implementations.
+		88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+	<xsd:element name="fs-message-filter">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A FS filter.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:attribute name="directory" type="xsd:string"
+				use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The file share that is monitored for incoming
+						new files.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="input-suffix" type="xsd:string"
+				use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The file suffix used to filter files targeted
+						for comsumption by the ESB (note: add the dot,
+						so something like '.esbIn').
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default=".esbInProcess" name="work-suffix"
+				type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The file suffix used while the file is being
+						process, so that another thread or process won't
+						pick it up too.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="true" name="post-delete"
+				type="xsd:boolean" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						If true, the file will be deleted after it is
+						processed. Note that in that case post-directory
+						and post-suffix have no effect.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="true" name="post-rename"
+				type="xsd:boolean" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						If true, the file will be renamed after it is
+						processed. Note that in that case post-directory
+						and post-suffix have no effect.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="processed" name="post-directory"
+				type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The file share to which the file will be moved
+						after it is processed by the ESB
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default=".esbDone" name="post-suffix"
+				type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The file suffix which will be added to the file
+						name after it is processed.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="true" name="error-delete"
+				type="xsd:boolean" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						If true, the file will be deleted if an error
+						occurs during processing. Note that in that case
+						error-directory and error-suffix have no effect.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="processed" name="error-directory"
+				type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The file share to which the file will be moved
+						after when an error occurs during processing.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default=".esbERROR" name="error-suffix"
+				type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The file suffix which will be added to the file
+						name after an error occurs during processing.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="fs-bus" substitutionGroup="jesb:bus">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A Fs-Bus is a specific instance of a bus using the File
+				protocol.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus">
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="0"
+							ref="jesb:fs-message-filter" />
+					</xsd:sequence>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="fs-provider" substitutionGroup="jesb:provider">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A specific instance of a provider, providing a file
+				system (local fileshare or NAS).
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus-provider" />
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="fs-listener" substitutionGroup="jesb:abstract-listener">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A specific listener using the file protocol.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension
+					base="jesb:abstract-scheduled-listener">
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="0"
+							ref="jesb:fs-message-filter" />
+					</xsd:sequence>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+		FTP Type Implementations.
+		88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+	<xsd:element name="ftp-message-filter">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A FTP filter.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:attribute name="directory" type="xsd:string"
+				use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The ftp directory that is monitored for incoming
+						new files.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="username" type="xsd:string"
+				use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The username used to access the ftp server
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="password" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The password used to access the ftp server.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="input-suffix" type="xsd:string"
+				use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The file suffix used to filter files targeted
+						for comsumption by the ESB (note: add the dot,
+						so something like '.esbIn').
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default=".esbInProcess" name="work-suffix"
+				type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The file suffix used while the file is being
+						process, so that another thread or process won't
+						pick it up too.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="true" name="post-delete"
+				type="xsd:boolean" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						If true, the file will be deleted after it is
+						processed. Note that in that case post-directory
+						and post-suffix have no effect.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="true" name="post-rename"
+                type="xsd:boolean" use="optional">
+                <xsd:annotation>
+                    <xsd:documentation xml:lang="en">
+                        If true, the file will be renamed after it is
+                        processed. Note that in that case post-directory
+                        and post-suffix have no effect.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:attribute>
+			<xsd:attribute name="post-directory" type="xsd:string"
+				use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The ftp directory to which the file will be
+						moved after it is processed by the ESB
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default=".esbDone" name="post-suffix"
+				type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The file suffix which will be added to the file
+						name after it is processed.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="true" name="error-delete"
+				type="xsd:boolean" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						If true, the file will be deleted if an error
+						occurs during processing. Note that in that case
+						error-directory and error-suffix have no effect.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="processed" name="error-directory"
+				type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The ftp directory to which the file will be
+						moved after when an error occurs during
+						processing.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default=".esbERROR" name="error-suffix"
+				type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The file suffix which will be added to the file
+						name after an error occurs during processing.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="passive" type="xsd:boolean"
+				use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						This is an ftp server setting which may vary per
+						session.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="ftp" name="protocol"
+				use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The protocol, can be sftp (SSH File Transfer
+						Protocol), ftps (FTP over SLL) and ftp (to which
+						it defaults).
+					</xsd:documentation>
+				</xsd:annotation>
+				<xsd:simpleType>
+					<xsd:restriction base="xsd:NMTOKEN">
+						<xsd:enumeration value="ftp" />
+						<xsd:enumeration value="ftps" />
+						<xsd:enumeration value="sftp" />
+					</xsd:restriction>
+				</xsd:simpleType>
+			</xsd:attribute>
+			<xsd:attribute name="certificate-url" type="xsd:string"
+				use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The url to a public server certificate for ftps, or to a
+						private certificate for sftp client verification. sftp certificate
+						can be located via a resource.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="certificate-name" type="xsd:string"
+				use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The common name of a certificate, which may be needed
+						for ftps.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="certificate-passphrase" type="xsd:string"
+				use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The passphrase of the private key, if necessary, for sftp client verification.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="false" name="read-only"
+				type="xsd:boolean" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						If true, the ftp server does not permit write
+						opertations on files. Note that in this case the
+						following properties have no effect:
+						work-suffix, post-delete, post-directory,
+						post-suffix, error-delete, error-directory, and
+						error-suffix.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="ftp-bus" substitutionGroup="jesb:bus">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A FTP-Bus is a specific instance of a bus using the FTP
+				protocol.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus">
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="0"
+							ref="jesb:ftp-message-filter" />
+					</xsd:sequence>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="ftp-provider"
+		substitutionGroup="jesb:provider">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A specific instance of a provider, providing a ftp
+				service.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus-provider">
+					<xsd:attribute name="hostname" type="xsd:string"
+						use="required">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The ftp hostname, as it can be resolved
+								by DNS.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="ftp-listener"
+		substitutionGroup="jesb:abstract-listener">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A specific listener using the ftp protocol.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension
+					base="jesb:abstract-scheduled-listener">
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="0"
+							ref="jesb:ftp-message-filter" />
+					</xsd:sequence>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+		SQL Type Implementations.
+		88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+	<xsd:element name="sql-message-filter">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A SQL filter.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:attribute name="tablename" type="xsd:string"
+				use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The table in which esb message are stored.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="message-id-column"
+				type="xsd:string" use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						A unique key (PK) in the table.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+            <xsd:attribute name="retry-count-column" type="xsd:string" use="optional">
+                <xsd:annotation>
+                    <xsd:documentation xml:lang="en">
+                        Column name for storing the message delivery retry count.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:attribute>
+			<xsd:attribute name="message-column"
+				type="xsd:string" use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The field that holds the serialized message.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="status-column"
+				type="xsd:string" use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						This column contents ('P', 'W', 'E' or 'D')
+						indicates if the row is pending (P), in process
+						(W), in error(E) or done (D) if postDelete
+						and/or errorDelete are 'true' rows might be
+						deleted
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="where-condition" use="optional"
+				type="xsd:string" default="">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						A where clause, not including the word where,
+						which is applied to the query.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="order-by" use="optional"
+				type="xsd:string" default="">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						A where clause, not including the word where,
+						which is applied to the query.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="insert-timestamp-column" use="optional"
+				type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						Holds the timestamp when the record was
+						inserted.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="true" name="post-delete"
+				type="xsd:boolean" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						If true, records will be deleted after
+						processing.((e.g. no rows with a 'D' for done,
+						in column defined in 'status_column')
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="true" name="error-delete"
+				type="xsd:boolean" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						If true, records in error will be deleted after
+						attempted picked up for processing.(e.g. no rows
+						with a 'E' for error, in column defined in
+						'status_column')
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="sql-bus" substitutionGroup="jesb:bus">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A SQL-Bus is a specific instance of a bus using the SQL
+				protocol.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus">
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="0"
+							ref="jesb:sql-message-filter" />
+					</xsd:sequence>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="sql-provider"
+		substitutionGroup="jesb:provider">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A specific instance of a provider, providing a db
+				service.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus-provider">
+					<xsd:attribute name="datasource" type="xsd:string"
+						use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The name of the datasource.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="url" type="xsd:string"
+						use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The url needed to connect to the db.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="driver" type="xsd:string"
+						use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The driver needed to connect to the db.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="username" type="xsd:string"
+						use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The username used to access the
+								database.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="password" type="xsd:string"
+						use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The password used to access the
+								database.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="transacted"
+						type="xsd:boolean">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The transacted flag.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="sql-listener"
+		substitutionGroup="jesb:abstract-listener">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A specific listener using the SQL protocol.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:dual-listener">
+					<xsd:sequence>
+						<xsd:element maxOccurs="1" minOccurs="0"
+							ref="jesb:sql-message-filter" />
+					</xsd:sequence>
+					<xsd:attribute default="10"
+						name="poll-frequency-seconds" use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The frequency with which this listener
+								polls the db in seconds. Defaults to 10
+								seconds.
+							</xsd:documentation>
+						</xsd:annotation>
+						<xsd:simpleType>
+							<xsd:restriction base="xsd:integer">
+								<xsd:minExclusive value="0" />
+							</xsd:restriction>
+						</xsd:simpleType>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+		Hibernate Type Implementations.
+		88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+	<xsd:element name="hibernate-message-filter">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A Hibernate filter.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:attribute name="classname" type="xsd:string"
+				use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						The class name to monitor.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute default="message_id" name="event"
+				type="xsd:string" use="optional">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						A comma-separated list of events to intercept.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="hibernate-bus" substitutionGroup="jesb:bus">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A hibernate-bus is a specific instance of a bus using
+				the Hibernate protocol.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus">
+					<xsd:sequence>
+						<xsd:element maxOccurs="unbounded" minOccurs="1"
+							ref="jesb:hibernate-message-filter" />
+					</xsd:sequence>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="hibernate-provider"
+		substitutionGroup="jesb:provider">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A specific instance of a provider, providing a hibernate
+				service.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus-provider">
+					<xsd:attribute name="hibernate-cfg-file"
+						type="xsd:string" use="required">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The Hibernate configuration file to use.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="hibernate-listener"
+		substitutionGroup="jesb:abstract-listener">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				A specific listener using the hibernate protocol.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:dual-listener">
+					<xsd:sequence>
+						<xsd:element maxOccurs="unbounded" minOccurs="0"
+							ref="jesb:hibernate-message-filter" />
+					</xsd:sequence>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+
+
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+		JBoss Remoting Type Implementations.
+		88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+	<xsd:element name="jbr-bus" substitutionGroup="jesb:bus">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				JBoss Remoting Bus
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus">
+					<xsd:attribute name="port" type="xsd:int"
+						use="required">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								JBoss Remoting Server listen port.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="jbr-provider"
+		substitutionGroup="jesb:provider">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				JBoss Remoting Provider.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus-provider">
+					<xsd:attribute name="protocol" use="required">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								Jboss Remoting Listener/Server protocol.
+							</xsd:documentation>
+						</xsd:annotation>
+						<xsd:simpleType>
+							<xsd:restriction base="xsd:NMTOKEN">
+								<xsd:enumeration value="http" />
+                                <xsd:enumeration value="https" />
+								<xsd:enumeration value="socket" />
+                                <xsd:enumeration value="sslsocket" />
+							</xsd:restriction>
+						</xsd:simpleType>
+					</xsd:attribute>
+					<xsd:attribute name="host" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								JBoss Remoting Server bind address. When
+								not specified, defaults to
+								InetAddress.getLocalHost().getHostName().
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="jbr-listener"
+		substitutionGroup="jesb:abstract-listener">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				JBoss Remoting Listener.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:dual-listener" />
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+
+        <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+		Http Type Implementations.
+             88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+	<xsd:element name="http-bus" substitutionGroup="jesb:bus">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+			     Http Bus 
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus">
+                    <xsd:choice minOccurs="0" maxOccurs="2">
+                        <xsd:element name="protected-methods" minOccurs="0" maxOccurs="1">
+                            <xsd:complexType>
+                                <xsd:sequence>
+                                    <xsd:element name="method" minOccurs="1" maxOccurs="5">
+                                        <xsd:complexType>
+                                            <xsd:attribute name="name" use="required">
+                                                <xsd:simpleType>
+                                                    <xsd:restriction base="xsd:NMTOKEN">
+                                                        <xsd:enumeration value="GET" />
+                                                        <xsd:enumeration value="POST" />
+                                                        <xsd:enumeration value="PUT" />
+                                                        <xsd:enumeration value="DELETE" />
+                                                        <xsd:enumeration value="HEAD" />
+                                                    </xsd:restriction>
+                                                </xsd:simpleType>
+                                            </xsd:attribute>
+                                        </xsd:complexType>
+                                    </xsd:element>
+                                </xsd:sequence>
+                            </xsd:complexType>
+                        </xsd:element>
+                        <xsd:element name="allowed-roles" minOccurs="0" maxOccurs="1">
+                            <xsd:complexType>
+                                <xsd:sequence>
+                                    <xsd:element name="role" minOccurs="1" maxOccurs="unbounded">
+                                        <xsd:complexType>
+                                            <xsd:attribute name="name" type="xsd:string" use="required" />
+                                        </xsd:complexType>
+                                    </xsd:element>
+                                </xsd:sequence>
+                            </xsd:complexType>
+                        </xsd:element>
+                    </xsd:choice>
+                    <xsd:attribute name="transportGuarantee" use="optional">
+                        <xsd:simpleType>
+                            <xsd:restriction base="xsd:NMTOKEN">
+                                <xsd:enumeration value="NONE" />
+                                <xsd:enumeration value="INTEGRAL" />
+                                <xsd:enumeration value="CONFIDENTIAL" />
+                            </xsd:restriction>
+                        </xsd:simpleType>
+                    </xsd:attribute>
+                </xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="http-provider"
+		substitutionGroup="jesb:provider">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				Http Provider.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus-provider">
+                    <xsd:sequence>
+                        <xsd:element name="exception" type="jesb:httpExceptionMappings" minOccurs="0" maxOccurs="1" />
+                    </xsd:sequence>
+                </xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="http-gateway"
+		substitutionGroup="jesb:abstract-listener">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				http Listener.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:gateway-only-listener">
+                    <xsd:choice minOccurs="0" maxOccurs="2">
+                        <xsd:element name="exception" type="jesb:httpExceptionMappings">
+                            <xsd:annotation>
+                                <xsd:documentation xml:lang="en">
+                                    Exception to HTTP status code mappings.
+                                </xsd:documentation>
+                            </xsd:annotation>
+                        </xsd:element>
+                        <xsd:element name="asyncResponse" type="jesb:asyncHttpResponse">
+                            <xsd:annotation>
+                                <xsd:documentation xml:lang="en">
+                                    Aynchronous HTTP Response.  If set, the gateway will asynchronously deliver the
+                                    message to the target Service.
+                                </xsd:documentation>
+                            </xsd:annotation>
+                        </xsd:element>
+                    </xsd:choice>
+                    <xsd:attribute name="urlPattern" type="xsd:string" use="optional">
+                        <xsd:annotation>
+                            <xsd:documentation xml:lang="en">
+                                The URL Pattern of requests to be filtered to this listener.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:attribute>
+                    <xsd:attribute name="payloadAs" type="jesb:payloadAs" use="optional">
+                        <xsd:annotation>
+                            <xsd:documentation xml:lang="en">
+                                Set the ESB Message payload ass either a String or an array of bytes.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:attribute>
+                </xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+    <xsd:simpleType name="payloadAs">
+        <xsd:restriction base="xsd:NMTOKEN">
+            <xsd:enumeration value="STRING"/>
+            <xsd:enumeration value="BYTES"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:complexType name="httpExceptionMappings">
+        <xsd:sequence>
+            <xsd:element name="mapping" minOccurs="0" maxOccurs="unbounded">
+                <xsd:complexType>
+                    <xsd:attribute name="class" type="xsd:string" use="required" />
+                    <xsd:attribute name="status" type="xsd:integer" use="required" />
+                </xsd:complexType>
+            </xsd:element>
+        </xsd:sequence>
+        <xsd:attribute name="mappingsFile" type="xsd:string" use="optional">
+            <xsd:annotation>
+                <xsd:documentation xml:lang="en">
+                    Path to a .properties file containing a list of Exception to HTTP Status code mappings.
+                </xsd:documentation>
+            </xsd:annotation>
+        </xsd:attribute>
+    </xsd:complexType>
+    <xsd:complexType name="asyncHttpResponse">
+        <xsd:sequence>
+            <xsd:element name="payload" minOccurs="0" maxOccurs="1">
+                <xsd:annotation>
+                    <xsd:documentation xml:lang="en">
+                        Static HTTP Gateway response payload for async message delivery to service.
+                        <p/>
+                        If not set, an empty (zero length) payload will be returned in the HTTP Response.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:complexType>
+                    <xsd:attribute name="classpathResource" type="xsd:string" use="required" />
+                    <xsd:attribute name="contentType" type="xsd:string" use="required" />
+                    <xsd:attribute name="characterEncoding" type="xsd:string" use="optional" />
+                </xsd:complexType>
+            </xsd:element>
+        </xsd:sequence>
+        <xsd:attribute name="statusCode" type="xsd:int" default="200" use="optional">
+            <xsd:annotation>
+                <xsd:documentation xml:lang="en">
+                    Static HTTP Gateway response code for async message delivery to service.
+                    <p/>
+                    If not set, a 200 status (OK) will be returned in the HTTP Response.
+                </xsd:documentation>
+            </xsd:annotation>
+        </xsd:attribute>
+    </xsd:complexType>
+
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+		Groovy Gateway Type Implementations.
+		88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+	<xsd:element name="groovy-listener"
+		substitutionGroup="jesb:abstract-listener">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				Groovy Listener.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:dual-listener">
+					<xsd:attribute name="script" type="xsd:string"
+						use="required">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								The path (classpath) to the Groovy
+								Gateway script. Or, the alias for the
+								pre-packaged Groovy Gateway script.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+        UDP Gateway Type Implementations.
+        88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+    <xsd:element name="udp-listener" substitutionGroup="jesb:abstract-listener">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+                UDP Listener that uses Mina.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="jesb:dual-listener">
+                    <xsd:attribute name="host" type="xsd:string" use="required">
+                        <xsd:annotation>
+                            <xsd:documentation xml:lang="en">
+                                The host that this listener will listen to.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:attribute>
+                    <xsd:attribute name="port" type="xsd:integer" use="required">
+                        <xsd:annotation>
+                            <xsd:documentation xml:lang="en">
+                                The port that this listener will listen to.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:attribute>
+                    <xsd:attribute name="handlerClass" type="xsd:string" use="optional" default="org.jboss.soa.esb.listeners.gateway.mina.DefaultMessageHandler">
+                        <xsd:annotation>
+                            <xsd:documentation xml:lang="en">
+                                The fully qualified name of a org.jboss.soa.esb.listeners.gateway.mina.MessageHandler implementation.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:attribute>
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
+
+        <!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+		Camel Type Implementations.
+             88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+	<xsd:element name="from">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				Camel "from" element.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:attribute name="uri" type="xsd:string"
+				use="required">
+				<xsd:annotation>
+					<xsd:documentation xml:lang="en">
+						Camel "uri" attribute.
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="camel-bus" substitutionGroup="jesb:bus">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+			     Camel Bus 
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus">
+					<xsd:sequence>
+						<xsd:element maxOccurs="unbounded" minOccurs="0"
+							ref="jesb:from" />
+					</xsd:sequence>
+					<xsd:attribute name="from-uri" type="xsd:string"
+						use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								Camel "from" URI.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="async" type="xsd:boolean"
+						use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+                        		Should the Service be invoked asynchronously?
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="timeout" type="xsd:long"
+						use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								Synchronous Service invocation timeout.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+                </xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="camel-provider"
+		substitutionGroup="jesb:provider">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				Camel Provider.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:bus-provider" />
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+	<xsd:element name="camel-gateway"
+		substitutionGroup="jesb:abstract-listener">
+		<xsd:annotation>
+			<xsd:documentation xml:lang="en">
+				Camel Gateway.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="jesb:gateway-only-listener">
+					<xsd:sequence>
+						<xsd:element maxOccurs="unbounded" minOccurs="0"
+							ref="jesb:from" />
+					</xsd:sequence>
+					<xsd:attribute name="from-uri" type="xsd:string"
+						use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								Camel "from" URI.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="async" type="xsd:boolean"
+						use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+                        		Should the Service be invoked asynchronously?
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="timeout" type="xsd:long"
+						use="optional">
+						<xsd:annotation>
+							<xsd:documentation xml:lang="en">
+								Synchronous Service invocation timeout.
+							</xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+                </xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+</xsd:schema>

Modified: trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBConstants.java
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBConstants.java	2012-05-03 17:25:19 UTC (rev 40761)
+++ trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBConstants.java	2012-05-03 17:49:13 UTC (rev 40762)
@@ -14,32 +14,45 @@
  * @author Viacheslav Kabanovich
  */
 public interface ESBConstants {
-	public String SCHEMA_101 = "http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"; //$NON-NLS-1$
-	public String SCHEMA_110 = "http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd"; //$NON-NLS-1$
-	public String SCHEMA_120 = "http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd"; //$NON-NLS-1$
-	public String SCHEMA_130 = "http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.0.xsd"; //$NON-NLS-1$
+	public String VERSION_101 = "1.0.1.xsd"; //$NON-NLS-1$
+	public String VERSION_110 = "1.1.0.xsd"; //$NON-NLS-1$
+	public String VERSION_120 = "1.2.0.xsd"; //$NON-NLS-1$
+	public String VERSION_130 = "1.3.0.xsd"; //$NON-NLS-1$
+	public String VERSION_131 = "1.3.1.xsd"; //$NON-NLS-1$
+	
+	public String SCHEMA_PREFIX = "http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-"; //$NON-NLS-1$ 
+	public String SCHEMA_101 = SCHEMA_PREFIX + VERSION_101;
+	public String SCHEMA_110 = SCHEMA_PREFIX + VERSION_110;
+	public String SCHEMA_120 = SCHEMA_PREFIX + VERSION_120;
+	public String SCHEMA_130 = SCHEMA_PREFIX + VERSION_130;
+	public String SCHEMA_131 = SCHEMA_PREFIX + VERSION_131;
 
-	public String NEW_SCHEMA_101 = "http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"; //$NON-NLS-1$
-	public String NEW_SCHEMA_110 = "http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd"; //$NON-NLS-1$
-	public String NEW_SCHEMA_120 = "http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.2.0.xsd"; //$NON-NLS-1$
-	public String NEW_SCHEMA_130 = "http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.0.xsd"; //$NON-NLS-1$
+	public String NEW_SCHEMA_PREFIX = "http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-"; //$NON-NLS-1$
+	public String NEW_SCHEMA_101 = NEW_SCHEMA_PREFIX + VERSION_101;
+	public String NEW_SCHEMA_110 = NEW_SCHEMA_PREFIX + VERSION_110;
+	public String NEW_SCHEMA_120 = NEW_SCHEMA_PREFIX + VERSION_120;
+	public String NEW_SCHEMA_130 = NEW_SCHEMA_PREFIX + VERSION_130;
+	public String NEW_SCHEMA_131 = NEW_SCHEMA_PREFIX + VERSION_131;
 
 	public String SUFF_101 = "101"; //$NON-NLS-1$
 	public String SUFF_110 = "110"; //$NON-NLS-1$
 	public String SUFF_120 = "120"; //$NON-NLS-1$
 	public String SUFF_130 = "130"; //$NON-NLS-1$
+	public String SUFF_131 = "131"; //$NON-NLS-1$
 
 	public String[] KNOWN_SUFFIXES = {
 		SUFF_101,
 		SUFF_110,
 		SUFF_120,
 		SUFF_130,
+		SUFF_131,
 	};
 	public String ENT_ESB_FILE = "FileESB"; //$NON-NLS-1$
 	public String ENT_ESB_FILE_101 = ENT_ESB_FILE + SUFF_101;
 	public String ENT_ESB_FILE_110 = ENT_ESB_FILE + SUFF_110;
 	public String ENT_ESB_FILE_120 = ENT_ESB_FILE + SUFF_120;
 	public String ENT_ESB_FILE_130 = ENT_ESB_FILE + SUFF_130;
+	public String ENT_ESB_FILE_131 = ENT_ESB_FILE + SUFF_131;
 	
 	public String ENT_ESB_PROPERTY = "ESBProperty"; //$NON-NLS-1$
 	
@@ -149,6 +162,7 @@
 	public String ENT_ESB_SERVICE_110 = ENT_ESB_SERVICE + SUFF_110;
 	public String ENT_ESB_SERVICE_120 = ENT_ESB_SERVICE + SUFF_120;
 	public String ENT_ESB_SERVICE_130 = ENT_ESB_SERVICE + SUFF_130;
+	public String ENT_ESB_SERVICE_131 = ENT_ESB_SERVICE + SUFF_131;
 
 	//prefix
 	public String ENT_ESB_ACTIONS = "ESBActions"; //$NON-NLS-1$

Modified: trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBEntityRecognizer.java
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBEntityRecognizer.java	2012-05-03 17:25:19 UTC (rev 40761)
+++ trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/ESBEntityRecognizer.java	2012-05-03 17:49:13 UTC (rev 40762)
@@ -27,53 +27,39 @@
 
     String getEntityName(String ext, String body) {
         if(body == null) return null;
-    	if(!isSchema(body)) {
+
+        String suffix = getSuffixBySchema(body);
+    	if(suffix == null) {
     		return null;
     	}
     	
-//    	int i = body.indexOf("xsi:schemaLocation"); //$NON-NLS-1$
-    	int i = body.indexOf("xmlns="); //$NON-NLS-1$
-    	if(i < 0) return null;
-    	int j = body.indexOf("\"", i); //$NON-NLS-1$
-    	if(j < 0) return null;
-    	int k = body.indexOf("\"", j + 1); //$NON-NLS-1$
-    	if(k < 0) return null;
-    	String schema = body.substring(j + 1, k);
-    	
-    	int i101 = schema.indexOf("1.0.1"); //$NON-NLS-1$
-    	if(i101 >= 0) {
-    		return ENT_ESB_FILE_101;
-    	}
-    	int i110 = schema.indexOf("1.1.0"); //$NON-NLS-1$
-    	if(i110 >= 0) {
-    		return ENT_ESB_FILE_110;
-    	}
-    	int i120 = schema.indexOf("1.2.0"); //$NON-NLS-1$
-    	if(i120 >= 0) {
-    		return ENT_ESB_FILE_120;
-    	}
-    	int i130 = schema.indexOf("1.3.0"); //$NON-NLS-1$
-    	if(i130 >= 0) {
-    		return ENT_ESB_FILE_130;
-    	}
-        return null;
+        return ENT_ESB_FILE + suffix;
     }
     
-    private boolean isSchema(String body) {
+    private String getSuffixBySchema(String body) {
     	int i = body.indexOf("<jbossesb"); //$NON-NLS-1$
-    	if(i < 0) return false;
+    	if(i < 0) return null;
     	int j = body.indexOf(">", i); //$NON-NLS-1$
-    	if(j < 0) return false;
+    	if(j < 0) return null;
     	String s = body.substring(i, j);
-    	String q = "\"";
-    	return s.indexOf(q + SCHEMA_101 + q) > 0
-    		|| s.indexOf(q + SCHEMA_110 + q) > 0
-    		|| s.indexOf(q + SCHEMA_120 + q) > 0
-    		|| s.indexOf(q + SCHEMA_130 + q) > 0
-    		|| s.indexOf(q + NEW_SCHEMA_101 + q) > 0
-    		|| s.indexOf(q + NEW_SCHEMA_110 + q) > 0
-    		|| s.indexOf(q + NEW_SCHEMA_120 + q) > 0
-    		|| s.indexOf(q + NEW_SCHEMA_130 + q) > 0;
+    	i = s.indexOf("xmlns="); //$NON-NLS-1$
+    	if(i < 0) return null;
+    	j = s.indexOf("\"", i); //$NON-NLS-1$
+    	if(j < 0) return null;
+    	int k = s.indexOf("\"", j + 1); //$NON-NLS-1$
+    	if(k < 0) return null;
+    	String schema = s.substring(j + 1, k);
+    	return schema.equals(SCHEMA_101) ? SUFF_101 :
+    		   schema.equals(SCHEMA_110) ? SUFF_110 :
+    		   schema.equals(SCHEMA_120) ? SUFF_120 :
+    		   schema.equals(SCHEMA_130) ? SUFF_130 :
+       		   schema.equals(SCHEMA_131) ? SUFF_131 :
+    		   schema.equals(NEW_SCHEMA_101) ? SUFF_101 :
+    		   schema.equals(NEW_SCHEMA_110) ? SUFF_110 :
+			   schema.equals(NEW_SCHEMA_120) ? SUFF_120 :
+			   schema.equals(NEW_SCHEMA_130) ? SUFF_130 :
+			   schema.equals(NEW_SCHEMA_131) ? SUFF_131 :
+    		   null;
     }
     
 }

Modified: trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/SpecificActionLoader.java
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/SpecificActionLoader.java	2012-05-03 17:25:19 UTC (rev 40761)
+++ trunk/esb/plugins/org.jboss.tools.esb.core/src/org/jboss/tools/esb/core/model/SpecificActionLoader.java	2012-05-03 17:49:13 UTC (rev 40762)
@@ -17,10 +17,10 @@
 import org.jboss.tools.common.meta.XChild;
 import org.jboss.tools.common.meta.XMapping;
 import org.jboss.tools.common.meta.XModelEntity;
+import org.jboss.tools.common.meta.impl.XModelMetaDataImpl;
 import org.jboss.tools.common.model.XModelException;
 import org.jboss.tools.common.model.XModelObject;
 import org.jboss.tools.common.model.impl.RegularObjectImpl;
-import org.jboss.tools.common.model.options.PreferenceModelUtilities;
 import org.jboss.tools.common.model.util.XModelObjectLoaderUtil;
 import org.jboss.tools.esb.core.ESBCorePlugin;
 import org.jboss.tools.esb.core.model.converters.ConverterConstants;
@@ -41,7 +41,7 @@
 
 	SpecificActionLoader() {
 		if(classToEntity.isEmpty()) {
-			XMapping m = PreferenceModelUtilities.getPreferenceModel().getMetaData().getMapping("ESBSpecificActions");
+			XMapping m = XModelMetaDataImpl.getInstance().getMapping("ESBSpecificActions");
 			if(m != null) {
 				String[] classes = m.getKeys();
 				for (String c: classes) {



More information about the jbosstools-commits mailing list