X.680
ITU-T X.680 ISO/IEC 8824-1 JIS X 5605-1
ASN.1 抽象構文記法.1 基本表記の仕様 v6.0 エンコーディングルールは X.690 BER / CER / DER など Google翻訳
JIS X 5603-1990 ISO 8824 開放型システム間相互接続の抽象構文記法1 (ASN.1) 仕様 (古い)
X.680 適当訳(一部)
原文と併用して読むことをおすすめします
内容は保証しません。個人の範囲で無料
T-REC-X.680-202102-I!!PDF-E.pdf
概要
勧告 ITU-T X.680 | ISO/IEC 8824-1 (JIS X 5603)は、情報データの構文を定義するための抽象構文記法1(Abstract Syntax Notation One : ASN.1) と呼ばれる表記法を提供します。 これは、多数の単純なデータ型を定義し、これらの型を参照し、これらの型の値を指定するための表記法を指定します。
ASN.1 表記は、情報の抽象構文を定義する必要があるときはいつでも、送信のために情報をエンコードする方法をまったく制約することなく適用できます。
もくじ (略)
はじめに Introduction
この勧告 | 国際標準は、データ型と値の定義の標準表記法を示しています。 データ タイプ (または略してタイプ type) は、情報のカテゴリ (数値、テキスト、静止画像、またはビデオ情報など) です。 データ値 (または短縮して値 value) は、そのような型のインスタンスです。 この勧告 | 国際標準では、いくつかの基本的な型とそれに対応する値、およびそれらを組み合わせてより複雑な型と値を作成するためのルールが定義されています。
一部のプロトコル アーキテクチャでは、各メッセージは一連のオクテットのバイナリ値として指定されます。 ただし、標準作成者は、バイナリ表現を気にせずに、メッセージを伝送するための非常に複雑なデータ型を定義する必要があります。 これらのデータ型を指定するには、各値の表現を必ずしも決定しない表記法が必要です。 ASN.1 はそのような表記です。 この表記法は、アプリケーション セマンティクス (転送構文と呼ばれる) を運ぶオクテットの値を決定するエンコード ルールと呼ばれる 1 つ以上のアルゴリズムの仕様によって補足されます。 Rec. ITU-T X.690 | ISO/IEC 8825-1、Rec. ITU-T X.691 | ISO/IEC 8825-2 および Rec. ITU-T X.693 | ISO/IEC 8825-4 では、Basic Encoding Rules (BER)、Packed Encoding Rules (PER)、および XML Encoding Rules (XER) と呼ばれる、標準化されたエンコーディング ルールの 3 つのファミリーを指定しています。
一部のユーザーは、ASN.1 を使用して古いプロトコルを再定義したいと考えていますが、既存のバイナリ表現を保持する必要があるため、標準化されたエンコード ルールを使用できません。 他のユーザーは、ワイヤ上のビットの正確なレイアウト (転送構文) をより完全に制御したいと考えています。 これらの要件は、ASN.1 の Encoding Control Notation (ECN) を規定する Rec. ITU-T X.692 | ISO/IEC 8825-3 によって対処されています。 ECN を使用すると、設計者は ASN.1 を使用してプロトコルの抽象構文を正式に指定できますが、その後 (必要に応じて) 付属の ECN 仕様 (標準化されたエンコーディング ルールを参照する場合がある) を記述することで、回線上のビットを完全または部分的に制御できます。 エンコードの一部)
抽象レベルで複雑な型を定義する非常に一般的な手法は、単純な型のすべての可能な値を定義し、これらの単純な型をさまざまな方法で組み合わせることで、少数の単純な型を定義することです。 新しい型を定義する方法のいくつかは次のとおりです:
a) 既存の型の (順序付けられた) リストが与えられると、既存の型のそれぞれから 1 つずつ、値の (順序付けられた) シーケンスとして値を形成できます。 この方法で取得されたすべての可能な値のコレクションは新しい型です (リスト内の既存の型がすべて異なる場合、このメカニズムを拡張して、リストから一部の値を省略できるようにすることができます);
b) (個別の) 既存の型の順序のないセットが与えられた場合、値は、既存の型のそれぞれから 1 つずつ、(順序のない) 値のセットとして形成できます。 この方法で取得されたすべての可能な順序付けされていない値のセットのコレクションは新しいタイプです (メカニズムを再度拡張して、一部の値を省略できるようにすることができます);
c) 単一の既存の型が与えられた場合、値は、既存の型のゼロ、1 つ以上の値の (順序付き) リストまたは (順序なし) セットとして形成できます。 この方法で取得されたすべての可能なリストまたは値のセットのコレクションは新しいタイプです。
d) (個別の) 型のリストが与えられた場合、値はそれらのいずれかから選択できます。 この方法で取得されたすべての可能な値のセットは新しいタイプです。
e) 型が与えられると、値間の何らかの構造または順序関係を使用して、そのサブセットとして新しい型を形成できます。
この方法で型を結合する場合の重要な点は、エンコーディング ルールが結合構造を認識し、基本型の値の集合の明確なエンコーディングを提供する必要があることです。 したがって、この勧告|国際標準で指定されている表記法を使用して定義されたすべての基本型は、値の明確なエンコードを支援するタグが割り当てられます。
タグは主に機械での使用を目的としており、この勧告|国際標準で定義されている人間による表記は必須ではありません。 ただし、特定の型を区別する必要がある場合は、異なるタグを持つことを要求することで表現されます。 したがって、タグの割り当てはこの表記法を使用する際の重要な部分ですが、(1994 年以降) タグの自動割り当てを指定できるようになりました。
注 1 – この勧告 | 国際標準では、タグ値はすべての単純な型と構築メカニズムに割り当てられます。表記法の使用に課された制限により、値を明確に識別するために転送時にタグを使用できることが保証されます。
型にエンコード命令を割り当てて、その型のエンコードに影響を与えることもできます。 これは、型定義の前に配置された型プレフィックスまたは型参照の使用、または ASN.1 モジュールの最後にエンコード制御セクションを配置することによって実行できます。 型プレフィックスとエンコード制御セクションの一般的な構文は、この勧告 | 国際標準で指定されており、エンコード命令によって変更されるエンコード規則を識別するためのエンコード参照が含まれています。 エンコード命令のセマンティクスと詳細な構文は、エンコード リファレンスによって特定されるエンコード ルール勧告 | 国際標準で指定されています。
ASN.1 仕様は、最初は完全に定義された ASN.1 タイプのセットを使用して作成されます。 ただし、後の段階で、これらの型を変更する必要がある場合があります (通常は、シーケンスまたはセット型に追加のコンポーネントを追加することによって)。 古い型定義を使用する実装が、定義された方法で新しい型定義を使用する実装と相互運用できるようにするために、エンコーディング ルールで適切なサポートを提供する必要があります。 ASN.1 表記法では、いくつかのタイプに拡張マーカーを含めることができます。 これにより、このタイプは拡張シリーズと呼ばれる一連の関連タイプ (つまり、同じ初期タイプのバージョン) の 1 つであるという設計者の意図がエンコーディング ルールに通知され、同じ拡張シリーズの一部であることによって関連する異なるタイプを使用する実装間での情報転送を可能にするためにエンコーディング ルールが必要であることが示されます。
第11条から第33条 (両端を含む) では、ASN.1 でサポートされる単純型を定義し、単純型の参照とそれらを使用した新しい型の定義に使用する表記法を指定します。条項 11 から 33 では、ASN.1 を使用して定義された型の値を指定するために使用する表記法も指定します。2 つの値表記法が提供されています。1 つ目は基本 ASN.1 値表記法と呼ばれ、最初に導入されて以来 ASN.1 表記法の一部となっています。2 つ目は XML ASN.1 値表記法と呼ばれ、拡張マークアップ言語 (XML) を使用した値表記法を提供します。
注 2 – XML 値表記法は、XML を使用して ASN.1 値を表す手段を提供します。したがって、ASN.1 型定義は、XML 要素の構造と内容も指定します。これにより、ASN.1 は XML 用のシンプルなスキーマ言語になります。
第 36 条から第 37 条 (両端を含む) は、ASN.1 タイプの完全なエンコーディングを内部に保持するために ASN.1 によってサポートされるタイプを定義します。
第 38 条と付録 B は、ISO 8601 のサポートを提供するタイプを定義します。
条項 39 から条項 44 まで (両端を含む) は、文字列タイプを定義します。
第 45 条から第 48 条 (両端を含む) は、一般的な有用性があると考えられる特定の型を定義しますが、追加のエンコード規則は必要ありません。
条項 49 から 51 (両端を含む) は、親タイプの値からサブタイプを定義できるようにする表記法を定義します。
第 52 条では、「バージョン 1」仕様で指定された ASN.1 タイプを「バージョン 2」で拡張される可能性が高いものとして識別し、後続のバージョンで行われた追加を個別にリストしてバージョン番号で識別できるようにする表記を定義しています。 。
第 53 条は、現在の標準化された定義で指定されている値の範囲外にある値のエンコードを受信した場合に、ASN.1 タイプ定義に意図したエラー処理の指示を含めることを許可する表記法を定義します。
附属書 A は、この勧告 | 国際標準の不可欠な部分を形成し、ASN.1 正規表現を指定します。
附属書 B は、この勧告 | 国際標準の不可欠な部分を形成し、ISO 8601 の完全な機能を提供する時間タイプのセットの定義を含む ASN.1 モジュールを定義します。これらのタイプは、第 38 条で指定されている有用な時間タイプがアプリケーションに適していない場合、アプリケーション設計者がこの ASN.1 モジュールからインポートできます。
附属書 C は、この勧告 | 国際標準の不可欠な部分を形成し、型と値の互換性のルールを指定します。
附属書 D は、この勧告 | 国際標準の不可欠な部分であり、ASN.1 シリーズの勧告 | 国際標準で割り当てられたオブジェクト識別子とオブジェクト記述子の値を記録します。
附属書 E は、この勧告 | 国際標準の不可欠な部分であり、現在定義されているエンコード参照と、それらのエンコード参照を使用したエンコード命令のセマンティクスと詳細な構文を定義する勧告 | 国際標準を指定します。
附属書 F は、この勧告 | 国際標準の不可欠な部分ではなく、国際オブジェクト識別子ツリーの最上位アークの仕様と、そのツリーを使用して IANA で「oid」スキームとして登録された IRI または URI として使用できる OID 国際化リソース識別子を形成する方法を参照します。
付属書 G は、この勧告 | 国際標準の不可欠な部分ではなく、ASN.1 表記法の使用に関する例とヒントを提供します。
附属書 H は、この勧告 | 国際標準の不可欠な部分ではなく、ASN.1 文字列に関するチュートリアルを提供します。
附属書 I は、この勧告 | 国際標準の不可欠な部分ではなく、 ASN.1 型拡張モデルのチュートリアルを提供します。
附属書 J は、この勧告 | 国際標準の不可欠な部分ではなく、ISO 8601 と TIME 型の紹介チュートリアルを提供します。規範テキストの前にこれを読むことをお勧めします。
附属書 K は、この勧告 | 国際標準の不可欠な部分ではなく、値表記のインスタンスから抽象値の時間プロパティを識別する方法に関する情報を提供します。
附属書 L は、この勧告 | 国際標準の不可欠な部分ではなく、第 5 項の表記法を使用した ASN.1 の概要を提供します。
情報技術 -
Abstract Syntax Notation One (ASN.1 抽象構文表記法1):
基本表記の仕様
1 範囲 Scope
この勧告|国際標準では、データ型、値、データ型の制約の定義に使用される抽象構文表記法1(Abstract Syntax Notation One : ASN.1)標準表記を提供します。
この勧告|国際標準:
多くの単純な型とそのタグを定義し、これらの型を参照し、これらの型の値を指定するための表記法を指定します;
より基本的な型から新しい型を構築するメカニズムを定義し、そのような型を定義してタグを割り当て、これらの型の値を指定するための表記法を指定します;
ASN.1 内で使用する文字集合を (他の推奨事項や国際標準を参照して) 定義します。
ASN.1 表記は、情報の抽象構文を定義する必要がある場合にはいつでも適用できます。
ASN.1 表記は、ASN.1 タイプのエンコード規則を定義する他の標準によって参照されます。
2 参照文献 規範的参照 Normative references
以下の勧告および国際規格には、本文中の参照を通じてこの勧告 | 国際規格の規定を構成する規定が含まれています。 発行時点では、示されているエディションは有効です。 すべての勧告および基準は改訂される可能性があり、この勧告 | 国際基準に基づく協定の当事者は、以下にリストされている勧告および基準の最新版を適用する可能性を調査することが推奨されます。 IEC および ISO のメンバーは、現在有効な国際規格の登録簿を維持しています。 ITU の電気通信標準化局は、現在有効な ITU-T 勧告のリストを管理しています。
注 – この勧告 | 国際規格は ISO/IEC 10646:2003 および Unicode 標準バージョン 3.2.0:2002 に基づいています。 これら 2 つの規格の新しいバージョンを使用して適用することはできません
2.1 同一の勧告 | 国際標準
勧告 ITU-T X.660 (2011) | ISO/IEC 9834-1:2012 情報技術 - Open Systems Interconnection - OSI登録機関の運用手順: ASN.1 国際オブジェクト識別子ツリー(ASN.1 International Object Identifier tree)の一般手順と上位アーク(top arcs)
勧告 ITU-T X.681 (2021) | ISO/IEC 8824-2:2021, 情報技術 - Abstract Syntax Notation One (ASN.1): 情報オブジェクト仕様
勧告 ITU-T X.682 (2021) | ISO/IEC 8824-3:2021, 情報技術 - Abstract Syntax Notation One (ASN.1): 制約仕様
勧告 ITU-T X.683 (2021) | ISO/IEC 8824-4:2021, 情報技術 - Abstract Syntax Notation One (ASN.1): ASN.1仕様のパラメータ化
勧告 ITU-T X.690 (2021) | ISO/IEC 8825-1:2021, 情報技術 - ASN.1 エンコーディングルール: Basic Encoding Rules (BER 基本符号化規則), Canonical Encoding Rules (CER 一般符号化規則) and Distinguished Encoding Rules (DER 識別符号化規則) 仕様.
勧告 ITU-T X.691 (2021) | ISO/IEC 8825-2:2021, 情報技術 - ASN.1 エンコーディングルール: Packed Encoding Rules (PER 圧縮符号化規則) 仕様
勧告 ITU-T X.692 (2021) | ISO/IEC 8825-3:2021, 情報技術 - ASN.1 エンコーディングルール: Encoding Control Notation (ECN 符号化制御表記) 仕様
勧告 ITU-T X.693 (2021) | ISO/IEC 8825-4:2021, 情報技術 - ASN.1 エンコーディングルール: XML Encoding Rules (XER XML符号化規則)
勧告 ITU-T X.695 (2021) | ISO/IEC 8825-6:2021, 情報技術 - ASN.1 エンコーディングルール: PER エンコード命令の登録と応用(application)
注 – 上記の参考文献は、特定された勧告 | 国際規格と、その発行されたすべての修正および技術的修正案への参照として解釈されるものとします。
訳注 - JISは古いものしかありません
2.2 追加の参考文献
勧告 ITU-R TF 460-6 (2002), 標準周波数および時間信号の放射.
CCITT 勧告 T.100 (1988), インタラクティブ Videotexのための国際情報交換.
勧告 ITU-T T.101 (1994), Videotexサービスの国際インターワーキング.
エスケープシーケンスで使用される符号化文字集合のISO国際登録.
ISO/IEC 646:1991, 情報技術 - 情報交換用のISO 7-bit 符号化文字集合.
(JIS X 0201 7ビット及び8ビットの情報交換用符号化文字集合)
ISO/IEC 2022:1994, 情報技術 - 文字コードの構造と拡張技術.
(JIS X 0202)
ISO/IEC 6523:1998, データ交換 - 組織および組織の部分を識別するための情報.
ISO/IEC 7350:1991, 情報技術 - ISO/IEC 10367から絵文字のレパートリーの登録.
ISO/IEC 8601:2019, 日付と時刻 情報交換の表現.
(JIS X 0301)
ISO/IEC 10646:2003, 情報技術 - 普遍的複数八重符号化文字集合 (UCS 国際符号化文字集合).
(JIS X 0221)
Unicode標準 - Version 3.2.0:2002. Unicodeコンソーシアム. (マサチューセッツ州レディング, アディソン・ウェスリー)
注1 - 上記の参照は制御文字の名前を提供し、文字のカテゴリを指定するために含まれています。
注 - この勧告|国際規格内の文書への参照には、単独の文書として、勧告または国際規格の地位を与えるものではありません。
3 定義 Definitions
この勧告 | 国際規格の目的のために、次の定義が適用されます。
訳注
reference 参照
sequence 順序
set 集合
type 型
3.1 国際オブジェクト識別子ツリーの仕様
この勧告 | 国際規格では、Rec. ITU-T X.660 | ISO/IEC 9834-1で定義されている次の用語を使用します :
a) integer-valued Unicode label; 整数値のUnicodeラベル
b) international object identifier tree; 国際化オブジェクト識別子ツリー
c) OID internationalized resource identifier; OID 国際化リソース識別子
d) long arc;
e) object identifier; オブジェクト識別子
f) primary integer value; 主な整数値
g) secondary identifier; 二次識別子
h) Unicode label. Unicodeラベル
3.2 情報オブジェクトの仕様
この勧告 | 国際規格では、Rec. ITU-T X.681 | ISO/IEC 8824-2で定義されている次の用語を使用します :
a) information object; 情報オブジェクト;
b) information object class; 情報オブジェクトクラス;
c) information object set; 情報オブジェクト集合;
d) instance-of type; instance-of型;
e) object class field type. オブジェクトクラスフィールドタイプ.
3.3 制約仕様 Constraint 仕様
この勧告 | 国際規格では、Rec. ITU-T X.682 | ISO/IEC 8824-3で定義されている次の用語を使用します :
a) component relation constraint; コンポーネント関連制約
b) table constraint. テーブル制約
3.4 ASN.1のパラメータ化仕様 Parameterization of ASN.1
この勧告 | 国際規格では、Rec. ITU-T X.683 | ISO/IEC 8824-4で定義されている次の用語を使用します :
a) parameterized type; パラメータ化された型;
b) parameterized value. パラメータ化された値.
3.5 組織を識別するための構造 Structure for identification of organizations
この勧告 | 国際規格では、ISO/IEC 6523 (JIS該当なし)で定義されている次の用語を使用します :
a) issuing organization; 発行組織
b) organization code; 組織コード
c) International Code Designator. 国際コード指定者
3.6 Universal Multiple-Octet Coded Character Set (UCS 普遍的複数八重符号化文字集合 国際符号化文字集合)
この勧告 | 国際規格では、ISO/IEC 10646 (JIS X 0221)で定義されている次の用語を使用します :
a) Basic Multilingual Plane (BMP 基本多言語面)
b) cell; 点
c) combining character; 結合文字
d) graphic symbol; 図形記号
e) group; 群
f) limited subset; 制限部分集合
g) plane; 面
h) row; 区
i) selected subset. 選択部分集合
3.7 日付と時刻の表現 Representation of dates and times
この勧告 | 国際規格では、ISO/IEC 8601 (JIS X 0301)で定義されている次の用語を使用します :
a) basic format; 基本形式
b) calendar date; 暦日付
c) common year; 平年
d) duration; 時間長
e) extended format; 拡張形式
f) Gregorian calendar; グレゴリオ暦, 西暦
g) instant; インスタント
h) leap second; うるう秒
i) leap year; うるう年
j) local time of day; 地方時
k) ordinal date; 年間通算日
l) recurring time interval; 反復時間間隔
m) time axis; 時間軸
n) time interval; 時間間隔
o) time; 時間
p) time-scale; 時間尺度
q) UTC; 協定世界時
r) week date. 週の日付
3.8 追加の定義 Additional definitions
3.8.1 抽象文字 abstract character:テキストデータの編成、制御、または表現に使用される抽象値
注 - 付録Hには、抽象文字という用語のより完全な説明が記載されています。
3.8.2 抽象値 abstract value: エンコーディングでの表現方法とは無関係に、一部のセマンティクスを伝達するために使用される型のみに基づいて定義される値。
注 – 抽象値の例は、整数型、ブール型、文字列型、または整数とブール値のシーケンス (または選択) である型の値です。
3.8.3 追加の時間型 additional time type: プロパティ設定サブタイプ表記を時間タイプ、または有用な時間タイプまたは定義された時間タイプに適用することによって、時間型 (3.8.83 を参照) のサブタイプとして定義された型。
3.8.4 ASN.1 文字集合 ASN.1 character set: ASN.1 表記で使用される、条項 11 で指定された文字集合。
3.8.5 ASN.1 仕様 ASN.1 specification: 1 つ以上の ASN.1 モジュールの集合。
3.8.6 関連型 associated type: タイプの値とサブタイプ表記を定義するためにのみ使用される型。
注 – 関連タイプは、ASN.1 でのタイプの定義方法とエンコード方法の間に大きな違いがある可能性があることを明確にする必要がある場合に、この勧告 | 国際標準で定義されます。 関連タイプはユーザー仕様には表示されません。
3.8.7 ビット列型 bitstring type: 識別値が 0、1 つ以上のビットの順序付けされたシーケンスである単純な型。
注 – 抽象値の埋め込みエンコーディングを運ぶ必要がある場合は、内容制約のないビット列 (またはオクテット文字列) タイプの使用は非推奨です (Rec. ITU-T X.682 | ISO/IEC 8824-3 の条項11を参照) 。 それ以外の場合は、embedded-pdv タイプ (第 36 節を参照) を使用すると、より柔軟なメカニズムが提供され、抽象構文と埋め込まれた抽象値のエンコーディングのアナウンスが可能になります。
3.8.8 ブール型 boolean type 2 つの区別される値を持つ単純な型。
3.8.9 文字プロパティ character property: 文字レパートリーを定義するテーブル内のセルに関連付けられた一連の情報
注 – 通常、情報には次の項目の一部またはすべてが含まれます。
a) グラフィックシンボル。
b) キャラクター名。
c) 特定の環境で使用される場合のキャラクターに関連付けられた機能の定義。
d) それが数字を表すかどうか。
e) (大文字/小文字) のみが異なる関連文字。
3.8.10 文字抽象構文 character abstract syntax: 値が、指定された文字のコレクションからの 0 文字、1 つ以上の文字の文字列のセットとして指定される抽象構文。
3.8.11 文字レパートリー character repertoire: 文字集合内の文字。そのような文字がどのようにエンコードされるかには影響を与えません。
3.8.12 文字列型 character string types: 値がいくつかの定義された文字集合の文字列である単純な型。
3.8.13 文字転送構文 character transfer syntax: 文字抽象構文の任意の転送構文。
3.8.14 選択型 choice types : 個別タイプのリストを参照することによって定義されたタイプ。 選択タイプの各値は、コンポーネント タイプの 1 つの値から導出されます(派生します)。
3.8.15 コンポーネント型 component tpye: CHOICE、SET、SEQUENCE、SET OF、または SEQUENCE OF を定義するときに参照される型の 1 つ。
3.8.16 制約 constraint: 型に関連して、その型のサブタイプを定義するために使用できる表記法。
3.8.17 コンテンツ制約 contents constraint : コンテンツが指定された ASN.1 タイプのエンコーディングであること、またはコンテンツの生成および処理に指定されたプロシージャが使用されることを指定する、ビット文字列またはオクテット文字列タイプの制約。
3.8.18 制御文字 control characters: 一部の文字レパートリーに出現する文字で、名前 (および特定の環境に関連して定義された機能) が与えられているものの、グラフィック記号が割り当てられておらず、スペース文字ではないもの。
注 – 水平タブ HORIZONTAL TABULATION (9) および改行 LINE FEED (10) は、印刷環境で書式設定機能が割り当てられた制御文字の例です。 DATA LINK ESCAPE (16) は、通信環境で機能が割り当てられた制御文字の例です。
3.8.19 協定世界時 Coordinted Universal Time (UTC): 標準周波数と時刻信号の調整された配布の基礎を形成する、国際時間局 Bureau International de l'Heure (国際時間局 ) によって維持される時間スケール。
3.8.20 デフォルトのエンコード参照 (モジュール用) default encoding reference (for a module): モジュール ヘッダーで指定され、エンコード参照を含まないすべての型プレフィックスで想定されるエンコード参照。
注 – デフォルトのエンコード参照がモジュールヘッダーで指定されていない場合、エンコード参照を含まないすべてのタイププレフィックスがタグを割り当てます。
3.8.21 定義された時間型 defined time type: 時間タイプ (3.8.83 を参照) のサブタイプとして付録 B で定義されたタイプ。アプリケーションに必要な場合にアプリケーション設計者によってインポートされることを目的としています。
3.8.22 要素 element: 管理型の値、または管理情報オブジェクト クラスの情報オブジェクト。それぞれ、同じタイプの他のすべての値または同じクラスの情報オブジェクトと区別できます。
3.8.23 要素集合 element set: 要素のセット。そのすべては、管理型の値、または管理クラスの情報オブジェクトです。
注 – 管理クラスは Rec. ITU-T X.681 | ISO/IEC 8824-2、3.4.7で定義されます。
3.8.24 embedded-pdv 型 embedded-pdv type: 値のセットが形式的にすべての可能な抽象構文の値のセットの和集合である型。 この型は、ASN.1 仕様の外部で型を定義できる抽象値をそのプロトコル内で運ぶことを希望する ASN.1 仕様で使用できます。 これは、伝送される抽象値の抽象構文 (型) の識別子と、その抽象値をエンコードするために使用されるエンコード規則の識別子を伝送します。
3.8.25 エンコーディング encoding: 一連のエンコーディング規則を抽象値に適用した結果得られるビットパターン。
3.8.26 エンコード制御セクション encoding control section: ASN.1 モジュール内で定義または使用されるタイプにエンコード命令を割り当てることを可能にする ASN.1 モジュールの一部。
3.8.27 エンコード命令 encoding instruction: 型プレフィックスまたはエンコード制御セクションを使用して型に関連付けることができ、1 つ以上の ASN.1 エンコーディング規則によってその型のエンコーディングに影響を与える情報。
注 – エンコード命令は型の抽象値に影響を与えず、アプリケーションから見えることは期待されていません。
3.8.28 エンコーディング参照 encoding reference: 型プレフィックスまたはエンコーディング制御セクションのエンコーディング命令の影響を受けるエンコーディング規則を識別する名前 (付録 E を参照)。
注 – エンコード参照 TAG は、型プレフィックスがエンコード命令ではなくタグを割り当てることを指定するために使用できます (31.2 を参照)
3.8.29 (ASN.1) エンコード規則 (ASN.1) ecoding rules: ASN.1 型の値の転送時の表現を指定する規則。 エンコード規則により、型の知識があれば、表現(representation)から値を回復することもできます。
注 – エンコード規則を指定する目的では、組み込み型 (および値) の代替表記を提供できるさまざまな参照型 (および値) 表記は関係ありません。
3.8.30 列挙型 enumerated types: 値に型表記の一部として個別の識別子が与えられる単純な型。
3.8.31 拡張追加 extension addition: 拡張シリーズの追加表記の 1 つ。 セット set、シーケンス sequence、選択 choice タイプの場合、各拡張機能の追加は、単一の拡張機能追加グループまたは単一のコンポーネント タイプの追加です。 列挙 enumerated 型の場合は、さらに 1 つの列挙型を追加します。 制約 constraint の場合、サブタイプ要素を (1 つだけ) 追加することになります。
注 – 拡張機能の追加は、テキスト的に順序付けされ (拡張マーカーに従う)、論理的に順序付けされます (列挙値が増加し、CHOICE 代替の場合はタグが増加します)。
3.8.32 拡張追加グループ extension addition group: バージョン括弧内にグループ化されたセット、シーケンス、または選択 choice タイプの 1 つ以上のコンポーネント。 拡張追加グループは、ASN.1 モジュールの特定のバージョンに追加されたセット、シーケンス、または選択タイプのコンポーネントを明確に識別するために使用され、単純な整数でそのバージョンを識別できます。
3.8.33 拡張追加型 extension addition type: 拡張追加グループ内に含まれるタイプ、またはそれ自体が拡張追加である単一コンポーネント タイプ (そのような場合、拡張追加グループには含まれません)
3.8.34 拡張可能制約 extensible constraint: 外部レベルに拡張マーカーを持つサブタイプ制約、または拡張可能な値のセットを使用したセット算術の使用によって拡張可能なサブタイプ制約。
3.8.35 拡張挿入ポイント extension insertion point (または挿入ポイント insertion point): 拡張追加が挿入される型定義内の位置。 この位置は、型定義に 1 つの省略記号がある場合は拡張シリーズの直前の型の型表記の終わり、型定義に拡張マーカーのペアがある場合は 2 番目の省略記号の直前です。
注 – 任意の選択 choice、シーケンス sequence、またはセット setタイプのコンポーネント内に存在できる挿入ポイントは最大 1 つです。
3.8.36 拡張マーカー extension marker: 拡張シリーズの一部を形成するすべての型に含まれる構文フラグ (省略記号)。
3.8.37 拡張マーカーペア extension marker pair: 間に拡張追加が挿入される拡張マーカーのペア。
3.8.38 拡張-関連 extension-related: 同じ拡張ルートを持つ 2 つのタイプ。一方はもう一方に 0 個以上の拡張機能を追加することによって作成されます。
3.8.39 拡張ルート extension root: 拡張シリーズの最初のタイプである拡張可能なタイプ。 拡張子マーカーと対応する "}" または ")" の間に、コメントと空白以外の追加表記のない拡張マーカー、または 1 つのコンマ、コメント、および白以外の追加表記のない拡張マーカーのペアが含まれます。 -拡張マーカー間のスペース。
注 – 拡張ルートのみが拡張シリーズの最初のタイプになれます
3.8.40 拡張シリーズ extension series: 拡張挿入ポイントにテキストを追加することによってシリーズ内の連続する各型が形成されるように順序付けできる一連の ASN.1 型。
3.8.41 拡張可能型 extensible type: 拡張マーカーを持つタイプ、または拡張可能な制約が適用されているタイプ。
注 – 拡張マーカーはテキストとして存在することも、EXTENSIBILITY-IMPLIED によって挿入されることもできます (13.4 を参照)。
3.8.42 外部参照 external reference: 型参照、値参照、情報オブジェクト クラス参照、情報オブジェクト参照、または情報オブジェクト セット参照 (パラメータ化される場合がある)。参照されているモジュール以外のモジュールで定義され、 参照される項目の前にモジュール名を付けることで参照されます。
例 – ModuleName.TypeReference
3.8.43 外部型 external type: ASN.1 仕様の外部で定義できる型の値を運ぶ、ASN.1 仕様の一部である型。 また、伝送される値の型の識別も伝送されます。
3.8.44 false: ブール型の識別値の 1 つ (「true」も参照)。
3.8.45 統治 (型); ガバナー governing (type); governor: ASN.1 構文の一部の解釈に影響を与える型定義または参照。ASN.1 構文のその部分が管理型の値を参照する必要があります。
3.8.46 同一型定義 identical type definitions: ASN.1 "Type" 生成の 2 つのインスタンス (第 17 節を参照) は、附属書 C で指定された変換を実行した後、同一の語彙項目の同一順序リストである場合 (第 12 節を参照)、同一型定義として定義されます。 )
3.8.47 OID 国際化リソース識別子型 OID internationalized resource identifier type: すべての OID 国際化リソース識別子のセット。
注 1 – これは、Rec. ITU-T X.660 | ISO/IEC 9834シリーズで指定されている、国際オブジェクト識別子ツリーのルートからノードに至る一連のアークを識別する一連の Unicode ラベルを値とする単純なタイプです。
注 2 – Rec ITU-T X.660 | ISO/IEC 9834-1 の規則では、幅広い当局が独自に Unicode ラベルをツリーの円弧に関連付けることを許可しています。
3.8.48 整数型 integer type: (単一の値として) ゼロを含む、正と負の区別される整数である値を持つ単純な型。
注 – 特定のエンコード規則が整数の範囲を制限する場合、そのような制限は ASN.1 のユーザーに影響を与えないように選択されます。
3.8.49 語彙項目 lexical item: ASN.1 文字集合の名前付き文字シーケンス。第 12 項で指定され、ASN.1 表記の形成に使用されます。
3.8.50 モジュール module: ASN を使用してカプセル化された、型、値、値セット、情報オブジェクト クラス、情報オブジェクト、および情報オブジェクト セット (およびそれらのパラメータ化されたバリアント) に対する ASN.1 表記法の使用の 1 つ以上のインスタンス。 1 モジュール表記 (第 13 節を参照)。
注 – 情報オブジェクトクラス(など)という用語は、Rec. ITU-T X.681 | ISO/IEC 8824-2 で指定されており、パラメータ化は Rec. ITU-T X.683 | ISO/IEC 8824-4で指定されています。
3.8.51 null型 null type: 単一の値で構成される単純な型。null とも呼ばれます。
3.8.52 オブジェクト object: 通信のインスタンスでの使用を識別するために名前を必要とする、明確に定義された情報、定義、または仕様。
注 – このようなオブジェクトは、Rec. ITU-T X.681 | ISO/IEC 8824-2 で定義されている情報オブジェクトである可能性があります。
3.8.53 オブジェクト記述子型 object descriptor type: 識別値が、オブジェクトの簡単な説明を提供する人間が判読できるテキストであるタイプ (3.8.52 を参照)。
注 – オブジェクト記述子の値は通常、単一のオブジェクトに関連付けられます。 オブジェクト識別子の値のみがオブジェクトを明確に識別します。
3.8.54 オブジェクト識別子型 object identifier type: Rec. ITU-T X.660 | ISO/IEC 9834シリーズ で指定されている、国際オブジェクト識別子ツリーのルートからノードに至る一連の弧を識別する一連の主整数値である単純なタイプ。
注 1 – Rec. ITU-T X.660 | ISO/IEC 9834-1 の規則では、広範囲の当局が主整数値をツリーの円弧に独立して関連付けることを許可しています。
注 2 – オブジェクト識別子型の値表記 (およびそのタイプの XML エンコーディング) では、アークの 2 番目の識別子を含めることができます。
3.8.55 オクテット文字列型 octetstring type: 識別値が 0、1 つ以上のオクテットの順序付けされたシーケンスであり、各オクテットが 8 ビットの順序付けされたシーケンスである単純な型。
3.8.56 オープン システム相互接続 open system interconnectin: この勧告で使用される多数の用語を提供するコンピュータ通信のアーキテクチャ。 国際規格の先頭に「OSI」という略語が付きます。
注 – このような用語の意味は、必要に応じて Rec ITU-T X.200 シリーズおよび同等の ISO/IEC 標準から取得できます。 この条件は、ASN.1 が OSI 環境で使用される場合にのみ適用されます。
3.8.57 オープン 型表記 open type notation: 複数の ASN.1 タイプの値のセットを示すために使用される ASN.1 表記。
注 1 – 「オープンタイプ open type」という用語は、この勧告 | 国際規格の本文では「オープンタイプの表記 open type notation」と同義に使用されます。
注 2 – すべての ASN.1 エンコード規則は、単一の ASN.1 型の値に対して明確なエンコードを提供します。 これらは、通常仕様時に決定されない ASN.1 型の値を運ぶ「オープン型表記法」の明確なエンコーディングを必ずしも提供するわけではありません。 そのフィールドの抽象値を明確に決定するには、「オープン型表記法」でエンコードされている値の型を知る必要があります。
注 3 – この勧告 | 国際規格の中でオープンタイプ表記である唯一の表記は、Rec. ITU-T X.681 | ISO/IEC 8824-2 の第 14 項で指定されている「ObjectClassFieldType」です。 「FieldName」は、型フィールドまたは変数型値フィールドのいずれかを示します。
3.8.58 (サブタイプの)親の型 parent type (of a subtype): サブタイプを定義するときに制約され、サブタイプの表記を制御する型。
注 – 親の型自体が他のタイプのサブタイプである場合があります。
3.8.59 production: ASN.1 を指定するために使用される正式な表記法 (文法またはバッカス・ナウア形式、BNF とも呼ばれる) の一部。
3.8.60 実数型 real type: 識別値 (条項 21 で指定) に、実数 (数値実数) のセットとNOT-A-NUMBER などの特殊な値が含まれる単純な型。
3.8.61 (型の)再帰的定義 recursive definition (of a type): 構造で使用されるすべての型が構造の定義の前に定義されるように並べ替えることができない ASN.1 定義のセット。
注 – ASN.1 では再帰的定義が許可されています。表記法のユーザーは、使用される (結果の型の) 値が有限表現を持ち、その型に関連付けられた値セット(value set)に少なくとも 1 つの値が含まれていることを確認する責任があります。
3.8.62 相対 OID 国際化リソース識別子型 relative OID internationalized resource identifier type: 既知の OID 国際化リソース識別子に対する相対的な位置によってオブジェクトを識別する値。
3.8.63 相対オブジェクト識別子 relative object identifier: 既知のオブジェクト識別子に対する相対的な位置によってオブジェクトを識別する値。
3.8.64 相対オブジェクト識別子型 relative object identifier type: 値がすべての可能な相対オブジェクト識別子のセットである単純なタイプ。
3.8.65 制限された文字列型 restricted character string type: 型仕様で指定された固定文字レパートリーから文字が取得される文字列型。
3.8.66 選択型 selection types: 選択タイプのコンポーネント タイプを参照することによって定義されたタイプ。その値は正確にそのコンポーネント タイプの値です。
3.8.67 シーケンス型 sequence types: 型の固定された順序付きリストを参照することによって定義された型 (その一部はオプションとして宣言される場合があります)。 シーケンス型の各値は、各コンポーネント 型から 1 つずつ、順序付けられた値のリストです。
注 – コンポーネント型がオプションであると宣言されている場合、シーケンス型の値にそのコンポーネント型の値が含まれる必要はありません。
3.8.68 sequence-of型 sequence-of types: : 単一のコンポーネント型を参照することによって定義された型。 sequence-of type の各値は、コンポーネント型の 0 個、1 つ以上の値の順序付きリストです。
3.8.69 (制約の) シリアル適用 serial application (of constraints): すでに制約されている親の型に制約を適用すること。
3.8.70 集合算術 set arithmetic: 50.2 で規定されているように、和集合、積集合、差集合の演算 (EXCEPT の使用) を使用して、値または情報オブジェクトの新しい集合を形成すること。
注 – 制約を逐次適用した結果は、「集合演算」という用語には含まれません。
3.8.71 (時間プロパティの) 設定 setting (of a time property): 特定の時間プロパティに関連付けることができる多数の値の 1 つ (3.8.82 および J.4.2 の注記を参照)。
注 – 特定の時間抽象値に適用される時間プロパティには、設定が 1 つだけあります (表 6 を参照)。
3.8.72 set型 集合型 set types: 固定で順序付けられていない型のリストを参照することによって定義された型 (一部はオプションとして宣言される場合があります)。 セット型の各値は、各コンポーネント型から 1 つずつ、順序付けされていない値のリストです。
注 – コンポーネント型がオプションであると宣言されている場合、セット型の値にそのコンポーネント型の値が含まれる必要はありません。
3.8.73 set-of型 set-of types: 単一のコンポーネント型を参照することによって定義された型。 set-of type の各値は、コンポーネント型の 0、1 つまたは複数の値の順序なしリストです。
3.8.74 単純型 simple types: 値の集合を直接指定することによって定義される型。
3.8.75 スペース用文字 spacing character: 文字列の印刷においてグラフィック文字とともに含めることを目的とした文字レパートリー内の文字ですが、物理的な表現では空のスペースによって表現されます。 通常、これは制御文字とはみなされません (3.8.18 を参照)。
注 – 文字レパートリーには単一のスペース文字が存在する場合もあれば、さまざまな幅を持つ複数のスペース文字が存在する場合もあります。
3.8.76 サブタイプ (親の型の): 値が他の型 (親の型) の値のサブセット (または完全集合) であるタイプ。
3.8.77 タグ tag: 型の抽象値とは別の追加情報。すべての ASN.1 型に関連付けられ、型プレフィックスによって変更または拡張できます。
注 – タグ情報は、エンコーディングがあいまいでないことを保証するために、一部のエンコーディング ルールで使用されます。 タグ情報は、型プレフィックスがない場合でも、すべての ASN.1 型に関連付けられているため、エンコード命令とは異なります。
3.8.78 タグ付き型 tagged types: 単一の既存の型とタグを参照することによって定義された型。 新しい型は既存の型と同型ですが、既存の型とは異なります。
3.8.79 タグ付け tagging: 新しいタグをタイプに割り当て、既存の (デフォルトの) タグを置換または追加します。
3.8.80 時間抽象値 time abstract value: 時間型の抽象値。
3.8.81 時間コンポーネント time component: 時間抽象値の一部を指定する、その抽象値の定義の一部。
注 – 時間コンポーネントの例としては、日付コンポーネント (年コンポーネントを含む)、時刻コンポーネント、時差コンポーネントなどがあります。
3.8.82 time プロパティ (時間抽象値の) time property (of a time abstract value): 時間抽象値を説明するために使用される多数の用語の 1 つ (3.8.80 を参照)。
注 – 時間抽象値を記述するために使用できる時間プロパティは、多くの場合、その抽象値の他の時間プロパティの設定に依存します。 時間プロパティは表 6 の列 1 にリストされています。
3.8.83 time 型 time type: ISO 8601 によって暗黙的に定義されたすべての抽象値をサポートする TIME 型。
3.8.84 転送構文 transfer syntax: 抽象構文内の抽象値を交換するために使用されるビット文字列のセット。通常、抽象構文にエンコード規則を適用することによって取得されます。
注 – 「転送構文」という用語は「エンコーディング」と同義です。
3.8.85 true: ブール型の識別値の 1 つ (「false」も参照)。
3.8.86 型 type: 名前付きの値のセット。
3.8.87 型プレフィクス type prefix: エンコード命令またはタグを型に割り当てるために使用できる ASN.1 表記法の一部。
3.8.88 型参照名 type prefix name: あるコンテキスト内で型に一意に関連付けられた名前。
注 – この勧告 | 国際標準で定義されている型には参照名が割り当てられています; これらは ASN.1 内で広く利用可能です。 他の参照名は他の勧告 | 国際標準で定義されており、その勧告 | 国際標準の文脈においてのみ適用されます。
3.8.89 無制限文字列型 unrestricted character string type: 抽象値が文字抽象構文の値と、そのエンコーディングで使用される文字抽象構文および文字転送構文の識別子を含む型。
3.8.90 便利な時間型 useful time type: アプリケーション設計者が直接使用することを目的とした、時間型 (3.8.83 を参照) のサブタイプとして定義された組み込み型。
3.8.91 ユーザー (ASN.1) user (of ASN.1): ASN.1 を使用して特定の情報の抽象構文を定義する個人または組織。
3.8.92 値マッピング value mapping: 2 つの型の値間の 1 対 1 の関係。これにより、一方の値への参照をもう一方の値への参照として使用できるようになります。 これは、たとえば、サブ型とデフォルト値の指定に使用できます (付録 C を参照)。
3.8.93 値参照名 value reference name: あるコンテキスト内の値に一意に関連付けられた名前。
3.8.94 値セット value set: ある型の値のコレクション。 意味的にはサブ型と同等です。
3.8.95 バージョン括弧 version brackets: 拡張機能追加グループの開始と終了を示すために使用される、隣接する左右の括弧のペア ("["または"]")。 オプションで、左括弧のペアの後に、拡張機能追加グループのバージョン番号を示す番号を続けることができます。
3.8.96 バージョン番号 version number: バージョン ブラケットに関連付けることができる番号 (I.1.8 を参照)。
注 – バージョン番号は、拡張機能追加グループの一部ではない拡張機能追加や、選択、シーケンス、またはセット以外のタイプの拡張機能追加に追加することはできません。
3.8.97 ホワイトスペース white-space: スペースやタブなど、印刷ページ上にスペースを生成する書式設定アクション。
4 略語
この勧告のために国際規格では次の略語が適用されます。
ASN.1 Abstract Syntax Notation One 抽象構文表記1
BER Basic Encoding Rules of ASN.1 ASN.1 の基本符号化規則
BMP Basic Multilingual Plane 基本多言語面
DCC Data Country Code データの国コード
DNIC Data Network Identification Code データネットワーク識別コード
ECN Encoding Control Notation of ASN.1
ICD International Code Designator 国際コード指定者
IRI Internationalized Resource Identifier 国際化資源識別子
OID Object Identifier オブジェクト識別子
OSI Open Systems Inertconnection 開放型システム間相互接続
PER Packed Encoding Rules of ASN.1
ROA Recognized Operating Agency
UCS Universal Multiple-Octet Coded Character Set 普遍的複数八重符号化文字集合 (国際符号化文字集合)
URI Universal Resource Identifier 普遍的資源識別子 (Webのと別?)
UTC Coordinated Universal Time
XML Extensible Markup Language 拡張可能なマーク付け言語
5. 表記法 Notation
5.1 一般 General
5.1.1 ASN.1表記は、第11項で指定されたASN.1文字集合の一連の文字で構成されます。
5.1.2 ASN.1 表記法の各使用には、語彙項目にグループ化された ASN.1 文字集合の文字が含まれています。 第 12 条では、語彙項目を形成するすべての文字シーケンスを指定し、各項目に名前を付けます。
5.1.3 ASN.1 表記法は、ASN.1 表記法の有効なインスタンスを形成する語彙項目のシーケンスを指定して名前を付けること、および各シーケンスの ASN.1 セマンティクスを指定することによって、第 13 条 (およびそれに続く条項) で指定されます。
5.1.4 許可される語彙項目の順序を指定するために、この勧告 | 国際規格では、次の節で定義されている正式な表記法を使用します。
5.2 プロダクション 製作物 Productions
5.2.1 すべての語彙項目(lexical items)には名前が付けられ (第 12 節を参照)、許可された語彙項目のシーケンスには名前が付けられます。
5.2.2 新しい (より複雑な) 許可された語彙項目のシーケンスは、プロダクションによって定義されます。 これは、語彙項目の名前と語彙項目の許可されたシーケンスの名前を使用し、新しい名前付きの語彙項目の許可されたシーケンスを形成します。
5.2.3 各プロダクションは、1 つまたは複数のラインにある次の部分で順番に構成されます:
a) 新しく許可された語彙項目のシーケンスの名前。
b) キャラクター
::=
c) 5.3 で定義されている、文字で区切られた 1 つ以上の語彙項目の代替シーケンス
|
5.2.4 語彙項目のシーケンスが 1 つ以上の代替項目に存在する場合、その語彙項目の新しい許可されたシーケンスに存在します。 新しく許可された語彙項目の順序は、この勧告 | 国際標準では、上記 5.2.3 a) の名前で参照されます。
注 – 同じ語彙項目のシーケンスが複数の代替案に出現する場合、結果の表記法における意味上の曖昧さは、関連付けられた表記法によって解決されます。
5.3 代替コレクション The alternative collections
5.3.1 プロダクション内の各代替 (5.2.3.c を参照) は、名前のリストによって指定されます。 各名前は、語彙項目の名前、または他のプロダクションによって定義され名前が付けられた、許可された字句項目のシーケンスの名前のいずれかです。
5.3.2 各選択肢によって定義される許容される語彙項目のシーケンスは、最初の名前に関連付けられたシーケンス (または語彙項目) のいずれか 1 つを、2 番目の名前に関連付けられたシーケンス (または語彙項目) のいずれか 1 つと組み合わせて (さらにそれに続く)、3 番目の名前に関連付けられたシーケンス (または語彙項目) のいずれか 1 つと組み合わせて (さらにそれに続く) というように、選択肢の最後の名前 (または語彙項目) まで続くシーケンスすべてから構成されます。
5.4 非間隔インジケーター Non-spacing indicator
非スペース標識「&」(アンパサンド) が生成シーケンス内のこれらの項目の間に挿入される場合、その前の字句項目とその後の字句項目は空白で区切られません。
注 – このインジケータは、XML 値の表記を記述するプロダクションでのみ使用されます。 たとえば、語彙項目「<」の直後に XML タグ名が続くことを指定するために使用されます。
5.5 プロダクションの例 Example of a production
5.5.1 プロダクション:
code:production
ExampleProduction ::=
bstring
| hstring
| "{" IdentifierList "}"
は、名前「ExampleProduction」を次の語彙項目のシーケンスに関連付けます。
a) 任意の「bstring」(語彙項目); または
b) 任意の「hstring」(語彙項目); または
c) 「IdentifierList」に関連付けられた語彙項目の任意のシーケンス。先頭に "{"、その後に "}"が続きます。
注 – "{"と "}"は、単一文字 { と } を含む語彙項目の名前です (12.37 を参照)
5.5.2 この例では、「IdentifierList」は、「ExampleProduction」を定義するプロダクションの前または後の、さらなるプロダクションによって定義されます。
5.6 レイアウト Layout
この勧告 | 国際規格で使用される各プロダクションの前後には空行が続きます。 プロダクション内では空行は表示されません。 生産は単一ラインで行われる場合もあれば、複数のラインにまたがる場合もあります。 レイアウトは重要ではありません。
5.7 再帰 Recursion
この勧告 | 国際標準のプロダクションは、頻繁に再帰的です。 この場合、新しいシーケンスが生成されなくなるまで、プロダクションが継続的に再適用されます。
注 – 多くの場合、このような再適用により、許可される語彙項目のシーケンスが無限に増えます。 セット内のシーケンスの一部またはすべてには、それ自体に無制限の数の語彙項目が含まれる場合があります。 これはエラーではありません。
5.8 許可された語彙項目のシーケンスへの参照 References to permitted sequences of lexical items
この勧告 | 国際標準は、プロダクション内の「::=」の前に表示される名前を参照することによって、許可された語彙項目のシーケンス (ASN.1 表記の一部) を参照します。 名前は、プロダクションの一部として表示される場合を除き、自然言語テキストと区別するために引用符 QUOTATION MARK (34) 文字 (") で囲まれています。
5.9 語彙項目への参照 References to a lexical item
この勧告 | 国際標準では、語彙項目の名前を使用して語彙項目を参照します。 名前が自然言語テキストに表示され、そのようなテキストと混同される可能性がある場合は、引用符 (34) 文字 (") で囲まれます。
5.10 省略表記 Short-hand notations
生成物をより簡潔で読みやすくするために、この勧告 | 国際規格および Rec. ITU-T X.681 | ISO/IEC 8824-2, Rec. ITU-T X.682 | ISO/IEC 8824-3 および Rec. ITU-T X.683 | ISO/IEC 8824-4 では、許可される語彙項目のシーケンスの定義に次の省略表記が使用されます:
a) 2 つの名前「A」と「B」の後に続くアスタリスク (*) は、「空の」語彙項目 (12.7 を参照)、または「A」に関連付けられた語彙項目の許可されたシーケンスの 1 つ、または「A」に関連付けられた語彙項目のシーケンスの 1 つと「B」に関連付けられた語彙項目のシーケンスの 1 つが交互に連続し、両方とも「A」に関連付けられた語彙項目で始まって終わることを示します。つまり、
C ::= A B *
は以下と同等です:
C ::= D | empty
D ::= A | A B D
「D」は補助的な名前であり、作品の他の場所には登場しません。
例 – 「C ::= A B *」は、次の C の代替表現の省略表記です。
empty
A
A B A
A B A B A
A B A B A B A
…
b) プラス記号 (+) は、「空」の語彙項目が除外されることを除いて、a) のアスタリスクに似ています。
E ::= A B +
は以下と同等です:
E ::= A | A B E
例 – 「E ::= A B +」は、次の E の代替表現の省略表記です。
A
A B A
A B A B A
A B A B A B A
…
c) 名前の後の疑問符 (?) は、「空」の語彙項目 (12.7 を参照)、または「A」に関連付けられた許可された語彙項目のシーケンスのいずれかを示します。したがって:
F ::= A ?
は以下と同等です:
F ::= empty | A
注 – これらの省略表記は、生成シーケンスにおける語彙項目の並置よりも優先されます (5.2.2 を参照)。
5.11 値の参照と値の型指定
5.11.1 ASN.1 値割り当て表記を使用すると、指定された型の値に名前を付けることができます。 この名前は、その値への参照が必要な場合にはどこでも使用できます。 付属書 C では、ある型の値の値参照名で 2 番目の (類似した) 型の値を識別できるようにする値マッピング メカニズムについて説明し、規定しています。 したがって、最初の値への参照は、2 番目のタイプの値への参照が必要な場合はどこでも使用できます。
5.11.2 ASN.1 標準の本文では、複数のタイプが関係する構成要素の合法性 (またはその他) を指定するために、通常の英語のテキストが使用されます。 これらの合法性仕様では、通常、2 つ以上のタイプが「互換性」があることが必要です。 たとえば、値参照の定義に使用される型は、値参照が使用される場合の管理型と「互換性」がある必要があります。 規範的な付属書 C は、値マッピングの概念を使用して、特定の ASN.1 構成要素が合法であるかどうかについて正確に述べています。
6. 型拡張のASN.1モデル
拡張可能な型をデコードするときに、デコーダーは以下を検出する可能性があります。:
a) シーケンスまたはセットタイプに予期される拡張機能の追加が存在しない。または
b) シーケンスまたはセット型で定義されているもの (存在する場合) を超える任意の予期しない拡張追加の存在、選択型の未知の代替、列挙型の未知の列挙、または予期しない長さまたは値の存在 制約が拡張可能な型。
形式的に言えば、拡張可能な型 X によって定義された抽象構文には、型 X の値だけでなく、X に拡張に関連するすべての型の値も含まれます。したがって、デコード プロセスは、次のいずれかの場合にエラーを通知することはありません。 上記の状況 (a または b) が検出されます。 それぞれの状況で実行されるアクションは、ASN.1 指定子によって決定されます。
注 – 多くの場合、予期しない追加拡張子の存在を無視し、存在しない予想される追加拡張子に対してデフォルト値または「欠落 missing」インジケータを使用することが行われます。
拡張可能なタイプのデコーダによって検出された予期しない拡張の追加は、後続の送信で同じ転送構文が使用されている限り、そのタイプの後続のエンコード (送信者または第三者への送信用) に含めることができます。
7. エンコードルールの拡張性要件
注 – これらの要件は、標準化されたエンコード規則に適用されます。 これらは、ECN を使用して定義されたエンコード ルールには適用されません (Rec. ITU-T X.692 | ISO/IEC 8825-3 を参照)
7.1 すべての ASN.1 エンコード規則では、拡張可能な型 X の値を、X に拡張関連のある拡張可能な型 Y を使用してデコードできるような方法でエンコードできます。さらに、エンコード規則では、Y を使用してデコードされた値を再エンコード (Y を使用して) し、Y (したがって X も) に拡張関連のある 3 番目の拡張可能な型 Z を使用してデコードできます。
注 – 型 X、Y、Z は、拡張シリーズ内で任意の順序で出現できます。
拡張可能な型 X の値がエンコードされ、その後 (直接または拡張関連型 Z を使用する中継アプリケーションを介して)、X に拡張関連のある拡張可能な型 Y を使用して値をデコードする別のアプリケーションに中継された場合、型 Y を使用するデコーダーは、次で構成される抽象値を取得します:
a) 拡張ルート型の抽象値。
b) X と Y の両方に存在する各拡張追加の抽象値。
c) X にはあるが Y にはない各拡張追加 (ある場合) の区切りエンコード
c) のエンコードは、アプリケーションで必要な場合、Y の値の後のエンコードに含めることができる必要があります。そのエンコードは、X の値の有効なエンコードである必要があります。
チュートリアルの例: システム A が、オプションの整数型の拡張追加を持つシーケンス型またはセット型の拡張可能なルート型 (型 X) を使用しており、システム B が、それぞれがオプションの整数型である 2 つの拡張追加を持つ拡張関連型 (型 Y) を使用している場合、最初の拡張追加の整数値を省略し、2 番目の拡張追加を含む Y の値を B が送信しても、A は、認識している X の最初の (唯一の) 拡張追加が存在すると混同してはなりません。さらに、アプリケーション プロトコルで必要な場合は、A は、最初の整数型の値が存在する X の値に続いて、B から受信した 2 番目の整数値を再エンコードできる必要があります。
7.2 すべての ASN.1 エンコード ルールは、送信される値がエンコーダとデコーダによって共通に保持される拡張追加のセットに含まれる場合に、列挙型と選択型の値のエンコードとデコードを指定する必要があります。 正常にデコードされました。 それ以外の場合は、デコーダがそのエンコーディングを区切って、それを(未知の)拡張追加の値として識別することが可能になります。
7.3 すべての ASN.1 エンコード ルールは、送信された値がエンコーダとデコーダによって共通に保持される拡張追加のセットに含まれる場合は正常にデコードされ、そうでない場合は、拡張可能な制約を持つ型のエンコードとデコードを指定する必要があります。 デコーダは、エンコーディングを区切って、それを (未知の) 拡張加算の値として識別することが可能でなければなりません。
すべての場合において、拡張追加の存在は、拡張マーカーを持つ型が他の型の中にネストされている場合に、後の内容を認識する能力に影響を与えないものとします。
注 1 – ASN.1 の基本エンコーディング ルールおよび ASN.1 のパック エンコーディング ルールのすべてのバリアントは、これらの要件をすべて満たしています。 ECN を使用して定義されたエンコーディング ルールは、必ずしもこれらの要件をすべて満たすわけではありませんが、満たす可能性はあります。
注 2 – PER と BER は、拡張機能追加のエンコーディングにおけるバージョン番号を識別しません。 ECN を使用して指定されたエンコーディングは、そのような識別を提供する場合と提供しない場合があります。
8. Tags
8.1 タグは、クラスとクラス内の番号を指定して(この勧告 | 国際標準のテキスト内またはタイプ プレフィックスを使用して)指定されます。クラスは次のいずれかです。
Universal ユニバーサル / 汎用
Application アプリケーション / 応用
private プライベート / 私用
context-specific コンテキスト固有 / 文脈固有
8.2 番号は 10 進表記で指定された負でない整数です。
8.3 ASN.1 のユーザーによって割り当てられるタグの制限は、31.2 で指定されます。
注 – 節 31.2 には、この表記法のユーザーが ASN.1 仕様でユニバーサル クラス タグを明示的に指定できないという制限が含まれています。 他の 3 つのクラスのタグの使用には正式な違いはありません。 アプリケーション クラス タグが使用される場合、一般に、ユーザーの選択とスタイルの問題として、代わりにプライベートまたはコンテキスト固有のクラス タグを適用できます。 3 つのクラスが存在するのは主に歴史的な理由によるものですが、クラスが通常どのように使用されるかについては G.2.12 で説明されています。
8.4 表1はこの勧告 | 国際標準で定義された汎用クラスで割り当てられたタグの概要をまとめたものです
8.5 一部のエンコード ルールでは、タグの正規の順序が必要です。 均一性を提供するために、タグの正規の順序が 8.6 で定義されています。
8.6 タグの正規の順序は、各タイプの最も外側のタグに基づいており、次のように定義されます。
a) Universalクラスタグを持つ要素または代替が最初に表示され、次にapplicationクラスタグ、context-specificタグ、privateタグを持つ要素が続きます。
b) タグの各クラス内では、要素または代替要素はタグ番号の昇順で表示されます。
table:表 1 - Universal class のタグ割り当て
ID 型 X.680 202102
UNIVERSAL 0 エンコードルールで使用するために予約
UNIVERSAL 1 Boolean型 3.8.8
UNIVERSAL 2 Integer 整数型 3.8.48
UNIVERSAL 3 Bitstring ビット列型 3.8.7
UNIVERSAL 4 Octetstring 文字列型
UNIVERSAL 5 Null型 3.8.51
UNIVERSAL 6 Object identifier型 3.8.47 X.660 ISO/IEC 9834-1
UNIVERSAL 7 Object descriptor型
UNIVERSAL 8 External and Instance-of型
UNIVERSAL 9 Real型 浮動小数点など
UNIVERSAL 10 Enumerated型
UNIVERSAL 11 Embedded-pdv型
UNIVERSAL 12 UTF8String型
UNIVERSAL 13 Relative object identifier型
UNIVERSAL 14 The time型
UNIVERSAL 15 将来のためにこのバージョン | 国際標準では予約済み
UNIVERSAL 16 Sequence および Sequence-of 型
UNIVERSAL 17 Set および Set-of 型
UNIVERSAL 18-22,25-30 Character string 型
UNIVERSAL 18 NumericString 数値文字列
UNIVERSAL 19 PrintableString
UNIVERSAL 22 IA5String
UNIVERSAL 23-24 UTCTime および GeneralizedTime
UNIVERSAL 31-34 DATE,TIME-OF-DAY,DATE-TIME and DURATION respectively
UNIVERSAL 35 OID internationalized resource identifier 型
UNIVERSAL 36 Relative OID internationalized resource identifier 型
UNIVERSAL 37-... この勧告 | 国際標準の補遺として予約
9. エンコード命令
9.1 エンコード命令は型プレフィックス(type prefix 31.3)またはエンコード制御セクション(54節参照)を使用して型に割り当てられます
9.2 型プレフィックスにはエンコーディング参照(encoding reference)が含まれる場合があります。そうでない場合、エンコード参照はモジュールのデフォルトのエンコード参照によって決められます(13.5 を参照)。
9.3 エンコーディング制御セクションには、常にエンコーディング参照が含まれます。複数のエンコード制御セクションがある場合がありますが、各エンコード制御セクションには個別のエンコード参照が必要です。
9.4 エンコード命令は、エンコード参照によって決定される、 勧告 |国際標準で指定された一連の語彙項目(lexical items)で構成されます。(Annex E参照)
9.5 同じまたは異なるエンコード参照を持つ複数のエンコード命令を 1 つのタイプに割り当てることができます (タイプ プレフィックスとエンコード制御セクションのいずれかまたは両方を使用)。 特定のエンコード参照で割り当てられたエンコード命令は、別のエンコード参照で割り当てられたエンコード命令や、タグ付けを実行するための型プレフィックスの使用から独立しています。
9.6 複数のエンコード命令に同じエンコード参照 (型プレフィックスとエンコード制御セクションのいずれかまたは両方を使用) を割り当てる効果は、エンコード参照(付録 E を参照)によって決定される勧告 | 国際標準で指定されており、この勧告 | 国際標準では指定されません。
9.7 エンコード命令が「TypeAssignment」の「Type」に割り当てられている場合、その命令はその型に関連付けられ、「TypeAssignment」の「typereference」が使用される場所に適用されます。 これには、export ステートメントと import ステートメントによる他のモジュールでの使用が含まれます。
10 ASN.1 表記(ASN.1 notation)の使用
10.1 型(type) 定義の ASN.1表記は "Type" (17.1 参照)
10.2 値(Value)の値の ASN.1 表記は "Value" (17.7 参照)
注 - 一般に、 typeの知識がなければvalueの表記を解釈することはできません。
10.3 型を型参照名に割り当てるための ASN.1表記は、"TypeAssignment" (16.1 を参照)、"ValueSetTypeAssignment" (16.6 を参照)、"ParameterizedTypeAssignment" (Rec. ITU-T X.683 | ISO/IEC 8824-4, 8.2 を参照) 、または "ParameterizedValueSetTypeAssignment" (Rec. ITU-T X.683 | ISO/IEC 8824-4, 8.2 を参照)のいずれかでなければなりません。
10.4 値参照名に値を割り当てるためのASN.1表記は、 "ValueAssignment" (16.2 参照) または "ParameterizedValueAssignment" (Rec. ITU-T X.683 | ISO/IEC 8824-4.8.2 参照)のいずれかでなければなりません。
10.5 "Assignment" (割り当て) という表記のプロダクション代替案は、 "ModuleDefinition" 表記の範囲内でのみ適用されます。(13.2 注 2で指定されている場合を除く)
11 ASN.1 文字集合
11.1 語彙の項目は 11.2 11.3 11.4で指定されている場合を除き 表 2のリストの文字で構成されます。表2では、文字はISO/IEC 10646で与えられた名前で識別されます。
table:表2
A to Z LATIN CAPITAL LETTER A to LATIN CAPITAL LETTER Z
a to z LATIN SMALL LETTER A to LATIN SMALL LETTER Z
0 to 9 DIGIT ZERO to DIGIT 9
! EXCLAMATION MARK
" QUATATION MARK
& AMPERSAND アンパサンド
' APOSTROPHE アポストロフィー
( LEFT PARENTHESIS 左括弧
) RIGHT PARENTHESIS 右括弧
* ASTERISK アスタリスク
, COMMA コンマ
- HIPHEN-MINUS U+002D
. FULL STOP 終点
/ SOLIDUS
: COLON コロン
; SEMICOLON セミコロン
< LESS-THAN SIGN 小なり記号
= EQUALS SIGN 等号
GREATER-THAN SIGN 大なり記号
@ COMMERCIAL AT
[ LEFT SQUARE BRACKET 左角括弧
] RIGHT SQUARE BRACKET 右角括弧
^ CIRCUMFLEX ACCENT
_ LOW LINE 下線
{ LEFT CURLY BRACKET 左中括弧
| VERTICAL LINE 垂直線
} RIGHT CURLY BRACKET 右中括弧
‑ NON-BREAKING HYPHEN 改行なしハイフン U+2011
注 - 同等の派生標準が国家標準化団体によって開発されている場合、追加の文字が表示される場合があります。
次の語彙項目:
typereference 型参照 (12.2 参照);
identifier 識別子 (12.3 参照);
valuereference 値参照 (12.4 参照);
modulereference モジュール参照 (12.5 参照)
大文字と小文字の区別が意味を持たない言語に対応するために追加の文字が導入される場合、上記の語彙項目の特定の最初の文字の大文字と小文字を区別することによって達成される構文上の区別は、別の方法で。これは、有効なASN.1仕様をさまざまな言語で記述できるようにするためです。
11.2 この表記法を使用して文字列タイプの値を指定する場合、定義された文字セットのすべての文字は、ASN.1 表記法で引用符 (34) 文字 (") で囲まれて表示できます (12.14 を参照)。
11.3 追加の (任意の) グラフィック記号が「コメント」語彙項目に表示される場合があります (12.6 を参照)。
11.4 この表記法を使用して Unicode ラベルの値を指定する場合、Unicode ラベルで許可されているすべての文字を ASN.1 表記法で使用できます。
11.5 活字のスタイル、サイズ、色、強度、またはその他の表示特性は重要ではありません。
11.6 大文字と小文字は別のものとして扱われます。
11.7 ASN.1 定義では、字句項目の間に空白文字 (12.1.6 を参照) を含めることもできます。
11.8 NON-BREAKING HYPHEN と HYPHEN-MINUS は、すべての名前 (予約語を含む) で同一のものとして扱われます。
注 – My-Type などの名前は、ハイフンマイナスが含まれていても、非改行ハイフンが含まれていても同じ名前です。
12 ASN.1 字句(lexical)項目
12.1 一般的なルール
12.1.1 次の副次句では、字句項目内の文字を指定します。 それぞれの場合において、字句項目の名前が、字句項目を形成する文字シーケンスの定義とともに与えられます。
12.1.2 この条項 12 の副次条項で指定された語彙項目 (複数行の "comment"、"bstring"、"xmlbstring"、"hstring"、"xmlhstring"、"cstring"、"xmlcstring"、および "simplestring" を除く) 空白が含まれています (12.6、12.10、12.11、12.12、12.13、12.14、12.15、および 12.16 を参照)。 単一行の「コメント」には「改行」文字を含めることはできません。 「非 integerUnicodeLabel」字句項目には、NON-BREAKING-SPACE 文字が含まれる場合があります。
12.1.3 行の長さに制限はありません。
12.1.4 字句項目は、非スペース標識「&」(5.4 を参照) が使用されている場合を除き、1 つ以上の空白 (12.1.6 を参照) またはコメント (12.6 を参照) で区切ることができます。 "XMLTypedValue" プロダクション (16.2 を参照) 内では、字句項目の間に空白が表示される場合がありますが、"comment" 字句項目は存在しません。
注 – これは、「xmlcstring」字句項目内に隣接するハイフンまたはアスタリスクと塗りつぶしが存在することによって生じる曖昧さを避けるためです。 このような文字は、「XMLTypedValue」プロダクション内に出現する場合、「コメント」語彙項目の開始を示すことはありません。
12.1.5 後続の語彙項目の最初の文字が末尾に含めることが許可されている文字である場合、語彙項目は 1 つ以上の空白またはコメントによって後続の語彙項目から分離されなければなりません。 前の語彙項目の文字。
12.1.6 この推奨事項 | 国際標準では、"newline"「改行」と"white-space"「空白」という用語が使用されます。 機械可読仕様で空白や改行(行末)を表現する際には、以下の文字を1つ以上任意に組み合わせて使用することができます(各文字には、Unicode規格で規定されている文字名と文字コードが与えられています) ):
空白 white-space の場合:
HORIZONTAL TABULATION 水平集計 (9)
LINE FEED 改行 (10)
VERTICAL TABULATION 垂直集計 (11)
FORM FEED フォームフィード (12)
CARRIAGE RETURN キャリッジリターン (13)
SPACE スペース (32)
NO-BREAK SPACE 改行禁止スペース ({0,0,0,160})
改行 newline の場合:
LINE FEED 改行 (10)
VERTICAL TABULATION 垂直集計 (11)
FORM FEED フォームフィード (12)
CARRIAGE RETURN キャリッジリターン (13)
注 – 有効な改行である文字または文字シーケンスは、有効な空白でもあります。
12.2 型参照 Type references
字句項目の名前 – typereference
12.2.1 "typereference"「型参照」は、任意の数 (1 つ以上) の文字、数字、およびハイフンで構成されます。 頭文字は大文字とします。 ハイフンを最後の文字にすることはできません。 ハイフンの直後に別のハイフンを続けてはなりません。
注 – ハイフンに関するルールは、(おそらくその後に続く) コメントの曖昧さを避けるように設計されています。
12.2.2 「typereference」は、12.38 にリストされている予約文字シーケンスの 1 つであってはなりません。
12.3 識別子 Identifiers
字句項目の名前 – identifier
"identifier"「識別子」は、任意の数(1 つ以上)の文字、数字、ハイフンで構成されます。 頭文字は小文字とする。 ハイフンを最後の文字にすることはできません。 ハイフンの直後に別のハイフンを続けてはなりません。
注 – ハイフンに関するルールは、(おそらくその後に続く) コメントの曖昧さを避けるように設計されています。
12.4 値の参照 Value references
字句項目の名前 – valuereference
"valuerefernece"「値参照」は、12.3 で"identifier"「識別子」に指定された文字のシーケンスで構成されます。 この表記法の使用例を分析する際、"valuereference"「値参照」は、それが出現するコンテキストによって"identifier"「識別子」と区別されます。
12.5 モジュール参照 Module references
字句項目の名前 – modulereference
"modulereference"「モジュール参照」は、12.2 の"typereference"「型参照」に指定された文字のシーケンスで構成されます。 この表記法の使用例を分析する際、"modulereference"「モジュール参照」は、それが出現するコンテキストによって"typereference"「型参照」と区別されます。
12.6 コメント Comments
語彙項目の名前 – comment
12.6.1 "comment"「コメント」は、ASN.1 表記法の定義では参照されません。 ただし、他の語彙項目の間にいつでも出現する可能性があり、構文的な意味はありません。
注 – それにもかかわらず、推奨事項の文脈では、 ASN.1 を使用する国際標準。ASN.1 コメントには、アプリケーションのセマンティクスに関連する規範的なテキストや構文の制約が含まれる場合があります。
12.6.2 語彙項目"comment"「コメント」には 2 つの形式があります。
a) 12.6.3 で定義されている"--"で始まる 1 行のコメント。
b) 12.6.4 で定義されている"/*"で始まる複数行のコメント。
12.6.3 「コメント」が隣接するハイフンのペアで始まる場合は常に、次の隣接するハイフンのペアまたは行の終わりのいずれか最初に発生した方で終了します。 コメントには、コメントを開始するペアと終了するペア (存在する場合) 以外の、隣接するハイフンのペアを含めることはできません。 「--」で始まるコメントに隣接する文字「/*」または「*/」が含まれている場合、これらには特別な意味はなく、コメントの一部とみなされます。 コメントには、11.1 で指定された文字セットにないグラフィック記号が含まれる場合があります (11.3 を参照)。
12.6.4 "comment"「コメント」が「/*」で始まる場合は、「*/」が同じ行にあるかどうかに関係なく、対応する「*/」で終わるものとします。 「*/」の前に別の「/*」が見つかった場合、各「/*」に対して一致する「*/」が見つかった時点でコメントは終了します。 「/*」で始まるコメントに 2 つの隣接するハイフン「--」が含まれている場合、これらのハイフンには特別な意味はなく、コメントの一部とみなされます。 コメントには、11.1 で指定された文字セットにないグラフィック記号が含まれる場合があります (11.3 を参照)。
注 – これにより、ユーザーは、コメントする部分の先頭に「/*」を挿入するだけで、既にコメントが含まれている ASN.1 モジュールの部分 (「--」または「/*」で始まるかどうか) にコメントすることができます。 ただし、コメントアウトする部分に「/*」または「*/」を含む文字列値がない場合に限ります。
12.7 空の語彙項目 Empty lexical item
語彙項目の名前 – empty
"empty"「空」の項目には文字が含まれていません。 これは、生成シーケンスの代替セットが指定されている場合に、すべての代替が存在しない可能性があることを示すために、第 5 条の表記で使用されます。
12.8 数値 Numbers
語彙項目の名前 – number
"number"「数値」は 1 つ以上の数字で構成されます。 "number"「数値」が 1 桁でない限り、最初の桁はゼロであってはなりません。
注 – "number"「数値」字句項目は、10 進数表記として解釈されることにより、常に整数値にマップされます。
12.9 実数 Real numbers
字句項目の名前 – realnumber
"realnumber"「実数」は、一連の 1 つ以上の数字である整数部分と、オプションで小数点 (.) で構成されます。 オプションで、小数点の後に 1 桁以上の小数部を続けることができます。 整数部、小数点、または小数部 (最後に存在するもの) の後には、オプションで e または E と、オプションで 1 桁以上の符号付き指数を続けることができます。 "realnumber"「実数」の先頭の桁は、それが唯一の桁であるか、直後に小数点が続き、少なくとも 1 桁がゼロでない小数部が続く場合を除き、ゼロであってはなりません。
"number"「数値」も"realnumber"「実数」の有効なインスタンスです。 この表記法の使用例を分析する際、"realnumber"「実数」は、それが出現する文脈によって"number"「数値」と区別されます。
12.10 バイナリ文字列 Binary strings
字句項目の名前 – bstring
「bstring」は、任意の数 (ゼロも含む) の文字で構成されます。
0 1
空白と混在する可能性があり、その前にアポストロフィー (39) 文字 (') が続き、その後に次の文字のペアが続きます。
'B
例 – '01101100'B
バイナリ文字列の語彙項目内の空白の出現には意味がありません。
12.11 XMLバイナリ文字列項目 XML binary string item
項目名 – xmlbstring
「xmlbstring」は、ゼロ、 イチ、または空白の任意の数 (ゼロも含む) で構成されます。 バイナリ文字列項目内に出現する空白文字には意味がありません。
例 – 01101100
この文字シーケンスは、「xmlhstring」および「xmlcstring」の有効なインスタンスでもあります。 この表記法の使用例を分析する際、「xmlbstring」は、それが出現するコンテキストによって「xmlhstring」または「xmlcstring」と区別されます。
12.12 16進数の文字列 Hexadecimal strings
字句項目の名前 – hstring
12.12.1 「hstring」は、任意の数 (ゼロも含む) の文字で構成されます。
A B C D E F 0 1 2 3 4 5 6 7 8 9
空白と混在する可能性があり、その前にアポストロフィー (39) 文字 (') が続き、その後に次の文字のペアが続きます。
'H
例 – 'AB0196'H
16 進文字列字句項目内の空白の出現には意味がありません。
12.12.2 各文字は、16 進表現を使用してセミオクテットの値を示すために使用されます。
12.13 XML 16 進文字列項目 XML hexadecimal string item
項目名 – xmlhstring
12.13.1 「xmlhstring」は、任意の数 (ゼロも含む) の文字で構成されます。
0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f
または空白。 16 進文字列項目内に現れる空白文字には意味がありません。
例 – Ab0196
12.13.2 各文字は、16 進表現を使用してセミオクテットの値を示すために使用されます。
12.13.3 「xmlhstring」のすべてのインスタンスは「xmlcstring」の有効なインスタンスでもあり、一部のインスタンスは「xmlbstring」の有効なインスタンスでもあります。 この表記法の使用例を分析する際、「xmlhstring」は、それが出現するコンテキストによって「xmlbstring」または「xmlcstring」と区別されます。
12.14 文字列 Character strings
字句項目の名前 – cstring
12.14.1 「cstring」は、文字列タイプによって参照される文字セットからの任意の数 (ゼロを含む) のグラフィック記号とスペース文字で構成され、前後にQUOTATION MARK 引用符 (34) 文字 (") が続きます。 QUOTATION MARK 引用符 (34) 文字が含まれている場合、この文字 (「cstring」によって表される文字列内に存在する場合) は、「cstring」内で同じ行にある 2 つの QUOTATION MARK 引用符 (34) 文字によって表されます。 「cstring」はテキストの複数行にまたがることができます。その場合、表現される文字列には「cstring」内の行末の前後の位置に空白文字が含まれません。 「cstring」の行末の直前または直後に現れるものには意味がありません。
注 1 – 「cstring」は、表現される文字列内のすべての文字にグラフィック記号が割り当てられているか、スペース文字である文字列を (印刷ページ上で) 明確に表現するためにのみ使用できます。 制御文字を含む文字列を印刷表現で示す必要がある場合は、代替の ASN.1 構文を使用できます (第 39 条を参照)。
注 2 – 「cstring」で表される文字列は、図記号に関連付けられた文字と空白文字で構成されます。 「cstring」内の行末の直前または直後のスペース文字は、表現される文字列の一部ではありません (無視されます)。 「cstring」にスペース文字が含まれている場合、または文字レパートリー内のグラフィック記号が印刷表現で明確ではない場合、「cstring」で示される文字列はその印刷表現では曖昧になる可能性があります。
例 1 – "屎屍市弑"
例 2 – "cstring":
"ABCDE FGH
IJK""XYZ"
IA5String 型の文字列値を表すために使用できます。 表現される値は次の文字で構成されます。
ABCDE FGHIJK"XYZ
ここで、プロポーショナル スペース フォント (上記で使用されているものなど) が印刷仕様で使用されている場合、または文字レパートリーに幅の異なる複数のスペース文字が含まれている場合、E と F の間に意図されているスペースの正確な数は、印刷表現では曖昧になる可能性があります。
12.14.2 文字が結合文字である場合 (付録 H を参照)、その文字は「cstring」の印刷表現で個別の文字として示されます。 結合する文字をオーバープリントしてはなりません。 (これにより、文字列値内の文字を結合する順序が印刷版で明確に定義されます。)
例 – ISO/IEC 10646 では、小文字の「e」とアクセント結合文字は 2 文字であるため、対応する「cstring」は 1 文字の é ではなく 2 文字として出力される必要があります。
12.15 XML文字列項目 XML character string item
項目名 – xmlcstring
12.15.1 「xmlcstring」は、次の ISO/IEC 10646 文字の任意の数 (ゼロを含む) で構成されます。
a) HORIZONTAL TABULATION 水平表 (9);
b) LINE FEED 改行 (10);
c) CARRIAGE RETURN キャリッジリターン (13);
d) ISO/IEC 10646 文字コードが 32 (20 16 進数) ~ 55295 (D7FF 16 進数) の範囲にある文字。
e) ISO/IEC 10646 文字コードが 57344 (E000 16 進数) ~ 65533 (FFFD 16 進数) の範囲にある文字。
f) ISO/IEC 10646 文字コードが 65536 (10000 16 進数) から 1114111 (10FFFF 16 進数) の範囲内にある文字。
注 – 使用する場合、「xmlcstring」には、規定の文字列タイプで許可されている文字のみを含めるという要件により、追加の制限が課されます。
12.15.2 文字「&」(AMPERSAND アンパーサンド)、「<」(LESS-THAN SIGN 小なり記号)、または「>」(GREATER-THAN SIGN 大なり記号)は、12.15.4 または 12.15.5 で指定された文字シーケンスの 1 つの一部としてのみ出現するものとします。
12.15.3 「xmlcstring」は、制限された文字列 (41.9 を参照) の値を表すために使用され、ISO/IEC 10646 文字のすべての組み合わせを直接、または以下で指定されるエスケープ シーケンスを使用して表すために使用できます。
注 1 – 「xmlcstring」は、GeneralString に出現する可能性のある一部の制御文字など、ISO/IEC 10646 に存在しない文字を表すために使用することはできません。また、10FFFF 16 進数を超える ISO/IEC 10646 文字コードで定義されている文字を表すこともできません。
注 2 – 文字 LINE FEED (10) と CARRIAGE RETURN (13)、およびCARRIAGE RETURN + LINE FEED のペアは、準拠する XML プロセッサで処理される場合には区別されません。
12.15.4 「xmlcstring」で表される抽象文字列値に文字「&」(AMPERSAND アンパーサンド)、「<」(LESS-THAN SIGN 小なり記号)または「>」(GREATER-THAN SIGN 大なり記号)が存在する場合(41.9を参照)、それらは 「xmlcstring」では次のいずれかで表されます。
a) 12.15.8 で指定されたエスケープ シーケンス。 または
b) エスケープシーケンス"&"、"<" または">" それぞれ。 これらのエスケープ シーケンスには空白を含めてはなりません (12.1.6 を参照)。
12.15.5 「xmlcstring」(41.9参照)で表される抽象文字列値中に、表3の1列目にISO/IEC 10646の文字コードを持つ文字が存在する場合、表3の2列目の文字列で表されるものとする。 これらの文字シーケンスには空白を含めてはなりません (12.1.6 を参照)。
注 – これには、10 進文字コード 9、10、および 13 の文字は含まれておらず、これらの文字シーケンス内の文字はすべて小文字です。
table:表 3 – 「xmlcstring」内の制御文字のエスケープ シーケンス
ISO/IEC 10646 文字コード "xmlcstring" 表現 ISO/IEC 10646 文字コード "xmlcstring" 表現
0 (0 hex) <nul/> 17 (11 hex) <dc1/>
1 (1 hex) <soh/> 18 (12 hex) <dc2/>
2 (2 hex) <stx/> 19 (13 hex) <dc3/>
3 (3 hex) <etx/> 20 (14 hex) <dc4/>
4 (4 hex) <eot/> 21 (15 hex) <nak/>
5 (5 hex) <enq/> 22 (16 hex) <syn/>
6 (6 hex) <ack/> 23 (17 hex) <etb/>
7 (7 hex) <bel/> 24 (18 hex) <can/>
8 (8 hex) <bs/> 25 (19 hex) <em/>
11 (B hex) <vt/> 26 (1A hex) <sub/>
12 (C hex) <ff/> 27 (1B hex) <esc/>
14 (E hex) <so/> 28 (1C hex) <is4/>
15 (F hex) <si/> 29 (1D hex) <is3/>
16 (10 hex) <dle/> 30 (1E hex) <is2/>
31 (1F hex) <is1/>
12.15.6 XER エンコーディング (Rec. ITU-T X.693 | ISO/IEC 8825-4 を参照) の一部を形成する「XMLTypedValue」 (16.2 を参照) 内で「xmlcstring」が使用される場合、隣接する HYPHEN-MINUS (45) が含まれる場合があります。 文字。 ASN.1 モジュールの XML 値表記のインスタンス内で使用する場合、隣接する 2 つのハイフンマイナス文字を含めることはできません。 この文字シーケンスが ASN.1 モジュールの "xmlcstring" によって表される抽象文字列値に存在する場合、隣接するハイフンマイナス文字の少なくとも 1 つは、12.15.8 で指定されたエスケープ シーケンスによって表されます。
12.15.7 XER エンコーディングの一部を形成する「XMLTypedValue」内で「xmlcstring」が使用される場合 (Rec. ITU-T X.693 | ISO/IEC 8825-4 を参照)、隣接する ASTERISK (42) 文字と SOLIDUS (47) 文字が含まれる場合があります。 任意の順序で。 ASN.1 モジュールの XML 値表記のインスタンス内で使用する場合、隣接する ASTERISK 文字と SOLIDUS 文字を (順序を問わず) 含めてはなりません。 この文字シーケンスが「xmlcstring」で表される抽象文字列値に存在する場合、隣接する ASTERISK 文字と SOLIDUS 文字の少なくとも 1 つは、12.15.8 で指定されたエスケープ シーケンスで表されます。
12.15.8 「xmlcstring」内に直接出現できる文字は、「&#n;」形式のエスケープ シーケンスによって「xmlcstring」内で表すこともできます。 (n は 10 進表記の ISO/IEC 10646 文字コードです) または "&#xn;" 形式の (n は 16 進表記の ISO/IEC 10646 文字コードです)。 これらのエスケープ シーケンスには空白を含めてはなりません (12.1.6 を参照)。
注 1 – 「n」の 10 進値および 16 進値では先行ゼロが許可され、16 進値では小文字と大文字の「A」~「F」の両方を使用できます。
注 2 – 基本多言語面 (BMP) にない ISO/IEC 10646 文字にエスケープ シーケンス「&#n」および「&#xn」が使用されている場合、「n」の値は 65535 ( FFFF 16 進数) より大きくなります。
例 – 「xmlcstring」:
ABCDé FGHîJK&XYZ
UTF8String 型の文字列値を表すために使用できます。 表現される値は次の文字で構成されます。
ABCDé FGHîJK&XYZ
ここで、プロポーショナル スペース フォント (上記のような) が仕様で使用されている場合、é と F の間の正確なスペース文字は印刷媒体では曖昧になる可能性があります。
12.16 単純な文字列字句項目 The simple character string lexical item
項目名 – simplestring
"simplestring"「単純文字列」は、文字コードが 32 ~ 126 の範囲にある 1 つ以上の ISO/IEC 10646 文字で構成され、前後にQUOTATION MARK 引用符 (34) 文字 (") が続きます。QUOTATION MARK 引用符 (34) キャラクター (")は含まれません。 "simplestring"「単純文字列」はテキストの複数行にまたがる場合があり、その場合、行末を表す文字は空白文字として扱われます。 この表記法の使用例を分析する際、「simplestring」は、それが出現するコンテキストによって「cstring」と区別されます。
注 – 「simplestring」字句項目は、時間型のサブ型表記でのみ使用されます。
12.17 時刻値文字列 Time value character strings
項目名 – tstring
「tstring」は 1 つ以上の文字で構成されます。
0 1 2 3 4 5 6 7 8 9 + - : . , / C D H M R P S T W Y Z
前後にQUOTATION MARK 引用符 (34) 文字 (") が続きます。
注 – 「tstring」字句項目は、時刻タイプの値表記でのみ使用されます。
12.18 XML時刻値文字列項目 XML time value character string item
項目名 – xmltstring
「xmltstring」は、1 つ以上の文字で構成されます。
0 1 2 3 4 5 6 7 8 9 + - : . , / C D H M R P S T W Y Z
注 – 「xmltstring」字句項目は、時刻タイプの XML 値表記でのみ使用されます。
12.19 プロパティ名と設定名の語彙項目 The property and setting names lexical item
項目名 – psname
「psname」は、任意の数 (1 つ以上) の文字、数字、およびハイフンで構成されます。 頭文字は大文字とします。 ハイフンを最後の文字にすることはできません。 ハイフンの直後に別のハイフンを続けてはなりません。
注 – 「psname」字句項目は、時間型のサブタイプ表記で使用される「simplestring」の内容でのみ使用されます。
12.20 代入語彙項目 Assignment lexical item
字句項目の名前 – "::="
この語彙項目は、次の文字列で構成されます。
::=
注 – このシーケンスには空白は含まれません (12.1.2 を参照)。
12.21 範囲区切り文字 Range separator
語彙項目の名前 – ".."
この語彙項目は、次の文字列で構成されます。
..
注 – このシーケンスには空白は含まれません (12.1.2 を参照)。
12.22 省略記号 Ellipsis
語彙項目の名前 – "..."
この語彙項目は、次の文字列で構成されます。
...
注 – このシーケンスには空白は含まれません (12.1.2 を参照)。
12.23 左バージョンの括弧 Left version brackets
字句項目の名前 – "[["
この語彙項目は、次の文字列で構成されます。
[[
注 – このシーケンスには空白は含まれません (12.1.2 を参照)。
12.24 右バージョンの括弧 Right version brackets
語彙項目の名前 – "]]"
この語彙項目は、次の文字列で構成されます。
]]
注 – このシーケンスには空白は含まれません (12.1.2 を参照)。
12.25 エンコーディングのリファレンス Encoding references
項目名 – encodingreference
「encodingreference」は、12.2 の「typereference」に指定されている文字のシーケンスで構成されます。ただし、小文字は含まれません。
注 – 現在定義されているエンコード参照は、対応するエンコード命令の構文とセマンティクスを指定する勧告 | 国際標準とともに付録 E にリストされています。 「エンコーディングリファレンス」は、この勧告 | 国際規格のこのバージョンまたは将来のバージョンの付録 E にリストされている配列のみで構成されます。
12.26 整数値の Unicode ラベル Integer-valued Unicode labels
字句項目の名前 – integerUnicodeLabel
この語彙項目は、国際オブジェクト識別子ツリーのアークを識別する、0 (DIGIT ZERO 数字 ゼロ) から 9 (DIGIT NINE 数字 ナイン) までの範囲の ISO/IEC 10646 文字の任意の長さのシーケンスで構成されます。 文字が 1 つだけで、国際オブジェクト識別子ツリーの関連する弧の主整数値が 0 でない限り、0 (DIGIT ZERO 数字ゼロ) 文字で始まってはなりません。
12.27 非整数 Unicode ラベル Non-integer Unicode labels
字句項目の名前 – 非整数UnicodeLabel
この語彙項目は、Rec. ITU-T X.660 | ISO 9834-1, 7.5 で指定された制約を満たし、国際オブジェクト識別子ツリーのアークを識別する ISO/IEC 10646 文字の任意の長さのシーケンスで構成されます。 字句解析の目的で、「integerUnicodeLabel」として識別できる文字だけで構成されてはなりません。
12.28 XML終了タグの開始項目 XML end tag start item
項目名 – "</"
この項目は、次の文字列で構成されます。
</
注 – このシーケンスには空白文字は含まれません (12.1.2 を参照)。
12.29 XML 単一タグの終了項目 XML single tag end item
項目名 – "/>"
この項目は、次の文字列で構成されます。
/>
注 – このシーケンスには空白文字は含まれません (12.1.2 を参照)。
12.30 XML ブール値 true 項目 XML boolean true item
項目名 – "true"
12.30.1 この項目は、次の文字列で構成されます。
true
12.30.2 この表記法の使用例を分析する際、「true」は、それが出現するコンテキストによって、「valuereference」、"identifier"「識別子」、または XML ブール値「extended-true」のインスタンスと区別されます。
注 – このシーケンスには空白文字は含まれません (12.1.2 を参照)。
12.31 XML ブール extended-true 項目 XML boolean extended-true item
項目名 – extended-true
12.31.1 この項目は、次のいずれかの文字シーケンスで構成されます。
true
または単一の文字:
1 (DIGIT ONE 数字の 1)
12.31.2 この表記法の使用例を分析する際、「extended-true」は、それが出現するコンテキストによって、"valuereference"「値参照」、"identifier"「識別子」、または XML ブール値「true」のインスタンスと区別されます。
注 – このシーケンスには空白文字は含まれません (12.1.2 を参照)。
12.32 XML ブール値 false 項目 XML boolean false item
項目名 – "false"
12.32.1 この項目は、次の文字列で構成されます。
false
12.32.2 この表記法の使用例を分析する際、「false」は、それが出現するコンテキストによって、"valuereference"「値参照」、"identifier"「識別子」、あるいは XML ブール値「extended-false」のインスタンスと区別されます。
注 – このシーケンスには空白文字は含まれません (12.1.2 を参照)。
12.33 XML ブール型の extended-false 項目 XML boolean extended-false item
項目名 – extended-false
12.33.1 この項目は、次のいずれかの文字シーケンスで構成されます。
false
または単一の文字:
0 (DIGIT ZERO 数字のゼロ)
12.33.2 この表記法の使用例を分析する際、「false」は、それが出現するコンテキストによって、"valuereference"「値参照」、"identifier"「識別子」、あるいは XML ブール値「false」のインスタンスと区別されます。
注 – このシーケンスには空白文字は含まれません (12.1.2 を参照)。
12.34 XML 実数非数値項目 XML real not-a-number item
項目名 – "NaN"
12.34.1 この項目は、次の文字列で構成されます。
NaN
12.34.2 この表記法の使用例を分析すると、「NaN」は、それが出現する文脈によって、大文字で始まる他の語彙項目と区別されます。
注 – このシーケンスには空白文字は含まれません (12.1.2 を参照)。
12.35 XML 実数無限項目 XML real infinity item
項目名 – "INF"
12.35.1 この項目は、次の文字列で構成されます。
INF
12.35.2 この表記法の使用例を分析すると、「INF」は、それが出現する文脈によって大文字で始まる他の語彙項目と区別されます。
注 – このシーケンスには空白文字は含まれません (12.1.2 を参照)。
12.36 ASN.1 タイプの XML タグ名 XML tag names for ASN.1 types
項目名 – xmlasn1typename
12.36.1 この勧告 | 国際標準では、ASN.1 組み込み型が XML タグ名として使用される場合に、項目「xmlasn1typename」を使用します。
12.36.2 表 4 は、17.2 にリストされている各 ASN.1 組み込みタイプの「xmlasn1typename」を形成する文字シーケンスをリストしています。 ASN.1 組み込みタイプは、表 4 の列 1 でそのプロダクション(製品)名によって識別されます。 「xmlasn1typename」に使用される文字シーケンスは、表 4 の列 2 で識別されます。これらの文字シーケンスの前後には空白はありません。
12.36.3 「UsefulType」(45.1 を参照)の「xmlasn1typename」は、その定義で使用される「typereference」になります。
12.36.4 「ObjectClassFieldType」および「InstanceOfType」の「xmlasn1typename」項目内の文字シーケンスは、Rec. ITU-T X.681 | ISO/IEC 8824-2、14.1 および 付録 C で規定されています。
12.36.5 ASN.1 組み込み型が「PrefixedType」の場合、「xmlasn1typename」を決定する型は「PrefixedType」の「Type」となります(31.1.5 を参照)。 これ自体が「PrefixedType」である場合、この節 12.36.5 が再帰的に適用されます。
注 – 26.10 の副節(subclauses)は、「SelectionType」および「ConstrainedType」に使用される「Type」を指定します。
table:表 4 – xmlasn1typename の文字
ASN.1型のプロダクション名 xmlasn1typename の文字
BitStringType BIT_STRING
BooleanType BOOLEAN
ChoiceType CHOICE
DateType DATE
DateTimeType DATE_TIME
DurationType DURATION
EmbeddedPDVType SEQUENCE
EnumeratedType ENUMERATED
ExternalType SEQUENCE
InstanceOfType SEQUENCE
IntegerType INTEGER
IRIType OID_IRI
NullType NULL
ObjectClassFieldType See Rec. ITU-T X.681 | ISO/IEC 8824-2, 14.10 and 14.11
ObjectIdentifierType OBJECT_IDENTIFIER
OctetStringType OCTET_STRING
PrefixedType See 12.36.5
RealType REAL
RelativeIRIType RELATIVE_OID_IRI
RelativeOIDType RELATIVE_OID
RestrictedCharacterStringType The type name (e.g. IA5String)
SequenceType SEQUENCE
SequenceOfType SEQUENCE_OF
SetType SET
SetOfType SET_OF
TimeType TIME
TimeOfDayType TIME_OF_DAY
UnrestrictedCharacterStringType SEQUENCE
12.37 単一文字の語彙項目 Single character lexical items
語彙項目の名前 –
"{"
"}"
"<"
">"
","
"."
"/"
"("
")"
"["
"]"
"-" (HYPHEN-MINUS)
":"
"="
""" (QUOTATION MARK)
"'" (APOSTROPHE)
";"
"@"
"|"
"!"
"^"
上記の名前のいずれかの語彙項目は、引用符のない 1 文字で構成されます。
12.38 予約語 Reserved words
予約語の名前 –
table:予約語
ABSENT ENCODED INTERSECTION SEQUENCE
ABSTRACT-SYNTAX ENCODING-CONTROL ISO646String SET
ALL END MAX SETTINGS
APPLICATION ENUMERATED MIN SIZE
AUTOMATIC EXCEPT MINUS-INFINITY STRING
BEGIN EXPLICIT NOT-A-NUMBER SYNTAX
BIT EXPORTS NULL T61String
BMPString EXTENSIBILITY NumericString TAGS
BOOLEAN EXTERNAL OBJECT TeletexString
BY FALSE ObjectDescriptor TIME
CHARACTER FROM OCTET TIME-OF-DAY
CHOICE GeneralizedTime OF TRUE
CLASS GeneralString OID-IRI TYPE-IDENTIFIER
COMPONENT GraphicString OPTIONAL UNION
COMPONENTS IA5String PATTERN UNIQUE
CONSTRAINED IDENTIFIER PDV UNIVERSAL
CONTAINING IMPLICIT PLUS-INFINITY UniversalString
DATE IMPLIED PRESENT UTCTime
DATE-TIME IMPORTS PrintableString UTF8String
DEFAULT INCLUDES PRIVATE VideotexString
DEFINITIONS INSTANCE REAL VisibleString
DURATION INSTRUCTIONS RELATIVE-OID WITH
EMBEDDED INTEGER RELATIVE-OID-IRI
上記の名前を持つ語彙項目は、名前内の文字シーケンスで構成され、予約された文字シーケンスです。
注 1 – これらのシーケンスでは空白は発生しません。
注 2 – キーワード CLASS、CONSTRAINED、CONTAINING、ENCODED、INSTANCE、SYNTAX および UNIQUE は、この勧告 | 国際標準では使用されません。 これらは Rec. ITU-T X.681 | ISO/IEC 8824-2、Rec. ITU-T X.682 | ISO/IEC 8824-3、および Rec. ITU-T X.683 | ISO/IEC 8824-4 で使用されます。
13 モジュール定義
13.1 「ModuleDefinition」は次のプロダクションによって指定されます。
code:ModuleDefinition
ModuleDefinition ::=
ModuleIdentifier
DEFINITIONS
EncodingReferenceDefault
TagDefault
ExtensionDefault
"::="
BEGIN
ModuleBody
EncodingControlSections
END
ModuleIdentifier ::=
modulereference
DefinitiveIdentification
DefinitiveIdentification ::=
DefinitiveOID
| DefinitiveOIDandIRI
| empty
DefinitiveOID ::=
"{" DefinitiveObjIdComponentList "}"
DefinitiveOIDandIRI ::=
DefinitiveOID
IRIValue
DefinitiveObjIdComponentList ::=
DefinitiveObjIdComponent
| DefinitiveObjIdComponent DefinitiveObjIdComponentList
DefinitiveObjIdComponent ::=
NameForm
| DefinitiveNumberForm
| DefinitiveNameAndNumberForm
DefinitiveNumberForm ::= number
DefinitiveNameAndNumberForm ::= identifier "(" DefinitiveNumberForm ")"
EncodingReferenceDefault ::=
encodingreference INSTRUCTIONS
| empty
TagDefault ::=
EXPLICIT TAGS
| IMPLICIT TAGS
| AUTOMATIC TAGS
| empty
ExtensionDefault ::=
EXTENSIBILITY IMPLIED
| empty
ModuleBody ::=
Exports Imports AssignmentList
| empty
Exports ::=
EXPORTS SymbolsExported ";"
| EXPORTS ALL ";"
| empty
SymbolsExported ::=
SymbolList
| empty
Imports ::=
IMPORTS SymbolsImported ";"
| empty
SymbolsImported ::=
SymbolsFromModuleList
| empty
SymbolsFromModuleList ::=
SymbolsFromModule
| SymbolsFromModuleList SymbolsFromModule
SymbolsFromModule ::=
SymbolList FROM GlobalModuleReference SelectionOption
SelectionOption ::=
empty
| WITH "SUCCESSORS"
| WITH "DESCENDANTS"
GlobalModuleReference ::=
modulereference AssignedIdentifier
AssignedIdentifier ::=
ObjectIdentifierValue
| DefinedValue
| empty
SymbolList ::=
Symbol
| SymbolList "," Symbol
Symbol ::=
Reference
| ParameterizedReference
Reference ::=
typereference
| valuereference
| objectclassreference
| objectreference
| objectsetreference
AssignmentList ::=
Assignment
| AssignmentList Assignment
Assignment ::=
TypeAssignment
| ValueAssignment
| XMLValueAssignment
| ValueSetTypeAssignment
| ObjectClassAssignment
| ObjectAssignment
| ObjectSetAssignment
| ParameterizedAssignment
注 1 – "Exports"「エクスポート」および "Imports"「インポート」リストでの "ParameterizedReference" の使用は、Rec ITU-T X.683 | ISO/IEC 8824-4 で指定されています。
注 2 – 例として (およびこの勧告 | 国際標準におけるユニバーサル クラス タグを持つ型の定義について)、 "ModuleBody" は "ModuleDefinition" の外部で使用できます。
注 3 – "TypeAssignment"、"ValueAssignment"、"XMLValueAssignment"、および "ValueSetTypeAssignment" の生成は条項 16 で指定されます。
注 4 – モジュール定義の "TagDefault" の値は、モジュール内で明示的に定義されたタイプにのみ影響します。 インポートされた型の解釈には影響しません。
注 5 – セミコロンという文字は、割り当てリスト仕様やその従属製品には表示されず、ASN.1 ツール開発者による使用のために予約されています。
13.2 「TagDefault」が「空」の場合、EXPLICIT TAGS 明示的タグとして扱われます。
注 – サブ条項 31.2 では、EXPLICIT TAGS 明示的タグ、IMPLICIT TAGS 暗黙的タグ、およびAUTOMATIC TAGS 自動タグの意味を説明します。
13.3 「TagDefault」の代わりに AUTOMATIC TAGS が選択されている場合、モジュールに対して自動タグ付けが選択されているとみなされ、それ以外の場合は選択されていないと言われます。 自動タグ付けは、モジュールの定義内で発生する「ComponentTypeLists」および「AlternativeTypeLists」生成物に (追加の条件とともに) 適用される構文変換です。 この変換は、シーケンス型、セット型、選択型の表記法に関して、それぞれ 25.8 ~ 25.10、27.3、29.2 ~ 29.5 で正式に規定されています。
13.4 EXTENSIBILITY IMPLIED オプションは、それが許可されているモジュール内の各タイプの定義に拡張マーカー (「...」) をテキストで挿入することと同等です。 暗黙の拡張マーカーの位置は、明示的に指定された拡張マーカーが許可される型内の最後の位置です。 EXTENSIBILITY IMPLIED が存在しないということは、拡張マーカーが明示的に存在するモジュール内の型に対してのみ拡張性が提供されることを意味します。
注 – 暗黙の拡張性は型のみに影響します。 オブジェクト セットとサブタイプ制約には影響しません。
13.5 「EncodingReferenceDefault」は、「encodingreference」がモジュールのデフォルトのエンコード参照であることを指定します。 「EncodingReferenceDefault」が「空」の場合、モジュールのデフォルトのエンコード参照は TAG です。
注 – 付属書 E には、対応するエンコード命令の形式と意味を指定する勧告 | 国際標準とともに、許可されたエンコード参照のリストが含まれています。
13.6 「ModuleIdentifier」プロダクション内に現れる「modulereference」をモジュール名と呼びます。
注 – 同じ「モジュール参照」が割り当てられた「ModuleBody」を複数回使用することによって、単一の ASN.1 モジュールを定義する可能性は、(おそらく) 以前の仕様で許可されていました。 この勧告 | 国際標準では許可されていません。
13.7 モジュール名は、モジュール定義の対象範囲内で 1 回だけ使用されます (13.10 で指定されている場合を除く)。
13.8 「DefinitiveIdentification」が空でない場合、指定されたオブジェクト識別子とオプションの「IRIValue」値は、定義されているモジュールを識別する OID ツリーの同じノードを明確かつ一意に識別します。 オブジェクト識別子の値を定義する際に、定義された値を使用することはできません。 「IRIValue」の生成は 34.3 で規定されています。
注 1 – 他のユーザーがそのモジュールを明確に参照できるように、少なくともオブジェクト識別子の値 (できればオブジェクト識別子の値と OID 国際化リソース識別子の値) をモジュールに割り当てることを強くお勧めします。
注 2 – モジュールへのどのような変更に新しい「DefinitiveIdentification」が必要になるかという問題は、この勧告 | 国際標準では扱われていません。
13.9 「AssignedIdentifier」が空でない場合、「ObjectIdentifierValue」と「DefinedValue」の代替は、参照名のインポート元のモジュールを明確かつ一意に識別します。 「AssignedIdentifier」の代わりに「DefinedValue」が使用される場合、それはオブジェクト識別子タイプの値になります。 「AssignedIdentifier」内にテキストで現れる各「valuereference」は、次のルールのいずれかを満たさなければなりません。
a) 定義されているモジュールの「AssignmentList」で定義されており、代入ステートメントの右側にテキストで表示されるすべての「valuereference」も、このルール (ルール "a") または次のルール (ルール ") を満たします。 b")。
b) 「AssignedIdentifier」にテキスト上「valuereference」が含まれていない「SymbolsFromModule」内の「シンボル」として表示されます。
注 1 – 他の人が明確にモジュールを参照できるように、オブジェクト識別子を割り当てることをお勧めします。
注 2 – この構文では、OID 国際化リソース参照 (割り当てられている場合) を参照先モジュールに含めることはできませんが、これを ASN.1 コメントに含めることをお勧めします。
13.10 「SymbolsFromModule」の「GlobalModuleReference」は、別のモジュールの「ModuleDefinition」に表示されます。ただし、空ではない「DefinitiveIdentification」が含まれる場合、「modulereference」は 2 つの場合で異なる場合があります。
注 – 他のモジュールで使用されているものとは異なる「モジュール参照」は、同じ名前を持つ 2 つのモジュール (13.7 を無視して名前が付けられているモジュール) からシンボルをインポートする場合にのみ使用する必要があります。 代替の個別の名前を使用すると、これらの名前をモジュールの本体で使用できるようになります (13.16 を参照)。
13.11 モジュールの参照に「modulereference」と空ではない「AssignedIdentifier」の両方が使用される場合、後者が最終的なものとみなされます。
13.12 参照されるモジュールに空ではない「DefinitiveIdentification」がある場合、そのモジュールを参照する「GlobalModuleReference」には空の「AssignedIdentifier」があってはなりません。
13.13 "Exports"の代わりに"SymbolsExported"が選択されている場合:
a) 「SymbolsExported」の各"Symbol"は、次の条件のうち 1 つだけを満たさなければなりません。
i) 構築中のモジュール内でのみ定義されます。 または
ii) "Imports" の代わりの "SymbolsIMported" に 1 回だけ出現します。
b) モジュール外部からの参照が適切なすべての "Symbol" は「SymbolsExported」に含まれるものとし、これらの "Symbol" のみがモジュール外部から参照できます (13.14 で指定された緩和の対象)。 そして
c) そのような"Symbol"が存在しない場合は、「SymbolsExported」(「Exports」ではない) の空の代替が選択されます。
13.14 "empty"「空」の代替案、または "Exports"「エクスポート」の代替案「EXPORTS ALL」のいずれかが選択されている場合、モジュール内で定義されている、またはモジュールによってインポートされているすべての"Symbol"「シンボル」は、13.13 a) で指定された制限に従って他のモジュールから参照できます。
注 – "Exports"「エクスポート」の代替"empty"「空」は、下位互換性のために含まれています。
13.15 "NamedNumberList"、"Enumeration"、または "NamedBitList" に表示される識別子は、それらを定義する型参照がエクスポートされるか、エクスポートされた型内のコンポーネント (またはサブコンポーネント) として表示される場合、暗黙的にエクスポートされます。
13.16 "Import" の代わりに "SymbolsImported" 「シンボルインポート」が選択されている場合:
a) 「SymbolsFromModule」の各「Symbol」は、モジュール本体で定義されるか、「SymbolsFromModule」の「GlobalModuleReference」で示されるモジュールの「Imports」句に存在する必要があります。 参照先モジュールの「Imports」句にある「シンボル」のインポートは、その句内に「シンボル」が 1 つだけ存在し、その「シンボル」が参照先モジュールで定義されていない場合にのみ許可されます。
注 1 – これは、2 つの異なるモジュールで定義された同じシンボル名を別のモジュールにインポートすることを禁止するものではありません。 ただし、同じ「シンボル」名がモジュール A の「Imports」句に複数回出現する場合、その「シンボル」名を A からエクスポートして別のモジュール B にインポートすることはできません。
b) 「SymbolsFromModule」の「GlobalModuleReference」によって示されるモジュールの定義で「Exports」の代替「SymbolsExported」が選択されている場合、「Symbol」はその「SymbolsExported」に表示されます。
c) 「SymbolsFromModule」の「SymbolList」内に表示される「Symbol」のみが、その「SymbolsFromModule」の「GlobalModuleReference」によって示される「モジュール参照」を持つ「外部<X>参照」内のシンボルとして表示されます。 " (<X> は「値」、「タイプ」、「オブジェクト」、「オブジェクトクラス」、または「オブジェクトセット」です)。
d) そのような「シンボル」が存在しない場合は、「Symbolsimported」の「空」の代替が選択されます。
注 2 – c) と d) の効果は、ステートメント IMPORTS; です。 これは、モジュールに「外部<X>参照」を含めることができないことを意味します。
e) 「SymbolsFromModuleList」内のすべての「SymbolsFromModule」には、次のような「GlobalModuleReference」の出現が含まれます。
i) それらの「モジュール参照」は互いに異なり、また参照元モジュールに関連付けられた「モジュール参照」とも異なります。 そして
ii) 「AssignedIdentifier」は、空でない場合、互いに、また参照モジュールに関連付けられたオブジェクト識別子の値(存在する場合)とはすべて異なるオブジェクト識別子の値を示す。
f) 「SymbolsFromModule」に空ではない「SelectionOption」がある場合、「GlobalModuleReference」の「AssignedIdentifier」は空であってはならず、参照されるモジュールは次のように決定されます。
i) 「SelectionOption」が WITH SUCCESSORS である場合、「GlobalModuleReference」によって示されるモジュールは、最後のノードが 0 回以上インクリメントされるオブジェクト識別子を持つ DefinitiveIdentification を持つモジュールです。 複数のモジュールがこの基準を満たす場合、指定されたモジュールは、オブジェクト識別子に最大の増分数を持つ最後のノードを持つモジュールになります。
ii) 「SelectionOption」が WITH DESCENDANTS である場合、「GlobalModuleReference」によって示されるモジュールは、「GlobalModuleReference」またはその下位の 1 つによって識別されるノードを識別する DefinitiveIdentification を持つモジュールです。 複数のモジュールがこの基準を満たす場合、示されたモジュールが最大のオブジェクト識別子を持つモジュールとなります。 この比較では、1 つのアークが異なる (最大のアークを選択) か、1 つのオブジェクト識別子の終わりに達する (長いオブジェクト ID を選択) まで、アークが連続的に比較されます。
13.17 「Imports」の"empty"「空」の代替が選択されている場合でも、モジュールは "External<X>Reference"「外部<X>参照」を使用して他のモジュールで定義されている"Symbols"「シンボル」を参照できます。
注 – 「Imports」の代替"empty"「空」は、下位互換性のために含まれています。
13.18 "NamedNumberList"、"Enumeration"、または "NamedBitList" に表示される識別子は、それらを定義する型参照がインポートされるか、インポートされた型内のコンポーネント (またはサブコンポーネント) として表示される場合、暗黙的にインポートされます。
13.19 「SymbolsFromModule」内の"Symbol"「シンボル」は、"Reference"「参照」として「ModuleBody」に表示される場合があります。 "Symbol"「シンボル」に関連付けられた意味は、対応する「GlobalModuleReference」によって示されるモジュール内でそのシンボルが持つ意味です。
13.20 "Symbol" が "AssignmentList" (非推奨) にも表示される場合、または "SymbolsFromModule" の 1 つ以上の他のインスタンスに表示される場合は、"External<X>Reference" でのみ使用されます。 そのように表示されていない場合は、それを"Reference"「参考」として直接使用するものとします。
13.21 "Assignment"「割り当て」のさまざまな代替案は、特に断りのない限り、この勧告 | 国際標準の次の条項で定義されています。
table:割り当ての代替
割り当ての代替案 Assignment alternative 副節の定義 Defining subclause
"TypeAssignment" 16.1
"ValueAssignment" 16.2
"XMLValueAssignment" 16.2
"ValueSetTypeAssignment" 16.6
"ObjectClassAssignment" Rec. ITU-T X.681 | ISO/IEC 8824-2, 9.1
"ObjectAssignment" Rec. ITU-T X.681 | ISO/IEC 8824-2, 11.1
"ObjectSetAssignment" Rec. ITU-T X.681 | ISO/IEC 8824-2, 12.1
"ParameterizedAssignment" Rec. ITU-T X.683 | ISO/IEC 8824-4, 8.1
すべての"Assignment"「割り当て」の最初のシンボルは、「参照」の代替の 1 つであり、定義されている参照名を示します。 「AssignmentList」内の 2 つの割り当てにおいて、参照名が同じであってはなりません。
13.22 「EncodingControlSections」は第 54 条に規定されています。
14 参照型と値の定義 Reference type and value definitions
14.1 定義された型と値の生成:
code:type and value
DefinedType ::=
ExternalTypeReference
| typereference
| ParameterizedType
| ParameterizedValueSetType
DefinedValue ::=
ExternalValueReference
| valuereference
| ParameterizedValue
型と値の定義を参照するために使用されるシーケンスを指定します。 「ParameterizedType」および「ParameterizedValueSetType」によって識別されるタイプ、および「ParameterizedValue」によって識別される値は、Rec. ITU-T X.683 | ISO/IEC 8824-4 で規定されています。
14.2 「NonParameterizedTypeName」の生成:
code:NonParameterizedTypeName
NonParameterizedTypeName ::=
ExternalTypeReference
| typereference
| xmlasn1typename
ASN.1 タイプを表すために XML タグ名が必要な場合に使用されます。 結果の XML タグ名が文字「XML」で始まる場合、LOW LINE (95) が先頭に追加されて「NonParameterizedTypeName」が形成されます。
14.3 3 番目の代替値は、「XMLValueAssignment」(16.2 を参照) または「XMLOpenTypeFieldVal」(Rec. ITU-T X.681 | ISO/IEC 8824-2、14.6 を参照) の「XMLTypedValue」の「NonParameterizedTypeName」として使用してはならない。 XML 値の表記が ASN.1 モジュールで使用されている場合、「xmlasn1typename」が「CHOICE」、「ENUMERATED」、「SEQUENCE」、「SEQUENCE_OF」、「SET」または「SET_OF」の場合。
注 – これらの「xmlasn1typename」は ASN.1 タイプを定義しないため、この制限は ASN.1 モジュールで使用される XML 値表記に課せられます。 「xmlasn1typename」から形成された XML タグ名はエンコードされている型の決定に使用されないため、エンコード ルール (XER など、Rec. ITU-T X.693 | ISO/IEC 8825-4 を参照) でのこの表記法の使用には制限はありません。
14.4 13.19 で指定されている場合を除き、「typereference」、「valuereference」、「ParameterizedType」、「ParameterizedValueSetType」または「ParameterizedValue」の代替は、参照がタイプまたは値が割り当てられている「ModuleBody」内にない限り使用してはならない(「ModuleBody」を参照) 16.1 および 16.2) を「typereference」または「valuereference」に追加します。
14.5 "ExternalTypeReference"「外部タイプ参照」および"ExternalValueReference"「外部値参照」は、対応する"typereference" 「タイプ参照」または"valuereference"「値参照」がない限り使用しません。
a) それぞれタイプまたは値が割り当てられています (16.1 および 16.2 を参照)。 または
b) 「Imports」条項に存在する、
「ModuleBody」内で、対応する「modulereference」を定義するために使用されます。 別のモジュールの「Imports」句での名前の参照は、その句に「Symbol」が複数回出現しない場合にのみ許可されます。
注 – これは、2 つの異なるモジュールで定義された同じ「シンボル」を別のモジュールにインポートすることを禁止するものではありません。
ただし、モジュール A の IMPORTS 句に同じ「シンボル」が複数回出現する場合、外部参照でモジュール A を使用してその「シンボル」を参照することはできません。
14.6 外部参照は、別のモジュールで定義され、次のプロダクションによって指定される参照名を参照するためにのみ、モジュール内で使用されます。
ExternalTypeReference ::=
modulereference
"."
typereference
ExternalValueReference ::=
modulereference
"."
valuereferenc
注 – 追加の外部参照プロダクション ("ExternalClassReference"「外部クラスリファレンス」、"ExternalObjectReference"「 外部オブジェクト参照」、および "ExternalObjectSetReference"「外部オブジェクトセット参照」)は Rec. ITU-T X.681 | ISO/IEC 8824-2 で指定されています。
14.7 参照元モジュールが「Imports」の代わりに「SymbolsIMported」を使用して定義されている場合、外部参照の「modulereference」は、「Symbolsimports」内の「SymbolsFromModule」の 1 つの「GlobalModuleReference」に表示されます。 参照元モジュールが「Imports」の"empty"「空」代替を使用して定義されている場合、外部参照の「modulereference」は、「Reference」が定義されているモジュール(参照元モジュールとは異なる)の「ModuleDefinition」に表示されます。
14.8 「DefinedType」が「Type」によって管理される表記法の一部として使用される場合 (たとえば、「SubtypeConstraint」内)、「DefinedType」は、C.6.2 項で指定されている管理対象の「Type」と互換性があるものとします。
14.9 ASN.1 仕様内での「DefinedValue」の出現はすべて「Type」によって管理され、その「DefinedValue」は、C.6.2 項で指定されている準拠する「Type」と互換性のあるタイプの値を参照するものとします。
15 ASN.1コンポーネントへの参照をサポートするための表記 Notation to support references to ASN.1 components
15.1 多くの目的のために、ASN.1 のタイプ、値などのコンポーネントへの正式な参照の要件があります。そのような例の 1 つは、ASN.1 モジュール内の特定のタイプを識別するためのテキストを記述する必要がある場合です。 この節は、そのような参照を提供するために使用できる表記法を定義します。
15.2 この表記法により、セットまたはシーケンス型のコンポーネント (型内に必須またはオプションで存在する) を識別できるようになります。
15.3 ASN.1 型定義の任意の部分は、「AbsoluteReference」構文構造を使用して参照できます。
AbsoluteReference ::=
"@" ModuleIdentifier
"."
ItemSpec
ItemSpec ::=
typereference
| ItemId "." ComponentId
ItemId ::= ItemSpec
ComponentId ::=
identifier
| number
| "*"
注 – AbsoluteReference プロダクションは、この推奨事項の他の場所では使用されていません。 国際標準。 これは、15.1 に記載されている目的のために提供されます。
15.4 「ModuleIdentifier」は ASN.1 モジュールを識別します (13.1 を参照)。
15.5 「DefinitiveIdentification」の 1 番目または 2 番目の代替が「ModuleIdentifier」の一部として使用される場合、「DefinitiveIdentification」は名前の参照元のモジュールを明確かつ一意に識別します。
15.6 「typereference」は、「ModuleIdentifier」によって識別されるモジュールで定義されている任意の ASN.1 タイプを参照します。
15.7 各「ItemSpec」の「ComponentId」は、「ItemId」によって識別されたタイプのコンポーネントを識別します。 識別するコンポーネントが set、sequence、set-of、sequence-of、または Choice タイプではない場合、これは最後の「ComponentId」となります。
15.8 「ComponentId」の「識別子」形式は、親の「ItemId」がセットまたはシーケンス型の場合に使用でき、そのセットの「ComponentTypeLists」内の「NamedType」の「識別子」の 1 つである必要があります。 またはシーケンス。 また、「ItemId」が選択肢タイプを識別し、その選択肢タイプの「AlternativeTypeLists」内の「NamedType」の「識別子」の 1 つである必要がある場合にも使用できます。 それ以外の状況では使用できません。
15.9 「ComponentId」の数値形式は、「ItemId」が sequence-of タイプまたは set-of タイプの場合にのみ使用できます。 数値の値は、sequence-of または set-of 内の型のインスタンスを識別し、値「1」は型の最初のインスタンスを識別します。 値 0 は、外側の型の値に存在する、sequence-of または set-of 内の型のインスタンスの数のカウントを含む概念的な整数型コンポーネント (転送では明示的に存在しない) を識別します。
15.10 「ComponentId」の「*」形式は、「ItemId」がシーケンスまたはセットである場合にのみ使用できます。 任意のセマンティクス
「ComponentId」の「*」形式の使用に関連するものは、sequence-of および set-of のすべてのコンポーネントに適用されます。
注 – 次の例では:
M DEFINITIONS ::= BEGIN
T ::= SEQUENCE {
a BOOLEAN,
b SET OF INTEGER
}
END
「T」のコンポーネントは、次のような ASN.1 モジュールの外部 (またはコメント内) のテキストによって参照される可能性があります。
-- if (@M.T.b.0 is odd) then:
-- (@M.T.b.* shall be an odd integer)
これは、b の成分の数が奇数の場合、b のすべての成分が奇数でなければならないことを示すために使用されます。
16 型と値の割り当て Assigning types and values
16.1 「typereference」には、「TypeAssignment」プロダクションで指定された表記法によって型が割り当てられます。
TypeAssignment ::=
typereference
"::="
Type
「typereference」は ASN.1 予約語であってはなりません (12.38 を参照)。
16.2 「valuereference」には、「ValueAssignment」または「ValueAssignment」のいずれかで指定された表記法によって値が割り当てられます。
「XMLValueAssignment」のプロダクション:
ValueAssignment ::=
valuereference
Type
"::="
Value
XMLValueAssignment ::=
valuereference
"::="
XMLTypedValue
XMLTypedValue ::=
"<" & NonParameterizedTypeName ">"
XMLValue
"</" & NonParameterizedTypeName ">"
| "<" & NonParameterizedTypeName "/>
「ValueAssignment」の「valuereference」に割り当てられる値は「Value」であり、「Type」によって管理され、「Type」で定義された型の値の表記法となります(16.3で指定)。 「XMLValueAssignment」の「valuereference」に割り当てられる値は「XMLValue」(17.7 を参照)であり、「NonParameterizedTypeName」(16.4 で指定)で定義された型の値の表記となります。 これが「xmlasn1typename」項目の場合、表 4 の対応する行の ASN.1 組み込みタイプを識別します (14.3 も参照)。 明示的に禁止されている場合を除き、「XMLTypedValue」の「XMLValue」の周囲に空白を使用できます (41.9 および Rec. ITU-T X.693 | ISO/IEC 8825-4、31.3.4.1 を参照)。
16.3 "Value"「値」は、17.7 で規定されている型の値の表記です。
16.4 「XMLValue」が型の「XMLBuiltinValue」表記である場合、「XMLValue」は型の値の表記です(17.10を参照)
16.5 「XMLTypedValue」の 2 番目の選択肢 (XML 空要素タグの使用) は、「XMLValue」プロダクションのインスタンスが空の場合にのみ使用できます。
注 – 「XMLValue」プロダクションが空白のみを含む「xmlcstring」である場合、これは空ではないため、2 番目の代替は使用できません。
16.6 「typereference」には、「ValueSetTypeAssignment」プロダクションで指定された表記法によって設定された値を割り当てることができます。:
ValueSetTypeAssignment ::=
typereference
Type
"::="
ValueSet
この表記法は、「Type」で示される型のサブタイプとして定義され、「ValueSet」で指定または許可される値を正確に含む型を「typereference」に割り当てます。 「typereference」は ASN.1 予約語 (12.38 を参照) であってはならず、型として参照される場合があります。 「ValueSet」は16.7で定義されています。
16.7 あるタイプによって管理される値セットは、「ValueSet」という表記によって指定されます。
ValueSet ::= "{" ElementSetSpecs "}"
値セットは、「ElementSetSpecs」で指定されたすべての値で構成されます。そのうちの少なくとも 1 つは、「ElementSetSpecs」で指定されます (条項 50 を参照)。
16.8 「ValueSetTypeAssignment」プロダクションは次のように展開されます。
typereference
Type
"::="
"{" ElementSetSpecs "}"
エンコード ルールの適用を含むあらゆる目的において、これはプロダクションの使用とまったく同等であるように定義されています。:
ypereference
"::="
Type
"(" ElementSetSpecs ")"
同じ「Type」および「ElementSetSpecs」仕様を持つ。
17 型と値の定義 Definition of types and values
17.1
17.2
17.3
17.4
17.5
17.6
17.7
17.8
17.9
17.10
17.11
17.12
17.13
17.14
18 boolean型の表記法
19 整数(integer)型の表記法
20 列挙(enumerated)型の表記法
21 実数(real)型の表記法
22 ビット文字列(bitstring)型の表記法
23 オクテット文字列(octetstring)型の表記法
24 null型の表記法
25 sequence型の表記法
26 sequence-of型の表記法
27 set型の表記法
28 set-of型の表記法
29 選択肢(choice)型の表記法
30 選択(selection)型の表記法
31 接頭辞付き(prefixed)型の表記法
32 オブジェクト識別子(object identifier)型の表記法
33 相対オブジェクト識別子(relative object identifier)型の表記法
34 OID国際化リソースID(OID internationalized resource identifier)型の表記法
35 相対OID国際化リソースID(relative OID internationalized resource identifier)型の表記法
36 embedded-pdv型の表記法
37 external型の表記法
38 time型
39 character string型
40 character string型の表記法
41 制限される文字列型の定義
42 文字、コレクション、プロパティ カテゴリ セットに名前をつける
43 正規の文字順
44 無制限の文字列型の定義
45 46 から 48 で定義される型の表記
46 一般化された時間 Generalized time
47 世界時
47.1 この型は次の名前で参照されます。
48 オブジェクト記述子のタイプ
49 制約されたタイプ
50 要素集合仕様 ElementSetSpec
51 サブタイプ要素
51.1 一般
52 拡張マーカー
53 例外識別子
54 エンコード制御セレクション
附属書A
ASN.1正規表現
A.1 意味
附属書B
定義された時間タイプ
附属書C
型と値の互換性に関する規則
附属書D
割り当てられたオブジェクト識別子とOID国際化リソース識別子の値
附属書E
エンコーディングのリファレンス
附属書F
国際オブジェクト識別子ツリーでのアークの割り当てと使用
附属書G
例とヒント
附属書H
ASN.1文字列に関するチュートリアル付録
附属書I
型拡張のASN.1モデルに関するチュートリアルの付録
附属書J
TIMEタイプに関するチュートリアルの付録
附属書K
TIME型の値表記の解析
附属書L
ASN.1 表記の概要