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.)