X.682
ITU-T X.682
ISO/IEC 8824-3
JIS X 5605-3
Abstract Syntax Notation One: Constraint Specification. 制約仕様
https://www.itu.int/rec/T-REC-X.682
ASN.1
情報技術 –
抽象構文記法 1 (ASN.1):
制約仕様
概要
ITU-T勧告X.682 | ISO/IEC 8824-3は、構造化データ型のデータ値を制限するための制約および例外仕様の一般的なケースについて、ASN.1表記法を規定しています。この表記法は、制約に違反した場合の通知についても規定しています。
はじめに
アプリケーション設計者は、構造化データ型を定義してその意味を伝えるための表記法を必要とします。これは、ITU-T勧告X.680 | ISO/IEC 8824-1およびITU-T勧告X.681 | ISO/IEC 8824-2で規定されています。また、出現可能な値をさらに制約するための表記法も必要です。このような制約の例としては、一部のコンポーネントの範囲を制限すること、指定された情報オブジェクトセットを使用して「ObjectClassFieldType」コンポーネントを制約すること、または「AtNotation」を使用してコンポーネント間の関係を指定することなどが挙げられます。
この勧告 | 国際規格は、制約仕様の一般的なケースに関する表記法を提供します。
注1 – 歴史的な理由により、「サブタイプ制約」の特殊なケースは、ITU-T勧告X.680 | ISO/IEC 8824-1で規定されています。
制約記法は、構文構成要素「Type」の使用後に(丸括弧で囲んで)記述できます。この勧告|国際標準の目的は、丸括弧内に記述する一般的なケースを規定することです。
注2 – 複数の制約(それぞれ丸括弧で囲む)を同じ「Type」に適用することができます。これは、「Type」を制約した結果自体が正式に「Type」構成要素となるためです。
制約が「Type」構成要素のテキスト上最も外側の使用に適用されると、元の(親)型のサブタイプである新しい型が作成されます。
親型のサブタイプは、制約記法の他の使用において、同じ親型の他のサブタイプを定義するために使用できます。したがって、サブタイプを構成する値のサブセットは、親型の範囲を制限するか、サブタイプを値の集合の和集合として指定することによって定義できます。
注3 – 勧告で規定されている「ValueSet」記法は、 ITU-T X.680 | ISO/IEC 8824-1, 16.7 は、サブタイプを指定するためのさらなる手段を提供しています。
制約は、表記法が別の型に埋め込まれている場合(前述のように)、親型のサブタイプを生成するためにも使用できます。ただし、一部の「コンポーネント関係」制約は、「型」(セット型またはシーケンス型定義内)にテキストで記述されますが、それが従う「型」(参照元コンポーネント)の可能な値の集合を制限するために使用されるわけではありません。むしろ、参照元コンポーネントの値と、同じセット型またはシーケンス型内の1つ以上の他の「型」(参照先コンポーネントと呼ばれる)の値との関係を指定します。
コンポーネント関係制約は、それが埋め込まれているシーケンス型をサブタイプ化するものと考えることができますが、必ずしも参照元型をサブタイプ化するとは限りません。
「ObjectClassFieldType」コンポーネントに対する制約は、情報オブジェクトセットを使用してコンポーネント内の型または値を制限することによって適用できます。このような制約は、オブジェクト集合の「関連テーブル」を用いて指定されるため、テーブル制約と呼ばれます。本勧告|国際規格で定義されているコンポーネント関係制約は、テーブル制約の特殊なケースです。
最後に、「型」は、サブタイプの値集合を人間が読めるテキストで指定することにより、サブタイプ化することができます。このような制約は、ユーザ定義制約と呼ばれます。例えば、ユーザ定義制約は、ビット文字列を、指定されたASN.1型の値を暗号化することによって生成された値集合に制約するように指定できます。
本勧告|国際規格の目的は、テーブル制約(コンポーネント関係制約を含む)およびユーザ定義制約を指定するための表記法を提供することです。
注4 - 一般に、制約(特にコンポーネント関係制約、サブタイプ制約、および形式的に定義された本体を持つユーザ定義制約)を柔軟に指定するための完全なサポートには、プログラミング言語に匹敵する強力な表記法が必要です。このような能力は、ASN.1表記法から他の定義されたコンピュータ言語へのリンクを確立することによってのみ、合理的に提供できます。この勧告|国際規格のこのバージョンでは、そのようなリンクは提供されておらず、したがって、少数の制約メカニズムのみがサポートされています。
制約(サブタイプと関係)を定義する表記法の埋め込みは、多くの場合、最も便利な仕様形式となりますが(特に構造の基本コンポーネントの単純なサブタイプ化の場合)、特に基本プロトコルを定義したグループとは別のグループによって制約が課される場合、別個の(外部)仕様が好まれることもあります。
注5 – Rec. ITU-T X.683 | ISO/IEC 8824-4で定義されているパラメータ化は、ASN.1仕様の一部(特に制約)をパラメータ化できるように特別に設計されており、パラメータ化された構成要素に実際のパラメータを提供する別のグループによって実際の制約が課されることを可能にします。
ここでサポートされる制約仕様の表記法は以下のとおりです。
– ユーザ定義制約(9項参照)
– テーブル制約(情報オブジェクトに関連する値を運ぶ2つのコンポーネント間のコンポーネント関係制約を含む。ITU-T勧告X.681 | ISO/IEC 8824-2の表記法を用いて定義される。10項参照)
– コンテンツ制約(11項参照)
ITU-T勧告X.681 | ISO/IEC 8824-2の附属書Cの「InstanceOfType」構造へのテーブル制約の適用については、附属書Aに規定されています。