The following are limitations related to EXTENDED-XER:
For BASE64
: ASN1C only supports BASE64
on octet strings. Using BASE64
with octet stings having contents constraints, open types, or restricted character strings is not supported.
For encoder's options: ASN1C decoders do not support the following encoder's options allowed by EXTENDED-XER:
encoding named bits as empty elements
encoding named numbers as empty elements
Enforcement of Encoding Instruction Restrictions: ASN1C does not check that you are using encoding instructions properly. Misapplication of encoding instructions has undefined results. For example, X.693 does not generally allow ATTRIBUTE
to be applied to a sequence type (there are a few cases where it can be); such an application produces malformed XML.
In particular, when applying ATTRIBUTE
to a restricted character string type, the type should be restricted to exclude the control characters listed in X.680 15.15.5, since these control characters are encoded as empty elements. (Another solution would be to use ATTRIBUTE
and BASE64
together, except that ASN1C does not currently support BASE64
for restricted character strings.) ASN1C will not enforce this rule, but you will get malformed XML if you try to encode a string having control characters as an attribute.
XSD Generation: The -xsd
switch does not currently generate XSD that can be used to validate EXTENDED-XER encodings. (Actually, in the worst cases, it is not possible to produce XSD that validates precisely the set of valid EXTENDED-XER encodings; the closest approximations would either fail to reject some invalid encodings or fail to accept some valid encodings. This is a result of the encoder's options, which can produce mixed content models and XML Schema's limited abilities to constrain mixed content models.)