Edifact发行字符`?`本身

问题描述 投票:0回答:2

使用标准定界符,给出内容的EDIFACT消息片段:

AAA?BBB

应如何呈现?

AAABBB

AAA?BBB

对我来说,UN specification尚不清楚:

  УФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФХФФФФФФФФФФФФФФФХФФФФФФФФФФФФД
  Г       Release character         Г               Г            Г
  Г (To release any of the charac-  Г       ?       Г            Г
  Г ters + ; ' ?  appearing in user Г(question mark)Г  NOT USED  Г
  Г data in Level A syntax.         Г               Г            Г
  Г It MUST immediately precede     Г               Г            Г
  Г the character in question       Г               Г            Г
  Г and signifies that the NEXT     Г               Г            Г
  Г single character is not to      Г               Г            Г
  Г be interpreted as a syntax      Г               Г            Г
  Г separator, terminator, or       Г               Г            Г
  Г release character.)             Г               Г            Г
  РФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФСФФФФФФФФФФФФФФФСФФФФФФФФФФФФй

它声明它用于释放某些字符,但是当下一个字符不是特殊字符时该怎么办?

syntax escaping edifact
2个回答
0
投票

通常将其渲染为AAA?BBB。 UNOB语法集中允许使用问号,而UNOA则不允许。除非它转义了定界符,否则它将被视为内容的一部分。

在异常情况下,B是定界符,假设是一个组件定界符,然后假设您通过应用分隔符表示内容,则它将呈现为AAAB


0
投票

使用UNOA字符集(A级语法),AAA?BBB无效EDIFACT。

如果我是从头开始编写解析器,则将其标记为语法错误,并允许以下一项或多项:

  • 允许消息处理继续发出警告并将其呈现为已接收(即AAA?BBB)-本质上是假设发送方打算发送AAA??BBB
  • 拒绝消息并将否定的CONTRL和/或APERAK消息发送回发送者,指示遇到的错误的位置和类型。

但是我不是从头开始编写解析器,而且我不确定最常用的解析器(例如Java的Smooks,Python的Bots,以及Biztalk和Azure Logic Apps内部的任何工具)如何处理此输入。我的猜测是,有些人不会抛出错误,并且会将输出呈现为"AAABB""AAABBB""AAA?BBB"甚至""

© www.soinside.com 2019 - 2024. All rights reserved.