架构解析器组件(BizTalk Server 示例)
架构解析程序组件示例演示如何扩展 BizTalk Server 平面文件反汇编程序组件的功能。
平面文件拆装器组件通常要求您在设计时定义分析架构。 因此,如果希望在同一接收位置接收不同的平面文件文档,则通常在接收管道中为每个架构包含一个平面文件拆装器。 在运行时,将使用管道探测机制选择正确的拆装器组件。 但是,如果您的平面文件架构很多,这种方法的开销会很大,原因是探测每个对应的拆装器组件会降低管道的性能。
本示例的用途
架构解析器组件演示为平面文件拆装器选择架构的备用方法。 在本示例中,定义了四个架构,每个架构的消息的前两个字符是唯一的。 在唯一的前两个字符与对应的架构之间定义了一个映射。 当将输入消息发送到架构解析器组件时,架构解析器读取前两个字符,确定要用于对应文档的架构,将架构信息保存在消息上下文中,然后调用标准平面文件拆装器组件。 标准平面文件拆装器组件从消息上下文读取架构信息,然后使用该架构分析文档。
本示例所在的位置
<示例路径>\Pipelines\SchemaResolverComponent\
下表显示了本示例中使用的文件及其用途说明:
文件 | 说明 |
---|---|
SchemaResolverSample.sln | 运用自定义管道组件的 BizTalk 项目解决方案。 |
SchemaResolverSample.btproj | 运用自定义管道组件的 BizTalk 项目。 |
SchemaResolverRP.btp | 包含自定义组件的接收管道。 |
PurchaseOrder.xsd、PurchaseRequest.xsd、SalesOrder.xsd、SalesRequest.xsd | 平面文件架构。 |
POInstance.txt、PRInstance.txt、SOInstance.txt、SRInstance.txt | 对应的平面文件文档实例。 |
SchemaResolverFlatFileDasm.sln | 实现管道组件的解决方案。 |
SchemaResolverFlatFileDasm.csproj | 实现管道组件的 C# 项目。 |
SchemaResolverFlatFileDasmComp.cs | 实现管道组件。 |
SeekableReadOnlyStream.cs | 实现组件使用的可查找只读流。 |
VirtualStream.cs | 实现管道组件使用的虚拟流。 |
生成和初始化此示例
请按下面的过程生成并初始化架构解析器组件示例。
构建和初始化此示例
在命令窗口中,将目录更改 (cd) 为以下文件夹:
<示例路径>\Pipelines\SchemaResolverComponent
运行 Setup.bat 文件,该文件将执行以下操作:
生成组件。
将组件程序集复制到 BizTalk \Pipeline 组件文件夹中。
生成和部署示例 BizTalk 项目。
配置并启动接收位置和发送端口。
注意
在尝试运行本示例前,你应确认在生成和初始化过程中未报告任何错误。
运行本示例
使用以下过程可以运行架构解析器组件示例。
运行本示例的步骤
将 POInstance.txt、PRInstance.txt、SOInstance.txt 和 SRInstance.txt 文件放入接收位置 <Installation Path>\SDK\Samples\Pipelines\SchemaResolverComponent\In
观察写入 Installdir>\SDK\Samples\Pipelines\SchemaResolverComponent\Out 文件夹的<四个 .xml 文件。