X680 22 Bitstring類型標識

22 Bitstring類型標識

       22.1 bitstring類型應該使用BitStringType標識引用:

       BitStringType ::=

              BIT STRING

              | BIT STRING “{” NamedBitList “}”

 

       NamedBitList ::=

              NamedBit

              | NamedBitList “,” NamedBit

 

       NamedBit ::=

              identifier “(” number ”)”

              | identifier “(“ DefinedValue ”)”

 

       22.2 比特流的第一個比特被稱爲首比特,最後一個比特被稱爲尾比特。

       注- 該專業用語用語值標識和定義編碼規則。

 

       22.3 DefinedValue應該引用一個非負的整型值。

 

       22.4 出現在NamedBitList中的每個number或DefinedValue的值應該是不同的,並且是用語定義bitstring值中的關鍵比特的數量。比特流的首比特根據是不是數字0來識別最後的比特是否包含連續值。

 

       22.5 NamedBitList中的每個identifier應該是不同的。

       注1- NamedBitList中的NamedBit表達式序列的順序是不重要的。

       注2- 因爲NamedBitList中的identifier不能用來定義NamedBit的相關值,所以DefinedValue不會被曲解爲整型值。例如:

       a INTEGER ::= 1

       T1 ::= INTEGER {a(2)}

       T2 ::= BIT STRING {a(3), b(a) }

       最後一個a的值是1,它不會引用第二或第三個a發生的事件。

 

       22.6 NamedBitList的出現對該類型的抽象值集合不會產生影響。值包含指定比特之外的比特是允許的。

      

       22.7 當NamedBitList用來定義bitstring類型的ASN.1編碼規則時,允許在值進行編碼或解碼的時候,在值的尾部增加或減少任意多個0比特。應用設計者應該確保不同的應用場景值的區別僅在與尾部的0的個數。

 

       22.8 該類型標籤爲universal類型,值3。

 

       22.9 bitstring類型的值應該使用BitStringValue標識定義,或當使用XMLValue時,使用XMLBitStringValue標識定義。表達式如下:

       BitStringValue ::=

              bstring

              | hstring

              | “{” IdentifierList “}”

              | “{” “}”

              | CONTAINING VALUE

 

       IdentifierList ::=

              identifier

              | IdentifierList “,” identifier

 

       XMLBitStringValue ::=

              XMLTypedValue

              | xmlbstring

              | XMLIdentifierList

              | empty

 

       XMLIdentifierList ::=

              EmptyElementList

              | TextList

 

       EmptyElementList ::=

              “<” & identifier “/>”

              | EmptyElementList “<” &identifier “/>”

 

       TextList ::=

              identifier

              | TextList identifier

 

       22.10 XMLValueAssignment只能出現EmptyElementList和TextList中的一種。

 

       22.11 XMLTypedValue選項只有在bitstring值的內容與某個ASN.1類型存在約束關係,且沒有定義ENCODED BY。如果使用了該選項,XMLTypedValue應該是ASN.1類型約束的值。

 

       22.12 XMLIdentifierList選項只有在bitstring包含一個NamedBitList的值的時候才能被使用。

 

       22.13 BitStringValue或XMLBitStringValue的identifier的值應該和對應的BitStringType表達式序列的值是相等的。

 

       22.14 empty選項表示bitstring不包含比特。

 

       22.15 如果bitstring包含被命名的bit,BitStringValue或XMLBitStringValue標識使用identifier定義的數字指示1的bit流中的位置,其他比特爲0。

       注- 對於一個包含NamedBitList的BitStringType,BitStringValue中包含的”{””}”序列和XMLBitStringValue中包含的empty用來表示bitstring不包含任何比特。

 

       22.16 當使用bstring或xmlbstring時,bstring的首比特在左側,尾比特在右側。

 

       22.17 當使用hstring標識,每個16進制數字最重要的比特對應bstring中最左側的比特。

       注- 該標識不是用於約束編碼規則把bstring轉成字符串用於傳輸。

 

       22.18 hstring標識只在bstring值包含4的整數倍的比特的時候使用。

例如:

       ‘A98A’ H

       ‘1010100110001010’ B

是相等的比特值。如果類型使用NamedBitList定義,尾數0不是構成值的一部分,所以該值長度是15。如果類型不是使用NamedBitList定義,那麼尾數0是值的一部分,該值長度16。

 

       22.19 CONTAINING選項只有在包含CONTAINING選項的bitstring類型內容約束上使用。該值應該是在ContentConstaint中類型的值。(詳見X682,第11章)

 

       22.20CONTAINING選項應該在bitstring類型不包含ENCODED BY,並且包含內容約束的時候使用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章