Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MessageBroker XMLNSC解析器:如何避免引号转义?_Xml_Messagebroker_Ibm Integration Bus - Fatal编程技术网

MessageBroker XMLNSC解析器:如何避免引号转义?

MessageBroker XMLNSC解析器:如何避免引号转义?,xml,messagebroker,ibm-integration-bus,Xml,Messagebroker,Ibm Integration Bus,使用MessageBroker的XMLNSC解析器时,它通常会在XML中转义双引号,如下所示: <MyElement>Some "Text" inside</MyElement> 里面有一些“文本” 变成 <MyElement>Some &quot;Text&quot; inside</MyElement> 里面有一些“文本” 其中一位客户声称,这种逃逸对他们来说是一个真正的问题 同时,据我在XML规范中看到的,这种转义并不

使用MessageBroker的XMLNSC解析器时,它通常会在XML中转义双引号,如下所示:

<MyElement>Some "Text" inside</MyElement>
里面有一些“文本”
变成

<MyElement>Some &quot;Text&quot; inside</MyElement>
里面有一些“文本”
其中一位客户声称,这种逃逸对他们来说是一个真正的问题

同时,据我在XML规范中看到的,这种转义并不是必须的,所以我试图找到一种跳过它的方法,但运气不好

你知道怎么做吗?或者一个解决方法可能是

PS


我们运行的是版本10(称为集成总线),但我记得旧版本的行为是相同的(从第6版开始)

正确的,标记值中引号字符的转义是可选的。MessageBroker和IIB始终转义引号字符,无论是否需要转义。转义不会改变数据;任何正确编写的XML解析器都将解码该值并将原始字符串返回给应用程序。您的客户要么使用了一个写得非常糟糕的应用程序,要么他们误解了情况。
如果确实需要避免转义,可以使用XMLNSC.AsIsElementContent字段类型。不过,这样做的风险由你自己承担。您应该向客户解释,这是他们的应用程序中的错误,而不是IIB中的缺陷。

我刚刚在Broker V8上尝试了这一点,MQ输入配置了XMLNSC,在调试程序中或将消息写回MQ时都看不到转义。在哪里可以看到转义?我遇到了这个问题,在我的例子中,这是因为我创建了一个用户定义的属性,并错误地用“(双引号)括起该属性,并在XML映射中使用该属性,而双引号被转义。