CSV文件作为一种的简单数据文件交换标准,在商业上活动尤其是B2B中被大量采用。

在Biztalk中可以使用Flat File Disasembler来解析这类格式的文件,以下样例采用Biztalk Server 2006 R2作为开发环境。

 

使用的csv样例文件内容如下 :

ItemNumber,Description,IssueDate,IssueUser,Status
00-011-003,微软Office2007,2008-9-27,uid01,A
00-022-234,Vista旗舰版,2008-4-1,uid02,D
00-101-001,"xbox 360, ""elite"" edition",2006-7-5,uid03,A

 

 步骤如下:

Step 1: 在添加项目文件中选择Flat File Schema Wizard,启动平板文件schema向导。

 利用Biztalk Flat File Disasembler来解析CSV文件

 

Step 2: 输入样例文件以提供向导进行平板文件的结构分析,定义需要生成的Flat File Schema的根节点名称已经Namespace,

同时选择正确的代码页以对平板文件进行正确的解码。

利用Biztalk Flat File Disasembler来解析CSV文件

 

Step 3: 选择前两行数据以提供结构分析,这里要注意的是一定要同时选中每行中最后两个字符,及回车换行符,这样做是为了进行行结构的分析。

整个向导中有两级分析过程,一级是行分析,一级是字段分析 。字段分析会在稍后进行介绍。

利用Biztalk Flat File Disasembler来解析CSV文件 

 

Step 4: 选择根据分隔符来解析还是使用相对位置来拆分行集,这里选择分隔符方式。

利用Biztalk Flat File Disasembler来解析CSV文件

 

Step 5: 选择行分隔字符串,由于之前选中的是前两行文本内容,分析器会把选中的所有内容作为一条字符串来进行分析,

那么每行的内容就相当于被分隔符所划分出来的Child(或者说单元格),要把一套字符串分割为两行文字,自然需要使用windows的标准换行符{CR}{LF},即回车换行符。

利用Biztalk Flat File Disasembler来解析CSV文件

 

Step 6: 设定分隔后的元素数据类型。文件头是固定的,所以采用Record类型,而内容则采用Repeating record类型,表示可以重复的记录项。

利用Biztalk Flat File Disasembler来解析CSV文件

 

Step 7: 这样就定义出来根节点中的两个子节点,Header和Record。 选择Header以进行文件头字段的设置。

利用Biztalk Flat File Disasembler来解析CSV文件

 

Step 8: 在Header的字段设置中,请选择前面提取出的样例文本的首行文字内容,注意这里不要选取回车换行符。

利用Biztalk Flat File Disasembler来解析CSV文件

 

Step 9: 同样采用分隔符方式来进行字段级别的拆分。

利用Biztalk Flat File Disasembler来解析CSV文件

 

Step 10: 这里的Child就是首行中的以逗号分隔的字段,按照CSV标准必须采用","进行分隔。

非CSV标准的结构化平板文件可以选择采用别的符号来进行字段的拆分,如tab等 。

利用Biztalk Flat File Disasembler来解析CSV文件

 

 Step 11: 按照样例内容提示来设置的Header节点在即将生成的Flat File Schema中的对应节点名称,已经xml中的元素类型(element或attribute)和数据类型。

利用Biztalk Flat File Disasembler来解析CSV文件

 

Step 12: 按同样的方式来对Record节点进行设置。

利用Biztalk Flat File Disasembler来解析CSV文件

 

Step 13: 通过向导设置完毕的Flat File Schema。

利用Biztalk Flat File Disasembler来解析CSV文件

 

 Step 14: 这一步比较关键,按照CSV标准,双引号属于特殊的字符,包含在双引号中的文字包括逗号分隔符会被当做文本内容进行处理,且文本中的双引号需要成对的双引号进行转义

如样例文档中第4行第2个单元格中的文本:"xbox 360, ""elite"" edition"

按CSV标准应该被解析为xbox 360, "elite" edition这样的内容。

在生成的Flat File Schema中,在其Schema层的属性栏中需要设置Default Wrap Character为双引号。

这样就将整个schema中的包装符号设置为了双引号。

利用Biztalk Flat File Disasembler来解析CSV文件   

但是还需要在每个字段中设置其Wrap Character Type的属性为Default Wrap Character,才能实际应用到每个单元格上。

(这一点设置上感觉比较麻烦,但毕竟Flat File Schema并不只是设计用于CSV这种需要Wrap Character的文件格式)

利用Biztalk Flat File Disasembler来解析CSV文件

 通过将schema文件的Generate Instance Output Type属性设置为“Native”即可测试看生成的xml文件是否正确。

利用Biztalk Flat File Disasembler来解析CSV文件

 

Step15: 创建自定义的Pipeline,将Flat file disassembler组件从工具箱中拖入Disasseble stage中,

然后将 Flat file disassembler组件的Document Schema属性设置为刚刚创建的csv schema。

利用Biztalk Flat File Disasembler来解析CSV文件

利用Biztalk Flat File Disasembler来解析CSV文件


 到此就已经创建完成能够解析CSV Flat File的自定义Pipeline组件,

在将其部署到Biztalk Application之后,只要在需要使用的Receive Location中选择此Pipeline即可。

 

 

转载于:https://www.cnblogs.com/agassi001/archive/2008/10/31/1321762.html

相关文章:

  • 2022-12-23
  • 2021-12-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-16
  • 2021-09-17
猜你喜欢
  • 2022-01-08
  • 2021-07-16
  • 2021-12-31
  • 2021-05-24
  • 2021-11-26
相关资源
相似解决方案