19 Integer类型标识
19.1 integer类型(详见3.8.48)应使用IntegerType引用:
IntegerType ::=
INTEGER
| INTEGER ”{”NamedNumberList”}”
NamedNumberList ::=
NamedNumber
| NamedNumberList ”,” NamedNumber
NamedNumber ::=
identifier “(”SignedNumber”)”
| identifier “(”DefinedValue”)”
SignedNumber ::=
number
| “-”number
19.2 如果number值是0,那么不应该使用第二选项。
19.3 NamedNumberList在类型定义中并不重要。它仅仅用于定义在19.9的值标识中。
19.4 DefinedValue中的valuereference应该是integer类型。
注- 因为identifier不能用来指定NamedNumber类型的值,所以DefinedValue不会与InitegerValue值混淆。以下是例子:
a INTEGER ::= 1
T1 ::= INTEGER { a(2) }
T2 ::= INTEGER { a(3), b(a) }
c T2 ::= b
d T2 ::= a
c的值为1,因为c不能引用a的第二次和第三次事件,d的值为3.
19.5 出现在NamedNumberList中的SignedNumber或DefinedValue的值都应该是不同的,而且是integer类型的值。
19.6 NamedNumberList的每个identifier应该是不同的。
19.7 NamedNumberList的NamedNumber的顺序不是重要的。
19.8 标识的标签类型是universal类型,标签值是2。
19.9 使用XMLIntegerValue标识定义integer类型值时,应使用IntegerValue标识或当使用XMLValue时,使用XMLIntegerValue标识定义。表达式如下:
IntegerValue ::=
SignedNumber
| identifier
XMLIntegerValue ::=
XMlSignedNumber
| EmptyElementInteger
| TextInteger
XMLSignedNumber ::=
number
| “-”&number
EmptyElementInteger ::=
“<”&identifier”>”
TextInteger ::=
identifier
19.10 如果XMLValueAssignment中出现EmptyElementInteger,那么XMLValueAssignment中不应该包含TextInteger。
19.11 IntegerValue中的identifier和XMLIntegerValue中的最后2个选项应该是IntegerType类型的identifier并且值应该是相互关联的,并却以number方式展现。
注- 引用一个integer型值定义identifier,使用identifier构成IntegerValue和XMLIntegerValue应该是首选的。
19.12 一个integer型的值标识实例包含一个NamedNumberList,出现的任何名称都是NamedNumberList的一个identifier,并且引用名称也被解析为identifier。
19.13 如果number是0,那么XMLSignedNumber的第二个选项不应该被使用。