基于UBL和纯XML数据库的EDI系统设计与实现(1)(2)
2014-01-07 01:15
导读:图1 订舱报文UBL组件模型 这些信息单元都是基于UBL中定义的基本商业信息实体(Basic Business Information Entity)。我们也可以把几个相关的基本业务信息实体组

图1 订舱报文UBL组件模型
这些信息单元都是基于UBL中定义的基本商业信息实体(Basic Business Information Entity)。我们也可以把几个相关的基本业务信息实体组成一个集合商业信息实体(Aggregate Business Information Entity),如订舱货物信息可以由货物名称、包装类型、件数、体积、毛重、净重这六个基本业务信息实体组成一个集合业务信息实体,称Cargo Line Item。最后一个订舱报文的形成就可以通过把有关的基本商业信息实体或集合商业信息实体按一定顺序拼在一起。同时,这些基本/集合商业信息实体都是可以在其他报文中重用的。只要我们建立起了这些组件库,我们的中间XML报文格式定义就像拼装零件一样简单,这样我们的报文格式也易于管理和维护。在UBL 1.0版本中也给出了许多可重用的基本组件库,下图(图2)是以XML Schema形式给出的Party信息实体,

图2 Party信息实体的Schema定义
在实际的报文中如发货人、收货人、通知人等的定义都是以Party信息实体为基础,并进行定制而成的,我们也可以把自己定制而成的信息实体根据需要放入自己的基本组件库。

图3 实际中Shipper_Party信息实体的构成图
另外,我们把每一个基本信息实体当作一个小模块,用XSL语言把每个小模块定义好在WEB上的显示方式。当我们要以WEB方式显示一个报文时,可以把用到的信息实体对应的XSL模块重新在jsp或asp中构建一起,根据需要调整各模块间的顺序或格式大小,这样一个报文就可以方便以WEB方式展现给客户。报文交换平台需要提供给客户报文查询功能,按照这样方式,客户查询出的报文可以直接以WEB方式显示,而且实现简单,可以达到显示风格统一。我们需要在EDI系统中建立一套UBL定义的报文格式标准,作为EDI系统中的中间报文格式,利用UBL的特性,我们建立和维护这套报文标准就方便许多。用户的报文格式都转换成中间的报文格式,然后再把中间的报文格式转换成接收方可以接收的格式。