[comp.protocols.iso.x400] questions about 88 X.400

pv@eng.sun.COM (Peter Vanderbilt) (12/02/89)

I have some questions on 1988 X.400 externally defined body parts.
(Note:

    ExternallyDefinedBodyPart ::= SEQUENCE {
            parameters ExternallyDefinedParameters,
            data ExternallyDefinedData}
    
    ExternallyDefinedParameters ::= EXTERNAL
    
    ExternallyDefinedData ::= EXTERNAL

).

First, what is the relation between the object identifiers (OIDs) for
the data, parameters and EITs (encoded information types) for each body
part type?  May they be the same?  (In general, does context play a role
in the mapping from OIDs in EXTERNALs to abstract syntaxes?  I.e.  can
the same OID be used in different EXTERNALs?)

In the case where a set of EIT OIDs is defined for a given type (to
encode non basic parameters), is there any guaranteed commonality?
For example, will they all be under a specific subtree?

Why does the standard say, in section 7.3.12 (note 2), "If an Externally
Defined body part has a Parameters component, ..."  when the parameters
component is not optional?  (Note that an extended body part type with
no PARAMETERS clause implies NULL as the parameters' type).  Why wasn't
it made optional?

Second, for the built-in types what are the OIDs used in the "parameters"
EXTERNALs?  For example, X.400 defines that the OID for IA5 text data is
id-et-ia5-text ({2 6 1 4 0}) and that the EIT is given by either
built-in ia5-text(2) or the external OID id-eit-ia5-text ({2 6 3 4 2}).
But what is the OID for the parameters?  (For EITs, which is favored,
the built-in value or the external one?)

Third, are there any restrictions on the encoding CHOICE for the
EXTERNALs (other than those implied by ASN.1)?  (Note for X.400
the EXTERNAL can be simplied to:

    EXTERNAL ::= [Universal 8] IMPLICIT SEQUENCE {
        direct-reference OBJECT IDENTIFIER OPTIONAL,
        encoding CHOICE {
            single-ASN1-type [0] ANY,
            octet-aligned [1] IMPLICIT OCTET STRING,
            arbitrary [2] IMPLICIT BIT STRING
        }
    }

).  Presentation has a similar construction with rules to the effect
that if the single-ASN1-type can be used, it must be.  Is there a
similar rule for EXTERNALs?  If not, is the choice up to the sender
or to the definer of the body part type?

Pete