信息技術(shù) 抽象語法記法一(ASN.1)第3部分:約束規(guī)范 征求意見稿_第1頁
信息技術(shù) 抽象語法記法一(ASN.1)第3部分:約束規(guī)范 征求意見稿_第2頁
信息技術(shù) 抽象語法記法一(ASN.1)第3部分:約束規(guī)范 征求意見稿_第3頁
信息技術(shù) 抽象語法記法一(ASN.1)第3部分:約束規(guī)范 征求意見稿_第4頁
信息技術(shù) 抽象語法記法一(ASN.1)第3部分:約束規(guī)范 征求意見稿_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1GB/T16262.3—XXXX/ISO/IEC8824-3:2021信息技術(shù)抽象語法記法一(ASN.1)第3部分:約束規(guī)范GB/T16262的本文件是抽象語法記法一(ASN.1)的一個(gè)部分,并提供規(guī)定用戶定義的約束、表約束和內(nèi)容約束的記法。2規(guī)范性引用文件下列文件中的條款通過GB/T16262的本文件的引用而成為本文件的條款。凡是注日期的引用文件,其隨后所有的修改單(不包括勘誤的內(nèi)容)或修訂版均不適用于本文件,然而,鼓勵(lì)根據(jù)本文件達(dá)成協(xié)議的各方研究是否可使用這些文件的最新版本。凡是不注日期的引用文件,其最新版本適用于本文件。GB/T16262.1—xxxx信息技術(shù)抽象語法記法一(ASN.1)第1部分:基本記法規(guī)范(ISO/IEC8824-1,2021,IDT)GB/T16262.2—xxxx信息技術(shù)抽象語法記法一(ASN.1)第2部分:信息客體規(guī)范(ISO/IEC8824-2:2021,IDT)GB/T16262.4—xxxx信息技術(shù)抽象語法記法一(ASN.1)第4部分:ASN.1規(guī)范的參數(shù)化(ISO/IEC8824-4,2021,IDT)3術(shù)語和定義下列術(shù)語和定義適用于GB/T16262的本文件。3.1基本記法規(guī)范本文件使用GB/T16262.1—xxxx中定義的術(shù)語。3.2信息客體規(guī)范本文件使GB/T16262.1—xxxx中定義的術(shù)語。3.3ASN.1規(guī)范的參數(shù)化本文件使用GB/T——參數(shù)化類型3.4附加定義3.4.1組件關(guān)系約束16262.4—xxxx中定義的下列術(shù)語:parameterizedtype。componentrelationconstraint2GB/T16262.3—XXXX/ISO/IEC8824-3:2021關(guān)于集合類型或序列類型值的約束,其在文本上與此集合類型或序列類型的某一組件類型(引用組件)相關(guān),并且規(guī)定該組件的值與一個(gè)或多個(gè)其他組件(被引用組件)的值之間的關(guān)系。3.4.2被約束類型constrainedtype包含引用的組件和某個(gè)組件關(guān)系約束中全部被引用組件的最內(nèi)的“Type”。3.4.3約束集合constrainingset在某個(gè)組件關(guān)系約束中被引用的信息客體集合。3.4.4約束表constrainingtable與約束集合相對(duì)應(yīng)的關(guān)聯(lián)表(見GB/T16262.2—xxxx的第13章)。3.4.5被引用組件referencedcomponent在組件關(guān)系約束中被標(biāo)識(shí)的集合類型或序列類型的組件。3.4.6引用組件referencingcomponent與組件關(guān)系約束相關(guān)聯(lián)的集合類型或序列類型的組件。3.4.7被選行selectedrows約束表中在特定列上包含所有被引用組件的值的那些行。3.4.8表約束tableconstraint應(yīng)用于客體類別字段類型的約束,該約束要求其值符合某表特定列的內(nèi)容。3.4.9用戶定義的約束user-definedconstraint一種約束,要求比其他約束形式涉及的語句更為復(fù)雜,因此必須包含ASN.1之外的規(guī)范。4縮略語本文件使用下列縮略語:ASN.1抽象語法記法一(AbstractSyntaxNotationOne)。5約定本文件采用GB/T16262.1—xxxx的第5章定義的記法約定。3GB/T16262.3—XXXX/ISO/IEC8824-3:20216記法本章綜述本文件定義的記法。6.1約束本文件定義了下列記法,這個(gè)記法能用作“ConstraintSpec”(見GB/T16262.1—xxxx的49.6)的替代記法:——GeneralConstraint(見8.1)。7ASN.1詞項(xiàng)除GB/T16262.1—xxxx第12章中規(guī)定的詞項(xiàng)之外,本文件中還使用下列各條規(guī)定的詞項(xiàng)。適用于這些詞項(xiàng)的一般規(guī)則是按GB/T16262.1—xxxx的12.1定義的。這些新的詞項(xiàng)使用GB/T16262.1—xxxx第11章規(guī)定的ASN.1字符集。7.1附加關(guān)鍵字名稱CONSTRAINED、CONTAINING、ENCODED和BY已在GB/T16262.1—xxxx的12.38中作為保留字被列8一般約束規(guī)范8.1“GeneralConstraint”的記法如下:GeneralConstraint::=UserDefinedConstraint|TableConstraint|ContentsConstraint8.2約束規(guī)范的各種可能性定義如下:a)“UserDefinedConstraint”在第9章中定義;b)“TableConstraint”在第10章中定義;c)“ContentsConstraint”在第11章中定義。9用戶定義的約束注1:這種形式的約束規(guī)范可以看作是ASN.1說明的特殊形式,因?yàn)樗皇强捎蓹C(jī)器完全處理的。然而,使用存在的特定用戶定義的約束,調(diào)用由用戶提供的約束檢驗(yàn)程序的自動(dòng)工具卻是可能的。注2:協(xié)議的設(shè)計(jì)者應(yīng)該知道用這種方法約束的定義并非完全可由機(jī)器處理的,因此采用這種能力的規(guī)范可能不易由自動(dòng)工具處理。9.1用戶定義的約束由下列語法規(guī)定:UserDefinedConstraint::=CONSTRAINEDBY"{"UserDefinedConstraintParameter","*"}"4GB/T16262.3—XXXX/ISO/IEC8824-3:20219.2建議在括號(hào)(“{“和”}”)內(nèi)注釋何處引用實(shí)際約束。此注釋應(yīng)清楚地表明“UserDefinedConstraint”施加什么約束。注:如果在此括號(hào)中存在“UserDefinedConstraintParameter”(見9.3此注釋可以在它們之前、之后或分散在它們之中,這要隨設(shè)計(jì)者方便而定。9.3應(yīng)用的實(shí)際約束可能取決于某些參數(shù)。對(duì)每一個(gè)這種參數(shù),應(yīng)在“UserDefinedConstraint”中包含“UserDefinedConstraintparameter”。每個(gè)“UserDefinedConstraintParameter”應(yīng)是引用名規(guī)定的“Value”、“Object”、“DefinedObjectSet”、“Type”或“DefinedObjectClass”,或者在“Value”,“Object”或“Type”的情況下也可以成行定義。注:如果在“ParameterizedAssignment”使用“UserDefinedConstraint”,則引用名可以是假設(shè)的參數(shù)。UserDefinedConstrainParameter記法“Governor”在GB/T16262.4—xxxx的8.3中定義。當(dāng)使用第一種替代記法時(shí),“Governor”應(yīng)是“Type”。當(dāng)使用第二種替代記法時(shí),“Governor”應(yīng)是“DefinedObjectClass”。9.4示例如果一名應(yīng)用設(shè)計(jì)者期望將某些組件規(guī)定為比特串來承載某個(gè)ASN.1類型的值的密碼(對(duì)每個(gè)組件不相同那么使用GB/T16262.4—xxxx的參數(shù)化時(shí)參數(shù)化的ENCRYPTED類型可以定義如下:ENCRYPTED{ToBeEnciphered}::=BITSTRING(CONSTRAINEDBY{必須是某個(gè)BER編碼的密碼值——ToBeEnciphered}!Error:securityViolation)Error::=ENUMERATED{securityViolation}并且使用BITSTRING(是ENCRYPTED類型的)的ENCRYPTED參數(shù)化子類型變得簡單:ENCRYPTED{SecurityParameters}或者等效地,根據(jù)設(shè)計(jì)者的意愿:BITSTRING(ENCRYPTED{SecurityParameters})按照本地安全政策處理securityViolation的出現(xiàn)。10表約束,包括組件關(guān)系約束注1:信息客體類別、信息客體,信息客體集合和客體類別字段類型在GB/T16262.2—xxxx中定義。在本章中假定已了解了這些概念。注2:本章使用定義父類型的主要記法中所標(biāo)識(shí)的信息客體集合來描述表約束的應(yīng)用,換言之,主要記法是由協(xié)議設(shè)計(jì)者定義和標(biāo)識(shí)的。這不能滿足對(duì)實(shí)際信息客體集合的要求,因?qū)嶋H信息客體集合要用作隨語法而變化的5GB/T16262.3—XXXX/ISO/IEC8824-3:2021特定抽象語法的約束。GB/T16262.4—xxxx另外提供記法,該記法使約束中使用的信息客體集合能作為一種參數(shù),而變化的抽象語法組在后來的某一時(shí)示例:為說明本章的條文,將使用下面的示例。ErrorReturn類型承載errorCategory和與此種類errorInfo相對(duì)應(yīng)的一個(gè)或幾個(gè)errorCodes。這由ERROR-CLASS信息客體類別所支持。此客體類別具有信息客體集合ErrorSet所定義的特定客體集合,而ErrorSet是用來約束ErrorReturn字段的。我們有:ERROR-CLASS::=CLASS{&categoryPrintableString(SIZE(1,&codeINTEGER,&Type}WITHSYNTAX{&category&code&Type}ErrorSetERROR-CLASS::={{"A"1INTEGER}|{"A"2REAL}|{"B"1CHARACTERSTRING}|{"B"2GeneralString}}ErrorReturn::=SEQUENCE{errorCategoryERROR-CLASS.&category({ErrorSet})OPTIONAL,errorsSEQUENCEOFSEQUENCE{errorCodeERROR-CLASS.&code({ErrorSet}{@errorCategory}),errorInfoERROR-CLASS.&Type({ErrorSet}{@errorCategory,@.errorCode})}OPTIONAL}可將ErrorSet的關(guān)聯(lián)表繪制如下:表1ErrorSet的關(guān)聯(lián)表12126GB/T16262.3—XXXX/ISO/IEC8824-3:202110.1表約束只能應(yīng)用于類型“ObjectClassFieldType”或“InstanceOfType”。前者在本章的其余各條中定義,后者在附錄A中定義。10.2“ObjectClassFieldType”標(biāo)識(shí)信息客體類別,并且是標(biāo)識(shí)該類別允許的“FieldName”之一。表約束標(biāo)識(shí)信息客體集合,其關(guān)聯(lián)表(如GB/T16262.2—xxxx的第13章中定義)確定被約束值的集合。10.3“TableConstraint”記法是:TableConstraint::=SimpleTableConstraint|ComponentRelationConstraintSimpleTableConstraint::=ObjectSet10.4“SimpleTableConstraint”中的“ObjectSet”由出現(xiàn)在被約束的“ObjectClassFieldType”中的類別控制。10.5“SimpleTableConstraint”的語義使用約束信息客體集合的關(guān)聯(lián)表加以規(guī)定。10.6被約束類型的“FieldName”用來選擇此關(guān)聯(lián)表適用的列,并且應(yīng)用時(shí)需遵守下列規(guī)則:a)對(duì)類型字段,此組件約束為此列任一行中任一類型的任一值;b)對(duì)值字段,此組件約束為此列任一行中的任一值;c)對(duì)值集合字段,此組件約束為此列任一行的值集合中的任一值。示例:在第10章的示例中,情況b)適用于組件errorCategory:errorCategoryERROR-CLASS.&category({ErrorSet})OPTIONAL,同時(shí),ErrorSet的關(guān)聯(lián)表將其可能的值限制于“A”和“B”。10.7使用信息客體集合的關(guān)聯(lián)表和下列生成式應(yīng)用于組件關(guān)系約束:ComponentRelationConstraint::="{"DefinedObjectSet"}""{"AtNotation","+"}"AtNotation::="@"ComponentIdList|"@""."LevelComponentIdListLevel::="."Level|emptyComponentIdList::=identifier"."+10.8“ComponentIdList”中的每個(gè)“identifier”標(biāo)識(shí)其父類是集合、序列或選擇類型的組件,如果它標(biāo)識(shí)的組件不是集合、序列或選擇類型,應(yīng)是最后的“identifier”。10.9在父類是集合或序列類型的情況,“identifier”應(yīng)是此父類“ComponentTypeLists”中“NamedType”的標(biāo)識(shí)符之一。在父類是選擇類型的情況,“ident“AlternativeTypeLists”中替代記法“NamedType”的“identifier”之一。7GB/T16262.3—XXXX/ISO/IEC8824-3:202110.10“AtNotation”向其所在的ASN.1結(jié)構(gòu)的其他組件提供指針?!癈omponentIdList”中第一個(gè)“identifier”的父類結(jié)構(gòu)被確定如下:a)如果選擇“AtNotation”的第一個(gè)替代記法(在“@”之后無“.”),那么父類結(jié)構(gòu)是最外的文本上封閉的集合類型、序列類型或選擇類型。b)如果選擇第二個(gè)替代記法(在“@”之后有“.”),那么通過從最內(nèi)的文本上封閉的集合類型或序列類型向上移動(dòng)等于@之后附加“.”的數(shù)目的若干層次(集合、單一集合、序列、單一序列、選擇)獲得父類結(jié)構(gòu)。在出現(xiàn)“AtNotation”時(shí),附加的“.”的個(gè)數(shù)不應(yīng)超過包含最內(nèi)的集合或序列類型的結(jié)構(gòu)(集合、單一集合、序列、單一序列、選擇)的數(shù)目。注:盡管在包含序列、單一序列、集合、單一集合和選擇類型組合的結(jié)構(gòu)中可能出現(xiàn)不同嵌套層次,但是只有文本上處于集合類型或序列類型并引用文本上處于同一集合或序列類型的某個(gè)其他字段時(shí)才允許“AtNotation”。示例:在下列示例中“@...”說明上面的b)情況ErrorMessage::=SEQUENCE{severityERROR.&severity({Errors}),parametersSEQUENCEOFSEQUENCE{errorIdERROR.&id({Errors}),dataSEQUENCEOFSEQUENCE{valueERROR.&Type({Errors}{@severity,@...errorId}),textVisibleString}}}10.11使用這種記法的組件是引用的組件,由“AtNotation”標(biāo)識(shí)的組件是被引用的組件。10.12“ObjectSet”(見10.3)或“DefinedObjectSet”(見10.7)是約束集合,由此得到的關(guān)聯(lián)表(在GB/T16262.2—xxxx的第13章中規(guī)定)是約束表。10.13組件關(guān)系約束只能應(yīng)用于文本上屬于封閉“Type”(被約束類型)的ASN.1類型,而此封閉Type在文本上包含所有被引用組件。被約束類型定義為滿足上述條件的最內(nèi)的“Type”。示例:在第10章的示例中,被約束類型是ErrorReturn。注:在某些方面,將此約束的應(yīng)用看成是使用被引用組件的值以標(biāo)識(shí)約束表中的行,然后使用合適的列的值來約束引用的組件是可能的。據(jù)此觀點(diǎn),被引用組件本身不能被看成是被約束的。然而,下面所用的方法略有不同。它將此約束看成是在被約束類型(如上述解釋,它不是引用的組件的類型)所有可能值上的操作和選擇一些滿足此約束的值。這種方法使得討論有關(guān)不包含引用組件,或不包含一個(gè)或幾個(gè)被引用組件(因?yàn)樗鼈兪侨芜x的或在選擇中)的值的被約束類型的值,以及被引用組件之一具有不與約束表中任一行相對(duì)應(yīng)的值的被約束類型的值成為可能。10.14如果引用組件在任何深度上都是選擇類型,則被引組件不能處于相同選擇類型的不同替代記法10.15要求引用和所有被引組件是引用同一類別的“ObjectClassFieldType”。要求約束的集合是這些類別的信息客體集合。要求被引用組件是由與引用的組件相同的客體集合約束的值字段或值集合字段。8GB/T16262.3—XXXX/ISO/IEC8824-3:2021示例:在第10章的示例中,“ObjectClassFieldType”是所有的類別ERROR-CLASS,也是約束的集合,它是ErrorSet。10.16下面幾條確定被約束類型中滿足此約束的值集合。10.17如果引用的組件不在被約束類型的某一值中,那么這個(gè)值滿足此約束。示例:在第10章的示例中,如果沒有組件errors,那么認(rèn)為errors上的約束被滿足。10.18如果任一被引用組件不在被約束類型的某一值中,而這個(gè)值不滿足此約束,除非引用的組件不存在,在這種情況下此約束總是被滿足的。10.19如果所有被引用組件存在并且引用組件也存在,那么不滿足此約束,除非在約束表中存在一個(gè)或幾個(gè)這樣的被選行,對(duì)每個(gè)被選行:a)值字段的每個(gè)被引用組件具有的值是被選行相對(duì)應(yīng)的列的值;b)值集合字段的每個(gè)被引用組件具有的值是被選行相對(duì)應(yīng)的列的值集合之一的值。10.20只有在引用組件滿足通過將只包含被選行的表應(yīng)用于引用組件而獲得的簡單表約束(如上面定義的)時(shí),滿足此約束。示例:在第10章的示例中,組件errorCategory、errorCode和errorInfo必須對(duì)應(yīng)于ErrorSet關(guān)聯(lián)表的某一行。10.21如果“ObjectClassFieldType”受一個(gè)或幾個(gè)“TableConstraint”的約束,并且“FieldName”表示類型字段、可變類型值字段或可變類型值集合字段,那么在每種通信實(shí)例中,如果被引用組件之一是標(biāo)識(shí)符字段,那么被選行的數(shù)目應(yīng)是1,否則至少應(yīng)選擇l。示例:在第10章的示例中,如果還有一個(gè)客體{“B”2PrintableString},那么可能有一個(gè)以上被選11內(nèi)容約束11.1內(nèi)容約束由下列語法規(guī)定:ContentsConstraint::=CONTAININGType|ENCODEDBYValue|CONTAININGTypeENCODEDBYValue11.2“Value”應(yīng)是類型客體標(biāo)識(shí)符的值。11.3“ContentsConstraint”僅適用于八位位組串類型和不用“NamedBitList”定義的位串類型。這些被約束類型不應(yīng)有用于它們的進(jìn)一步約束,不管是直接或通過使用“typereference”名稱。注:這意味著以下兩種情況都不允許:9GB/T16262.3—XXXX/ISO/IEC8824-3:2021A::=BITSTRING(CONTAININGBOOLEAN)(SIZE(2))A::=BITSTRING(SIZE(2))(CONTAININGBOOLEAN)11.4“ContentsConstraint”的第一個(gè)生成式規(guī)定八位位組串或位串的抽象值是“Type”抽象值的編碼,此編碼是由適用于八位位組串或位串的編碼規(guī)則產(chǎn)生的。下列限制適用:a)假若此約束應(yīng)用于八位位組串,如果“Type”的抽象值的編碼不是八位位組的倍數(shù),那么它是規(guī)范差錯(cuò)。b)如果八位位組串或位串有長度約束,“Type”抽象值被約束為其編碼能被包含在被約束八位位組串或位串中的值。如果沒有這種抽象值,那么它是規(guī)范差錯(cuò)。11.5“ContentsConstraint”的第二生成式規(guī)定由客體標(biāo)識(shí)符值“Value”標(biāo)識(shí)的規(guī)程應(yīng)產(chǎn)生并解釋位串或八位位組串的內(nèi)容。假若位串或八位位組串已受到約束,如果這些規(guī)程沒有產(chǎn)生滿足此約束的編碼,那么它是規(guī)范差錯(cuò)。11.6“ContentsConstraint”的第三個(gè)生成式規(guī)定八位位組串或位串的抽象值是“Type”抽象值的編碼,此編碼是由客體標(biāo)識(shí)符值“Value”所標(biāo)識(shí)的編碼規(guī)則產(chǎn)生的。下列限制適用:a)假若此約束應(yīng)用于八位位組串,如果“Type”的抽象值的編碼不是八位位組的倍數(shù),那么它是規(guī)范差錯(cuò)。b)如果八位位組串或位串有長度約束,“Type”抽象值被約束為其編碼能被包含在被約束八位位組串或位串中的值。如果沒有這種抽象值,那么它是規(guī)范差錯(cuò)。GB/T16262.3—XXXX/ISO/IEC8824-3:2021(規(guī)范性)約束的單一實(shí)例類型A.1本附錄規(guī)定對(duì)GB/T16262.2—xxxx的附錄C中規(guī)定的“InstanceOfType”的約束的應(yīng)用。A.2適用于這種類型的唯一“GeneralConstraint”是如第10章規(guī)定的簡單表約束。當(dāng)用此方法約束時(shí),“InstanceOfType”的等效序列類型是:SEQUENCE{type-id<DefinedObjectClass>.&id({<DefinedObjectSet>}),value[0]<DefinedObjectClass>.&Type({<DefinedObjectSet>}{@.type-id})}其中<DefinedObjectClass>由用于“InstanceOfType”記法的特定“DefinedObjectClass”代替,<DefinedObjectSet>由用于簡單表約束的特定“DefinedObjectSet”代替。于等效序列類型每一元素的多個(gè)約束。A.4示例:基于GB/T16262.2—xxxx的C.10“示例”的示例如下。類型:INSTANCEOFMHS-BODY-CLASS({PossibleBodyTypes})具有如下的等效序列類型:[UNIVERSAL8]IMPLICITSEQUENCE{type-idMHS-BODY-CLASS.&id({PossibleBodyTypes}),value[0]MHS-BODY-CLASS.&Type({PossibleBodyTypes}{@.type-id})}這里,序列的type-id組件限于取PossibleBodyTypes之一的&id字段的值,而value組件限于同一信息客體的&Type字段的任一值。在這種情況中,PossibleBodyTypes多半是此規(guī)范的一個(gè)參數(shù)(見GB/T16262.4—xxxx的第10章和A.8),在產(chǎn)生協(xié)議實(shí)現(xiàn)一致性聲明(PICS)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論