2.1 数据元、代码、复合数据元、段以及报文的基本概念
UN/CEFACT从20世纪90年代末至今分别为国际贸易电子数据交换(EDI)标准化推出了两个建议书和两套标准,它们又由 229 项具体的标准组成。为了研究的方便,我们在前面已经将它们分成应用层面、技术层面以及法律层面三大类,并建立了标准体系框架。应用层面的标准主要是数据标准,数据标准是EDI标准的核心,UN/CEFACT非常重视数据标准,在EDI的229项标准中有216项是数据标准,它们每年更新两次。构成EDI报文的数据结构为层次结构,又称为树状结构,我们把这种方式组成的数据称为结构化数据。EDI报文的数据结构分为 5 个层,最上层为报文,中间 3 层从上往下依次为段、复合数据元、数据元,最下层为代码。应用层面的标准化工作从报文、段、复合数据元、数据元以及代码5个方面开展,通常称为数据标准化的5要素。
在学习EDI数据元标准化之前我们先学习一下构成EDI报文的数据——数据元、代码、复合数据元、段以及报文的基本概念。
数据元是表示概念的一类数据,其特性可由支持信息交换的一组数据元属性来表示,或者说数据元是一组可识别和可定义的数据基本单元。一般来说,数据元由数据元的名称、属性、表示三部分组成。数据元是表示数据的最小单元,它用一组属性描述其定义、标识、表示和允许值的一个数据单元。组成数据元规范的基本属性分为标识类属性、定义类属性、关系类属性、表示类属性、管理类属性,当然还可以根据需要增加扩展属性。数据元属性应依照一种标准方式来注册和控制,以便数据元字典中的数据元在信息交换中保持一致性,并且能够在不同的数据管理环境中进行数据元管理。
下面是UN/EDIFACT数据元的实例。
1000 单证名称 Document name 说明: 单证的名称。 表示: an..35 -------------------------------------------------------------------- 1001 单证名称代码 Document name code 说明: 规定单证名称的代码。 表示: an..3 --------------------------------------------------------------------
1003 报文类型代码 Message type code 说明: 规定报文类型的代码。 表示: an..6 -------------------------------------------------------------------- 1004 单证标识符 Document identifier 说明: 单证的标识。 表示: an..35 -------------------------------------------------------------------- 1049 报文节代码 Message section code 说明: 规定报文节的代码。 表示: an..3 -------------------------------------------------------------------- 1050 顺序位置标识符 Sequence position identifier 说明: 顺序指示位置的标识。 表示: an..10 -------------------------------------------------------------------- 1052 报文项标识符 Message item identifier 说明: 报文中的项的标识。 表示: an..35
在上面的数据元中,给出了数据元的名称、定义、表示以及标记,这些已经构成了数据元的基本要素。用数据元表示数据的最大好处是数据的规范性和数据含义理解的一致性。
信息编码是将事物或概念(编码对象)赋予具有一定规律、易于计算机和人识别处理的符号,形成代码元素集合。代码元素集合中的代码元素就是赋予编码对象的符号,即编码对象的代码值。
所有类型的信息都能够进行编码,如关于产品、人、国家、货币、程序、文件、部件等各种各样的信息。
信息编码包含的内容有数据表达成代码的方法、数据的代码表示形式、代码元素集合的赋值。
信息编码的主要作用有标识、分类、参照。
标识的目的是要把编码对象彼此区分开,在编码对象的集合范围内,编码对象的代码值是其唯一性标志;信息编码的分类作用实质上是对类进行标识;信息编码的参照作用体现在编码对象的代码值可作为不同应用系统或应用领域之间发生关联的关键字。
EDIFACT代码表中的代码均来自EDIFACT数据元,请看下面的实例。
1000 单证/报文名称 Document/message name 说明: 说明单证/报文功能的自然语言标识符。 表示: an..35
-------------------------------------------------------------------- 1001 单证/报文名称,代码型 Document/message name, coded 说明: 用代码表示的单证/报文标识符。 表示: n..3
从上面的实例中,我们可以看出单证/报文名称有两种表示方式,一种是文本表示,另一种是代码表示。第1种文本表示时,字符数限制为35,第2种代码表示时,代码为3位阿拉伯数字。用代码表示数据的最大好处是数据含义理解的一致性和唯一性,尤其方便计算机处理,因此在EDI数据交换中大部分数据都是用代码表示的。
那什么是复合数据元?在某些情况下给出的信息由若干个数据元组成,如个人联系信息由电话号码、通信地址、电子邮件等数据元组成,我们把由若干数据元组成的集合称为复合数据元。组成复合数据元的数据元称为成分数据元。因此,可以将复合数据元定义为已标识、命名和结构化的、在功能上相互关联的成分数据元的集合。下面看一下复合数据元的例子。
C001 运输工具 TRANSPORT MEANS 说明: 标识运输工具种类的代码和/或名称。 010 8179 运输工具描述代码 Transport means description code 020 1131 代码表标识代码 Code list identification code 030 3055 代码表负责机构代码 Code list responsible agency code 040 8178 运输工具描述 Transport means description
通过上面的例子我们不难看出,构成复合数据元的成分实际上就是数据元和代码。
下面我们再看一下什么是段。UN/EDIFACT 是这样定义段的:一个已标识、命名和结构化的、在功能上相互关联的复合数据元和(或)独立数据元的集合。实际上段就是由若干复合数据元组成的集合。
ADR 地址 ADDRESS 功能: 说明一个地址。 010 C817 地址用法 ADDRESS USAGE 3299 地址用途代码 Address purpose code 3131 地址类型代码 Address type code 3475 地址状态代码 Address status code 020 C090 地址细目 ADDRESS DETAILS 3477 地址格式代码 Address format code 3286 地址成分描述 Address component description 3286 地址成分描述 Address component description 3286 地址成分描述 Address component description 3286 地址成分描述 Address component description
3286 地址成分描述 Address component description 030 3164 城市名称 CITY NAME 040 3251 邮政编码标识代码 POSTAL IDENTIFICATION CODE 050 3207 国家(地区)标识符 COUNTRY IDENTIFIER 060 C819 国家行政区划细目 COUNTRY SUBDIVISION DETAILS 3229 国家行政区划标识符 Country subdivision identifier 1131 代码表标识代码 Code list identification code 3055 代码表负责机构代码 Code list responsible agency code 3228 国家行政区划名称 Country subdivision name 070 C517 地点标识 LOCATION IDENTIFICATION 3225 地点标识符 Location identifier 1131 代码表标识代码 Code list identification code 3055 代码表负责机构代码 Code list responsible agency code 3224 地点名称 Location name
通过上面的例子我们不难看出,构成段的成分最终还是落在了数据元和代码上。
UN/EDIFACT 将报文定义为一个已标识、命名和结构化的在功能上相互关联的段的集合,它涵盖了某一特定交易类型的需求。报文由段组成,段由复合数据元组成,复合数据元由数据元组成,而对于数据元来说其值可以是文本,也可以是代码。因此,我们不难发现数据的核心就是数据元。