1、ICS 35.100.60 L 79 道国中华人民共和国国家标准G/T 16262.3-2006/ISO/IEC 8824-3: 2002 信息技术抽象语法记法一CASN.1) 第3部分:约束规范Information technology-Abstract Syntax Notation One(ASN. 1) Part 3: Constraint specification (lSO/IEC 8824-3: 2002 , IDT) 2006-03-14发布中华人民共和国国家质量监督检验检菇总局中国国家标准化管理委员会2006-07-01实施GB/T 16262.3-2006/ISO/IEC
2、 8824-3: 2002 目次EN1111111222222234789 型类例实kk单述知的综化系楝法数关乡记参件范范的束时和和文规规范HHH宇范约括附附用义法体规义项键规的包-U性性引定记客川院词关束义束悚范料目础制醉倒胁阳附hrk雕肌阳酬报刊机阳明附范规术缩约记A一用占百言123411录录前引1233.3.3.孔456队7189川口附附I GB/T 16262.3-2006/ISO/IEC 8824-3: 2002 前GB/T 16262在信息技术抽象语法记法一(ASN.1)总标题下,目前包括以下4个部分z第1部分(即GB/T16262. 1):基本记法规范p第2部分(即GB/T162
3、62.2): 信息客体规范p第3部分(即GBjT16262.3):约束规范;第4部分(即GB/T16262.的:ASN. 1规范的参数化。本部分为GBjT16262的第3部分,等同采用国际标准ISOjIEC8824-3: 2002(信息技术抽象语法记法一(ASN.1):约束规范)(英文版)。与该项国际标准的等同文本是ITU-T建议X.6820按照GB/T1. 1-2000的规定,本部分对ISO/IEC8824-3: 2002作了下列编辑性修改z本标准一词改为本部分;在引用的标准中,凡巳转化成我国标准的各项标准,均用我国的相应标准编号代替。本部分的附录A是规范性附录,附录B是资料性附录。本部分由
4、中华人民共和国信息产业部提出。本部分由中国电子技术标准化研究所归口。本部分起草单位z中国电子技术标准化研究所。本部分主要起草人z郑洪仁、安金海、徐云驰。而皿GB/T 16262.3-2006/ISO/IEC 8824-3:2002 5 1 应用设计者需要一种定义结构式数据类型的记法以传送其语义。这在GB/T16262. 1和GB/T 16262.2中提供。还需要一种记法以进一步约束可能出现的值。这些约束的示倒有限制某个(某些)成分的范围或使用规定的信息客体集合约束ObjectClassFieldType成分,或使用AtNation规定各成分之间的关系。GB/T 16262的本部分对约束规范的一
5、般情况提供记法。注1:由于历史原因,子类型约束的特殊情况在GB/T16262. 1中规定。约束记法可能出现在使用语义结构Type之后的圆括号中,本部分的目的是要规定圆括号中的一般情况。注2:对相同的Type可以应用多重约束(每个在其自身的圆括号之内),如同约束Type的结果在形式上本身就是Type结构。当将一个约束应用于Type结构的最外层时,就会产生一个新的类型,它是原(双亲)类型的子类型。在约束记法的其他使用场合,双亲类型的子类型本身可用来定义相同双亲类型的其他子类型。因此,可通过限制双亲类型的范围或将此子类型规定成值的并集来定义构成子类型的值的子集。注趴在GB/T16262. 1一200
6、6的15.7中规定的ValueSet记法提供了规定子类型的更进一步的办法。当此记法嵌入另一种类型时,约束还可用来产生双亲类型的子类型(如上所述。虽然,某些成分关系约束放在Type之后(在集合或序列类型定义中),但是,不能用来限制它们之前的Type(引用成分)可能值的集合。而是它们规定引用成分的值与同一集合或序列类型中一个或几个其他Type(称为引用成分)的值之间的关系。成分关系约束可以看成将它们所嵌入的序列类型分成子类,而不必看成引用类型。通过使用信息客体集合限制成分中的类型或值时可以应用有关obj ectClassField Type成分的约束。这种约束称为表约束,因为它们是根据客体集合的关
7、联表规定的。本部分定义的成分关系约束是表约束的特殊情况。最后,可通过规定子类型中的人可读文本方式值集合,将Type划分成子类型。这种约束称为用户定义的约束。例如,规定用户定义的约束可以是将比特串约束到规定的ASN.l类型的值加密所产生的值集合。本部分的目的是要提供规定表约束(包括成分关系约束)和用户定义的约束所用的记法。注4:一般而言,用灵活的方式,对约束规范的全面支持(特别是成分关系约束、划分子类型约束和形式定义体中用户定义约束)会要求一种能力可与程序设计语言相当的记法。显然这种能力只能通过建立ASN.1记法与某个其他定义的计算机语言之间的链接来提供。本部分这一版不提供这种链接,因此只能支持
8、少量的约束机制。嵌入定义约束的记法(子类型和关系)往往是最方便的规毡形式(特别对结构的原成分的简单子分类),但是,有时将优先采用单独的(外部的)规范,特别是,由定义基本协议的一个独立小组要强加的约束就是如此。N 注5:在GB/T16262.4中定义的参数化专门设计成能使一部分ASN.1规范(以及特别是约束)被参数化,允许某个为参数化构造提供实际参数的其他小组施加实际约束。GB/T 16262.3-2006/ISO/IEC 8824-3: 2002 本部分所支持的约束规范所用的记法是:用户定义的约束(见第9章); 表约束,包括运载与信息客体有关的值、使用GB/T16262. 2的记法定义的两个成
9、分之间的成分关系约束(见第10章); -一一内容约束(见第11章)。表约束对GB/T16262.2-2006附录C的InstanceOfType构造的应用在本部分附录A中规定。V GB/T 16262.3-2006/ISO/IEC 8824-3:2002 信息技术抽象语法记法一CASN.1) 第3部分:约束规范1 范围GB/ T 16262的本部分是抽象语法记法一束和内容约束的记法。2 规范性引用文件件,其随后所有的修改单(协议的各方研究是否可GB/ T 16262. ( ISO/ IEC 8824-4 : 3 术语和定义下列术语和定由3.2 信息客体规范本部分使用GB/T1 3.4. 1 信
10、息技术成分关系约束component relation constraint 凡是注日期的引用文励根据本部分达成关于集合类型或序列类型值的约束,其在文本上与此集合类型或序列类型的成分的类型(引用的成分)之一相关,并且规定那个成分的值与一个或多个其他成分(被引用成分)的值之间的关系。3. 4. 2 被约束类型constrained type 包含引用的成分和某个成分关系约束中所有被引用成分的最内的Type。3. 4. 3 约束集合constraining set 在某个成分关系约束中被引用的信息客体集合。GB/T 16262.3-2006/ISO/IEC 8824-3:2002 3.4.4 约束
11、襄nstraining tab)e 与约束集合相对应的关联表(见GB/T16262. 2一2006的第13章)。3.4.5 被引用成分referenced component 在成分关系约束中被标识的集合类型或序列类型的成分。3.4.6 引用的成分referencing component 具有相关的成分关系约束的集合类型或序列类型的成分。3.4.7 被选行se)ected rows 在适当的列中,约束表包含所有被引用成分的值的那些行。3.4.8 表约束table constraint 应用于要求其值符合某个表合适列的内容的客体类别字段类型的约束。3.4.9 用户定义的约束user-defin
12、ed constraint 要求比能由其他约束形式涉及的语句更为复杂的语句的约束,因此必须包含ASN.1之外的其他规范。4 缩略语本部分使用下列缩略语zASN.1 抽象语法记法-5 约定本部分采用GB/T16262.1-2006的第5章定义的记法约定。6 记法本章综述本部分定义的记法。6. 1 赋值本部分定义了下列记法,这个记法能用作ConstraintSpec(见GB/T16262. 1-2006的45.的的替代记法:一-GeneralConstraint(见8.1)。7 ASN.l词项除GB/T16262.1一2006第11章中规定的词汇之外,本部分中还使用下列各条规定的词项。适用于这些词
13、项的一般规则是按GB/T16262. 1-2006的11.1定义的。这些新的词项使用GB/T 16262.1二2006第10章规定的ASN.1字符集。7. 1 附加关键字名称CONSTRAINED、CONTAINING、ENCODED和BY已在GB/T16262. 1-2006的11.27中列出。8 一般约束规范8. 1 GeneraIConstraint的记法如下:2 G/T 16262.3-2006/ISO/IEC 8824-3:2002 GeneralConstraint: : = UserDefinedConstraint I TableConstraint I ContentsCon
14、straint 8.2 约束规范的各种可能性定义如下za) UserDefinedConstraint在第9章中定义;b) TableConstraint在第10章中定义;c) ContentsConstraint在第11章中定义。9 用户定义的约束注1:这种形式的约束规范可以看作是ASN.l说明的特殊形式,因为它不是可由机器完全处理的。然而,使用存在的特定用户定义的约束,调用由用户提供的约束检验程序的自动工具却是可能的。注2:协议的设计者要知道由于这种方法的约束定义不是可由机器完全处理的,因此采用这种能力的规范由自动工具处理可能不太容易。9. 1 用户定义的约束由下列语法规定:UserDef
15、inedConstraint. = CONSTRAINED BY UserDefinedConstraintParameter ,铃It 9.2 建议在括号(和 )内注释何处引用实际约束。此注释应清楚地表明UserDefinedCon straint施加什么约束。注2如果在此括号中存在UserDefinedConstrain tParameter (见9.3),此注释可以在它们之前、之后或分散在它们之中,这要随设计者方便而定。9.3 应用的实际约束可能取决于某些参数。对每一个这种参数,应在UserDefinedConstraint中包含u serDefinedConstraintparamet
16、er飞每个userDefinedConstraintParameter应是成行定义或是引用名的Value、ValueSet、Object、ObjectSet、Type或DefinedObjectClass。注:如果在ParameterizedAssignment使用UserDefinedConstraint,则引用名可以是假设的参数。UserDefinedConstrainParameter: : = Governor : Value I Governor : ValueSet I Governor : Object I Governor : Objec Set Type DefinedObj
17、 ectClass 记法Governor在GB/T16262.4-2006的8.3中定义。当使用第一或第二种替代记法时,Governor应是Type。当使用第三或第四种替代记法时,Gove盯rnor应是Defin】edOb问Je时ctClas臼ss9.4 示例如果一名应用设计者想将某些成分规定为比特串来承载某个ASN.l类型的值的密码(对每个成分名不相同),那么,(使用GB/T16262.4的参数化时),参数化的ENCRYDTED类型可以定义如下:ENCRYPTED ToBeEnciphered : : = BIT STRING (CONSTRAINED BY (一必须是某个编码BER的密码之
18、值一一-ToBeEnciphered ! Error : securityViolation) Error: : = ENUMERATED SecurityViolation 3 GB/T 16262.3-2006/ISO/IEC 8824-3: 2002 并且使用BITSTRING(是ENCRYPTED类型的)的ENCRYPTED参数化子类型变得简单:ENCRYPTED SecurityParameters 或在设计者灵机一动时,相当于:BIT STRING(ENCRYPTEDSecurityParameters) 按照本地安全政策处理SecurityViolation的出现。10 表约束,
19、包括成分关系约束4 注1:信息客体类别、信息客体,信息客体集合和客体类别字段类型在GBjT16262. 2中定义。在本章中假定己了解了这些概念。注2:本章使用定义双亲类型的主要i议设计者定义和标识的。.的特定抽象语法的约束我们有:ERRO lNTEGER, errorCa tegory errors 信息客体集合能作为一种参ERROR-CLASS. &.category( ErrorSet )OPTI0NAL, SEQUENCE OF SEQUENCE errorCode ERROR-CLASS. &.code( ErrorSet errorCategory) , error1nfo ERRO
20、R-CLASS. &. Type ( ErrorSet erroategory , . errorCode) OPTI0NAL 可将ErrorSet的关联表绘制如下:GB/T 16262.3-2006/ISO/IEC 8824-3: 2002 &.category &.code &. Type A 1 INTEGER 11 A 2 REAL 11 B CHARACTER STRING 811 2 GeneralString 10. 1 表约束只能应用于类型ObjectClassFieldType或InstanceOfType。前者在本章的其余各条中定义,后者在附录A中定义。10.3 10. 4
21、 别支配。10.6 被约束类型a) 对类型宇c) 对值集合注:对某种给定客束总是违规的示例:10. 7 在第10章的示AtNotation : : . Level C Level: : = . Level I empty ComponentIdList: : = identifier . 十ype中出现的类。规则:10.8 ComponentldList中的每个identifier标识其双亲是集合、序列或选择类型的成分,如果它标识的成分不是集合、序列或选择类型,应是最后的identifier。10.9 在双亲是集合或序列类型的情况,J气id巳entifie陀巳r应是此双亲Type,的标识符之一
22、。在双亲是选择类型的情况,identifier应是此选择类型AlternativeTypeLists 中替代记法NamedType的identifier之一。10. 10 AtNotation向其所在的ASN.1结构的其他成分提供指针。ComponentldList中第一个1-dentifier的双亲结构被确定如下:5 GB/T 16262.3一2006/ISO/IEC8824-3: 2002 a) 如果选择AtNotation的第一个替代记法(在之后元气勺,那么双亲结构是最外的文本上封闭的集合类型、序列类型或选择类型。b) 如果选择第二个替代记法(在之后有勺,那么通过从最内的文本上封闭的集合
23、类型或序列类型向上移动等于之后附加的数目的若干层次(集合、单一集合、单一序列、序列、选择)获得双亲结构。在出现AtNotation时,附加的的个数不应超过包含最内的集合或序列类型的结构(集合、单一集合、序列、单一序列、选择)的数目。注:尽管在包含序列、单一序列、集合、单一集合和选择类型组合的结构中可能出现不同嵌套层次,但是只有文本上处于集合类型或序列类型并引用文本上处于同一集合或序列类型的某个其他字段时才允许AtNotation。示例:在下列示例中说明上面的b)情况ErrorMessage : =SEQUENCE severity ERROR. &.severity( Errors) , pa
24、rameters SEQUENCE OF SEQUENCE errorld ERROR. &id( Errors) , data SEQUENCE OF SEQUENCE value ERROR. &.Type(Errors severity,errorId川,text visi bleString 10. 1门1使用这种记法的成分是引用的成分,由At创No时tation标识的成分是被引用的成分。10.12 ObjectSet(见10.3)或DefinedObjectSet(见10.7)是约束集合,由此求得的关联表(在GB/T 16262.2-2006的第13章中规定)是约束表。10. 13
25、成分关系约束只能应用于文本上属于封闭Type(被约束类型)的ASN.1类型,而此封闭Type在文本上包含所有被引用成分。被约束类型定义为满足上述条件的最内的Type飞示例:在第10章的示例中,被约束类型是ErrorReturn。注:在某些方面,将此约束的应用看成是使用被引用成分的值以标识约束表中的行,然后使用合适的列来约束引用的成分是可能的。据此观点,被引用成分本身不能被看成是被约束的。然而,下面所用的方法略有不同。它将此约束看成是在被约束类型(如上述解释,它不是引用的成分的类型)所有可能值上的操作和选择一些满足此约束的值。这种方法使得讨论有关不包含引用成分,或不包含一个或几个被引用成分(因为
26、它们是任选的或在选择中)的值的被约束类型的值,以及被引用成分之一具有不与约束表中任一行相对应的值的被约束类型的值成为可能。10. 14 要求引用和所有被引成分是引用同一类别的ObjectClassFieldType。要求约束的集合是这些类别的信息客体集合。要求被引用成分是由与引用的成分相向的客体集合的约束的值宇段或值集合字段。示例:在第10章的示例中,ObjectClassFieldType是所有的类别ERROR-CLASS,也是约束的集合,它是ErrorSet。10. 15 下面几条确定被约束类型中满足此约束的值集合。10. 16 如果引用的成分不在被约束类型的某一值中,那么这个值满足此约束
27、。示例:在第10章的示例中,如果没有成分error,那么认为error上的约束被满足。10. 17 如果任一被引用成分不在被约束类型的某一值中,而这个值不满足此约束,除非引用的成分不存在,在这种情况下此约束总是被满足的。10. 18 如果所有被引用成分存在并且引用的成分也存在,那么不满足此约束,除非在约束表中存在一个或几个这样的被选行,对每个被选行:GB/T 16262.3一2006/ISO/IEC8824-3: 2002 a) 值宇段的每个被引用成分具有的值是被选行相对应的列的值;b) 值集合宇段的每个被引用成分具有的值是被选行相对应的列的值集合之一的值。10. 19 只有在引用成分满足通过
28、将只包含被选行的表应用于引用成分而获得的简单表约束(如上面定义的),那就满足此约束。示例:在第10章的示例中,成分errorCategory、errorCode和errorlnfo必须对应于ErrorSet关联表的某一行。10.20 如果ObjectClassFieldType受一个或几个TableConstrain的约束,并且FieldName表示类型宇段、可变类型值字段或可变类型值集合字段,那么在每种通信实例中,如果被引用的成分之一是标识符字段,那么被选行的数目应是1,否则至少应选择1。示例:在第10章的示例中,如果还有一个客体B2PrintableString,那么可能有一个以上被选行。
29、11 内容约束, 1. 1 内容约束由下列语法规定:ContentsConstraint , , = CONT AINING Type I ENCODED BY Value I CONT AINING Type ENCODED BY Value ,1. 2 Value应是类型客体标识符的值。11. 3 ContentsConstraint仅适用于八位位组串类型和不用NamedBitList定义的位串类型。这些被约束类型不应有用于它们的进一步约束,不管是直接或通过typereference名数的使用。11.4 Contents Constraint的第一个生成式规定八位位组串或位串的抽象值是Ty
30、pe抽象值的编码,此编码是由适用于八位位组串或位串的编码规则产生的。下列限定使用:a) 假若此约束应用于八位位组串,如果Type的抽象值的编码不是八位位组的倍数,那么它是规范差错。b) 如果八位位组串或位串有长度约束,Type抽象值被约束为其编码能被包含在被约束八位位组审或位串中的值。如果没有这种抽象值,那么它是规植差错。11.5 ContentsConstraint的第二生成式规定由客体标识符值Value标识的规程应产生并解释位串或八位位组串的内容。假若位串或八位位组串己受到约束,如果这些规程没有产生满足此约束的编码,那么它是规范差错。11.6 ContentsConstraint的第三个生
31、成式规定八位位组串或位串的抽象值是Type抽象值的编码,此编码是由客体标识符值Value所标识的编码规则产生的。下列限定适用za) 假若此约束应用于八位位组串,如果Type的抽象值的编码不是八位位组的倍数,那么它是规范差错。b) 如果八位位组串或位串有长度约束,Type抽象值被约束为其编码能被包含在被约束八位位组串或位串中的值。如果没有这种抽象值,它是规范差错。7 GB/T 16262.3-2006/ISO/IEC 8824-3 :2002 附录A(规范性附录)约束的单一实例类型A.l 本附录规定对GB/T16262.2-2006的附录C中规定的InstanceOfType的约束的应用。A.2
32、 适用于这种类型的仅有的约束是如第10章规定的简单表约束。当用此方法约束时,叮nstanceOfType的等效序列类型是:SEQUNCE 具有如和A.8),在产生协议的可变约束,不太可能8 GB/T 16262.3一2006/ISO/IEC8824-3: 2002 在7.1中定义了下列词项:CONSTRAINED CONTAINING ENCODED BY 在GB/T16262.1-2006 number . . 11 , 11 在GB/本部分中定义Governor : Object I Governor : ObjectSet I Type Defi ned 0 bj ectClass 附录
33、B(资料性附录)记法综述TableConstraint : = SimpleTableConstraint I ComponentRelationConstraint SimpleTableConstraint : = ObjectSet ComponentRelationConstraint : = DefinedObjectSet AtNotation , 十It AtNotation : : = ComponentldList I . Level ComponentldList 9 GB/T 16262.3一2006/ISO/IEC8824-3: 2002 10 Level : = .
34、Level I empty ComponentldList : = identifier . + ContentsConstraint : = CONT AINING Type I ENCODED BY Value I CONTAINING Type ENCODED BY Value NOONdtagu国、。白OON|仍.NNFH阁。华人民共和国家标准信息技术抽象语法记法一(ASN.1)第3部分:约束规范GB/T 16262. 3-2006/ISO/IEC 8824-3: 2002 国中导中国标准出版社出版发行北京复兴门外三里河北街16号邮政编码:100045 网址电话:6852394668517548 中国标畸出版社秦皇岛印刷厂印刷各地新华书店经销峰印张1.25 字数25千字2006年8月第一次印刷开本880X12301/16 2006年8月第一版睡书号:155066 1-27834定价13.00元如有印装差错由本社发行中心调换版权专有侵权必究举报电话:(010)68533533GB/T 16262.3-2006