【发布时间】:2011-08-31 21:51:03
【问题描述】:
我正在拼命寻找能够成功解析我从客户那里获得的预定义 ASN.1 定义的 ASN.1 编译器。
到目前为止,没有任何产品(免费或商业)能够解析基于 XER 并具有一些暂时 RXER 依赖性的定义 - 当我手动指定相关的 ASN.1 定义时(取自 RFC),编译器也会发出解析器错误。
相关代码行是(简化):
MYMSG ::= SEQUENCE
{
msgID [ATTRIBUTE] [250] UTF8String OPTIONAL,
msgType UTF8String
}
每个编译器都抱怨 [ATTRIBUTE] 令牌,所以我发现这是 RFC 4912 中定义的 ASN.X 规范的一部分,并且还依赖于 RFC 4910 中对 RXER 的支持,另请参阅 X.680-1。
问题是我尝试过的每个编译器似乎都不支持这些开箱即用的编码模式,并且无法解析 RFC 中提到的定义,例如对于 RXER 和使用此编码的所有定义,我得到:
“RXER.asn”,第 20 行 (附加基本定义):A1139W: 默认编码参考“RXER” 对于模块 'AdditionalBasicDefinitions' 是 未知和所有编码指令 在由此标识的模块内 编码参考将被忽略。
RXER 指令
(注意:所有依赖模块(如 ASN.X)都在“DEFINITIONS”标记之后立即包含指令“RXER INSTRUCTIONS”,我尝试过的任何编译器都不理解)。
我尝试了 openasn1 (www.openasn1.org) - 有趣的是,我得到的代码中有一些旧的、部分功能的 Java 映射对象是由 openasn1 生成的! - http://lionet.info/asn1c/asn1c.cgi 的在线编译器和各种商业工具,如 http://www.obj-sys.com/Cnge641Dwld/acv64kits.php 的 Objective Systems ASN1C v6.4.1(他们甚至有当前的 Eclipse 插件)、Marben http://www.marben-products.com/asn.1/tce_java.html 和 unigone http://www.unigone.com/en/products/Asn1Compiler/description
我总是收到类似这样的错误:
ASN.1 grammar parse error near line 13 (token "ATTRIBUTE"): parse error, unexpected TOK_capitalreference, expecting TOK_number
我是否遗漏了一些明显的东西,例如 IMPORT 或其他定义/编译器标志?
【问题讨论】:
-
更新:我刚刚从 Objective Systems 的快速支持中得知(谢谢!)“[ATTRIBUTE] 标签是扩展 XER 规范的一部分”,似乎没有多少编译器支持.有人知道更多吗?
标签: encoding mapping protocols asn.1