版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1GB/T16262.4—XXXX/ISO/IEC8824-4:2021信息技術(shù)抽象語法記法一(ASN.1)第4部分:ASN.1規(guī)范的參數(shù)化GB/T16262的本文件是抽象語法記法一(ASN.1)的一個(gè)部分,并定義了ASN.1規(guī)范的參數(shù)化記法。2規(guī)范性引用文件下列文件中的內(nèi)容通過文中的規(guī)范性引用而構(gòu)成本文件必不可少的條款。其中,注日期的引用文件,僅該日期對(duì)應(yīng)的版本適用于本文件;不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件。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.3—xxxx信息技術(shù)抽象語法記法一(ASN.1)第3部分:約束規(guī)范(ISO/IEC8824-3:2021,IDT)注:上述引用文件說明了對(duì)已確定的文件及其所有已發(fā)布的修3術(shù)語和定義下列術(shù)語和定義適用于GB/T16262的本文件。3.1基本記法規(guī)范本文件使用GB/T16262.1—xxxx中定義的術(shù)語。3.2信息客體規(guī)范本文件使GB/T16262.2—xxxx中定義的術(shù)語。3.3約束規(guī)范本文件使用GB/T16262.3—xxxx中定義的術(shù)語。3.4附加定義3.4.1標(biāo)準(zhǔn)引用名normalreferencename由“Assignment”方法而不是“ParameterizedAssignment”定義的、無參數(shù)的引用名。這種名稱引用完整的定義,并且在使用時(shí)無須向其提供實(shí)際的參數(shù)。2GB/T16262.4—XXXX/ISO/IEC8824-4:20213.4.2參數(shù)化引用名parameterizedreferencename使用參數(shù)化賦值定義的引用名,它引用不完整的定義,因此在使用時(shí)必須向其提供實(shí)際的參數(shù)。3.4.3參數(shù)化類型parameterizedtype使用參數(shù)化類型賦值定義的類型,其組件是不完整的定義,在使用這種類型時(shí)必須向其提供實(shí)際的參數(shù)。3.4.4參數(shù)化值parameterizedvalue使用參數(shù)化值賦值定義的值,其值沒有完整地予以規(guī)定,在使用時(shí)必須向其提供實(shí)際的參數(shù)。3.4.5參數(shù)化值集合parameterizedvalueset使用參數(shù)化值集合賦值定義的值,其值沒有完整地予以規(guī)定,在使用時(shí)必須向其提供實(shí)際的參3.4.6參數(shù)化客體類別parameterizedobjectclass使用參數(shù)化客體類別賦值定義的信息客體類別,其字段規(guī)范沒有完整地予以規(guī)定,在使用時(shí)必須向其提供實(shí)際的參數(shù)。3.4.7參數(shù)化客體parameterizedobject使用參數(shù)化客體賦值定義的信息客體,其組件沒有完整地予以規(guī)定,在使用時(shí)必須向其提供實(shí)際的參數(shù)。3.4.8參數(shù)化客體集合parameterizedobjectset使用參數(shù)化客體集合賦值定義的信息客體集合,其客體沒有完整地予以規(guī)定,在使用時(shí)必須向其提供實(shí)際的參數(shù)。3.4.9可變約束variableconstraint規(guī)定參數(shù)化抽象語法時(shí)采用的約束,此約束取決于抽象語法的某個(gè)參數(shù)。4縮略語本文件使用下列縮略語:ASN.1抽象語法記法一(AbstractSyntaxNotationOne)3GB/T16262.4—XXXX/ISO/IEC8824-4:20215約定本文件采用GB/T16262.1—xxxx的第5章定義的記法約定。6記法本章綜述本文件定義的記法。6.1賦值本文件定義了下列記法,此記法能用來替代“Assignment”(見GB/T16262.1—xxxx的第13):——ParameterizedAssignment(見8.1)。6.2參數(shù)化定義6.2.1本文件定義了下列記法,此記法能用來替代“DefinedType”(見GB/T16262.1—xxxx的14.1):——ParameterizedType(見9.2)。6.2.2本文件定義了下列記法,此記法能用來替代“DefinedValue”(見GB/T16262.1—xxxx的14.1):——ParameterizedValue(見9.2)。6.2.3本文件定義了下列記法,此記法能用來替代“DefinedType”(見GB/T16262.1—xxxx的14.1):——ParameterizedValueSetType(見9.2)。6.2.4本文件定義了下列記法,此記法能用來替代“ObjectClass”(見GB/T16262.2—xxxx的9.2):——ParameterizedObjectClass(見9.2)。6.2.5本文件定義了下列記法,此記法能用來替代“Object”(見GB/T16262.2—xxxx的11.3):——ParameterizedObject(見9.2)。6.2.6本文件定義了下列記法,此記法能用來替代“ObjectSet”(見GB/T16262.2—xxxx的12.3):——ParameterizedObjectSet(見9.2)。6.3符號(hào)表本文件定義了下列記法,此記法能用來替代“Symbol”(見GB/T16262.1—xxxx的13.1——ParameterizedReference(見9.1)。4GB/T16262.4—XXXX/ISO/IEC8824-4:20217ASN.1詞項(xiàng)本文件使用GB/T16262.1—xxxx的第12章規(guī)定的詞項(xiàng)。8參數(shù)化賦值8.1與GB/T16262.1—xxxx和GB/T16262.2—xxxx規(guī)定的每一賦值語句有對(duì)應(yīng)的參數(shù)化賦值語句?!癙arameterizedAssignment”結(jié)構(gòu)是:ParameterizedAssignment::=ParameterizedTypeAssignmentParameterizedValueAssignmentParameterizedValueSetTypeAssignmentParameterizedObjectClassAssignmentParameterizedObjectAssignmentParameterizedObjectSetAssignment|||||8.2除了在初始詞項(xiàng)之后有一個(gè)“ParameterList”之外,每個(gè)“Parameterized<X>Assign-ment”與“<X>Assignment”有相同語法。因此初始項(xiàng)成為參數(shù)化引用名(見3.4.2):注1:GB/T16262.1—xxxx要注2:如果值記法由參數(shù)化類型(或是參數(shù)的類型)控制,則參數(shù)化賦值內(nèi)的值記法的有效性只能在參數(shù)化類型的實(shí)例化之后才能確定,并且可能對(duì)某些實(shí)例化有ParameterizedTypeAssignment::=typereferenceParameterList::=TypeParameterizedValueAssignment::=valuereferenceParameterListTypeValueParameterizedValueSetTypeAssignment::=typereferenceParameterListTypeValueSetParameterizedObjectClassAssignment::=objectclassreferenceParameterList::=5GB/T16262.4—XXXX/ISO/IEC8824-4:2021ObjectClassParameterizedObjectAssignment::=objectreferenceParameterListDefinedObjectClass::=ObjectParameterizedObjectSetAssignment::=objectsetreferenceParameterListDefinedObjectClassObjectSet8.3“ParameterList”是括號(hào)之間的“Parameter”表ParameterList::="{"Parameter","+"}"每個(gè)“Parameter”由“DummyReference”和或許還有“ParamGovernor”組成:Parameter::=ParamGovernor":"DummyReference|DummyReferenceParamGovernor::=Governor|DummyGovernorGovernor::=Type|DefinedObjectClassDummyGovernor::=DummyReferenceDummyReference::=Reference“Parameter”中的“DummyReference”可以代表:a)在沒有“ParamGovernor”的情況,代表“Type”或“DefinedObjectClass”;b)在應(yīng)存在“ParamGovernor”的情況,代表“Value”或“ValueSet”;在“Param-Governor”是“Governor”的情況,它應(yīng)是“Type”;在“ParamGovernor”是“DummyGovernor”的情況,“ParamGovernor”的實(shí)際參數(shù)應(yīng)是“Type”;c)在應(yīng)存在“ParamGovernor”的情況,代表“Object”或“ObjectSet”;在“ParamGovernor”是“Governor”的情況,它應(yīng)是“DefinedObjectClass”;在“ParamGovernor”是“DummyGovernor”的情況,“ParamGovernor”的實(shí)際參數(shù)應(yīng)是“DefinedObjectClass”;“DummyGovernor”應(yīng)是沒有“Governor”的“DummyReference”。8.4出現(xiàn)在“ParameterList”中的“DummyReference”的范圍是“ParameterList”本身,以及在“ParameterList”之后的“ParameterizedAssignment”部分?!癉ummyReference”在任何給定的實(shí)例化中,潛藏此范圍中具有相同名稱的其他“Reference”。注:本條不適用于“NamedNumberList”、“Enumeration”和“NamedBitList”中定義的“identifier”,因?yàn)樗鼈儾皇恰癛eference”。“DummyReference”不潛藏這些“identifier”(見GB/T16262.1—xxxx的19.128.5“DummyReference”在其范圍內(nèi)的用法應(yīng)與其語法形式、何處應(yīng)用、支配者一致,相同“DummyReference”的所有用法應(yīng)彼此一致。注:如果虛擬引用名稱的語法形式有歧義(例如,在它是“objectclassreference”還是“typerreference”之6GB/T16262.4—XXXX/ISO/IEC8824-4:2021間),歧義通??梢栽谫x值語句的右邊首次使用虛擬引用名稱時(shí)解決。據(jù)此,虛擬引用名稱的性質(zhì)已知。然而虛擬引用的性質(zhì)并不僅僅由賦值語句的右側(cè)決定,當(dāng)它反過來僅作為參數(shù)化引用中的實(shí)際參數(shù)使用時(shí);在這種情況下,必須通過檢查這個(gè)參數(shù)化引用的定義來確定虛擬引用的性質(zhì)。告知該符號(hào)的用戶,這種做法會(huì)使ASN.1規(guī)范不那么清晰,建議提供足夠的注釋,為讀者解示例:考慮有下列參數(shù)化客體類別賦值:PARAMETERIZED-OBJECT-CLASS{TypeParam,INTEGER:valueParam,INTEGER:ValueSetParam}::=CLASS{&valueField1TypeParam,&valueField2INTEGERDEFAULTvalueParam,&valueField3INTEGER(ValueSetParam),&ValueSetFieldINTEGERDEFAULT{ValueSetParam}}為確定“ParameterizedAssignment”范圍中的“DummyReference”的合適用法,且目的僅限于此,可考慮將“DummyReference”定義如下:TypeParam::=UnspecifiedTypevalueParamINTEGER::=unspecifiedIntegerValueValueSetParamINTEGER::={UnspecifiedIntegerValueSet}其中:a)TypeParam是代表“Type”的“DummyReference”。因此,凡是將“typereference”用作,例如固定類型值字段valueField1的“Type”時(shí),可以使用TypeParam;b)valueParam是代表整數(shù)類型的值的“DummyReference”。因此,凡是能將整數(shù)值的“valuereference”用作,例如,固定類型值字段valueField2的默認(rèn)值時(shí),可以使用valueParam;c)ValueSetParam是代表整數(shù)類型的值集合的“DummyReference”。因此,凡是能將整數(shù)值的“typereference”用作,例如,valueField3和ValueSetField的“Con-strainedSubtype”記法中的“Type”時(shí),可以使用ValueSetParam。8.6在其范圍內(nèi)每個(gè)“DummyReference”應(yīng)至少采用一次。注:如果“DummyReference”沒有這樣出現(xiàn)過,對(duì)應(yīng)的“ActualParameter”不會(huì)影響此定義,好像被排除了,而包含對(duì)自身的直接或間接引用的“ParameterizedValueAssignment”、“ParameterizedValue-SetTypeAssignment”、“ParameterizedObjectAssignment”、“ParameterizedObjectSetAssign-ment”是不合法的。8.7給定一組參數(shù)化賦值(一個(gè)或多個(gè))和通過一個(gè)或多個(gè)參數(shù)化賦值的一個(gè)參數(shù)化引用的遞歸路徑,沿著該路徑的所有參數(shù)化引用必須滿足以下條件:參數(shù)化引用中出現(xiàn)的每個(gè)實(shí)際參數(shù),要么只包含一個(gè)虛設(shè)引用(在虛設(shè)引用之前或之后沒有詞項(xiàng)或注釋),要么不包含任何虛設(shè)引用(見A.3)。8.8在“ParameterizedType”、“ParameterizedValueSet”或“ParameterizedObjectClass”的定義中,不應(yīng)產(chǎn)生對(duì)被定義項(xiàng)的循環(huán)引用,除非這種引用直接或間接標(biāo)記成OPTIONAL或在通過7GB/T16262.4—XXXX/ISO/IEC8824-4:2021對(duì)選擇類型的引用產(chǎn)生的“ParameterizedType”和“ParameterizedValueSet”情況,至少其替代記法之一在定義中是非循環(huán)的。8.9“DummyReference”的支配者不應(yīng)包括對(duì)另一個(gè)同樣具有支配者的“DummyReference”的引用。8.10在參數(shù)化賦值中“::=”的右邊不應(yīng)僅由“DummyReference”組成。8.11“DummyReference”的支配者不應(yīng)要求知道此“DummyReference”,或正被定義的參數(shù)化引用名。8.12當(dāng)值或值集合作為實(shí)際參數(shù)提供給參數(shù)化類型時(shí),要求此實(shí)際參數(shù)的類型與對(duì)應(yīng)虛設(shè)參數(shù)的支配者兼容(詳見GB/T16262.1—xxxx的C.6.2和C.6.3)。8.13在定義具有值或值集合虛設(shè)參數(shù)的參數(shù)化類型時(shí),用來支配該虛設(shè)參數(shù)的類型應(yīng)是這一類型,其所有值用于賦值右邊使用虛設(shè)參數(shù)的各處都是有效的(詳見GB/T16262.1—xxxx的C.6.5)。9引用參數(shù)化的定義9.1在“SymbolList”(在“Exports”或“Imports”)中,參數(shù)化定義應(yīng)通過“Para-meterizedReference”予以引用:ParameterizedReference::=Reference|Reference"{""}"其中,如上述8.2規(guī)定,“Reference”是“ParameterizedAssignment”中的第一個(gè)詞項(xiàng)。注:提供“ParameterizedRefer9.2除“Exports”或“Imports”以外,參數(shù)化定義應(yīng)通過“Parameterized<X>“結(jié)構(gòu)予以引用,此結(jié)構(gòu)可用作對(duì)應(yīng)“<X>“的替代記法:ParameterizedType::=SimpleDefinedTypeActualParameterListSimpleDefinedType::=ExternalTypeReference|typereferenceParameterizedValue::=SimpleDefinedValueActualParameterListSimpleDefinedValue::=ExternalValueReference|valuereferenceParameterizedValueSetType::=SimpleDefinedTypeActualParameterListParameterizedObjectClass::=DefinedObjectClass8GB/T16262.4—XXXX/ISO/IEC8824-4:2021ActualParameterListParameterizedObjectSet::=DefinedObjectSetActualParameterListParameterizedObject::=DefinedObjectActualParameterList9.3“Defined<X>”中的引用名應(yīng)是“ParameterizedAssignment”中對(duì)其產(chǎn)生賦值的引用名。9.4使用“Defined<X>”替代記法的限制,在GB/T16262.1—xxxx和GB/T16262.2—xxxx中規(guī)定為正式引用名,同樣適用于相應(yīng)的參數(shù)化引用名。al<X>Reference”。前者在定義模塊中使用,或如果已輸入定義并且沒有名稱沖突時(shí)使用;后者在沒有所列的輸入(未贊同),或如果被輸入的名稱與本地定義之間(9.5“ActualParameterList”是:ActualParameterList::="{"ActualParameter","+"}"ActualParameter::=TypeValueValueSetDefinedObjectClassObjectObjectSet|||||9.6對(duì)應(yīng)“ParameterizedAssignment”中的每個(gè)“Parameter”應(yīng)正好有個(gè)“Actual-Parameter”,并且以同樣的順序出現(xiàn)。對(duì)“ActualParameter”和支配者(如果有)的具體選擇應(yīng)通過此“Parameter”的語法形式和它出現(xiàn)在“ParameterizedAssignment”的環(huán)境的檢查予以確定。“ActualParameter”的形式應(yīng)是取代其范圍內(nèi)每處的“DummyReference”所要求的形式(見8.4)。示例:例如,可以引用前面示例(見8.5)的參數(shù)化客體類別定義如下:MY-OBJECT-CLASS::=PARAMETERIZED-OBJECT-CLASS{BITSTRING,123,{4|5|6}}9.7在確定正由使用參數(shù)化引用名的實(shí)例引用的實(shí)際類型、值、值集合、客體類別、客體或客體集合時(shí),實(shí)際參數(shù)代替虛設(shè)引用名。9.8出現(xiàn)在“ActualParameter”中任一引用的含義和默認(rèn)適用于也是如此出現(xiàn)的任何標(biāo)記的標(biāo)記,按照“ActualParameter”的標(biāo)記環(huán)境而不是對(duì)應(yīng)的“DummyReference”的標(biāo)記環(huán)境予以確定。注:因此,參數(shù)化,例如引用、選擇類型和9GB/T16262.4—XXXX/ISO/IEC8824-4:2021示例:假設(shè)有下列模塊:M1DEFINITIONSAUTOMATICTAGS::=BEGENEXPORTST1;T1::=SET{f1INTEGER,f2BOOLEAN}ENDM2DEFINITIONSEXPLICITTAGS::=BEGINIMPORTST1FROMM1;T3::=T2{T1}T2{X}::=SEQUENCE{aINTEGER,}END9.8意味著對(duì)T3的組件f1(即@T3.b.f1)的標(biāo)簽進(jìn)行隱式標(biāo)記,因?yàn)樘摂M參數(shù)x的標(biāo)記環(huán)境即顯式標(biāo)記并不影響對(duì)實(shí)際參數(shù)T1的組件的標(biāo)記。假設(shè)有模塊M3:M3DEFINITIONSAUTOMATICTAGS::=BEGINIMPORTST1FROMM1;T5::=T4{T1}T4{Y}::=SEQUENCE{aINTEGER,}END應(yīng)用GB/T16262.1—xxxx的31.2.7意味著T5的組件b的標(biāo)記(即@T5.b)將顯式地予以標(biāo)記,因?yàn)樘撛O(shè)參數(shù)Y總是顯式地予以標(biāo)記,因此T5等效于:T5::=SEQUENCE{a[0]IMPLICITINTEGER,b[l]EXPLICITSET{f1[0]INTEGER,f2[1]BOOLEAN}}而T3等效于:T3::=SEQUENCE{aINTEGER,bSET{fl[0]IMPLICITf2[l]IMPLICITINTEGER,BOOLEANGB/T16262.4—XXXX/ISO/IEC8824-4:2021}}10抽象語法參數(shù)10.1GB/T16262.2—xxxx的附錄B提供了ABSTRACT-SYNTAX信息客體類別,并建議用其定義抽象語法。一個(gè)示例是將抽象語法定義成一個(gè)ASN.1類型的值集合,而這ASN.1類型的外層未被參數(shù)化。10.2用來定義抽象語法的ASN.1類型予以參數(shù)化時(shí),某些參數(shù)可作為定義抽象語法時(shí)的實(shí)際參數(shù)予以提供,而一些其他參數(shù)留作抽象語法本身的參數(shù)。示例:如果某一參數(shù)化類型已定義,叫做有兩個(gè)虛設(shè)引用(假設(shè)第一個(gè)是某個(gè)已定義客體類別的客體集合,第二個(gè)是在一個(gè)邊界內(nèi)的整數(shù)值)的YYY-PDU,那么:yyy-Abstract-Syntax{INTEGER:bound}ABSTRACT-Syntax::={YYY-PDU{{ValidObjects},bound}IDENTIFIEDBY{yyy5}}定義其中已解決客體集合的參數(shù)化抽象語法,而bound留作抽象語法的一個(gè)參數(shù)。抽象語法參數(shù)的使用方法是:a)直接或間接用于約束的上下文中;b)直接或間接用作最后用于約束上下文中的實(shí)際參數(shù)。注:見A.2中的示例和GB/T16262.1—xx10.3其值集合視抽象語法一個(gè)或幾個(gè)參數(shù)而定的約束是可變約束。在定義抽象語法之后確定這種約束(或許由國(guó)際標(biāo)準(zhǔn)化概要或在協(xié)議實(shí)現(xiàn)一致性聲明中確定)。注:如果在約束值規(guī)范包含的定義中的某處出現(xiàn)了抽象語法的參數(shù),那么,此約束是可變約束。即使產(chǎn)生的約束示例:((1..3)EXCEPTa)UNION(l..3)的值總是1..3,與a是什么值無關(guān),若a是抽象語法的一個(gè)參數(shù),它仍是可變約束。10.4形式上,可變約束不約束抽象語法中的值集合。注:強(qiáng)力推薦希塑留作抽象語法中可變約束的約束要有使用GB/T16262.1—xxxx的53.4GB/T16262.4—XXXX/ISO/IEC8824-4:2021(資料性)A.1使用參數(shù)化類型定義的示例。假設(shè)一名協(xié)議設(shè)計(jì)者常常需要攜帶具有一個(gè)或多個(gè)協(xié)議字段的鑒別符。這將按BITSTRING攜帶(位于此字段一側(cè))。沒有參數(shù)化,Authenticator需定義為BITSTRING,因此不管authenticator是否要出現(xiàn),需將它附加到文本以標(biāo)識(shí)它應(yīng)用于什么。換言之,此設(shè)計(jì)者要遵守將具有鑒別符的任一字段能換成此字段和authenticator的SEQUENCE的約束。參數(shù)化機(jī)制為此工作提供便捷的方法。首先,我們定義參數(shù)化類型SIGNED{}:SIGNED{ToBeSigned}::=SEQUENCE{authenticated-dataToBeSigned,authenticatorBITSTRING}SIGNED{OrderInformation}是下列的類型記法:SEQUENCE{authenticated-dataOrdelnformation,authenticatorBITSTRING}進(jìn)一步假設(shè)發(fā)送者必須作出對(duì)某些字段是否增加鑒別符的選擇。這可通過產(chǎn)生可選的BITSTRING完成,但是更好的方案(線上比特更少)是定義另一種參數(shù)化類型。OPTIONALLY-SIGNED{ToBeSigned}::=CHOICE{unsigned-data[0]ToBeSigned,signed-data[l]SIGNED{ToBeSigned}}注:如果編制者保證在使用參數(shù)化類型中沒有一次產(chǎn)生BITSTRING的實(shí)際自變量(SIGNED的類型),則CHOICE中A.2使用參數(shù)化定義以及信息客體類別的示例使用信息客體類別以收集抽象語法的所有參數(shù)。用此方法能使抽象語法的參數(shù)數(shù)目減少到收集類別的一個(gè)實(shí)例。可以使用“InformationFromObject”生成式提取參數(shù)客體中的信息。GB/T16262.4—XXXX/ISO/IEC8824-4:2021示例:--這種類別的一個(gè)實(shí)例包含抽象語法Message-PDU的所有參數(shù)。MESSAGE-PARAMETERS::=CLASS{&maximum-priority-levelINTEGER,&maximum-message-buffer-sizeINTEGER,&maximum-reference-buffer-sizeINTEGER}WITHSYNTAX{THEMAXIMUMPRIORITYLEVELIS&maximum-priority-levelTHEMAXIMUMMESSAGEBUFFERSIZEIS&maximum-message-buffer-sizeTHEMAXIMUMREFERENCEBUFFERSIZEIS&maximum-reference-buffer-size}--“ValueFromObject”生成式用來提取抽象語法參數(shù)“Param”--中的值。這些值只能用于約束中。--此外,此參數(shù)能一直被傳送給另一個(gè)參數(shù)化類型。Message-PDU{MESSAGE-PARAMETERS:param}::=SEQUENCE{priority-levelINTEGER(0..param.&maximum-priority-level),messageBMPString(SIZE(0..param.&maximum-message-buffer-size)),referenceReference{param}}Reference{MESSAGE-PARAMETERS:param}::=SEQUENCEOFIA5String(SIZE(0..param.&maximum-reference-buffer-size))--參數(shù)化抽象語法信息客體的定義。--此抽象語法參數(shù)只能用于約束。message-Abstract-Syntax{MESSAGE-PARAMETERS:param}ABSTRACT-SYNTAX::={Message-PDU{param}IDENTIFIEDBY{joint-iso-itu-texample(999)0}}類別MESSAGE-PARAMETERS和參數(shù)化抽象語法客體message-Abstract-Syntax使用如下:--MASSAGE-PARAMETERS的實(shí)例定義此抽象語法的參數(shù)值。my-message-parametersMESSAGE-PARAMETERS::={THEMAXIMUMPRIORITYLEVELIS10THEMAXIMUMMESSAGEBUFFERSIZEIS2000THEMAXIMUMREFERENCEBUFFERSIZEIS100}--現(xiàn)在可用規(guī)定的所有可變約束定義此抽象語法。my-message-Abstract-SyntaxABSTRACT-SYNTAX::=GB/T16262.4—XXXX/ISO/IEC8824-4:2021message-Abstract-Syntax{my-message-parameters}A.3有限的參數(shù)化類型定義的示例當(dāng)規(guī)定作為一個(gè)通用表形式的參數(shù)化類型時(shí),規(guī)定此種類型會(huì)使產(chǎn)生的ASN.1記法是有限的。例如,我們規(guī)定:List1{ElementTypeParam}::=SEQUENCE{ElemElementTypeParam,nextList1{ElementTypeParam}OPTIONAL}為了使用下列形式時(shí)是有限的:IntegerList1::=List1{INTEGER}產(chǎn)生的ASN.1記法正如它通常定義的解釋:IntegerList1::=SEQUENCE{elemINTEGER,nextIntegerList1OPTIONAL}將此與下列定義比較:List2{ElementTypeParam}::=SEQUENCE{elemElementTypeParam,nextList2{[0]ElementTypeParam}OPTIONAL}IntegerList2::=List2{INTEGER}在此場(chǎng)合,產(chǎn)生的ASN.1記法是無限的:IntegerList2::=SEQUENCE{elemINTEGER,nextSEQUENCE{elem[0][0]INTEGER,nextSEQUENCE{elem[0][0][0]INTEGER,nextSEQUENCE{elem[0][0][0]INTEGER,nextSEQUENCE{--等等}OPTIONAL}OPTIONAL}OPTIONAL}OPTIONAL}A.4參數(shù)化值定義的示例如果定義參數(shù)化串值如下:GB/T16262.4—XXXX/ISO/IEC8824-4:2021genericBirthdayGreeting{IA5String:name}IA5String:={"Happybirthday,",name,"!!"}那么以下兩個(gè)字符串值是相同的:greeting1IA5String::=genericBirthdayGreeting{"John"}greeting2IA5String::="Happybirthday,John!!"A.5參數(shù)化值集合定義的示例如果定義兩個(gè)參數(shù)化值集合如下:QuestList1{IA5String:extraQuest}IA5String::={"Jack"|"John"|extraQuest}QuestList2{IA5String:ExtraQuest}IA5String::={"Jack"|"John"|ExtraQuests}那么下列值集合表示此相同的值集合:SetofQuests1IA5String::={QuestList1{"Jill"}}SetofQuests2IA5String::={QuestList2{{"Jill"}}}SetofQuests3IA5String::={"Jack"|"John"|"Jill"}以及下列值集合表示此相同的值集合:SetofQuests4IA5String::={QuestList2{{"Jill"|"Mary"}}}SetofQuests5IA5String::={"Jack"|"John"|"Jill"|"Mary"}注意,一個(gè)值集合總是在花括號(hào)中規(guī)定的,即使它是一個(gè)參數(shù)化值集合引用時(shí)也是如此。通過在對(duì)曾在值集合賦值中創(chuàng)建的“identifier”的引用中略去花括號(hào)或在對(duì)“ParameterizedValueSetType”的引用中略去花括號(hào),此記法則是“Type”的記法,而不是值集合記法。A.6參數(shù)化類別定義的示例下列參數(shù)化類別可用來定義包含不同類型的差錯(cuò)代碼的差錯(cuò)類別。注意,ErrorCodeType參數(shù)只能用作ValidErrorCodes參數(shù)的“DummyGovernor”。GENERIC-ERROR{ErrorCodeType,ErrorCodeType:ValidErrorCodes}::=CLASS{&errorCodeValidErrorCodes}WITHSYNTAX{CODE&errorCode}可以使用如下參數(shù)化類別定義來定義像同樣的定義語法那樣共享一些特性的不同類別:ERROR-1::=GENERIC-ERROR{INTEGER,{1|2|3}}ERROR-2::=GENERIC-ERROR{ErrorCodeString,{StringErrorCode}}ERROR-3::=GENERIC-ERROR{EnumeratedErrorCode,{fatal|error}}ErrorCodeString::=IA5String(SIZE(4))StringErrorCodesErrorCodeString::={"E00l"|"E002"|"E003"}EnumeratedErrorCode::=ENUMERATED{fatal,error,warning}因此定義類別按如下使用:GB/T16262.4—XXXX/ISO/IEC8824-4:2021MY-ErrorsERROR-2::={{CODE"E00l"}|{CODE"E002"}}fatalErrorERROR-3::={CODEfatal}A.7參數(shù)化客體集合定義的示例參數(shù)化客體集合定義AllTypes構(gòu)成包含基本客體集合BaseTypes和以參數(shù)AdditionalTypes提供的附加客體集合的客體集合:AllTypes{TYPE-IDENTIFIER:AdditionalTypes}TYPE-IDENTIFIER::={BaseTypes|AdditionalTypes}BaseTypesTYPE-IDENTIFIER::={{BasicType-1IDENTIFIFDBYbasic-type-obj-id-value-1}|{BasicType-2IDENTIFIFDBYbasic-type-obj-id-value-2}|{BasicType-3IDENTIFIFDBYbasic-type-obj-id-value-3}}參數(shù)化客體集合定義ALLTypes可使用如下:MY-ALL-TypesTYPE-IDENTIFIER::={AllTypes{{{MY-Type-1IDENTIFIEDBYmy-obj-id-value-1}|{MY-Type-2IDENTIFIEDBYmy-obj-id-value-2}|{MY-Type-3IDENTIFIEDBYmy-obj-id-value-3}}}}A.8參數(shù)化客體集合定義的示例在如下的參數(shù)化抽象語法定義中可使用GB/T16262.3—xxxx的A.4中定義的類型:--PossibleBodyTypes是一種抽象語法的參數(shù)。message-abstract-syntax{MHS-BODY-CLASS:PossibleBodyTypes}ABSTRACT-SYN-TAX::={INSTANCEOFMHS-BODY-CLASS({PossibleBodyTypes})IDENTIFIEDBY{joint-iso-ituexample(999)1}}--此客體集合列出單一實(shí)例類型所有可能成對(duì)的值和type-ids。--此客體集合用作參數(shù)化抽象語法定義的實(shí)際參數(shù)。MY-Body-TypesMHS-BODY-CLASS::={{MY-First-TypeIDENTIFIEDBYmy-first-obj-id}|{MY-Second-TypeIDENTIFIEDBYmy-second-obj-id}|}my-message-abstract-syntaxABSTRACT-SYNTAX::=message-abstract-syntax{{My-Body-Types}}GB/T16262.4—XXXX/ISO/IEC8824-4:2021(資料性)記法綜述在GB/T16262.1—xxxx中定義了下列詞項(xiàng)并用于本文件:typereferencevaluereference,在GB/T16262.2—xxxx中定義了下列詞項(xiàng)并用于本文件:objectclassreferenceobjectreferenceobjectsetreference在GB/T16262.1—xxxx中定義了下列生成式并用于本文件:DefinedTypeDefinedValueReferenceTypeValueValueSet在GB/T16262.2—xxxx中定義了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年環(huán)保型內(nèi)燃機(jī)驅(qū)動(dòng)挖掘機(jī)購(gòu)置及售后服務(wù)合同3篇
- 2024建筑領(lǐng)域協(xié)議管理重點(diǎn)解析版B版
- 2025年度辦公場(chǎng)地租賃及辦公設(shè)備租賃合同3篇
- 2024年高品質(zhì)管材與精密管件買賣標(biāo)準(zhǔn)協(xié)議版B版
- 2024排水工程施工合同正規(guī)范本
- 2025年度專業(yè)保安公司派遣服務(wù)合同范本:定制化安保服務(wù)2篇
- 2025版空壓機(jī)租賃配套空?qǐng)龅厥褂迷S可協(xié)議3篇
- 2024店面房長(zhǎng)期出租合同:包含租賃期店面保險(xiǎn)合同(二零二四年度)3篇帶眉腳
- 2024年貨場(chǎng)試用租賃合同
- 2025版變更撫養(yǎng)權(quán)及子女生活費(fèi)及教育費(fèi)用支付協(xié)議3篇
- 腦卒中偏癱患者早期康復(fù)護(hù)理現(xiàn)狀(一)
- 模特的基礎(chǔ)訓(xùn)練
- 急救技術(shù)-洗胃術(shù) (2)
- 藥品招商流程
- 混凝土配合比檢測(cè)報(bào)告
- 100道遞等式計(jì)算(能巧算得要巧算)
- 【2019年整理】園林景觀設(shè)計(jì)費(fèi)取費(fèi)標(biāo)準(zhǔn)
- 完整word版,ETS5使用教程
- 《血流動(dòng)力學(xué)監(jiān)測(cè)》PPT課件.ppt
- 2018年秋季人教版十一冊(cè)數(shù)學(xué)第7、8單元測(cè)試卷
- 學(xué)生作業(yè)提交與批閱系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)探討
評(píng)論
0/150
提交評(píng)論