I have questions about inner subtyping. Given these two type definitions:

    Parent ::= SEQUENCE
    {
        anOptionalThing INTEGER OPTIONAL,
        anotherOptionalThing INTEGER OPTIONAL,
        aRequiredThing INTEGER
    }

    Child ::= Parent WITH COMPONENTS { ..., anOptionalThing ABSENT }

does the WITH-COMPONENTS construct essentially create a new type, i.e.,

    SEQUENCE
    {
        anotherOptionalThing INTEGER OPTIONAL,
        aRequiredThing INTEGER
    }

or does it merely apply a semantic constraint to the existing type, i.e.,
the anOptionalThing is still syntactically OPTIONAL  but its _value_ is
constrained to not be present? For a PER encoding, the question could be
stated as, is there a presence bit (set to 0) in the bit-map preamble for
the anOptionalThing component, or is even its presence bit absent?

Likewise, would this:

    Child ::= Parent WITH COMPONENTS { ..., anOptionalThing PRESENT }

result in this new type:

    SEQUENCE
    {
        anOptionalThing INTEGER,
        anotherOptionalThing INTEGER OPTIONAL,
        aRequiredThing INTEGER
    }

Paul Long
ipDialog, Inc.

Reply via email to