使用标准定界符,给出内容的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.) Г Г Г РФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФСФФФФФФФФФФФФФФФСФФФФФФФФФФФФй
它声明它用于释放某些字符,但是当下一个字符不是特殊字符时该怎么办?
通常将其渲染为AAA?BBB。 UNOB语法集中允许使用问号,而UNOA则不允许。除非它转义了定界符,否则它将被视为内容的一部分。
在异常情况下,B是定界符,假设是一个组件定界符,然后假设您通过应用分隔符表示内容,则它将呈现为AAAB
使用UNOA字符集(A级语法),AAA?BBB
无效EDIFACT。
如果我是从头开始编写解析器,则将其标记为语法错误,并允许以下一项或多项:
AAA?BBB
)-本质上是假设发送方打算发送AAA??BBB
但是我不是从头开始编写解析器,而且我不确定最常用的解析器(例如Java的Smooks,Python的Bots,以及Biztalk和Azure Logic Apps内部的任何工具)如何处理此输入。我的猜测是,有些人不会抛出错误,并且会将输出呈现为"AAABB"
,"AAABBB"
,"AAA?BBB"
甚至""
。