Mule如何处理不符合其XML模式的XML配置?

时间:2012-03-07 09:42:10

标签: java spring mule

我被分配到使用Mule 2的旧系统上工作,我在一些旧配置中发现了一些怪癖。最初编写文档的开发人员已经改变了工作,因此没有人敢改变任何事情。

<service name="taskCompleted">
        <inbound>
            <jms:inbound-endpoint topic="namespace.transporttask.completed">
                <jms:jmsmessage-to-object-transformer />

                <!-- This section does not comply with Mule's XML schema 
                     (Element message-properties-transformer is not allowed here) -->
                <message-properties-transformer>
                    <add-message-property key="MULE_ENCODING" value="windows-1252" />
                </message-properties-transformer>
            </jms:inbound-endpoint>
        </inbound>
        <bridge-component />
        <outbound>
            ...
        </outbound>
    </service>

这只是我发现的一个例子,我的假设是Mule只是忽略了这样的配置,并且删除它是安全的,因为它可能没有做任何事情。这个假设是否正确?

2 个答案:

答案 0 :(得分:3)

Mule严格验证它加载的配置:如果元素放错位置或根本不允许,Mule将不会加载配置并拒绝启动此应用程序。

如果Mule使用此配置启动正常,则表示它有效并且评论在说谎。

答案 1 :(得分:2)

虽然IntelliJ IDEA具有最佳的基于XML架构的IDE编辑,但它仍然不是理想的。根据经验,Mule将在解析配置时进行完全验证。但是,IDE可能会错误地将有效配置标记为错误。

并且,Mule 2.x已经很老了,David上面提到的更多适用于Mule 3。自Mule 2以来,主要的架构改进。