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的所有組件必須是奇數。

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