2011-05-24 18 views
1

我拼命尋找一個ASN.1編譯器,將成功地解析一個預定義的ASN.1定義從顧客得到了支持。ASN.1編譯器用於擴展XER/RXER

迄今爲止,沒有任何產品(免費或商業)能夠解析基於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行 (AdditionalBasicDefinitions):A1139W: 的默認編碼參考 'RXER' 該模塊 'AdditionalBasicDefinitions' 是通過此 編碼引用標識的模塊內 未知和所有的編碼指令 將被忽略。
RXER指令

:所有依賴模塊等ASN.X包括指令「RXER指令」之後立即「定義」 -tag,它不被任何編譯器我試圖理解)。

我試圖openasn1(www.openasn1.org) - 有趣的是,我有我有,是由openasn1生成的代碼有些老,部分Java功能映射對象! - 在http://lionet.info/asn1c/asn1c.cgi和各種類似的目標體系ASN1C v6.4.1商業工具的在線編譯器在http://www.obj-sys.com/Cnge641Dwld/acv64kits.php(他們甚至有一個當前的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 

我缺少像進口或其他定義/編譯器標誌明顯的東西?

+0

更新:我剛剛被Objective Systems的快速支持(謝謝!)告知「[ATTRIBUTE]標記是擴展的XER規範的一部分」,這並不是很多編譯器似乎支持的。有人知道更多嗎? – Gregor 2011-05-24 14:09:14

回答

0

我設法編譯模式,並生成所需的Java映射類。我不得不使用商業OSS Nokalva compiler,因爲我嘗試的所有免費工具在(E)XER編碼的模式上失敗。 也有在我收到的架構的一些錯誤,所以這裏是我必須做的:

  1. 首先我加在定義線的XER的指令與通常的標籤一起 指令:

    定義XER指令AUTOMATIC TAGS ::在頁腳=

  2. ,我添加了XER編碼指令:

    編碼控制XER GLOBAL-DEFAULTS 改性編碼

  3. 使用XER編碼的情況下,你必須明確地指定標籤,以避免語法歧義:

    [屬性]中[標籤:0] 代替模糊的定義 [ATTRIBUTE] [0]

所有這些p roblems通過在EXER-encoding上諮詢這個漂亮的文章得到解決,肯定是一個很好的閱讀,並感謝Nokalva這個有用的文檔!