Character encoding 当记录包含空值时,使用BizTalk反汇编平面文件

Character encoding 当记录包含空值时,使用BizTalk反汇编平面文件,character-encoding,xsd,biztalk,flat-file,Character Encoding,Xsd,Biztalk,Flat File,外部合作伙伴将向我们发送包含采购订单的逗号分隔文件,我们需要在BizTalk环境中处理这些文件。我将使用BizTalk的flatfile反汇编程序将csv数据转换为可行的xml 但是,我们合作伙伴文件中的许多记录在某些“列”中有空值(例如,并非所有地址字段都有值)。BizTalk使用扁平文件xsd(使用Visual Studio中的向导创建)进行反汇编时,生成的xml包含如下元素: � 我们随后的映射失败了 System.Xml.XmlException:“.”十六进制值0x00是无效字符

外部合作伙伴将向我们发送包含采购订单的逗号分隔文件,我们需要在BizTalk环境中处理这些文件。我将使用BizTalk的flatfile反汇编程序将csv数据转换为可行的xml

但是,我们合作伙伴文件中的许多记录在某些“列”中有空值(例如,并非所有地址字段都有值)。BizTalk使用扁平文件xsd(使用Visual Studio中的向导创建)进行反汇编时,生成的xml包含如下元素:

我们随后的映射失败了

System.Xml.XmlException:“.”十六进制值0x00是无效字符


我怎样才能消除这个错误?flatfile xsd中是否有属性,或者disassember中是否有设置,可以在其中设置处理数据中空值的行为?

如果相关字段还没有填充字符集,则可以在反汇编过程中使用该设置去除零字符

对于需要它的每个字段,首先将
填充字符类型
设置为
十六进制
,然后将
填充字符
设置为
0x00


有点脏,但您可以为相关字段指定填充字符(键入十六进制,value
0x00
)。这样,零字符将在反汇编过程中被剥离。@ϻᴇᴛᴀʟ确实似乎是一个更具结构性的解决方案。我将不得不在一个管道组件上投入更多的时间,该组件将剥离许多字符ESR(包括
0x00
0x19
)。在这一点上,我会考虑Ruud的短期解决方案,但会考虑你的建议,结构解决方案。为清楚起见,;为整个xsd设置默认填充字符是不够的;它确实必须在每个单独的字段上设置。@如果您在架构上设置了默认的填充字符,您仍然必须为每个需要它的字段设置
pad character Type
default pad character