2013年2月16日土曜日
2013年2月9日土曜日
ASN.1 記法 1988年版
2013年2月7日木曜日
データ型 - 部分型 - 内部部分型化
内部部分型化は、構造型の親の型を詳細化します。構成要素の中で、どの要素が存在し、存在する場合にとりうる値は何かを規定します。
型の記法
内部部分型化 ::= WITH COMPONENTS 単一型制限 | WITH COMPONENTS 複数型制限
単一型制限 ::= 部分型仕様
複数型制限 ::= { 型制限 } | { ... , 型制限 }
型制限 ::= 名前付き制限リスト
名前付き制限リスト ::= 名前つき制限 | 名前つき制限 , 名前付き制限リスト
名前付き制限 ::= 識別子 制限 | 識別子
制限 ::= 値制限 存在制限
値制限 ::= 部分型仕様 | empty
存在制限 ::= PRESENT | ABSENT | empty
PRESENT : 対応する要素値が存在
ABSENT : 対応する要素値が存在しない
empty : { 型制限 }の場合、PRESENTと同じ意味
{ ... , 型制限 }の場合、特別な制限はない
型の記法の例
Envelope ::= SET {
typeA TypeA,
typeB TypeB OPTIONAL,
typeC TypeC OPTIONAL
}
ABEnvelope ::= Envelope ( WITH COMPONENTS {
... ,
typeB PRESENT,
typeC ABSENT })
ACEnvelope ::= Envelope ( WITH COMPONENTS {
... ,
typeB ABSENT,
typeC PRESENT })
ABEnvelope ::= Envelope ( WITH COMPONENTS { typeA, typeB } )
ACEnvelope ::= Envelope ( WITH COMPONENTS { typeA, typeC } )
型の記法
内部部分型化 ::= WITH COMPONENTS 単一型制限 | WITH COMPONENTS 複数型制限
単一型制限 ::= 部分型仕様
複数型制限 ::= { 型制限 } | { ... , 型制限 }
型制限 ::= 名前付き制限リスト
名前付き制限リスト ::= 名前つき制限 | 名前つき制限 , 名前付き制限リスト
名前付き制限 ::= 識別子 制限 | 識別子
制限 ::= 値制限 存在制限
値制限 ::= 部分型仕様 | empty
存在制限 ::= PRESENT | ABSENT | empty
PRESENT : 対応する要素値が存在
ABSENT : 対応する要素値が存在しない
empty : { 型制限 }の場合、PRESENTと同じ意味
{ ... , 型制限 }の場合、特別な制限はない
型の記法の例
Envelope ::= SET {
typeA TypeA,
typeB TypeB OPTIONAL,
typeC TypeC OPTIONAL
}
ABEnvelope ::= Envelope ( WITH COMPONENTS {
... ,
typeB PRESENT,
typeC ABSENT })
ACEnvelope ::= Envelope ( WITH COMPONENTS {
... ,
typeB ABSENT,
typeC PRESENT })
ABEnvelope ::= Envelope ( WITH COMPONENTS { typeA, typeB } )
ACEnvelope ::= Envelope ( WITH COMPONENTS { typeA, typeC } )
データ型 - 部分型 - サイズ制限
サイズ制限は、値のとりうる長さを制限します。
部分型仕様で、許容する長さを整数で指定します。長さの単位は、対象とするデータ型により変化します。
単一順序列型、単一集合型などの配列をモデル化したデータ型の場合は、その配列のとりうる範囲を構成要素の数の最小値と最大値で示します。
型の記法
サイズ制限 ::= SIZE 部分型仕様
型の記法の例
PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
RFC2510
ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF ExtensionAttribute
OrganizationName ::= PrintableString (SIZE (1..ub-organization-name-length))
PKIX1Explicit88
部分型仕様で、許容する長さを整数で指定します。長さの単位は、対象とするデータ型により変化します。
単一順序列型、単一集合型などの配列をモデル化したデータ型の場合は、その配列のとりうる範囲を構成要素の数の最小値と最大値で示します。
型の記法
サイズ制限 ::= SIZE 部分型仕様
型の記法の例
PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String
RFC2510
ExtensionAttributes ::= SET SIZE (1..ub-extension-attributes) OF ExtensionAttribute
OrganizationName ::= PrintableString (SIZE (1..ub-organization-name-length))
PKIX1Explicit88
2013年2月5日火曜日
データ型 - 部分型 - 許容アルファベット
許容アルファベットは、使用できるアルファベットを制限します。
型の記法
許容アルファベット ::= FROM 部分型仕様
型の記法の例
DigitString ::= PrintableString ( FROM ( “1”| “2” | “3” | “4” | “5” | “6” | “7” | “8” | “9” | “0” ))
型の記法
許容アルファベット ::= FROM 部分型仕様
型の記法の例
DigitString ::= PrintableString ( FROM ( “1”| “2” | “3” | “4” | “5” | “6” | “7” | “8” | “9” | “0” ))
データ型 - 部分型 - 値域
値域は、とりうる値の最小値および最大値を制限します。
型の記法
値域 ::= 下端点 .. 上端点
下端点 ::= 下端値 | 下端値 <
上端点 ::= 上端値 | < 上端値
下端値 ::= 値 | MIN
上端値 ::= 値 | MAX
型の記法の例
IntegerType ::= INTEGER
0未満の整数
NegativeNumber ::= IntegerType ( MIN .. < 0 )
0以下の整数
NonPositiveNumber ::= IntegerType ( MIN .. 0 )
0より大きい整数
PositiveNumber ::= IntegerType ( 0 < .. MAX )
0以上の整数
NonNegativeNumber ::= IntegerType ( 0 .. MAX )
型の記法
値域 ::= 下端点 .. 上端点
下端点 ::= 下端値 | 下端値 <
上端点 ::= 上端値 | < 上端値
下端値 ::= 値 | MIN
上端値 ::= 値 | MAX
型の記法の例
IntegerType ::= INTEGER
0未満の整数
NegativeNumber ::= IntegerType ( MIN .. < 0 )
0以下の整数
NonPositiveNumber ::= IntegerType ( MIN .. 0 )
0より大きい整数
PositiveNumber ::= IntegerType ( 0 < .. MAX )
0以上の整数
NonNegativeNumber ::= IntegerType ( 0 .. MAX )
2013年2月2日土曜日
データ型 - 部分型 - 包含部分型
包含部分型は、既存の部分型を組み合わせて、新たな部分型を定義します。
型の記法
包含部分型 ::= INCLUDES 部分型
型の記法の例
ProtoType ::= ENAMURATED {
first-class(0), buisiness-class(1), coach-class(2), economy-class(3)
}
SubType ::= ProtoType ( coach-class | economy-class )
OtherType ::= ProtoType ( INCLUDES SubType | business-class )
型の記法
包含部分型 ::= INCLUDES 部分型
型の記法の例
ProtoType ::= ENAMURATED {
first-class(0), buisiness-class(1), coach-class(2), economy-class(3)
}
SubType ::= ProtoType ( coach-class | economy-class )
OtherType ::= ProtoType ( INCLUDES SubType | business-class )
データ型 - 部分型 - 単一値
単一値は、親の型のとりうる値から部分型で許容する値を制限します。許容する値を直接指定します。
型の記法
単一値 ::= 値
型の記法の例
ESSVersion ::= INTEGER { v1(1) }
AllOrFirstTier ::= INTEGER { allReceipts (0), firstTierRecipients (1) }
rfc2634
型の記法
単一値 ::= 値
型の記法の例
ESSVersion ::= INTEGER { v1(1) }
AllOrFirstTier ::= INTEGER { allReceipts (0), firstTierRecipients (1) }
rfc2634
登録:
コメント (Atom)