在 BizTalk 消息中转义 XML

escaped XML in BizTalk message

我有一条 BizTalk 消息,其中包含一个名为 cParams 的节点,我想用一些 XML 填充它我已转换为字符串(如下):

<ds>
  <caseid>1</caseid>
  <d1_title>MRS</d1_title>
</ds>

不是像上面那样包含字符串,而是在编排调试器中显示如下:

<ns0:nws_update_case xmlns:ns0="http://xxxxx/xxxe/v1-0">
  <cToken>xxxxx-xxx-xxx-xxxxx</cToken>
  <cParams>&lt;ds&gt;&lt;caseid&gt;1&lt;/caseid&gt;&lt;d1_title&gt;MRS&lt;/d1_title&gt;&lt;/ds&gt;</cParams>
</ns0:nws_update_case>

我曾尝试替换该字符,并尝试在它被转换为字符串之前将其作为消息插入 (msg.InnerXML),但它始终显示为转义。还有其他方法可以实现我想要的吗?

我在这里回答了一个类似的问题: mapping a string containing xml in BizTalk

使用 XSLT 进行映射,您可以创建 BTM 文件映射 dsnws_update_case

在您的 XSLT 中,您可以使用 .NET 扩展对象环绕 System.Web.HttpUtility.HtmlDecode() 以将 XML 解码为 XML 而不是 "escaped XML"。