在前一节中,我们制作了一个很简单的例子,不涉及到任何消息的Mapping以及解析。大家一定会觉得奇怪,难道Biztalk就是这样处理消息的吗?答案当然为不是,Biztalk当然没有这样简单。

 

我们先抛开Biztalk不谈。大家都知道,任何企业在任何领域都会有企业的核心价值。那什么是企业的核心价值。当然就是企业的一些业务方法。那又是什么东西把企业中间的业务方法串联在一起的呢?答案是唯一的,业务数据。所以企业内部有价值的业务数据一定是符合企业内部规范的,且排列有序的多组数据。但是真正在日常企业活动中,当一些外部数据流入企业时,真的都能符合本企业的业务规范吗?当然不可能。所以我们需要有一种统一的工具来统一企业从外部接受来的数据格式。在Biztalk中我们使用XML。

 

在biztalk中,XML作为Biztalk Message的消息载体存在。前面我们讲到的Biztalk会在Adapter中使用pipeline将外部数据拆分成消息,其实就是在Pipeline中按照Schema的定义将外部数据转换成XML形式的消息的过程。

 

XML Schema的作用我就不多重复了,都是些比较老的概念。下面我们来看下如何使用vs 2005中定义Schema。

 

1. 打开VS2005,新建一个空的Biztalk项目。

2. 在新建的项目下添加新项。

3. 选择Schema Files选项。会看到4个项。分别是Schema, Property Schema, Flat File Schema, Flat File Schema Wizard.

 

下面我们来一种一种介绍

(1) Schema:普通的XML相对应的Schema.

(2) Property Schema:对Schema中的字段的说明(我的理解),多用于Schema中字段的提升。(在Orchestration中会介绍到)

(3) Flat File Schema:专门针对平面文件开发的Schema。所谓平面文件也就是我们一直都使用CSV形式的文件,当然不仅限于CSV。

(4) Flat File Schema Wizard:针对平面文件开发的Schema创建工具。也是我们介绍的重点。

 

上面所说的4种方式中,前3种相对比较明显,就是按照数据的结构进行一个Schema的创建工作,大家作为在研究,学习Biztalk的高层次开发人员应该可以很快的领悟。:) 所以我就不浪费大家时间了,关键是Flat File Schema Wizard。一下我给出一个例子。相信大家会很快明白。

 

1. 现在本地创建一个类似CSV形式的文件。内容如下。

a,b,c,d,e

1,2,3,4,5

A,B,C,D,E

5,4,3,2,1

将以上文本另存为文件。后缀名随意。

 

2. 新建一个Flat File Schema Wizard。并将文件指向上述保存的文件。Record Name指定为相应的XML根节点名称。其他不修改。点击下一步

image

2. 我们会看到类似以下界面

image

大家要注意。在这一步中我们是要进行消息的拆分。而不是消息列的拆分。所以请确保至少有2条目标记录被选中。点击下一步

3. 接下来我们会看到以下界面

image

这个界面上的2个选项的意思为

By delimiter symbol: 根据符号决定消息的拆分

By relative positions: 根据相对位置决定消息的拆分

在此例子中我们使用第1种方式,点击下一步

4. 我们会看到以下界面

image

其中Child delimiter为消息结束符号,现在选中的为换行符。下拉列表中会有很多符号可供选择。我们就不一一介绍了。大家有需要的话google一把。在此我们不做任何修改点击下一步。

5. 我们会看到如下界面

image

在这个界面上,我们先要使用Element Name作为子节点的名称。修改后,由于我们在这个平面文件中需要将每一行都左右一条消息,故我们在Element Type中选择Repeating Record。表明第一行的内容可以作为消息列拆分的依据,或者说消息的示例,将后续列选择成Ignore。表明后续行其实都是在重复第一行,只是数据内容不一致而已。然后点击下一步。

 

 

 

 

6. 看到此界面时,表示我们已经将XML的根目录结构设置完成了,点击next进入消息列的拆分

image

7. 在以下界面中,我们先选择需要进行消息列拆分的单条消息数据。(与前面的第2步不同),点击下一步

image

8. 我们将看到如下界面,点击下一步

image

9. 在以下界面中,操作将会与前面的步骤不同,我们可以在Child delimiter中填写区分消息列的字符,以当下例子为准,我们需要填写”,”。点击下一步

image

10. 向导将会按照我们填入的区分字符将内容拆分。我们只需修改Element Name作为XML节点的名称。Type作为类型即可。点击next。大功告成。这时我们会在项目中看到新增加的xsd文件。

 

到此为止,我们已经可以按照相应的消息格式创建不同类型的Schema了。在下一节中,我们会详细介绍如何使用这些schema文件在Biztalk中去进行真正的消息拆分了