X680 17 定義類型和值

17 定義類型和值

       17.1 類型應該通過Type標識定義。

       Type ::= BuiltinType | ReferencedType |ConstraintedType

 

       17.2 Asn.1內嵌類型通過BuiltinType標識定義,BuiltinType定義如下:

       BuiltinType ::=

              BitStringType

              | BooleanType

              | CharacterStringType

              | ChoiceType

              | DateType

              | DateTimeType

              | DurationType

              | EmbeddedPDVType

              | EnumeratedType

              | ExternalType

              | InstanceOfType

              | IntegerType

              | IRIType

              | NullType

              | ObjectClassFieldType

              | ObjectIdentifierType

              | OctetStringType

              | RealType

              | RelativeIRIType

              | RelativeOIDType

              | SequenceType

              | SequenceOfType

              | SetType

              | SetOfType

              | PrefixedType

              | TimeType

              | TimeOfDayType

       絕大多數BuiltinType標識在以下章節定義除非另作說明。

       BitStringType 22

       BooleanType 18

       CharacterStringType 40

       ChoiceType 29

       DateType 38.4.1

       DateTimeType     38.4.3

       DurationType      38.4.4

       EmbeddedPDVType    36

       ExternalType              37

       InstanceOfType   X681 附錄C

       IntegerType  19

       IRIType  34

       NullType       24

       ObjectClassFieldType X681,14.1

       ObjectIdentifierType  32

       OctetStringType  23

       RealType      21

       RelativeIRIType   35

       RelativeOIDType 33

       SequenceType     25

       SequenceOfType 26

       SetType  27

       SetOfType     28

       PrefixedType              31

       TimeType     38.1.1

       TimeOfDayType  38.4.2

 

       17.3 ASN.1引用類型通過ReferencedType標識定義。

       ReferencedType ::=

              DefinedType

              | UsefulType

              | SelectionType

              | TypeFromObject

              | ValueSetFromObjects

       ReferencedType標識提供了引用其他類型的一種可選方式(最終引用內嵌類型)。各種不同的ReferencedType以及他們所能引用的類型在以下章節定義,除非另作說明:

       DefinedType        14.1

       UsefulType          45.1

       SelectonType       30

       TypeFromObject X681,15

       ValueSetFromObjects              X681,15

 

       17.4 ConstrainedType在49章定義。

 

       17.5 本規範要求使用NamedType標識指定set,sequence和choice類型組件。NamedType標識定義如下:

       NamedType ::= identifier Type

 

       17.6 identifier用來在內部子類型約束和在組件關係約束中唯一的引用set,sequence或choice類型值標識組件(詳見X682)。它不是類型的一部分,也不會對類型產生影響。

 

       17.7 類型的值應該使用Value標識或XMLValue標識定義:

       Value ::=

              BuiltinValue

              | ReferencedValue

              | ObjectClassFieldValue

 

       XMLValue ::=

              XMLBuiltinValue

              | XMLObjectClassFieldValue

       注1-ObjectClassFieldValue和XMLObjectClassFieldValue在X681,14.6中定義。

       注2- XMLValue只在XMLTypedValue中使用。

 

       17.8 如果XML Value表達式在XML起始標籤之後緊跟XML終止標籤,或許還通過空白字符分隔(例如:<field></field>),這兩個XML標籤和可能的空白字符可以使用單個XML空白標籤代替(<field/>)。

       注-除了12.1.4約定的空白字符插入方式外的其他空白字符出現在起始標籤的結束符“>”和終止標籤的起始符“<”之間,不滿足以上約束條件。

 

       17.9 ASN.1內嵌類型的值通過XMLBuiltinValue(見17.10)和BuiltinValue標識定義,定義如下:

       BuiltinValue ::=

              BitStringValue

              | BooleanValue

              | CharacterStringValue

              | ChoiceValue

              | EmbeddedPDVValue

              | EnumratedValue

              | InstanceOfValue

              | IntegerValue

              | IRIValue

              | NullValue

              | ObjectIdentifierValue

              | OctetStringValue

              | RealValue

              | RelativeIRIValue

              | RelativeOIDValue

              | SequenceVlaue

              | SequenceOfValue

              | SetValue

              | SetOfValue

              | PrefixedValue

              | TimeValue

       每個BuiltinValue標識被對應的BuiltinType標識定義。

 

       17.10 XMLBuiltinValue定義如下:

       XMLBuiltinValue ::=

              XMLBitStringValue

              | XMLBooleanValue

              | XMLCharacterStringValue

              | XMLChoiceValue

              | XMLEbeddedPDVValue

              | XMLEnumratedValue

              | XMLExternalValue

              | XMLInstanceOfValue

              | XMLIntegerValue

              | XMLIRIValue

              | XMLNullValue

              | XMLObjectIdentifierValue

              | XMLOctetStringValue

              | XMLRealValue

              | XMLRelativeIRIValue

              | XMLRelativeOIDValue

              | XMLSequenceValue

              | XMLSequenceOfValue

              | XMLSetValue

              | XMLSetOfValue

              | XMLPrefixedValue

              | XMLTimeValue

       每個XMLBuiltinValue標識由對應的BuiltinType標識定義。

 

       17.11 ASN.1引用值通過ReferencedValue標識定義:

       ReferencedValue ::=

              DefinedValue

              | ValueFromObject

       ReferencedValue標識提供了引用其他值(最終引用內嵌值)的可選途徑。多種類型的ReferencedValue標識和他們各自的引用定義在以下章節定義(在本規範中除非另行說明):

       DefinedValue 14.1

       ValueFromObject X681,15

 

       17.12 不管類型是BuiltinType,ReferencedType或ConstrainedType,它的值可以被定義爲該類型的BuiltinValue或ReferencedValue。

      

       17.13 使用NamedType標識引用的類型值應使用NamedValue標識定義或作爲XMLValue一部分時使用XMLNamedValue標識定義。表達式如下:

       NamedValue ::= identifier Value

       XMLNamedValue ::= “<”&identifier”>”XMLValue”<”&identifier”>”

identifier和NamedType中使用的identifier是同一個定義。

       注- identifier是標識的一部分,它不構成值本身的部分。他用來唯一的引用set,sequence或choice類型的組件。

       17.14 在類型定義中隱式(詳見13.4)或顯示的呈現一個擴展標記(詳見第6章)對值標識沒有任何影響。因此,對於某類型的值標識來說擴展標記是否存在都是一樣的。

       注- 50.8節禁止使用子類型約束的值標識引用非根擴展類型的父類型的值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章