2.11子类型约束

2.11子类型约束

ID:38463011

大小:269.00 KB

页数:29页

时间:2019-06-13

2.11子类型约束_第1页
2.11子类型约束_第2页
2.11子类型约束_第3页
2.11子类型约束_第4页
2.11子类型约束_第5页
资源描述:

《2.11子类型约束》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、2.11子类型约束2.11.1单值约束(SingleValueConstraint)最简单的的子类型约束就是单值约束,即将一个类型限制为一个值,以圆括号将该值列在类型声明之后即可,如:Two::=INTEGER(2) Day::=ENUMERATED{monday(0),tuesday(1),wednesday(2),thursday(3),friday(4),saturday(5),sunday(6)}Wednesday::=Day(wednesday) FourZ::=IA5String("ZZZZ") Afters::=CHOICE{cheeseIA5S

2、tring,dessertENUMERATED{profiterolles(1),sabayon(2),fraisier(3)}}CompulsoryAfters::=Afters(dessert:sabayon)如果该值的选择可以是多个中的一个,则可以用“

3、”将被选值列出,如:WeekEnd::=Day(saturday

4、sunday)PushButtonDial::=IA5String("0"

5、"1"

6、"2"

7、"3"

8、"4"

9、"5"

10、"6"

11、"7"

12、"8"

13、"9"

14、"*"

15、"#")2.11.2类型包含约束(TypeInclusionConstraint)当

16、声明一个类型和另一个类型拥有同样的约束时,只需要将被参考类型列出,如:FrenchWeekEnd::=Day(WeekEnd)还可以这样使用:LongWeekEnd::=Day(WeekEnd

17、monday)注意:在1994以前的标准中必须使用INCLUDES关键字,以后的标准不再是必须的。2.11.3值域约束(ValueRangeConstraint)对于数学中的整数和实数,可以用区间来约束。在ASN.1中使用“..”来表示区间,“<”用来限定边界,如:Number::=INTEGERFrom3to15::=Number(3..15)From3exclude

18、dTo15excluded::=Number(3<..<15)关键字MIN和MAX用来表征基本类型的最小、最大值。 对于实数类型,下面两个定义:T::=REAL(0..

19、约束,如:Exactly31BitsString::=BITSTRING(SIZE(31)) StringOf31BitsAtTheMost::=BITSTRING(SIZE(0..31)) EvenNumber::=INTEGER(2

20、4

21、6

22、8

23、10)EvenLengthString::=IA5String(SIZE(EvenNumber)) NonEmptyString::=OCTETSTRING(SIZE(1..MAX))前两个类型的区别在于,第二个的长度是一个区间,从0到31;而第一个的长度固定是31。 对SEQUENCEOF和SETOF的约束,如:

24、ListOfStringsOf5Characters::=SEQUENCEOFPrintableString(SIZE(5)) ListOf5StringsOf5Characters::=SEQUENCE(SIZE(5))OFPrintableString(SIZE(5))2.11.5字符表约束(AlphabetConstraint)主要是对字符串类型的值进行约束,如:Morse::=PrintableString(FROM("."

25、"-"

26、""))IDCardNumber::=NumericString(FROM("0".."9"))PushButtonDi

27、alSequence::=IA5String(FROM("0".."9"

28、"*"

29、"#"))下面这个类型定义,虽然没有错,但却没有意义:WrongType::=IA5String(FROM("Albert".."Zoe"))因为字符串类型定义需要声明字符而不是字符串。 下面两个定义是等价的:Dna::=PrintableString(FROM("TAGC")) Dna::=PrintableString(FROM("T"

30、"A"

31、"G"

32、"C"))2.11.6正则表达式约束(RegularExpressionContraint)也是用于对字符串值的约束,通过关

33、键字PATTERN来声明具体的正则表达

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。