2024信息技術(shù) 抽象語法記法一(ASN.1) 第2部分:信息客體規(guī)范_第1頁
2024信息技術(shù) 抽象語法記法一(ASN.1) 第2部分:信息客體規(guī)范_第2頁
2024信息技術(shù) 抽象語法記法一(ASN.1) 第2部分:信息客體規(guī)范_第3頁
2024信息技術(shù) 抽象語法記法一(ASN.1) 第2部分:信息客體規(guī)范_第4頁
2024信息技術(shù) 抽象語法記法一(ASN.1) 第2部分:信息客體規(guī)范_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

信息技術(shù)抽象語法記法一(ASN.1)2目 次前言 III引言 IV范圍 1規(guī)范性引用文件 1術(shù)語和定義 1縮略語 4約定 4賦值 4記法 4類型 46.2值 56.3元素 5ASN.1詞項 5信息客體類別引用 5信息客體引用 5信息客體集合引用 5類型字段引用 6值字段引用 6值集合字段引用 6客體字段引用 6客體集合字段引用 67.9字 67.10附加關(guān)鍵字 6定義引用 6信息客體類別定義和賦值 7語法表 12信息客體定義和賦值 14信息客體集合定義和賦值 17關(guān)聯(lián)表 18客體類別字段類型記法 19來自客體的信息 21附錄A(規(guī)范性)類型標(biāo)識符信息客體類別 25附錄B(規(guī)范性)抽象語法定義 26I附錄C(規(guī)范性)單一實例類型 27附錄D(資料性)示例 29附錄E(資料性)ASN.1客體集合擴(kuò)展模型的指導(dǎo)附錄 33附錄F(資料性)記法綜述 34II引 言GB/T1626216262的編制基于ISO/IEC8824ISO/IEC16262擬由四個部分構(gòu)成?!?部分:基本記法規(guī)范。目的在于定義數(shù)據(jù)類型、值及數(shù)據(jù)類型的約束?!?部分:信息客體規(guī)范。目的在于提供規(guī)定信息客體類別、信息客體和信息客體集合的記法?!?部分:約束規(guī)范。目的在于提供規(guī)定用戶定義的約束、表約束和內(nèi)容約束的記法。——第4部分:ASN.1規(guī)范的參數(shù)化。目的在于定義ASN.1規(guī)范的參數(shù)化記法。IV信息技術(shù)抽象語法記法一(ASN.1)第2部分:信息客體規(guī)范范圍GB/T16262的本文件是抽象語法記法一(ASN.1)規(guī)范性引用文件(包括所有的修改單適用于本文件。GB/T16262.1—xxxx信息技術(shù)抽象語法記法一(ASN.1)第1部分:基本記法規(guī)范(ISO/IEC8824-1:2021,IDT)GB/T16262.3—xxxx信息技術(shù)抽象語法記法一(ASN.1) 第3部分:約束規(guī)范(ISO/IEC8824-3:2021,IDT)GB/T16262.4—xxxx信息技術(shù) 抽象語法記法一(ASN.1)第4部分:ASN.1規(guī)范的參數(shù)化(ISO/IEC8824-4:2021,IDT)注:上述引用文件說明了對已確定的文件及其所有已發(fā)布的修正案和技術(shù)勘誤的引用。術(shù)語和定義下列術(shù)語和定義適用于GB/T16262—xxxx的本文件。3.1基本記法規(guī)范本文件使用GB/T16262.1—xxxx中定義的術(shù)語。3.2約束規(guī)范本文件使用GB/T16262.3—xxxx中定義的下列術(shù)語:——表約束tableconstraint3.3ASN.1規(guī)范的參數(shù)化本文件使用GB/T16262.4—xxxx中定義的下列術(shù)語:參數(shù)化類型parameterizedtype;參數(shù)化值parameterizedvalue。3.4附加定義13.4.1關(guān)聯(lián)表associatedtable(見(某個信息客體或信息客體集合)抽象表。注:關(guān)聯(lián)表能用來確定某種約束的精確性質(zhì)(見GB/T16262.3—xxxx),此約束是在使用客體集合時施加的。3.4.2默認(rèn)語法defaultsyntax對定義者沒有提供定義語法的類別,定義這種類別信息客體的記法(見11.10的示例)。3.4.3定義語法definedsyntax由類別的定義者提供的記法,它允許以用戶友好的方式定義此類別的信息客體。注:例如,類別OPERATION的定義語法可以允許此類別的實例定義如下:字ARGUMENT后接&ArgumentType,然后,字RESULT后接&ResultType,然后,字CODE后接&OperationCode(見11.11的示例)。3.4.4可擴(kuò)展客體集合extensibleobjectset具有擴(kuò)展標(biāo)記的客體集合或?qū)蓴U(kuò)展的客體集合進(jìn)行集合運算定義的客體集合。3.4.5字段field3.4.6字段名稱fieldname標(biāo)識某個類別的字段的名稱;或是直接規(guī)定此字段的類別,在此情況中,此名稱是原始字段名稱,或是具有與其中此字段實際上已被規(guī)定的情況有關(guān)的一系列鏈接字段的類別(見9.13和9.14)。3.4.7支配(類別)governing(class)支配者governor要求其引用或規(guī)定支配類別的信息客體時,影響ASN.1語法某部分解釋的信息客體類別定義或引用。3.4.8標(biāo)識符字段identifierfield為提供類別中信息客體的唯一標(biāo)識,所選用的類別的固定類型值字段。標(biāo)識符字段值,如果提供,注1:標(biāo)識符字段具有固定的ASN.1類型,此類型的值可包含在協(xié)議中以標(biāo)識此類型中的信息客體。注2:標(biāo)識符為無歧義的范圍是信息客體集合的范圍。然而,它還能在任一給定的抽象語言中,或完整的應(yīng)用上下文中是無歧義的,或甚至通過標(biāo)識符字段使用客體標(biāo)識符類型能對所有類別是完全無歧義的。3.4.9信息客體informationobject某個信息客體類別中的實例,由符合此類別字段規(guī)范的字段集合組成。注:例如,信息客體類別OPERATION(在3.4.10的示例中提及的)一個具體實例可以是invertMatrix,它具有&ArgumentType字段(包含類型Matrix),&ResultType字段(也包含類型Matrix)和&operationCode字段(包2含值7)(見10.13的示例)。3.4.10信息客體類別(類別)informationobjectclass(class)對可能未界定的信息客體(此類別的實例)匯集為定義,形成模板的字段集合。注:OPERATION可以與遠(yuǎn)程操作服務(wù)(ROS)的OPERATION操作概念相對應(yīng)予以定義。此外,每個&ArgumentType、&ResultType和&operationCode字段,前兩個規(guī)定類型字段,第三個規(guī)定值字段。3.4.11信息客體字段informationobjectfield包含某個規(guī)定類別信息客體的字段。3.4.12信息客體集合informationobjectset使用相同信息客體類別引用名定義的所有信息客體的非空集合。OPERATION(在3.4.10例中使用的一個信息客體集合MatrixOperation可以包含invertMatrix(在中提及過(例如,addMatricesmultiplyMatrices等3.4.13信息客體集合字段informationobjectsetfield包含某個規(guī)定類別信息客體集合的字段。3.4.14單一實例類型instance-oftype通過引用與類型相關(guān)聯(lián)的客體標(biāo)識符的信息客體類別所定義的類型。3.4.15鏈接字段linkfield客體或客體集合字段。3.4.16客體類別字段類型objectclassfieldtypeGB/T16262.3—xxxx3.4.17原始字段名稱primitivefieldname在信息客體類別定義中無須使用鏈接字段而直接規(guī)定的名稱。3.4.18遞歸定義(引用名稱的)recursivedefinition(ofareferencename)解析引用名稱或引用名稱定義的支配者要求解析最初引用名稱的引用名稱。注:信息客體類別的遞歸定義是允許的。11.2和12.2各自禁用信息客體或信息客體集合的遞歸定義。3.4.19參數(shù)化引用名稱的)recursiveinstantiation(ofaparameterizedreferencename)在解析實際參數(shù)要求解析最初引用名稱時,引用名稱的實例。注:信息客體類別(包括編碼結(jié)構(gòu))的遞歸實例是允許的。11.2和12.2均禁用信息客體或信息客體集合的遞歸實例。3.4.203類型字段typefield包含任意類型的字段。3.4.21值字段valuefield3.4.22值集合字段valuesetfield注:對一信息客體而言,值集合字段中的值集合構(gòu)成規(guī)定類型的子類型??s略語本文件使用下列縮略語:ASN.1 抽象語法記法一(AbstractSyntaxNotationOne)。約定本文件采用GB/T16262.1 —xxxx的第5章定義的記法約定本章綜述本文件定義的記法。賦值A(chǔ)ssignment”(見GB/T16262.1—xxxx第13章的替代記法:——ObjectClassAssignment(見9.1);——ObjectAssignment(見11.1);——ObjectSetAssignment(見12.1)。記法本章綜述本文件定義的記法。類型BuiltinType”(見GB/T16262.1—xxxx的17.2)的替代記法:——ObjectClassFieldType(見14.1);——InstanceOfType(見附錄C)。ReferencdType(見GB/T1622.1xxx的17.3)的替代記法:4——TypeFromObject(見15章);——ValueSetFromObjects(見15章)。值本文件定義了下列記法,此記法能用作“Value”(GB/T16262.1—xxxx17.7)的替代記法:——ObjectClassFieldValue(見4.6)。GB/T16262.1—xxxx17.9)的替代記法:——InstanceOfValue(見附錄C)。本文件定義了下列記法,此記法能用作“ReferencedValue”(GB/T16262.1—xxxx的替代記法:——ValueFromObject(見15章)。元素本文件定義了下列記法,此記法能用作“Elements”(見GB/T16262.1—xxxx的50.6)替代記法:——ObjectSetElements(見12.10)。ASN.1除GB/T16262.1—xxxx第1216262.1—xxxx的12.1定義的。這些新的詞項使用GB/T16262.1—xxxx第11章規(guī)定的ASN.1字符集,以及字符“&”。注:GB/T16262.1—xxxx的11.1中的注也適用于7.1到7.9中規(guī)定的詞項。信息客體類別引用詞項名稱——objectclassreference“objectclassreference”應(yīng)由GB/T16262.1—xxxx的12.2對“typereference”規(guī)定的字符序列組成,但不應(yīng)包括小寫字母。信息客體引用詞項名稱——objectreference“objectreference”應(yīng)由GB/T16262.1—xxxx的12.4對“valuereference”規(guī)定的字符序列組成。信息客體集合引用詞項名稱——objectsetreference5“objectsetreference”應(yīng)由GB/T16262.1—xxxx的12.2對“typereference”規(guī)定的字符序列組成。類型字段引用詞項名稱——typefieldreference“typefieldreference”應(yīng)由“&”緊接GB/T16262.1—xxxx的12.2對“typereference”規(guī)定的字符序列組成。值字段引用詞項名稱——valuefieldreference“valuefieldreference”應(yīng)由“&”緊接GB/T16262.1—xxxx的12.4valuereference”規(guī)定的字符序列組成。值集合字段引用詞項名稱——valuesetfieldreference“valuesetfieldreference”應(yīng)由“&”緊接GB/T16262.1—xxxx的12.2對“typereference”規(guī)定的字符序列組成??腕w字段引用詞項名稱——objectfieldreference“objectfieldreference”應(yīng)由“&”緊接7.2對“objectreference”規(guī)定的字符序列組成??腕w集合字段引用詞項名稱——objectsetfieldreference“objectsetfieldreference”應(yīng)由“&”緊接7.3對“objectsetreference”規(guī)定的字符序列組成。字詞項名稱——word“word”應(yīng)由GB/T16262.1—xxxx的12.2.1對“typereference”規(guī)定的字符序列組成,但不應(yīng)包括小寫字母或數(shù)字。附加關(guān)鍵字名稱CLASS、INSTANCE、SYNTAX和UNIQUE在GB/T16262.1—xxxx的12.38中作為備用字列出。定義引用結(jié)構(gòu):DefinedObjectClass::=ExternalObjectClassReference|objectclassreference|UsefulObjectClassReference6DefinedObject::=ExternalObjectReference|objectreferenceDefinedObjectSet::=ExternalObjectSetReference|objectsetreference分別用來引用類別,信息客體和信息客體集合定義。對信息客體和信息客體集合的引用有一個支配類別。要求所引用的信息客體和所引用的信息體而言,沒有所規(guī)定的等效“valuemappings”(GB/T16262.1—xxxxC),所以上句(或通過簡單引用賦值獲得的引用)加以定義。就此要求而言,兩個等同的信息客體類別記法的實例(但字面上不同)不能視為同樣的信息客體類別。除GB/T16262.—xxxx的13.6objectclassrefeenceobjectrefer-enc”和“objectsetreference”的替代記法只能用于將類別或信息客體或信息客體集合賦于此引用的模塊(9.1、11.112.1)。“ExternalObjectClassReference”、“ExternalObjectReference”和“ExternalObjectSet-Reference”的替代記法定義如下:ExternalObjectClassReference::=modulereference"."objectclassreferenceExternalObjectReference::=modulereference"."objectreferenceExternalObjectSetReference::=modulereference"."objectsetreference不應(yīng)使用這些替代記法,除非在由相應(yīng)的“modulereference”標(biāo)識的模塊(與引用模塊不同)中已將類別或信息客體或信息客體集合賦于相應(yīng)的“objectclassreference”、“objectreference”或“objectsetreference”(見9.1、11.1和12.1)。這就是分別被引用的類別或信息客體或信息客體集合。 “DefinedObjectClass”的替代記法“UsefulObjectClassReference”定義如下:UsefulObjectClassReference::=TYPE-IDENTIFIER|ABSTRACT-SYNTAX其中,第一記法在附錄A中規(guī)定,第二記法在附錄B中規(guī)定。注:名稱TYPE-IDENTIFIER和ABSTRACT-SYNTAX在GB/T16262.1—xxxx的12.38中作為備用字列出。信息客體類別定義和賦值7結(jié)構(gòu)“ObjectClassAssignment”用來將信息客體類別賦于引用名(“objectclassrefer-ence”)。GB/T16262.1—xxxx13“Assignment”的替代記法之一,并定義如下:ObjectClassAssignment::=objectclassreference"::="ObjectClass信息客體類別是由結(jié)構(gòu)“ObjectClass”定義的類別:ObjectClass::=DefinedObjectClass |ObjectClassDefn |ParameterizedObjectClass如果“ObjectClass”是:“DefinedObjectClass”,那么此類別定義與此類別所引用的定義相同;“ObjectClassDefn9.3“ParameterizedObjectClassGB/T16262.4—xxxx9.2每個類別歸根結(jié)底是由“ObjectClassDefn”定義的:ObjectClassDefn::=CLASS"{"FieldSpec","+"}"WithSyntaxSpec?WithSyntaxSpec::=WITHSYNTAXSyntaxList這種記法允許類別的定義者提供命名的字段規(guī)范,其中每個規(guī)范是9.4中定義的一種“FieldSpec”。作為選擇,定義者可以提供按10.5定義的信息客體定義語法(“SyntaxList”)。類別的定義者還可規(guī)定與此類別定義相關(guān)的語義。每個“FieldSpec”規(guī)定并命名字段之一,它們應(yīng)該或可以與此類別的實例相關(guān)聯(lián):FieldSpec::=TypeFieldSpec|FixedTypeValueFieldSpec|VariableTypeValueFieldSpec|FixedTypeValueSetFieldSpec|VariableTypeValueSetFieldSpec|ObjectFieldSpec|ObjectSetFieldSpec“FieldSpec”的各種替代記法在以下各條中規(guī)定?!癟ypeFieldSpec”規(guī)定此字段是類型字段(3.4.20)TypeFieldSpec::=typefieldreferenceTypeOptionalitySpec?TypeOptionalitySpec::=OPTIONAL|DEFAULTType8此字段的名稱是“typefieldreferenceTypeOptionalitySpec”,則要求此類別的OPTIONALDEFAULT存在,那么,在“Type”之后,則為(此字段)提供在定義中省略的默認(rèn)設(shè)置?!癋ixedTypeValueFieldSpec”規(guī)定此字段是固定類型值字段(3.4.21):FixedTypeValueFieldSpec::=valuefieldreferenceTypeUNIQUE?ValueOptionalitySpec?ValueOptionalitySpec::=OPTIONAL|DEFAULTValue此字段的名稱是“valuefieldreferenceTypeUNIQUE也見GB/T16262.3—xxxx的ValueOptionalitySpec”不應(yīng)是“DEFAULTValue”。對標(biāo)識符字段賦值時,要求此值在任一定義的信息客體集合中是無歧義的?!癡ariableTypeValueFieldSpec”規(guī)定此字段是可變類型值字段(3.4.21):VariableTypeValueFieldSpec::=valuefieldreferenceFieldNameValueOptionalitySpec?此字段名稱是“valuefieldreference”?!癋ieldName”(見9.14)與要規(guī)定的類別相關(guān)。它應(yīng)是類型字段;此類型字段或是作為值字段處于相同的信息客體中,或通過客體字段鏈(其引用出現(xiàn)在“FieldName”中)鏈接。此類型字段應(yīng)包含值的類型。(字段引用出現(xiàn)在“FieldName”中的所有鏈接字段應(yīng)該是客體字段。)如果存在ValueOptionalitySpec,它規(guī)定在信息客體定義中可以省略此值,或在DEFAULT情況時,它規(guī)定省略隨后的“Value”?!癡alueOptionalitySpec”應(yīng)是這樣:如果由“FieldNameOPTIONALTypeOptionalitySpec”,那么,“ValueOptionalitySpecOPTIONAL;以及如果“ValueOptionalitySpec”是“DEFAULTValue”,那么,由“FieldName”表示的類型字段應(yīng)有“DEFAULTType”的“TypeOptionalitySpec”,并且“Value”應(yīng)是此類型的值?!癋ixedTypeValueSetFieldSpec”規(guī)定此字段是固定類型值集合字段(3.4.22):FixedTypeValueSetFieldSpec::=valuesetfieldreferenceTypeValueSetOptionalitySpec?ValueSetOptionalitySpec::=OPTIONAL|DEFAULTValueSet注:“ValueSet”在GB/T16262.1—xxxx的16.6和16.7中定義,并允許對值集合顯示列表(用波浪大括號),或?qū)Α癟ype”的子類型使用“typereference”9此字段的名稱是“valuesetfieldreference”。“Type”結(jié)構(gòu)規(guī)定此字段中所包含的值的類型。如果存在“ValueSetOptionalitySpec”,它規(guī)定的信息客體定義中可以不規(guī)定此字段,或在DEFAULT情況時,規(guī)定省略隨后的“ValueSet”,它應(yīng)是此類型的子類型?!癡ariablTypeValueSetFieldSpec”規(guī)定此字段是可變類型值集合字段(3.4.22):VariableTypeValueSetFieldSpec::=valuesetfieldreferenceFieldNameValueSetOptionalitySpec?此字段的名稱是“valuesetfieldreference”?!癋ieldName”(見9.14)與要規(guī)定的類別有關(guān)。(其引用出現(xiàn)在“FieldName”)鏈接。此類型字段應(yīng)包含值的類型。(字段引用出現(xiàn)在“FieldName”中的所有鏈接字段應(yīng)是客體字段。如果存在“ValueSetOptionalitySpec”,它規(guī)定在信息客體定義中可以DEFAULTValuesetValueSetOptionalitySpec”應(yīng)是這樣:a)如果由“FieldName”表示的類型字段有OPTIONAL的“TypeOptionalitySpec”,那么,“ValueSetOptionalitySpec”也應(yīng)是OPTINAL;以及a)“ValueSetOptionalitySpec”是“DEFAULTValueSet“FieldName”DEFAULTType”的“TypeOptionalitySpec”,并且“ValueSet”應(yīng)是此類型的子類型?!癘bjectFieldSpec”規(guī)定此字段是信息客體字段(3.4.11):ObjectFieldSpec::=objectfieldreferenceDefinedObjectClassObjectOptionalitySpec?ObjectOptionalitySpec::=OPTIONAL|DEFAULTObject此字段的名稱是“objectfieldreference”?!癉efinedObjectClass引用此字段(它可以是當(dāng)前被定義的“ObjectClass”中所包含的客體類別。如果存在“ObjectOptionalitySpec”,它規(guī)定可以在信息客體定義中不規(guī)定此字段,或在DEFAULT情況時,規(guī)定省略隨后的“Object”(它應(yīng)是“DefinedObjectClass”的客體)?!癘bjectSetFieldSpec”規(guī)定此字段是信息客體集合字段(3.4.13):ObjectSetFieldSpec::=objectsetfieldreferenceDefinedObjectClassObjectSetOptionalitySpec?ObjectSetOptionlitySpec::=OPTIONAL|DEFAULTObjectSet此字段的名稱是“objectsetfieldreferenceDefinedObjectClass”引用此字段中包括的客體類別。如果存在“ObjectSetOptionalitySpec”,它規(guī)定可以在信息客體定義中省略此字段,或在DEFAULT見DefinedObject-Class”的客體。結(jié)構(gòu)“primitiveFieldName”用來標(biāo)識與包含其規(guī)范的類別有關(guān)的字段:PrimitiveFieldName::=10typefieldreference|valuefieldreference|valuesetfieldreference|objectfieldreference|objectsetfieldreference在類別定義中所規(guī)定的所有字段名稱應(yīng)是各不相同的。結(jié)構(gòu)“FieldName”用來標(biāo)識與直接包含此字段規(guī)范的某個類別有關(guān)的字段,或具有一系列鏈接字段鏈接到此包含類別的某個類別有關(guān)的字段.此鏈由用句點隔開的“PrimitiveFieldName”列表指明。FieldName::=PrimitiveFieldName"."+如果有如下情況的一系列鏈接字段(3.4.15)規(guī)范(1):第一個處于被定義的類別中而不是被定義的字段;和每個相繼的規(guī)范是定義前一個規(guī)范的類別中的字段;及最后一個是使用被定義的類別加以定義。那么,至少有一個字段規(guī)范應(yīng)具有“ObjectOptionalitySpec”或“ObjectSetOptionality-Spec”(視合適而定)注:這是為防止遞歸的信息客體類別定義(一般情況下是允許的)。對此遞歸類別的信息客體具有無限的表示。實例在3.4.10中作為示例的非正式描述的信息客體類別的展開形式可以定義如下:OPERATION::=CLASS{&ArgumentType OPTIONAL,&ResultType OPTIONAL,&Errors ERROROPTIONAL,&Linked OPERATIONOPTIONAL,&resultReturned BOOLEANDEFAULT&operationCode INTEGERUNIQUE}ERROR::=CLASS{&ParameterType OPTIONAL,&errorCode INTEGERUNIQUE}注1:此示例是基于遠(yuǎn)程操作標(biāo)準(zhǔn)的操作和差錯概念,但是作為示例,它被簡化了。注2:對此類別規(guī)定的字段包括2(&ArgumentType和(&Errors和&Linked)和2個值字段(&resultReturned和&operationCode),后者是標(biāo)識符字段。注3:由OPERATIONs構(gòu)成的任何信息客體集合必須是對&operationCode字段,此集合中沒有2個客體具有相同的值。(這同樣適用于ERRORs的客體集合。)注4:OPERATION信息客體類別包括一系列上述9.15所描述的鏈接字段。本鏈長度是1并通過&Linked字段構(gòu)成,它借助OPERATION加以(遞歸)規(guī)定。然而,這是十分有效的,因為將OPTIONAL賦于此字段(見9.15)。注5:這些示例中沒有一個示例包括“WithSyntaxSpec”。但是在10.13中提供這樣做的相應(yīng)示例。11語法表本章規(guī)定信息客體類別的制定者用以對此類別信息客體規(guī)范定義具體類別定義語法的記法。此記法是語法結(jié)構(gòu)“SyntaxList”,它岀現(xiàn)在于語法結(jié)構(gòu)“ObjectClassDefn”(9.3)之中?!癝yntaxList規(guī)定被定義類別的一個信息客體定義的語法。在下列各條中,此語法以“DefinedSyntax”表現(xiàn)。注:此規(guī)范的特征是由“SyntaxList”定義的任一語法結(jié)構(gòu)的末端(“DefinedSyntax”的實例)可由下列各條確定:ASN.1將字符串值處理成文字符號;要求一個初始的“{”,嵌入成對的“{”和“}”,并終止于一個未配對的“}”?!癝yntaxList”規(guī)定出現(xiàn)在“DefinedSyntax”(11.6)中的“DefinedSyntaxToken”的順序:SyntaxList::="{"TokenOrGroupSpecempty+"}"TokenOrGroupSpec::=RequiredToken|OptionalGroupOptionalGroup::="["TokenOrGroupSpecempty+"]"RequiredToken::=Literal|PrimitiveFieldName注1:“SyntaxList”的編寫者沒有提供BNFRequiredToken它們成為任選的。注2:當(dāng)分析“SynatxListGB/T16262.1—xxxx的12.23和12.24中規(guī)定的詞項“[[”(或“]]”),但可分別解釋為“[”和“[”(或“]”和“]”)兩個詞項。用作“Literal”的“word”符號不應(yīng)是下列之一:ABSTRACT-SYNTAXBITBOOLEANCHARACTERCHOICECONTAININGDATEDATE-TIMEDURATIONEMBEDDEDENDENUMERATEDEXTERNALFALSEINSTANCE12INTEGERMINUS-INFINITYNOT-A-NUMBERNULLOBJECTOCTETOID-IRIPLUS-INFINITYREALRELATIVE-OIDRELATIVE-OID-IRISEQUENCESETTIMETIME-OF-DAYTRUETYPE-IDENTIFIER注:此表僅包含ASN.1備用的,表現(xiàn)為“Type”、“Value”、“ValueSet”、“Object”或“Objectset”第一個詞項的字以及備用字ENDASN.1word”還是“typereference”和“objectsetreference”的環(huán)境時,首先采用當(dāng)作“word”的用法?!癓iteral”規(guī)定此“Literal”的實際內(nèi)含,它是定義語法中此位置處的“word”或逗號(“,”):Literal::=word|","每個“PrimitiveFieldName”對相應(yīng)字段規(guī)定(在新語法中的此位置。信息客體類別的每個“PrimitiveFieldName”只能準(zhǔn)確地出現(xiàn)一次。“OptionalGroup”,以及隨后的詞項在語法上可作為任選組中的第一個詞注:為避免不希望的影響,設(shè)計者通常使任選組中的第一個詞項成為“Literal”。使用“DefinedSyntax”的實例是無效的,除非它對信息客體類別規(guī)定所有強(qiáng)制字段。為了保證易于分析新語法和防止誤用,對新語法的定義者提出如下附加限制:要求每個“OptionalGroup”內(nèi)至少有一個“PrimitiveFieldName”或“Optional-Group”;注1:這有助于防止在信息客體任一字段中沒被反映的信息明顯匯集。Setting”,它可能是一個以上“FieldName”的設(shè)置;如果“OptionalGroup”以一個“Literal”開始,那么“OptionalGroup”之后的第“Literal”,并且應(yīng)與緊接在“OptionalGroup”之前所有第一個“Literal”不同;同時對“DefinedSyntax”的使用者提岀如下限制:13在“OptionalGroup”中出現(xiàn)的“DefinedSyntax”內(nèi)存在一個“Literal”,那么此“OptionalGroup”中“PrimitiveFieldName”的“Setting”也應(yīng)存在,注2:這有助于防止在信息客體任一字段中沒被反映的信息明顯匯集。注3:防止使用者書寫LITERAL[A&fieldB&field2]]示例上面9.16(此定義語法用于11.11的示例中):OPERATION::=CLASS{&ArgumentType OPTIONAL,&ResultType OPTIONAL,&Errors ERROROPTIONAL,&Linked OPERATIONOPTIONAL,&resultReturned BOOLEANDEFAULT&operationCode INTEGERUNIQUE}WITHSYNTAX{[ARGUMENT &ArgumentType][RESULT &ResultType][RETURNRESULT &resultReturned][ERRORS &Errors][LINKED &Linked]CODE &operationCode}ERROR::=CLASS{&ParameterType OPTIONAL,&errorCode INTEGERUNIQUE}WITHSYNTAX{[PARAMETER &ParameterType]CODE &errorCode}信息客體定義和賦值語法結(jié)構(gòu)“ObjectAssignment”用來將規(guī)定類別的信息客體賦于引用名(“objectre-ference”)。GB/T16262.1—xxxx13“Assignment”的替代記法之一,并定義如下:14ObjectAssignment::=objectreferenceDefinedObjectClass"::="Object不應(yīng)有“objectreference”(以及不應(yīng)有“objectrefer-ence”(見3.4.19)?!癉efinedObjectClass”引用的類別的信息客體是由結(jié)構(gòu)“Object”定義的:Object::=DefinedObject|ObjectDefn|ObjectFromObject|ParameterizedObject如果“Object”是:“DefinedObject”,那么,此客體與所引用的客體相同;“ObjectDefn11.4“ObjectFromObject15“ParameterizedObject”,那么,此客體按GB/T16262.4—xxxx9.2每個信息客體歸根結(jié)底是由“ObjectDefn”定義的:ObjectDefn::=DefaultSyntax|DefinedSyntaxObjectDefn”應(yīng)是“DefaultSyntax(見如果它包括,則“ObjectDefn”應(yīng)是“DefinedSyntax”(見11.6)?!癉efaultSyntax”結(jié)構(gòu)定義如下:DefaultSyntax::="{"FieldSetting","*"}"FieldSetting::=PrimitiveFieldNameSetting對不是OPTIONAL并且沒有DEFAULT的類別定義中的每個“FieldSpec”應(yīng)準(zhǔn)確地有一個“FieldSetting”,對其他的每個“FieldSpec”至多有一個“Fieldsetting”?!癋ieldSetting”可以以任意次序出現(xiàn)。每個“FieldSetting”中的“PrimitiveFieldName”應(yīng)是相應(yīng)“FieldSpec”的名稱。結(jié)構(gòu)“Setting”在11.7中規(guī)定?!癉efinedSyntax”結(jié)構(gòu)定義如下:DefinedSyntax::="{"DefinedSyntaxTokenempty*"}"DefinedSyntaxToken::=Literal|Setting“WithSyntaxSpecSyntaxList(10)確定要出現(xiàn)在“DefinedSyntax“Setting”規(guī)定所定義信息客體中某個字段的設(shè)置:15Setting::=Type|Value|ValueSet|Object|ObjectSet如果此字段是:類型字段,則應(yīng)選用“Type”替代記法;值字段,則應(yīng)選用“Value”替代記法;“ValueSet”替代記法;“Object”替代記法;信息客體集合字段,則應(yīng)選用“ObjectSet”替代記法。注:設(shè)置將按9.5到9.12和11.8到11.9合適條款所述予以進(jìn)一步限制。(可變類型值集合字段的設(shè)置應(yīng)是由相同或所鏈接客體的合適類型字段所規(guī)定的類型值集合(即,不采用開放類型的值記法)。示例(默認(rèn)語法)已知上面9.16的信息客體類別定義(不包括“WithSyntaxSpec”),此類別的實例可使用“DefaultSyntax”予以定義。例如(3.4.9給出的示例的展開形式)invertMatrixOPERATION::={&ArgumentType Matrix,&ResultType Matrix,&Errors {determinantIsZero},&operationCode 7}determinantIsZeroERROR::={&errorCode 1}示例(定義語法)在10.13中,示例類別被提供給“WithSyntaxSpec”,因此,此類別實例使用“DefinedSyntax”予以定義。所以,11.10的示例要寫成:invertMatrixOPERATION::={}ARGUMENTRESULTERRORSCODEMatrixMatrix{determinantIsZero}716determinantIsZeroERROR::={CODE 1}信息客體集合定義和賦值“ObjectSetAssignment”(“objectsetreference”)GB/T16262.1—xxxx13“Assignment”的替代記法之一,并定義如下:ObjectSetAssignment::=objectsetreferenceDefinedObjectClass"::="ObjectSet不應(yīng)有“objectsetreference”遞歸定義(3.4.18),以及不應(yīng)有“objectsetre-ference”遞歸實例(3.4.19)?!癉efinedObjectClass”引用的類別的信息客體集合是由結(jié)構(gòu)“ObjectSet”定義的:ObjectSet::="{"ObjectSetSpec"}"ObjectSetSpec::=RootElementSetSpec|RootElementSetSpec",""..."|"...""..."","AdditionalElementSetSpec|RootElementSetSpec",""..."","AdditionalElementSetSpec“RootElementSetSpec”和“AdditionalElementSetSpec”在GB/T16262.1—xxxx用支配類別的信息客體或集合來規(guī)定一個信息客體集合。集合中應(yīng)至少有一個信息客體,除非規(guī)定了“ObjectSetSpec注1:“ObjectSetSpec”引用的元素是“RootElementSetSpec”和“AdditionalElementSetSpec”所引用元素的并集注2:SET或(相對為ASN.1規(guī)范每種型式而設(shè)置的“understood”值集合是靜態(tài)的)不同,可擴(kuò)展客體集合在一給定的形式中能夠動態(tài)地減少和增加。換言之,它可以在使用應(yīng)用程序的給定實例中擴(kuò)充和減少,好象它是動態(tài)地定義或未定義客體(進(jìn)一歩討論見附錄E)。GB/T16262.1—xxxx50AB繼承。如果使用可擴(kuò)展信息客體集合定義“ValueSetFromObject”(15)則產(chǎn)生的值集合不繼承此信息客體集合的擴(kuò)展標(biāo)記。17如果類型由表約束所約束(GB/T16262.3—xxxx10.3)并且表約束中所引用的客體集合是決定選擇支持是根或是擴(kuò)展中的一個信息客體。不應(yīng)使用可擴(kuò)展信息客體集合的根或擴(kuò)展中具有任一UNIQUE注:為了避免與將來可能的擴(kuò)展或其他實現(xiàn)添加的擴(kuò)展沖突,只有存在OBJECTIDENTIFIER類型的UNIQUE字段且編碼包含已分配用于此用途的客體標(biāo)識符的值時,才可以自由添加任意編碼。“ObjectSetElements”記法如下;ObjectSetElements::=Object DefinedObjectSetObjectSetFromObjectsParameterizedObjectSet此記法規(guī)定的元素由采用的替代記法確定,具體如下:“Object”替代記法,則僅規(guī)定確已賦值的客體。此客體應(yīng)是支配類別的客體;如果使用其余替代記法的任一種,則規(guī)定確已賦值的集合的所有客體。這些客體應(yīng)是“DefinedObjectSet“ObjectSetFromObjects15如果使用“ParameterizedObjectSet”替代記法,那么客體集合按GB/T16262.4—xxxx9.2示例在3.4.12注中非正式描述的信息客體集合可規(guī)定如下:MatrixOperationsOPERATION::={invertMatrix|addMatrices|subtractMatrices multiplyMatrices}關(guān)聯(lián)表已知類別的定義,列集合定義如下:此類別定義的每個字段規(guī)范有一列。每個列用對應(yīng)的“PrimitiveFieldName”命名;18則的應(yīng)用確定的,但其名稱以鏈接字段的“PrimitiveFieldName”和句號(“.”)為前綴的除外。注:這些規(guī)則是遞歸的,并且是:如果類別是直接或間接自引用的,則列集合不是有限的。這不被禁止。13.4已知某個類別的信息客體集合,關(guān)聯(lián)表中的行集合是執(zhí)行下列遞歸規(guī)程而產(chǎn)生的:“PrimitiveFieldName”命名的字符元將對應(yīng)客體中合適字段的設(shè)置,而其他所有字符元是空的;對岀現(xiàn)在集合中某個行的每個鏈接字段:產(chǎn)生鏈接字段內(nèi)容的(次級)關(guān)聯(lián)表。下一步,用一批行代替鏈接字段所在的行,次級關(guān)聯(lián)表的每個行進(jìn)行一次替換。此批中的每一行與被取代的行相同,但用次級關(guān)聯(lián)表被選擇行的字符元填充,至今是空的對應(yīng)字符元除外。其“FieldName”以鏈接字段的“PrimitiveFieldName”為前綴。注:上,為了知道有限長度名字的字符元的內(nèi)容才是必要的,為此可以設(shè)計一種有界限的規(guī)程。有效“FieldName”的示例下列“FiedNae”對類別OPRAT見10.3&Errors.&Parameter&Errors.&errorCode&Linked.&ArgumentType&Linked.&Linked.&operationCode&Linked.&Linked.&Linked.&Linked.&Linked.&Errors.&errorCode因為類別OPERATION是自引用的(通過&Linked字段),所以列的數(shù)目不是有限的。客體類別字段類型記法14.2到14.5中規(guī)定了被引用的類型??腕w類別字段類型(3.4.16)的記法應(yīng)是“ObjectClassFieldType”:ObjectClassFieldType::=DefinedObjectClass"."FieldName其中,“FieldName”按9.14規(guī)定,與“DefinedObjectClass”標(biāo)識的類別有關(guān)。ASN.1(GB/T“FieldName”引用類型字段時,關(guān)于使用這種記法的下列約束適用:這種記法不應(yīng)直接或間接用于信息客體類別值或值集合字段的類型定義;19注1:通過顯式標(biāo)記此類型通??梢员苊膺@種限制。注2:盡管在GB/T16262.1—xxxx的52.7.3中規(guī)定對擴(kuò)展標(biāo)志概念上所加的元素有一個與所有已知ASN.1類型的標(biāo)記不同的標(biāo)記,但是要求開放類型有一個與概念上所加的元素的標(biāo)記不同的標(biāo)記時,仍不應(yīng)使用此開放類型。不應(yīng)隱式標(biāo)記這種記法;注3:當(dāng)將開放類型限于可以是一個選用類型的特定類型時應(yīng)顯式標(biāo)記。注4:“Type”結(jié)構(gòu)通常使用信息客體集合和“AtNotation”予以約束(見GB/T16262.3—xxxx第10章)然而,要告誡ASN.1的使用者在沒有應(yīng)用約束時使用這種記法能夠?qū)е聦崿F(xiàn)要求的歧義性,通常應(yīng)予以避免?!癟ype”。具有客體、標(biāo)識符或值引用的特定選擇名,在這種產(chǎn)生式后的“SimpleTableConstraint”(見GB/T16262.3—xxxx10.3)也能是有效的“Single-Value”(GB/T16262.1—xxxx51.2)子類型約束。在這種情況下,它應(yīng)被看作是“SimpleTableConstraint”。14.2如果此字段是客體字段或客體集合字段,則不允許這種記法。定義此類型的值的記法應(yīng)是“ObjectClassFieldValue,或用于“XMLTypeValue“XMLObjectClassFieldValue”:ObjectClassFieldValue::=OpenTypeFieldVal FixedTypeFieldValOpenTypeFieldVal::=Type":"ValueFixedTypeFieldVal::=BuiltinValue|ReferencedValueXMLObjectClassFieldValue::=XMLOpenTypeFieldVal|XMLFixedTypeFieldValXMLOpenTypeFieldVal::=XMLTypedValue|xmlhstringXMLFixedTypeFieldVal::=XMLBuiltinValue對由“ObjectClassFieldType”定義的固定類型值或值集合字段,應(yīng)使用“FixedTypeFieldVal”或“XMLFixedTypeFieldVal”,并應(yīng)是信息客體類別定義中規(guī)定的“Type”值。對由“ObjectClassFieldType”應(yīng)用于任一“Value”。“OpenTypeFieldVal”中的“Type”ASN.1“Value”應(yīng)是此類型的任一值?!癘bjectClassFieldType”“XMLOpenTypeFieldVal”應(yīng)用于任一“XMLValue”。ASN.1“XMLTypedValue”所標(biāo)識的類型應(yīng)是任一的ASN.1(GB/T16262.1—xxxx14.3),并且“XMLTypeValue”中的“XMLValue”應(yīng)是此類型的任一值。注:當(dāng)按GB/T16262.4—xxxx的8.5的規(guī)定使用此記法時,“XMLOpenTypeFieldVal”中的“XMLTypedValue”的類XMLTypeValue”中的“NonPara-meterizedTypeName”,并且“XMLValue”是此類型的值。ASN.1XMLOpenTypeFieldVal”的“xmlhstring”替代記法。當(dāng)此類型由協(xié)議20標(biāo)識且“xmlhstring”是此類型編碼的十六進(jìn)制值時,使用某些(未指定)編碼規(guī)則,此替代記法只能按GB/T16262.4—xxxx的8.5規(guī)定使用。作為“ObjctCassielTyp”XML“XMLixeTypFiedVa”的“xmlsnlypeam”項中的字符序列應(yīng)是信息客體類別中規(guī)定的“Type”XML(見GB/T16262.1—xxxx5)應(yīng)由信息客體類別中規(guī)定的“Type”確定。作為“ObjctCassielTyp”XML“XMOpeTypFiedVa”xmlsnlypeam”項中的字符序列應(yīng)是“OPEN-TYPE”XML(GB/T16262.1—xxxx5)應(yīng)是“XMLDelimitedItemList”。對于“XMLOpenTypeFieldVal,如果信息客體(忽略任何標(biāo)記之后)中規(guī)定的“Type是“typereference”或“ExternalTypeReference”,那么,“NonParameterized-TypeName”應(yīng)是“typereference或“ExternalTypeReferenceGB/T16262.1xxxx的表4規(guī)定的“xmlasnltypename”,并與信息客體中規(guī)定的內(nèi)置類型相對應(yīng),在GB/T16262.1—xxxx26.10(如果適用)的應(yīng)用后?!癘bjectClassFieldType”用法示例下列每個示例基于10.13的示例并表明(a)可能的“ObjectClassFieldType”,(b)與示例類型(a)等價的類型(當(dāng)沒有約束地使用時)和(c)此類型值示例的記法。1(a)OPERATION.&operationCode(b)INTEGER(c)7(a)OPERATION.&ArgumentType(b)opentype(c)Matrix:{{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1}}(a)OPERATION.&Linked.&Linked.&Errors.&errorCode(b)INTEGER(c)1(a)OPERATION.&Linked.&ArgumentType(b)opentype(c)UniversalString:{planckConstant,"and",hamiltonOperator}來自客體的信息客體或客體集合關(guān)聯(lián)表列中的信息可由“InformationFromObjects”記法的各種情況予以引用:InformationFromObjects::=ValueFromObject |ValueSetFromObjectsTypeFromObject |ObjectFromObject |21ObjectSetFromObjectsValueFromObject::=ReferencedObjects"."FieldNameValueSetFromObjects::=ReferencedObjects"."FieldNameTypeFromObject::=ReferencedObjects"."FieldNameObjectFromObject::=ReferencedObjects"."FieldNameObjectSetFromObjects::=ReferencedObjects"."FieldNameReferncedObjects::=DefinedObject |ParameterizedObjectDefinedObjectSet ParameterizedObjectSet注:提供“InformationFromObjects”生成式是為了幫助理解和在英文上下文中使用。它不在本文件中其他地方引用。本記法引用“ReferencedObjects”關(guān)聯(lián)表被引用列的全部內(nèi)容。根據(jù)“ReferencedObjects”和“FieldName”“ValueFromObject”“ValueSetFromObjects”“TypeFromObject”“ObjectFromObject”和“ObjectSetFromObjects”“InformationFromObjects”的一種特例。“InformationFromObjects”生成式可劃分為兩部分。第一部分通過刪除最后的(或僅有的)“PrimitiveFieldName”15.13適用。否則此記法是不合法的。第二部分是最后的(或僅有的)“PrimitiveFieldName”。注:(指導(dǎo)性的)已知下列定義:obj.&a.&b.&c.&d定義中的第一部分是obj.&a.&b.&c.,第二部分是&d。115.415.4“InformationFromObjects”五種情況中適用的(即使有也很少)情況。22表1允許的“InformationFromObjects”情況InformationFromObjects的第一部分InformationFromObjects的第二部分結(jié)構(gòu)固定類型值字段“ValueFromObject”可變類型值字段“ValueFromObject”固定類型值集合字段“ValueSetFromObjects”客體可變類型值集合字段不被允許類型字段“TypeFromObject”客體字段“ObjectFromObject”客體集合字段“ObjectSetFromObject”固定類型值字段“ValueSetFromObjects”可變類型值字段不被允許固定類型值集合字段“ValueSetFromObjects”客體集合可變類型值集合字段不被允許類型字段不被允許客體字段“ObjectSetFromObjects”客體集合字段“ObjectSetFromObjects”對“TypeFromObject”和“ValueSetFromObjectsXMLGB/T16262.1—xxxx5)和“xmlasn1typename”(如果需要)應(yīng)由信息客體中規(guī)定的“TypeGB/T16262.1-xxxx26.10如果第一部分引用一個客體,第二部分引用固定類型值集合字段,那么“ValueSetFromObjects”與具有SipleablContrant<ClssNmeFildNme>“<ClssNme”是客體的信息客體類別,“<FieldName>”是第二部分引用的字段。SimpleTableConstraint如果第一部分引用客體集合,第二部分引用固定類型值字段或固定類型值集合字段,那么“ValueSetFromObjects”,與具有“SimpleTableConstraint”的類型等效。此類型是“<ClassName>.<FieldName>”,其中,“<ClassName>”是第一部分引用的客體集合的信息客體類別,“<FieldName>”是第二部分引用的字段?!癝impleTableConstraint”是由第一部分引用的客體集合組成。能使用起初是空的但可擴(kuò)展的信息客體集合定義“ValueSetFromObjects”。凡是被一種應(yīng)用使用GB/T16262.3—xxxx10.6如果包含客體集合,并且最后的“PrimitiveFieldName標(biāo)識一個客體集合字段,那么“ObjectSetFromObjects”是所選客體集合的并集。1“PrimitiveFieldName”標(biāo)識可變類型值或值集合字段或類型字段,則不允許這種記法。ObjectSetFromObjects”記法表示空的不可擴(kuò)展客體集合。通常允許空的不可擴(kuò)展客體集合(例如在集合運算中),但不能直接在表約束中使用。注:15.13表明“ValueSetFromObjects”不能從空的不可擴(kuò)展客體集合中提取。23InformationFromObjects”(除非它或默認(rèn)的OPTIONAL(或DEFAULT)信息客體的字段則是允許的。來自客體的信息的示例采用11.10、11.11和12.11示例中的定義,下列結(jié)構(gòu)(左列)是有效的,并且可按與右列表示相等效而加以使用。表2“ValueFromObject”invertMatrix.&operationCode7determinantIsZero.&errorCode1表3“TypeFromObject”invertMatrix.&ArgumentType矩陣表4“ValueSetFromObjects”invertMatrix.&Errors.&errorCode{1}MatrixOperations.&operationCode{7|和其他}表5“ObjectSetFromObjects”invertMatrix.&Errors{determinantIsZero}MatrixOperations.&Errors{determinantIsZero|和其他}24附錄 A(規(guī)范性)類型標(biāo)識符信息客體類別TYPE-IDENTIFIER。注:此信息客體類別是最簡單有用的類別,只具有兩個字段:標(biāo)識符字段和類型字段。標(biāo)識符字段采用OBJECTIDENTIFIERASN.1TYPE-IDENTIFIER{&idOBJECTIDENTIFIERUNIQUE,&Type,}WITHSYNTAX{&TypeIDENTIFIEDBY&id}此類別定義為“有用的”信息客體類別,并且在任何模塊中都可用,而無需導(dǎo)入。示例報文處理系統(tǒng)(MHS)通信的主體可定義為:MHS-BODY-CLASS::=TYPE-IDENTIFIERg4FaxBodyMHS-BODY-CLASS::={BITSTRINGIDENTIFIEDBY{mhsbody3}}協(xié)議設(shè)計者通常通過指定INSTANCEOFMHS-BODY-CLASS類型實例(見C.10)來定義一個組件,此組件就附有MHS-BODY-CLASS類別。25附錄 B(規(guī)范性)ABSTRACT-SYNTAX。注:當(dāng)將抽象語法定義為單個ASN.1類型的值時,建議定義此信息客體類別的一個實例。ABSTRACT-SYNTAX{&idOBJECTIDENTIFIERUNIQUE,&Type,&propertyBITSTRING{handles-invalid-encodings(0)}DEFAULT{}}WITHSYNTAX{&TypeIDENTIFIEDBY&id[HASPROPERTY&property]}當(dāng)&Type字段包含一個ASN.1ABSTRACT-SYNATAX信息客體類別的&idhandles-invalid-encodings此信息客體類別定義為“有用的”,因為它具有通用性,可在任何模塊中使用,而無需導(dǎo)入。示例例如定義一個名稱為XXX-PDU的ASN.1類型,則可以通過下列記法規(guī)定包含XXX-PDU所有值的抽象語法:xxx-Abstract-SyntaxABSTRACT-SYNTAX::={XXX-PDUIDENTIFIEDBY{xxx5}}詳細(xì)使用ABSTRACT-SYNTAX信息客體類別的示例見GB/T16262.1—xxxx中的G.4。通常情況下,抽象語法是以參數(shù)化類型來定義的(GB/T16262.4—xxxx),例如為協(xié)議中的某GB/T16262.4—xxxx1026附錄 C(規(guī)范性)通過信息客體類別賦值(信息客體類別引用是該記法的一部分),該類型具有傳遞類型標(biāo)識符信A。GB/T16262.1—xxxx17.2“InstanceOfType”記法,作為生成“Type”的記法之一,并定義如下:InstanceOfType::=INSTANCEOFDefinedObjectClass注:在GB/T16262.3—xxxx第10章規(guī)定了通過應(yīng)用“表約束”能約束此類型的方法,將此類型的值限制為表示此類別的某些特定信息客體集合的值。此記法規(guī)定了來自于“DefinedObjectClass”實例的一種類型,此類型包含&id(OBJECTIDENTIFIER)、&Type注:這種結(jié)構(gòu)通常由一個客體集合約束,而此客體集合常常是(但未必是)(GB/T16262.4—xxxx中8.3-8.11定義的)模型引用名,其實際客體集合已在別處定義。8。注:此標(biāo)記與外部類型的通用標(biāo)記相同。在ASN.1基本編碼規(guī)則下,單一實例類型的使用可以與外部類型比特兼容。單一實例類型有一個關(guān)聯(lián)序列類型,此關(guān)聯(lián)序列類型可以定義單一實例類型的值和子類型。注:在此類型受GB/T16262.3—xxxx約束記法約束時,此相關(guān)序列類型亦受到約束。由于對單一實例的約束從而導(dǎo)致對此相關(guān)序列類型的約束在GB/T16262.3—xxxx的附錄A中予以規(guī)定。EXPLICITTAGS關(guān)聯(lián)序列類型應(yīng)是:SEQUENCE{type-id<DefinedObjectClass>.&idValue [0]<DefinedObjectClass>.&Type}“<DefinedObjectClass>”“InstanceOfType“InstanceOfType”記法的值記法“InstanceOfValue”和“XMLInstanceOfValue”應(yīng)是關(guān)聯(lián)序列類型的值記法。InstanceOfValue::=ValueXMLInstanceOfValue::=XMLValue(GB/T16262.1—xxxxXML“XMLDelimitedItemList”。示例基于A.4所給示例的一個示例如下:此類型:INSTANCEOFMHS-BODY-CLASS具有下列的關(guān)聯(lián)序列類型:27SEQUENCE{}

type-idMHS-BODY-CLASS.&idValue [0]MHS-BODY-CLASS.&Type表約束應(yīng)用于此類型的示例可在GB/T16262.3—xxxx的附錄A中找到。28附錄 D(資料性)示例OPERATION設(shè)OPERATION和ERROR信息客體類別的簡單定義如下:OPERATION::=CLASS{&ArgumentType OPTIONAL,&ResultType OPTIONAL,&Errors ERROROPTIONAL,&Linked OPERATIONOPTIONAL,&resultReturned BOOLEANDEFAULTTRUE,&operationCode INTEGERUNIQUE}WITHSYNTAX{[ARGUMENT &ArgumentType][RESULT &ResultType][RETURNRESULT &resultReturned][ERRORS &Errors][LINKED &Linked]CODE &operationCode}ERROR::=CLASS{&ParameterType OPTIONAL,&errorCode INTEGERUNIQUE}WITHSYNTAX{[PARAMETER &ParameterType][CODE &errorCode]}包含兩個OPERATION客體的客體集合定義如下:My-OperationsOPERATION::={operationA|operationB}operationAOPERATION::={ARGUMENTINTEGERERRORS{{PARAMETERINTEGERCODE1000}|{CODE1001}}CODE129}operationBOPERATION::={ARGUMENTIA5StringRESULTBOOLEANERRORS{{CODE1002}|{PARAMETERIA5StringCODE1003}}CODE2}從上述客體集合中提取ERROR客體集合的步驟如下:My-OperationErrorsERROR::={My-Operations.&Errors}得到的客體集合是;My-OperationErrorsERROR::={{PARAMETERINTEGERCODE1000)|{CODE1001}|{CODE1002}|{PARAMETERIA5StringCODE1003}}按下式提取操作差錯的差錯代碼集的步驟如下:My-OperationErrorCodesINTEGER::={My-Operation.&Errors.&errorCode)得到的值集合是:My-OperationErrorCodesINTEGER::={1000|1001|1002|1003) “ObjectClassFieldType”用法舉例“ObjectClassFieldType”可用于類型規(guī)范,例如:--從此類別提取“0bjectClassFieldType”。在此提取中只能使用前5個字段。EXAMPLE-CLASS::=CLASS{&TypeField OPTIONAL,&fixedTypeValueField INTEGEROPTIONAL,&variableTypeValueField &TypeFieldOPTIONAL,&FixedTypeValueSetField INTEGEROPTIONAL,&VariableTypeValueSetField &TypeFieldOPTIONAL,&objectField SIMPLE-CLASSOPTIONAL,&ObjectSetField SIMPLE-CLASSOPTIONAL}WITHSYNTAX{[TYPE-FIELD &TypeField][FIXED-TYPE-VALUE-FIELD &fixedTypeValueF

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論