将XML标记转换为十六进制

时间:2017-08-15 21:38:34

标签: xml character-encoding biztalk urlencode

我们尝试连接的外部系统只接受以十六进制编码的XML有效负载。

For example;
<   3C
>   3E
/   2F
"   22

在BizTalk中处理此问题的最佳方法是什么?此外,它应该只替换标签而不是数据。目前正在运行BizTalk 2016

2 个答案:

答案 0 :(得分:1)

您是否将有效负载发送为十六进制文本?您有几个选项,最准确的可能是实现一个Assembler,它将XML字符更改为等效的十六进制值,将其添加到Send Pipeline并使用发送端口上的Send Pipeline。

答案 1 :(得分:0)

所以......首先,是的,你认为这有点愚蠢并且对'安全'一点帮助是对的:( ...实际上,这引起了我对安全的关注...... / p>

下一步认为你需要做的是告诉管理层,由于他们非常非常不寻常和不必要的要求,你将不得不花费额外的时间和金钱来容纳这个接收器。 这不是BizTalk Server的问题。

最后,处理此问题的正确方法是编码管道组件。实际的实现非常简单,你必须逐字节地读取Stream,将转义的标记字符写入输出流。