diff --git a/spring-integration-jmx/src/main/java/org/springframework/integration/jmx/config/MBeanTreePollingChannelAdapterParser.java b/spring-integration-jmx/src/main/java/org/springframework/integration/jmx/config/MBeanTreePollingChannelAdapterParser.java
index 305da25ed2..e75783458e 100644
--- a/spring-integration-jmx/src/main/java/org/springframework/integration/jmx/config/MBeanTreePollingChannelAdapterParser.java
+++ b/spring-integration-jmx/src/main/java/org/springframework/integration/jmx/config/MBeanTreePollingChannelAdapterParser.java
@@ -53,6 +53,14 @@ public class MBeanTreePollingChannelAdapterParser extends AbstractPollingInbound
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "query-name", "queryName");
IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "query-expression", "queryExpression");
+ if (StringUtils.hasText(element.getAttribute("query-name"))
+ && StringUtils.hasText(element.getAttribute("query-name-ref"))) {
+ parserContext.getReaderContext().error("Cannot have both `query-name' and 'query-name-ref'", element);
+ }
+ if (StringUtils.hasText(element.getAttribute("query-expression"))
+ && StringUtils.hasText(element.getAttribute("query-expression-ref"))) {
+ parserContext.getReaderContext().error("Cannot have both `query-expression' and 'query-expression-ref'", element);
+ }
BeanComponentDefinition innerBeanDef = IntegrationNamespaceUtils.parseInnerHandlerDefinition(element, parserContext);
String beanName = element.getAttribute("converter");
diff --git a/spring-integration-jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx-3.0.xsd b/spring-integration-jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx-3.0.xsd
index 65b2ff0920..cbe7ed26a2 100644
--- a/spring-integration-jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx-3.0.xsd
+++ b/spring-integration-jmx/src/main/resources/org/springframework/integration/jmx/config/spring-integration-jmx-3.0.xsd
@@ -223,14 +223,16 @@
- A string to be parsed into an ObjectName object
+ A string to be parsed into an ObjectName object. If this
+ attribute is specified you cannot specify `query-name-ref`.
- A reference to an ObjectName instance
+ A reference to an ObjectName instance. If this
+ attribute is specified you cannot specify `query-name`.
@@ -242,14 +244,16 @@
- A string to be parsed into a QueryExp object
+ A string to be parsed into a QueryExp object. If this
+ attribute is specified you cannot specify `query-expression-ref`.
- A reference to a QueryExp instance
+ A reference to a QueryExp instance. If this
+ attribute is specified you cannot specify `query-expression`.