X680 15 支持引用ASN.1组件的标识

15 支持引用ASN.1组件的标识

       15.1 有需求来正式引用ASN.1类型、值等组件。为各种目的,一个实例需要在ASN.1模块中通过书写文本来定义一个特定的类型。本章定义了用于提供这类引用的的标识。

 

       15.2 该标识可以识别任意set或sequence类型(不管是必选还是可选类型)组件。

 

       15.3 ASN.1类型定义的任意部分可以通过使用AbsoluteReference句法结构引用:

       AbsoluteReference ::=

              “@”ModulueReference

              “.”

              ItemSpec

 

       ItemSpec ::=

              typereference

              | ItemId “.” ComponentId

      

       ItemId ::= ItemSpec

 

       ComponentId ::=

              identifier

              | number

              | “*”

       注-AbsoluteReference表达式不在本规范的其他地方使用。它只用于15.1规定的目的。

 

       15.4 ModuleIdentifier用于识别一个ASN.1模块(详见13.1)。

 

       15.5 当DefinitiveIdentification的第一、二选项被用于作为ModuleIdentifier的一部分,DefinitiveIdentification通过被引用的名称唯一的识别模块。

 

       15.6 typereference根据ModuleIdentifier引用模块中的任意ASN.1类型。

 

     15.7 每个ItemSpec中的ComponentId根据ItemId来识别类型组件。如果它识别到的组件不是set、sequence、set-of、sequence-of或choice类型,那它应该是最后一个ComponentId。

 

       15.8 如果父ItemId是set或sequence类型,那么可以使用由ComponentId构成的identifier,并且必须是在set或sequence中的ComponentTypeLists的NamedTyped中的一员。如果ItemId用于识别choice类型,它可以被使用,并且必须是choice类型的AlternativeTypeLists中的NamedTyped中的一员。它不可以使用在其他场景中。

 

       15.9 如果ItemId是sequence-of或set-of类型,ComponentId可以是数字类型。该值用于识别sequence-of或set-of的实例数字,值1用于识别类型的第一个实例。值0识别虚拟的整型类型组件(不会在传输中显式出现),它包含了出现在sequence-of或set-of中包含实例的总数。

 

       15.10 ComponentId由*构成只可以在ItemId是sequence-of或set-of的情况下使用。任何与由*构成的ComponentId的情况适用与sequence-of或set-of的任意组件。

       注-如以下例子:

       M DEFINITIONS ::= BEGIN

              T ::= SEQUENCE {

              a Boolean,

              b SET OF INTEGER

}

       END

       组件T可以被其他模块(或注释)引用,例如:

       -- if(@M.T.b.0 is odd) then:

       --    (@M.T.b.*shall be an odd integer)

       该注释用于说明如果在b中的组件数量是奇数,那么b的所有组件必须是奇数。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章