I'm working on a decoder for the NISO Z39.50 protocol. This is an ASN.1/BER protocol used in the library automation community.
There some things I'm having trouble figuring out how to configure, and there are also a bunch of things which have never been documented in asn2wrs. I'm wondering if one or more of the undocumented things could help me.
Here's a problematic type definition:
AttributeElement ::= SEQUENCE{
attributeSet [1] IMPLICIT AttributeSetId OPTIONAL,
attributeType [120] IMPLICIT INTEGER,
attributeValue CHOICE{
numeric [121] IMPLICIT INTEGER,
complex [224] IMPLICIT SEQUENCE{
list [1] IMPLICIT SEQUENCE OF StringOrNumeric,
semanticAction [2] IMPLICIT SEQUENCE OF INTEGER OPTIONAL}}}
The issue is that the "attributeType" values are actually enumerations chosen based on the value of "attributeSet". I see how I can supply a fixed set of strings using FIELD_ATTR (poorly documented), but I can't figure out how to get control so I could specify different sets of strings. (This might be done by specifying alternate hf values, perhaps.)
I think I could hard-code the type specifying my own choice array, but I'm wondering if there's a better way.