迁移平面文件记录

概述

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

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

  • 如果skip_CR批注的值为 true,并且当前分隔符不是 (0x0D) 的回车符,BizTalk Server向当前分隔符添加回车符。 例如,如果当前分隔符为管道符号 (0x7C),则最终分隔符将为管道符号后跟回车符 (0x7C 0x0D)。 如果当前分隔符是回车符,则无论 skip_CR 的值如何,它都保持为单个回车符。

  • 如果skip_LF批注的值为 true,BizTalk Server将换行符 (0x0A) 添加到当前分隔符。 请注意,在前面的情况下,如果当前分隔符是管道符号 (0x7C) ,则如果skip_CR和skip_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为没有子级的标记位置记录添加字段。

另请参阅

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