迁移平面文件记录

概述

Microsoft BizTalk Server 支持多字符分隔符,尽管它仅支持一种类型的分隔符-子分隔符。

BizTalk Server 中的三个架构注释控制分隔符处理:两个用于分析(skip_CRskip_LF),一个用于序列化(append_newline)。 BizTalk Server 在迁移记录时按如下所示解释这些批注:

  • 如果 skip_CR 批注的值为 true ,并且当前的分隔符不是回车符(0x0D),BizTalk Server 会在当前分隔符后添加一个回车符。 例如,如果当前的分隔符是管道符号(0x7C),那么生成的分隔符是管道符号,紧随其后的是回车符(对应字符代码0x0D)。 如果当前分隔符是回车符,那么无论 skip_CR 的值如何,它都会保留为单个回车符。

  • 如果skip_LF批注的值为true,BizTalk Server 会将换行符(0x0A)添加到当前分隔符。 请注意,在前面的情况下,如果当前分隔符是管道符号(0x7C),并且skip_CRskip_LF均为true,则形成一个由三个字符组成的分隔符(0x7C 0x0D 0x0A)。

  • BizTalk Server 忽略 append_newline 批注的设置。

    虽然批注的这些解释可确保大多数情况在没有困难的情况下迁移,但在某些情况下迁移失败。 例如,如果 skip_CRskip_LF 均为 true ,并且当前分隔符为管道符号(0x7C),BizTalk Server 接受以下所有作为单个记录集中的有效分隔符:0x7C 0x0D 0x0A、0x7C 0x0D、0x7C 0x0A和0x7C。 无法使用此类分隔符集的记录进行迁移,并且需要在 BizTalk Server 中自定义分析程序代码。

    尽管 BizTalk Server 只有一种类型的分隔符,但它解释旧的批注,以便轻松迁移记录。 如果 BizTalk Server 架构具有 def_record_delimdef_field_delimdef_subfield_delim的值,并且这些值在 delimiter_type 中作为 inherit_record引用,则 BizTalk Server 将检索相应的值并将其存储在本地。

    此外,BizTalk Server 还会为没有子级的特定位置类型记录添加字段。

另请参阅

架构生成和验证的已知问题