【发布时间】:2020-04-04 21:39:45
【问题描述】:
外部合作伙伴将向我们发送包含采购订单的逗号分隔文件,我们需要在 BizTalk 环境中处理这些文件。我将使用 BizTalk 的平面文件反汇编器将 csv 数据转换为可使用的 xml。
但是,我们合作伙伴文件中的许多记录对于某些“列”具有空值(例如,并非所有地址字段都有值)。在 BizTalk 使用平面文件 xsd(使用 Visual Studio 中的向导创建)进行反汇编后,生成的 xml 包含如下元素:
<ShipToAddress2>&#x0;</ShipToAddress2>
我们随后的映射失败了
System.Xml.XmlException: '.',十六进制值 0x00,是无效字符。
我可以通过什么方式消除此错误?平面文件 xsd 中是否有一个属性,或者反汇编程序中有一个设置,我可以在其中设置处理数据中的空值的行为?
【问题讨论】:
-
有点脏,但您可以为相关字段指定填充字符(十六进制类型,值
0x00)。这样在反汇编过程中零字符将被剥离。 -
@ϻᴇᴛᴀʟ 确实似乎是一个更具结构性的解决方案。我将不得不在管道组件上投入更多时间,该组件会剥离许多字符(包括
0x00和0x19)。不过,在这一点上,我会接受 Ruud 的短期解决方案,但会考虑您对结构性解决方案的建议。
标签: character-encoding xsd biztalk flat-file