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节禁止使用子类型约束的值标识引用非根扩展类型的父类型的值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章