1、中华人民共和国国家标准用于行政商业和运输业电子数据交换的应用级语法规则语法版本号第 部分 批式电子数据交换语法和服务报告报文 报文类型为发布 实施国家质量技术监督局 发布前言本标准等同采用 用于行政商业和运输业电子数据交换的应用级语法规则 语法版本号 第 部分 批式电子数据交换语法和服务报告报文报文类型为系列标准在用于行政商业和运输业电子数据交换的应用级语法规则 语法版本号的总标题下 目前包含下列 个部分第 部分 公用的语法规则及语法服务目录第 部分 批式电子数据交换专用的语法规则第 部分 交互式电子数据交换专用的语法规则第 部分 批式电子数据交换语法和服务报告报文报文类型为第 部分 批式电子
2、数据交换安全规则真实性完整性和源抗抵赖性第 部分 安全鉴别和确认报文 报文类型为第 部分 批式电子数据交换安全规则保密性第 部分 电子数据交换中的相关数据第 部分 密钥和证书管理报文 报文类型为将来还有可能增加新的部分系列标准对应于 第四版虽然 替代了早期各版 但根据 的有关规定 用户仍可使用早期各版 有鉴于此 我国于 年根据 的 版 版和 版制定的亦可在今后一段时间内继续使用 因此本系列标准的发布与实施不替代本标准的附录 为标准的附录本标准为我国第一次制定本标准由中国标准研究中心提出本标准由全国电子业务标准化技术委员会归口本标准由中国标准研究中心海关总署信息中心交通部水运科学研究所共同起草本
3、标准主要起草人邓洁程女范 李颖胡涵景魏宏何瑜黄德玉前言国际标准化组织 是一个世界性的各国标准机构 国家成员团体 联盟 国际标准的制定工作一般通过 技术委员会完成 对某个已建立技术委员会的项目感兴趣的每个成员团体 有权向技术委员会表述意见 任何与 有联络关系的官方和非官方的国际组织都可直接参与制定国际标准 与 国际电工委员会 在电工技术标准的所有领域密切合作由技术委员会正式通过的国际标准草案须经各成员团体投票表决作为一项国际标准发布要求至少 的成员团体投票赞成本国际标准由联合国欧洲经济委员会 贸易部 作为 的组成部分起草由 行政商业和工业中的单证和数据元技术委员会通过快速表决程序 正式表决通过鉴
4、于本标准替代了早期各版并在交换头 段的必备型数据元 语法版本号 中用 来标识本版本因此继续使用早期发布的各版语法规则的交换应使用下列语法版本号以便彼此区别语法版本号年修订并重印版 语法版本号年修订并重印版及其 年第 号修订单 语法版本号在用于行政 商业和运输业电子数据交换的应用级语法规则语法版本号 的总标题下由下列部分组成公用的语法规则及语法服务目录批式电子数据交换专用的语法规则交互式电子数据交换专用的语法规则批式电子数据交换语法和服务报告报文报文类型为批式电子数据交换安全规则真实性 完整性和源抗抵赖性安全鉴别和确认报文报文类型为批式电子数据交换安全规则保密性电子数据交换中的相关数据密钥和证书
5、管理报文报文类型为将来还有可能增加新的部分附录 为标准的附录引言本标准提供了自动制作 报文的功能该报文用于应答所收到的交换 组报文或包以确认正确的语法结构 或拒绝不正确的语法结构在拒绝的情况下本报文列出语法错误或不支持的功能此外本报文也可只用于指出收到交换本标准是在由 开发和出版的与 的早期版本配套的一个类似的服务报文的基础上开发的中华人民共和国国家标准用于行政 商业和运输业电子数据交换的应用级语法规则 语法版本号第 部分 批式电子数据交换语法和服务报告报文 报文类型为国家质量技术监督局 批准 实施范围本标准定义了批式电子数据交换语法和服务报告报文一致性与一个标准一致意味着支持其所有需求 包括
6、所有选项 如果不是所有选项都被支持 则任何一致性声明都应包含一个说明 用于标识那些被声明为与其一致的选项如果所交换的数据的结构和表示符合本标准中规定的语法规则 则这些数据处于一致性状态当支持本标准的设备能够创建和 或解释其结构并表示与本标准一致的数据时 这些设备处于一致性状态与本标准的一致应包含与 和 的一致当在本标准中标识出在相关标准中定义的条款时这些条款应构成一致性判定条件的组成部分引用标准下列标准所包含的条文 通过在本标准中引用而构成为本标准的条文 本标准出版时所示版本均为有效 所有标准都会被修订 使用本标准的各方应探讨使用下列标准最新版本的可能性用于行政商业和运输业电子数据交换的应用级
7、语法规则语法版本号第 部分公用的语法规则及语法服务目录用于行政商业和运输业电子数据交换的应用级语法规则语法版本号第 部分批式电子数据交换专用的语法规则报文术语和定义本标准采用的定义见 的附录 此外 本标准还给出了下列仅适用于 报文的术语 当本章中的词或词组以加黑形式出现时 意指该词或词组在本章中或 的附录 中已定义确认指主交换的接收方已收到所确认的主交换的引用层已查明所确认的引用层中没有阻碍进一步处理的致命语法错误已查明所有确认的服务段 或其部分 在无报告错误的情况下 在语义上是正确的即将采取所确认的服务段 或其引用层 中请求的行动有责任在下列情况下通过其他方式而不是发送 报文来通知发送方后来
8、在相关部分中又检查到上述语法或语义错误或在提交的 报文中确认完某一部分之后又由于其他原因无法对该部分进行处理已采取合理的预防措施以保证能检查出这类错误并通知发送方交换接收指示指主交换的接收方已收到主交换对已检查过的主交换的某些部分进行确认以保证复制到 段中的数据元在语法上是正确的有责任将对主交换其他部分的确认或拒绝情况通知发送方已采取合理的预防措施以保证发送方能收到通知拒绝指主交换的接收方由于 报文中指出的原因而无法确认主交换或其有关部分不对主交换中被拒绝的那部分所包含的业务信息采取进一步行动报告指出对主交换或其某一部分所采取的行动确认或拒绝报告层指 报文中用于报告对应的引用层的段报告层是 和
9、 段引用层报文的结构基于 和 这五个段 其中每个段都对应主交换的某一部分 主交换的这些部分分别是和 段以及用于保护主交换的安全段对应于 段和 段以及用于保护组的安全段 对应于 段完整的报文或包以及用于保护报文或包的安全段对应于 段报文体中的段 对应于 段独立数据元复合数据元或成分数据元 对应于 段主交换的这些部分称为引用层主交换指 报文所应答的交换批式电子数据交换语法和服务报告报文的使用规则功能定义报文是一个通过错误指示从语法上对所收到的交换组报文或包进行确认或拒绝的报文报文适用于确认或拒绝所收到的交换组报文或包并列出其中包含的语法错误或不支持的功能 或仅指出收到交换应用领域报文适用于 语法规
10、则 第四版 并用于应答按该版本的第和或 部分建立的交换原则参与方之间应商定所支持的 报文类型和功能并通过 段中的确认请求或在交换协议中指出对 报文的支持交换的发送方 可在 段中请求接收方 作出应答应答的内容是交换已收到而且在语法上是正确的服务段的语义是正确的 接收方支持服务段中请求的功能 另外该请求也可在交换伙伴间商定的交换协议中规定从 到 的交换称为主交换应答应以一个或两个 报文的形式从主交换的接收方 发往主交换的发送方报文具有下列功能指出接收方根据对主交换语法检查的结果所采取行动 或只给出交换接收指示在第一种情况下 行动 确认或拒绝指出对接收的整个交换进行语法检查的结果 行动可以针对整个交
11、换也可以针对交换的某一部分因此某些报文包或组可被确认而其他一些报文 包或组可被拒绝 报文应指出对主交换的每个部分所采取的行动在第二种情况下 只提供交换接收指示在对交换或交换的某一部分进行语法检查时 应遵循下列规则语法规则 包括服务段使用规则所收到的报文类型的语法规则报文不适用于报告应用层的错误或针对其所采取的行动 即报告不涉及用户段中的语义信息 因此通过 报文指出的确认并不是指已接受或认可报文或包的业务内容即使交换或其某一部分包含语法错误接收方也可选择对它进行确认 并报告这些错误 这些错误是否为非致命错误应由接收方决定 例如接收方可视情况确认超出了规定最大长度的数据元由主交换的接收方生成的含有
12、 报文的交换应在其 段中包含与主交换相同的发送方和接收方标识只是主交换的发送方变为该交换的接收方 主交换的接收方变为该交换的发送方参与方可商定即使在主交换的 段中没有请求确认 也可发送 报文来拒绝有错的主交换或其某一部分另外不能以组的形式发送 报文报文和主交换的关系最多可发送两个 报文来应答所收到的交换 第一个报文为可选型的 它给出交换接收指示 第二个报文报告对主交换进行语法检查后所采取的行动 段中的行动代码应指出该报文是第一种类型还是第二种类型如果在主交换的 段中提出了确认请求 则应发送第二类 报文来报告对主交换进行语法检查的结果除非主交换只包含 报文 第一类报文是可选型的意味着如果最终要发
13、送报文 通常应发送第二类 报文除非主交换只包含 报文 第一类报文的 段不用于报告错误 即当需要通过 段报告错误时只能发送第二类报文报文只报告对一个主交换所采取的行动即它不涉及多个主交换或其某些部分在提供交换接收指示的 报文中不应使用段组 和段组 如果主交换包含 由报文和或包的构成的 组 则只用 报文的段组 如果主交换中不包含组则只用 报文的段组当需要发送 段组段组 或段组 时对每个收到的报文或包最多只能发送一个 段组所有报告层的顺序应与其对应的主交换中的引用层的顺序相同行动代码的用法主交换中与 和 段对应的引用层可被确认或拒绝报文还提供了确认或拒绝整个交换或组而无需引用其中的报文包或组的方法行
14、动确认或拒绝应由 和 段中的行动代码来指出 该代码可表示对对应引用层所采取的行动 在某些情况下 也可表示对更低的引用层所采取的行动如果 报文中包含与主交换中某一引用层对应的段则称该引用层被显式报告了 如果要显式报告较低的引用层则需确认该引用层以上的所有引用层如果对某一引用层所采取的行动是由主交换中更高的引用层所对应的 或 段来报告的则称该引用层被隐式报告了 例如如果由 段中的行动代码来表示对整个主交换的拒绝 则其中的组和所有报文或包就被隐式拒绝了 另外 当 或 段中的行动代码指出对下一层的报文或包的确认并且没有出现拒绝这些报文或包的 段时 这些报文或包就被隐式确认了在 报文中行动代码 或 只用
15、于报告对主交换进行了完全检查之后所采取的行动 行动代码 只用于表示收到交换 这些代码在数据元 行动代码型 中规定语法错误报告报文的报告层是通过其中的数据元来报告错误的 这些数据元标识错误在主交换中的位置并指出错误的性质每个报告层即 和 段只能报告一个错误 如果在某一报告层所对应的引用层上检查出一个以上的错误 主交换的接收方可以自由选择报告哪个错误 不能发送多个报文来报告多个错误并且每一个引用层所对应的报告层最多只能出现一次即使确认了包含错误的引用层也可报告错误 用户还应该意识到有些语法错误可改变数据的语义当确认有语义错误的数据时主交换的接收方应对其后果负责建议尽可能精确地标识错误 如果定义了精
16、确的错误代码 就不应再使用通用的 和不精确的 错误代码 同样错误的位置也应尽可能使用最低的报告层来尽量精确地标识不能把较低的报告层上的错误代码 复制 到较高的报告层 否则可能出现这种情况在 段中用错误代码报告了数据元错误而在 段中又重复出现了相同的错误代码 在这种情况下 标识该错误的错误代码只能出现在 段中 该规则适用于所有报告层报文的接收方在标识错误的精确位置和性质时通常需要按主交换的传输格式访问主交换从主交换复制到 报文的数据元中的错误报文包含若干个需从主交换复制的必备型数据元 如果主交换中的某个数据元遗失或在语法上是无效的 则无法生成一个在语法上有效的 报文因此这样的错误就不应该用报文而
17、应通过其他方法来报告 除非处理 报文的所有参与方已在交换协议中商定允许将出错的数据元复制到 报文中行动的冗余报告如果在 段中使用了行动代码 同时又发送了 或 段来确认报文包或组也是允许的 同样当 段中使用行动代码 时还可以用冗余的 段来确认组中的报文或包重新传输决定是否需要重新发送交换 组 报文或包的条件应由交换双方事先商定不在 报文规定的范围之内报文的确认或拒绝不应发送第二类 报文确认或拒绝来应答只包含 报文的交换 报文中的错误应通过其他方式来报告如果所应答的交换中包含一个或多个 报文 则应像所收到的交换中没有 报文那样来生成用作应答的 报文如果交换中既有 报文又有其他类型的报文则对该交换中
18、某些部分的隐式确认或拒绝不适用于 报文报文定义数据段说明阅读本节时应参考标有必备型 条件型和重复次数的段表下列各段中的数据元的有关信息在 的附录 的 中给出报文头开始并唯一标识报文的服务段 批式电子数据交换的语法和服务报告报文的报文类型代码是注 符合本标准的语法和服务报告报文必须在 段的 中包含下列数据数据元交换应答标识所应答的交换 指出收到交换以及对 和 段的确认或拒绝并标识与这些段有关的错误 当 或 段出现在交换层时 该段可标识与这些段有关的错误 另外该段还可通过行动代码指出对组 报文或包所采取的行动主交换的标识应通过将其交换发送方交换接收方和交换控制参考复制到本段中的相同数据元中的方式来
19、完成 该段还可标识出错或丢失的或 段 如果没有标识段 则说明错误与整个交换有关段组对 段所标识的主交换中的报文或包作出应答 该段组只有在主交换不包含组时方可使用报文包应答标识主交换中的报文或包 指出对报文或包的确认或拒绝并标识与 和段有关的错误 当安全段 或 段出现在报文或包这一层时本段还可标识与这些段有关的错误报文的标识应通过将其报文标识符和报文参考号复制到本段中相同数据元中的方式来完成该段还可标识出错或丢失的 或 段 如果没有标识段则说明错误与整个报文有关包的标识应通过将其参考标识和包参考号复制到本段中相同数据元中的方式来完成 该段还可标识出错或丢失的 或 段 如果没有标识段则说明错误与整
20、个包有关段组对段组 中的 段所标识的报文中的出错段作出应答段错误指示标识报文中的段指出该段有错并标识与整个段有关的错误数据元错误指示对段组 中 段所标识的段中出错的独立数据元 复合数据元或成分数据元进行标识并指出错误的性质段组对 段所标识的主交换中的组作出应答 本段组只有在主交换包含组时方可使用组应答标识主交换中的组指出对 和 段的确认或拒绝 并标识与这些段有关的错误 当安全段 或 出现在组这一层时 本段还可标识与这些段有关的错误 另外本段还可通过行动代码指出对组中的报文或包所采取的行动组的标识应通过将其应用发送方标识应用接收方标识和组参考号复制到本段中相同数据元的方式来完成 本段还可标识出错
21、或丢失的或 段 如果未标识段 则说明错误与整个组有关段组对段组 所标识的组中的报文或包作出应答报文包应答标识主交换中的报文或包 指出对报文或包的确认或拒绝 并标识与 和段有关的错误 当安全段 或 出现在报文或包这一层时本段还可标识与这些段有关的错误报文的标识应通过将其报文标识符和报文参考号复制到本段中相同数据元的方式来完成本段可标识出错或丢失的 或 段 如果未标识段则说明错误与整个报文有关包的标识应通过将其参考标识和包参考号复制到本段中相同数据元的方式来完成 本段还可标识出错或丢失的 或 段 如果未标识段则说明错误与整个包有关段组对段组 中的 段所标识的报文中出错的段作出应答段错误指示标识报文
22、中的段指出该段有错并标识与整个段有关的错误数据元错误指示标识段组 中的 段所标识的段中出错的独立数据元 复合数据元或成分数据元 并指出错误的性质报文尾结束报文给出报文中段的总数和报文的控制参考号数据段索引 按段标记的字母顺序排列数据元错误指示组应答交换应签报文包应答段错误指示报文头报文尾报文结构段表位置 标记名称状态 重复次数 注释报文头交换应答段组报文 包应答段组段错误指示数据元错误指示段组组应答段组报文 包应答段组段错误指示数据元错误指示报文尾注释有一项或无 即段组 和 中最多只有一个段组出现附录标准的附录错误代码表表 描述错误代码及其所适用的报告层表代 码 代 码名称段不支持的语法版本或语法级交换接收方不是实际规定的接收方无效值丢失该位置不支持的值该位置不支持成分太多无协议未规定的错误该字符不能作为服务字符无效字符无效的服务字符未知的交换发送方太旧不支持的测试指示符重复检查参考不匹配控制计数或八位位组计数与实际收到的数字不匹配组与报文 包混用低层空在报文包或组之外的无效出现重复次数过多段组重复次数过多无效的字符类型表 完代 码 代 码名称段数据元太长数据元太短尾部是分隔符不支持的字符集不支持的封装功能说明可用不可用