MessageBroker XMLNSC解析器:如何避免引号转义?
使用MessageBroker的XMLNSC解析器时,它通常会在XML中转义双引号,如下所示:MessageBroker XMLNSC解析器:如何避免引号转义?,xml,messagebroker,ibm-integration-bus,Xml,Messagebroker,Ibm Integration Bus,使用MessageBroker的XMLNSC解析器时,它通常会在XML中转义双引号,如下所示: <MyElement>Some "Text" inside</MyElement> 里面有一些“文本” 变成 <MyElement>Some "Text" inside</MyElement> 里面有一些“文本” 其中一位客户声称,这种逃逸对他们来说是一个真正的问题 同时,据我在XML规范中看到的,这种转义并不
<MyElement>Some "Text" inside</MyElement>
里面有一些“文本”
变成
<MyElement>Some "Text" inside</MyElement>
里面有一些“文本”
其中一位客户声称,这种逃逸对他们来说是一个真正的问题
同时,据我在XML规范中看到的,这种转义并不是必须的,所以我试图找到一种跳过它的方法,但运气不好
你知道怎么做吗?或者一个解决方法可能是
PS
我们运行的是版本10(称为集成总线),但我记得旧版本的行为是相同的(从第6版开始)正确的,标记值中引号字符的转义是可选的。MessageBroker和IIB始终转义引号字符,无论是否需要转义。转义不会改变数据;任何正确编写的XML解析器都将解码该值并将原始字符串返回给应用程序。您的客户要么使用了一个写得非常糟糕的应用程序,要么他们误解了情况。
如果确实需要避免转义,可以使用XMLNSC.AsIsElementContent字段类型。不过,这样做的风险由你自己承担。您应该向客户解释,这是他们的应用程序中的错误,而不是IIB中的缺陷。我刚刚在Broker V8上尝试了这一点,MQ输入配置了XMLNSC,在调试程序中或将消息写回MQ时都看不到转义。在哪里可以看到转义?我遇到了这个问题,在我的例子中,这是因为我创建了一个用户定义的属性,并错误地用“(双引号)括起该属性,并在XML映射中使用该属性,而双引号被转义。