On Wed, 17 Jul 2002, Paul Long wrote:
> 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
> }
No.
> 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?
The latter.
> 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?
Inner type constraint is not PER-visible, so it has no effect on the
structure of PER encodings. However, in the example above the presence
bit for anOptionalThing always being zero.
> Likewise, would this:
>
> Child ::= Parent WITH COMPONENTS { ..., anOptionalThing PRESENT }
>
> result in this new type:
>
> SEQUENCE
> {
> anOptionalThing INTEGER,
> anotherOptionalThing INTEGER OPTIONAL,
> aRequiredThing INTEGER
> }
No. It would, however, result in the presence bit for anOptionalThing
always being set to 1.
BTW, "WITH ... }" should be in parentheses.
-------------------------------------------------------------------------
Bancroft Scott Toll Free :1-888-OSS-ASN1
OSS Nokalva International:1-732-302-0750
[EMAIL PROTECTED] Tech Support :1-732-302-9669 x-1
1-732-302-9669 x-200 Fax :1-732-302-0023
http://www.oss.com