信息技術(shù) ASN.1編碼規(guī)則 第5部分:W3C XML模式定義到ASN.1的映射 征求意見稿_第1頁
信息技術(shù) ASN.1編碼規(guī)則 第5部分:W3C XML模式定義到ASN.1的映射 征求意見稿_第2頁
信息技術(shù) ASN.1編碼規(guī)則 第5部分:W3C XML模式定義到ASN.1的映射 征求意見稿_第3頁
信息技術(shù) ASN.1編碼規(guī)則 第5部分:W3C XML模式定義到ASN.1的映射 征求意見稿_第4頁
信息技術(shù) ASN.1編碼規(guī)則 第5部分:W3C XML模式定義到ASN.1的映射 征求意見稿_第5頁
已閱讀5頁,還剩145頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1GB/T16263.5—xxxx/ISO/IEC8825-5:2021信息技術(shù)ASN.1編碼規(guī)則第5部分:W3CXML模式定義到ASN.1GB/T16263的本文件規(guī)定了從任何XSD模式到ASN.1模式進(jìn)行映射的兩種版本。兩種版本的ASN.1模式支持相同的語義,而且還可驗(yàn)證XML文檔的相同集合。本文件規(guī)定了最終XER編碼指令,這些指令將作為ASN.1類型定義映射的一部分應(yīng)用,不規(guī)定用于最終XER編碼指令規(guī)范的語法形式,或其賦值順序或方法。注:映射生成工具的實(shí)現(xiàn)可以選擇任何語法格式或賦值順序,用以產(chǎn)生所要應(yīng)用的規(guī)定的最終XER編碼指令。本文件的示例一般使用類型前綴格式,但是作為一種習(xí)慣,XER編碼控制部分的使用對(duì)于完整XSD的映射可能是最有不同的(語法的)方法將XER編碼指令分配給EXTENDED-XER編碼使用(如,使用ASN.1類型前綴編碼指令或使用XER編碼控制區(qū))。語法格式的選擇是習(xí)慣問題,不屬于本文件的范圍。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-GB/T16262.4—xxxx信息技術(shù)抽象語法記法一(ASN.1)第4部分:ASN.1規(guī)范的參數(shù)化(ISO/IEC8824-4:2021,IDT)GB/T16263.1—xxxx信息技術(shù)ASN.1編碼規(guī)則則(CER)和非典型編碼規(guī)則(DER)的規(guī)范(ISO/IECGB/T16263.2—xxxx信息技術(shù)ASN.1編碼規(guī)則(ISO/IEC8825-2:2021,IDT)GB/T16263.4—xxxx信息技術(shù)ASN.1編碼規(guī)則8825-4:2021,IDT)第1部分:基本編碼規(guī)則(BER)、正則編碼規(guī)8825-1:2021,IDT)第4部分:XML編碼規(guī)則(XERISO/IECISO/IEC8825-3:2021信息技術(shù)ASN.1編碼規(guī)則.第3部分:編碼碼控制記法的規(guī)范(ECN)(Informationtechnology-ASN.1encodingrules:SpecificationofEncodingControlNotation(ECN))ISO/IEC24824-1:2007信息技術(shù)ASN.1一般應(yīng)用第1部分:快速信息集(Informationtechnology—GenericapplicationsofASN.1:Fastinfoset)2GB/T16263.5—xxxx/ISO/IEC8825-5:2021ISO/IEC8601:2019e和時(shí)間信息交換表示法(eandtime—Representationforinformationinterchange)W3CXML1.0:2008可擴(kuò)展置標(biāo)語言(XML)1.0(第五版)[ExtensibleMarkupLanguage(XML)1.0(FifthEdition)]W3CXMLNamespaces:1999XML中的名稱空間(NamespacesinXML)W3CXMLInformationSet:2004XML信息集(第二版)[W3CXMLInformationSet(SecondEdition)]W3CXMLSchema:2004XML模式第1部分:結(jié)構(gòu)(第二版)[W3CXMLSchemaPart1:Structures(SecondEdition)]W3CXMLSchema:2004XML模式第2部分:數(shù)據(jù)類型(第二版)[W3CXMLSchemaPart2:Data-types(SecondEdition)]注1:以上W3C文件可從獲得,W3注2:本文件中引用“W3CXML模式”IETFRFC2396(1998)通用資源標(biāo)識(shí)符(URI):通用語法[Uniformresourceidentifiers(URI):Genericsyntax]IETFRFC3066(2001)用于識(shí)別語言的標(biāo)簽(TagsfortheIdentificationofLanguages)3術(shù)語和定義下列術(shù)語和定義適用于本文件。3.1導(dǎo)入定義3.1.1GB/T16262.1—xxxx和GB/T16263.4—xxxx界定的術(shù)語和定義適用于本文件。注:特別需要指出的是,術(shù)語“最終XER編碼指令”“類型前綴”和“XER編碼控制部分”是在本條提及的標(biāo)準(zhǔn)中3.1.2W3CXML模式和W3CXML信息集界定的術(shù)語和定義適用于本文件。注1:確信這些術(shù)語與3.1.1引用的術(shù)語沒有沖突,如果出現(xiàn)沖突,則注2:特別需要指出的是,術(shù)語“模式組件”在W3CXML模式中定義,術(shù)語“元素信息項(xiàng)”和3.2附加定義下列附加的術(shù)語和定義適用于本文件。3.2.1XSD名稱空間:具有URI“/2001/XMLSchema”的名稱空間。3.2.2XSI名稱空間:具有URI“/2001/XMLSchema-instance”的名稱空間。3.2.3XML名稱空間:具有URI“/XML/1998/namespace”的名稱空間。4縮略語下列縮略語適用于本文件。ASN.1抽象語法記法一(AbstractSyntaxNotationOne)BER基本編碼規(guī)則(BasicEncodingRules)DER非典型編碼規(guī)則(DistinguishedEncodingRules)3GB/T16263.5—xxxx/ISO/IEC8825-5:2021OID對(duì)象標(biāo)識(shí)符(ObjectIdentifier)PER緊縮編碼規(guī)則(PackedEncodingRules)URI統(tǒng)一資源標(biāo)識(shí)符(UniformResourceIdentifier)XERXML編碼規(guī)則(XMLEncodingRules)XML可擴(kuò)展置標(biāo)語言(ExtensibleMarkupLanguage)XSDXML模式(XMLSchema)5記法5.1本文件引用了GB/T16262.1—xxxx、GB/T16262.3—xxxx、W3CXML1.0和W3CXML模式定義的記法。5.2當(dāng)有必要在本文件主體部分中正式或舉例指定XER編碼指令的分配時(shí),一般使用類型前綴記法(也有例外,見6.3和6.4)。附錄A中使用的是XER編碼控制部分。5.3在本文件中,漢字部分使用大標(biāo)宋字體表示ASN.1記法,使用楷體字體表示XSD記法以及XSD術(shù)語和概念。英文部分使用加粗Courier字體表示ASN.1記法,使用加粗Arial字體表示XSD記法以及XSD術(shù)語和概念。5.4本文件示例中的XSD模式使用前綴xsd:來標(biāo)識(shí)XSD名稱空間。6標(biāo)準(zhǔn)化的目的和程度6.1本文件規(guī)定的到ASN.1的映射旨在確保:a)使用符合本文件的工具(根據(jù)相同的XSD模式)生成的任何ASN.1模塊都定義相同的(結(jié)構(gòu)化的)抽象值;b)所生成的ASN.1規(guī)范的所有BASIC-XER、CXER、EXTENDED-XER和二進(jìn)制編碼都將產(chǎn)生相同編碼(依編碼器選擇而定);c)符合源XSD模式的所有源XSD文檔都是該ASN.1規(guī)范中抽象值的有效的EXTENDED-XER編碼。6.2ASN.1定義有很多方面(如,空白符、編碼控制部分或類型前綴等的使用它們既不影響所定義的抽象值,也不影響這些值的XER或二進(jìn)制編碼。本文件中一般不對(duì)ASN.1定義的這些方面加以標(biāo)準(zhǔn)化。6.3在ASN.1中,對(duì)類型分配XER編碼指令有許多不同的方法,包括:a)對(duì)每個(gè)待分配的編碼指令使用類型前綴;b)使用編碼控制部分時(shí),對(duì)每個(gè)所要求的分配使用分開的編碼指令;c)使用編碼控制部分時(shí),單個(gè)編碼指令構(gòu)造全局分配,對(duì)某些特殊類型可通過使用否定編碼指令來補(bǔ)充。6.4本文件規(guī)定了最終XER編碼指令的使用時(shí)機(jī),大部分示例使用6.3a)給出的語法。不過,并未對(duì)6.3中不同選項(xiàng)的使用加以標(biāo)準(zhǔn)化,符合本文件的映射實(shí)現(xiàn)可以選擇任一種語法形式(或混合的語法形式)分配最終XER編碼指令。6.5不提供所要求的映射的格式規(guī)范。6.6本文件僅關(guān)注符合W3CXML模式的XSD模式的映射。注:可以由一個(gè)或者多個(gè)W3CXSD模式文檔提供這種符合性,也可以由W3CXML模式描述的其他方法提供這種符合4GB/T16263.5—xxxx/ISO/IEC8825-5:20217XSD模式映射7.1XSD模式映射基于源XSD模式,該模式是一組模式組件(見W3CXML模式第1部分的2.2)。雖然通常很可能以一個(gè)或多個(gè)XML模式文檔(見W3CXML模式第1部分的3.15.2)的方式提供源XSD模式,但映射時(shí)并不要求或假設(shè)模式組件或一組模式組件的具體表現(xiàn)形式。注1:表現(xiàn)為多XML模式文檔的模式組件,通過使用xsd:include、xsd:redefine,以及xsd:import元素信息注2:因?yàn)樵撚成涫怯媚J浇M件(而不是用它們的XML表現(xiàn)形式)定義的,所以不受XML細(xì)節(jié)表現(xiàn)(例如,使用xsd:include和xsd:redefine元素信息項(xiàng)鏈接的多模式文檔,一個(gè)或另一個(gè)模式文檔中元素信息項(xiàng)的位置,xsd:complexType元素信息項(xiàng)中的xsd:attribute元素信息項(xiàng)的順序等)的影注3:兩個(gè)有許多不同、但用于表現(xiàn)相同模式組件集的模式文檔集,它們生成相同的ASN.1類型賦值集,所具有的7.2源XSD模式應(yīng)滿足XSD規(guī)范強(qiáng)制的所有約束。如果源XSD模式(部分或全部)表現(xiàn)為一組XML模式文檔,那么,依照XSD模式產(chǎn)生的每個(gè)模式文檔都應(yīng)是有效的(見W3CXML模式第1部分的附錄A)。7.3對(duì)于一個(gè)源XSD模式應(yīng)生成一個(gè)或多個(gè)ASN.1模塊。實(shí)現(xiàn)時(shí),所生成的ASN.1模塊的數(shù)量是可選的。每個(gè)ASN.1模式應(yīng)包含與頂層模式組件(見7.6)相對(duì)應(yīng)的零個(gè)或多個(gè)類型賦值,以及零個(gè)或多個(gè)特殊ASN.1類型賦值(見第29章、第30章和第31章)。實(shí)現(xiàn)時(shí),每個(gè)ASN.1模塊中類型賦值的物理順序是可選的。當(dāng)生成多個(gè)ASN.1模塊時(shí),實(shí)現(xiàn)時(shí),在那些ASN.1模塊上分布所生成的類型賦值的方法也是可選的。注1:本條款許可同一個(gè)ASN.1模塊中包含根據(jù)XSD模式組件生成的、具有不同目標(biāo)名稱空間的類型賦值,但是并不推薦。首選的映射是盡可能每個(gè)名稱空間生成一個(gè)ASN.1模塊。也推薦,將每個(gè)特殊ASN.1類型賦值作為其關(guān)聯(lián)的ASN.1類型賦值插入到同一個(gè)ASN.1模塊中(見29.5、30.注2:ASN.1類型賦值的生成(見7.6和10.4)不受待生成的ASN.1模塊數(shù)量的影響(除了可能按10.2.2規(guī)定使用“ExternalTypeReference”的情況外),不受在那些模塊上分布已生成的類型賦值的方法的影響,不受每個(gè)模型中類型賦值的物理順序的影響。特別是,這些類型賦值的類型引用名都是相同的,而不管實(shí)現(xiàn)時(shí)所使用的是哪種映射風(fēng)格。注3:W3CXML名稱空間的名稱空間概念和ASN.1中的命名之間關(guān)系的完整描述見GB/T16263.4—XXXX中第16章。通過使用NAMESPACE編碼指令來分配ASN.1模塊中定義的類型引用名和標(biāo)識(shí)符,否則沒有名稱空間。在需要的地7.4由映射生成的所有ASN.1模塊都(在XER編碼控制部分)包含一條GLOBAL-DEFAULTSMODI-FIED-ENCODINGS編碼指令和一條GLOBAL-DEFAULTSCONTROL-NAMESPACE編碼指令,用以指定XSI名稱空間。7.5源XSD模式按以下所述方式處理:a)對(duì)于每一個(gè)頂層元素聲明,應(yīng)通過對(duì)該元素聲明應(yīng)用第14章來生成一個(gè)ASN.1類型賦值;b)對(duì)于每一個(gè)頂層屬性聲明,應(yīng)通過對(duì)該屬性聲明應(yīng)用第15章來生成一個(gè)ASN.1類型賦值;c)對(duì)于每一個(gè)頂層簡單類型定義,應(yīng)通過對(duì)該簡單類型定義應(yīng)用第13章來生成一個(gè)ASN.1類型賦值;d)對(duì)于每一個(gè)頂層復(fù)雜類型定義,應(yīng)通過對(duì)該復(fù)雜類型定義應(yīng)用第20章來生成一個(gè)ASN.1類型賦值;e)對(duì)于每一個(gè)模塊組定義(其模塊組有一個(gè)序列組合符或選擇應(yīng)通過對(duì)該模塊組定義應(yīng)用第17章來生成一個(gè)ASN.1類型賦值分配。注1:源XSD模式剩余的模式組件將作為這些模式5GB/T16263.5—xxxx/ISO/IEC8825-5:2021注2:有待映射的模式組件的順序在10.4中說明。以上列項(xiàng)7.6表1的第1列是模式組件,第2列引用W3CXMLSchema中定義該模式組件的條款,第3列是本文件中定義這些模式組件到ASN.1中的映射的章。表1XSD模式組件8忽略的模式組件和性質(zhì)定義映射的章屬性描述元素描述復(fù)雜類型定義第1部分的3.4屬性使用屬性組定義第1部分的3.6未按之映射模塊組定義第1部分的3.7模塊組第1部分的3.8粒子第1部分的3.9通配符第1部分的3.10個(gè)性約束定義第1部分的3.11映射忽略注釋聲明第1部分的3.12映射忽略聲明第1部分的3.13映射忽略簡單類型定義第1部分的3.14模式第1部分的3.15序列第2部分的映射忽略邊界第2部分的映射忽略基數(shù)第2部分的映射忽略數(shù)值第2部分的映射忽略長度第2部分的最小長度第2部分的最大長度第2部分的樣本第2部分的枚舉第2部分的第2部分的包括最大值第2部分的除去最大值第2部分的除去最小值第2部分的包括最小值位數(shù)小數(shù)數(shù)字8.1在本章所列出的模式組件和性質(zhì)應(yīng)予以忽略。8.2所有注釋(見W3CXML模式第1部分的3.13)應(yīng)予以忽略。注:一個(gè)模式文檔,如果它具有的名是使用不同于XSD名稱空間(見W3CXML模式第1部分的3.13.1)的名稱空間6GB/T16263.5—xxxx/ISO/IEC8825-5:20218.3所有標(biāo)識(shí)約束定義(見W3CXML模式第1部分的3.11)應(yīng)予以忽略。注:標(biāo)識(shí)約束定義提供用于規(guī)定引用約束的機(jī)制,這種機(jī)制可能是某個(gè)有效實(shí)例要求的。目前,ASN.1沒有此類約束概念,而且這種約束也不能映射到一個(gè)正式的ASN.1規(guī)范中。但是它們可以納入作為規(guī)范性注解,綁定在應(yīng)8.4所有記法聲明(見W3CXML模式第1部分的3.12)應(yīng)予以忽略。8.5元素聲明(見W3CXML模式第2部分的4.2)的基本方面(排序、定界、基數(shù)、數(shù)值)的模式組件應(yīng)予以忽略。8.6元素聲明的個(gè)性約束、替代組拒絕以及不允許替代等性質(zhì)應(yīng)予以忽略。8.7復(fù)雜類型定義的最終、抽象及禁止的替代等性質(zhì)應(yīng)予以忽略。8.8通配符的過程內(nèi)容性質(zhì)應(yīng)予以忽略。8.9簡單類型定義的基本方面和最終性質(zhì)應(yīng)予以忽略。8.10所有出現(xiàn)在任何元素聲明或?qū)傩月暶鳎ㄆ漕愋投x是xsd:QName,或者是派生于xsd:QName或xsd:NOTATION的元素聲明)上的值約束應(yīng)予忽略。8.11所有屬性組定義應(yīng)予以忽略。注:屬性組定義中的屬性用途成為復(fù)雜類型定義的屬性用途的一部分,復(fù)雜類型定義的XML表現(xiàn)包含了對(duì)屬性組定9ASN.1模塊9.1XSD模式的映射生成一個(gè)或多個(gè)ASN.1模塊(見7.3)。9.2此映射生成的ASN.1“ModuleIdentifier”(見GB/T16262.1—XXXX的第13章)沒有標(biāo)準(zhǔn)化。在IMPORTS聲明的地方,該IMPORTS聲明中的ASN.1模塊名和模塊標(biāo)識(shí)符應(yīng)該是針對(duì)此映射生成的ASN.1模塊所生成的模塊名和模塊標(biāo)識(shí)符。9.3ASN.1模塊的AUTOMATICTAGS應(yīng)為“TagDefault”。9.4在第一版映射生成的每個(gè)ASN.1模塊中,應(yīng)有一個(gè)ASN.1IMPORTS聲明,用于向按照附錄A規(guī)定命名為XSD{joint-iso-itu-tasn1(1)specification(0)modules(0)xsd-module(2)version1(1)}的模塊導(dǎo)入那些在該ASN.1模塊中引用的ASN.1類型引用名。9.5在第二版映射生成的每個(gè)ASN.1模塊中,應(yīng)有一個(gè)ASN.1IMPORTS聲明,用于向按照附錄B規(guī)定命名為XSD{joint-iso-itu-tasn1(1)specification(0)modules(0)xsd-module(2)version1(2)}的模塊導(dǎo)入那些在該ASN.1模塊中引用的ASN.1類型引用名。注:本文件中的術(shù)語“XSD模塊”指的是附錄A(第一版映射)或附錄B(第二版映射)的模塊,具體取決于映射的9.6IMPORTS聲明也應(yīng)導(dǎo)入在其他的ASN.1模塊中已有的(映射產(chǎn)生的)而在本ASN.1模塊中引用的類型賦值的ASN.1類型引用名。9.7不應(yīng)該有EXPOPTS聲明。注:這意味著ASN.1模塊中所有的ASN.1類型引用名10名稱轉(zhuǎn)換10.1概述7GB/T16263.5—xxxx/ISO/IEC8825-5:202110.1.1本文件規(guī)范了以下各項(xiàng)的生成:a)ASN.1類型引用名應(yīng)與模型組定義、頂層元素聲明、頂層屬性聲明、頂層復(fù)雜類型定義、以及頂層簡單類型定義的名稱保持一致;b)ASN.1標(biāo)識(shí)與頂層元素聲明、頂層屬性聲明、本地元素聲明、以及本地屬性聲明的名稱保持一致;c)ASN.1標(biāo)識(shí)具有枚舉約束的某些簡單類型定義的映射(見12.4.1和12.4.2);d)特定類型賦值(見第29章、第30章和第31章)的ASN.1類型引用名;e)映射引入的某些序列組件的ASN.1標(biāo)識(shí)符(見第20章)。10.1.2通過應(yīng)用10.3,針對(duì)模式組件名稱,或針對(duì)某側(cè)面的枚舉值,或針對(duì)規(guī)定的字符串,按照本文件有關(guān)章條的規(guī)定生成所有這些ASN.1名。10.2引用ASN.1類型賦值生成ASN.1類型定義10.2.1本條由本文件的其他條明確調(diào)用生成引用ASN.1類型賦值的ASN.1類型定義(“Defied-Type”)。10.2.2如果“DefinedType”被插入一個(gè)ASN.1模塊(例如M),而不是其他ASN.1模塊,參考的ASN.1類型賦值也將被插入。作為實(shí)現(xiàn)時(shí)的選項(xiàng),“DefinedType”應(yīng)是“typereference”或“ExternalTypeReference”,不是“ExternalTypeReference”類型賦值,就是“typereference”類型賦值。注:對(duì)于任何合法輸入模式,映射所創(chuàng)建的所有ASN.1“typereference”都是唯一的,因此,不必將一個(gè)在其他ASN.1模塊中定義了的類型作為“ExternalTypeReferen10.3標(biāo)識(shí)符和類型引用名的生成10.3.1本條通過本文件其他條明確調(diào)用來生成ASN.1類型引用名或標(biāo)識(shí)符。10.3.2屬性聲明、元素聲明、模型組定義、頂層簡單類型定義以及頂層復(fù)雜類型定義的名稱可以和ASN.1的保留關(guān)鍵字相同,也可以包含ASN.1標(biāo)識(shí)符或ASN.1類型引用名中不允許出現(xiàn)的字符。另外,存在這種情況,ASN.1名需區(qū)別于對(duì)應(yīng)XSD模式組件的名。10.3.3應(yīng)該對(duì)要映射到ASN.1名的每個(gè)字符串依次應(yīng)用下列轉(zhuǎn)換步驟,在此情況下,每步轉(zhuǎn)換(第一步除外)應(yīng)用于前一步轉(zhuǎn)換的結(jié)果:——字符“”(空格)、“.”(英文句號(hào))和“_”(下劃線)應(yīng)全部替換為“-”(減號(hào)連字);——除了“A”到“Z”(大寫拉丁字母A到Z)、“a”到“z”(小寫拉丁字母a到z)、“0”到“9”(數(shù)字0到9)以及“-”(減號(hào)連字符)外的字符應(yīng)刪除;——連接串中的兩個(gè)或多個(gè)減號(hào)連接符應(yīng)替換為單個(gè)減號(hào)連接符;——出現(xiàn)在名開始和結(jié)尾的減號(hào)連接符應(yīng)刪除;——用作類型引用名的字符串如果以小寫字母開頭,則第一個(gè)字母應(yīng)大寫(轉(zhuǎn)換成大寫);如果以數(shù)字(數(shù)字0到9)開頭,應(yīng)在前面加一個(gè)“X”(大寫字母X)字符;——用作標(biāo)識(shí)符的字符串如果以大寫字母開頭,則第一個(gè)字母應(yīng)小寫(轉(zhuǎn)換成小寫);如果以數(shù)字(數(shù)字0到9)開頭,應(yīng)在前面加一個(gè)“X”(大寫字母X)字符;——用作類型引用名的字符串如果為空,應(yīng)用“X”(大寫字母X)字符替換;——用作標(biāo)識(shí)符的字符串如果為空,應(yīng)用“X”(大寫字母X)字符替換。10.3.4根據(jù)將生成的名稱的種類,應(yīng)用下面三條中的一條。如果生成的名是ASN.1類型賦值的類型引用名,并且通過10.3.3生成的名的字符串標(biāo)識(shí)8GB/T16263.5—xxxx/ISO/IEC8825-5:2021a)通過映射(在任何ASN.1模塊中)預(yù)先生成的其他ASN.1類型賦值的類型引用名;b)XSD模塊中(見附錄A)的類型賦值的類型引用名;c)GB/T16262.1—XXXX的12.38規(guī)定的保留字。那么在10.3.3中生成的字符串應(yīng)附加一個(gè)后綴。后綴由一個(gè)減號(hào)連字符及其后隨的整數(shù)的正則詞匯表示(見W3CXMLSchema第2部分的2.3.1)組成。這個(gè)整數(shù)應(yīng)該是最小正整數(shù),從而使這個(gè)新名稱和任何其他先前生成(在任何ASN.1模塊中)的ASN.1類型賦值的類型引用名不同。注:作為這條規(guī)則的結(jié)果,所有在ASN.1規(guī)范中定義的類型引用名都從源XSD模式(包括XSD模塊中定義的標(biāo)準(zhǔn)類型引用)生成,所有引用名在ASN.1規(guī)范中都將是唯一的。它允許以最大靈活性從ASN.1類型賦值生成類型引用如果生成的名稱是一個(gè)序列、集合或選擇類型的組件的標(biāo)識(shí)符,并且按10.3.3生成的字符串和先前生成的同一個(gè)序列、集合或選擇類型的組件的標(biāo)識(shí)符相同,那么應(yīng)按10.3.3生成的這個(gè)字符串加后綴。后綴由一個(gè)減號(hào)連字符及其后隨的整數(shù)的正則詞匯表式(見W3CXMLSchema第2部分的2.3.1)組成。這個(gè)后綴的整數(shù)應(yīng)該是最小正整數(shù),從而使這個(gè)新名稱和任何其他先前生成的那個(gè)序列、集合或者選擇類型的組件的標(biāo)識(shí)符不同。如果生成的名稱是一個(gè)枚舉類型的“EnumerationItem”中的“identifier”,且按“identifier”相同,那么應(yīng)按10.3.3生成的這個(gè)字符串加上后綴。后綴由一個(gè)減號(hào)連字符及其后隨的整數(shù)的正則詞匯表示(見W3CXMLSchema第2部分的2.3.1)組成。這個(gè)后綴的整數(shù)應(yīng)該是最小正整數(shù),從而使這個(gè)新標(biāo)識(shí)符和該ASN.1枚舉類型中已經(jīng)出現(xiàn)的任何其他“EnumerationItem”中的標(biāo)識(shí)符不同。10.3.5對(duì)于將10.3應(yīng)用于元素聲明、屬性聲明、頂層復(fù)雜類型定義,或者頂層簡單類型定義的名稱生成的ASN.1類型引用名(或標(biāo)識(shí)符),如果所生成的這個(gè)ASN.1類型引用名(或標(biāo)識(shí)符)和相關(guān)的名稱不同,則應(yīng)按下面三條的規(guī)定給帶有該類型引用名的ASN.1類型賦值(或帶有該標(biāo)識(shí)的組件)分配一個(gè)最終NAME編碼指令。如果僅是首字母的區(qū)別(即類型引用名中是大寫字母而名稱中的是小寫字母),那么NAME編碼指令中的“Keyword”就應(yīng)是UNCAPITALIZED。如果僅是首字母的區(qū)別(即標(biāo)識(shí)符中是小寫字母而名稱中的是大寫字母),那么NAME編碼指令中的“Keyword”就應(yīng)是CAPITALIZED。否則,NAME編碼指令中的“NewName”就應(yīng)是該名稱。<xsd:complexTypename="COMPONENTS"><xsd:elementname="Elem"type="xsd:<xsd:elementname="elem"type="xsd:integer"/><xsd:elementname="Elem-1"type="xsd:boo<xsd:elementname="elem-1"type="xsd:integer"上面的列子映射為ASN.1類型賦值:COMPONENTS-1∷=[NAMEAS"COMPONENTS"]SEQUENCE{elem[NAMEASCAPITALIZED]BOOLEAN,9GB/T16263.5—xxxx/ISO/IEC8825-5:2021elem-1[NAMEAS"elem"]INTEGER,elem-1-1[NAMEAS"Elem-1"]BOOLEAN,elem-1-2[NAMEAS"elem-1"]INTEGER}10.3.6對(duì)于通過將10.3應(yīng)用于元素聲明、屬性聲明、頂層復(fù)雜類型定義,或者頂層簡單類型定義的名生成的ASN.1類型引用名(或標(biāo)識(shí)符),如果模式組件的目標(biāo)名稱空間不是不存在的,則最終NAME-SAPCE編碼指令應(yīng)分配給帶有類型引用名的ASN.1類型賦值(或是分配給那個(gè)標(biāo)識(shí)符已命名了的類型),且應(yīng)說明這個(gè)模式組件的目標(biāo)名稱空間。10.3.7對(duì)于通過將10.3映射于帶有枚舉約束的簡單類型定義生成ASN.1標(biāo)識(shí),生成的標(biāo)識(shí)與對(duì)于的枚舉約束值的名不同,最終TEXT編碼指令應(yīng)分配給ASN.1枚舉類型,質(zhì)量信息規(guī)定在枚舉類型的“EnumerationItem”中的“identifier”。下面兩條中的一條適用。如果僅是首字母不同(在標(biāo)識(shí)符中是小寫,在枚舉約束的某個(gè)值中是大寫),那么TEXT編碼指令中的“Keyword”就應(yīng)是CAPITALIZED。否則,TEXT編碼指令中的“NewName”應(yīng)是枚舉約束的某個(gè)值。10.4映射次序10.4.1要確定在源XSD模式的頂層模型組件上執(zhí)行映射的次序。這適用于模型組定義、頂層復(fù)雜類型定義、頂層簡單類型定義、頂層屬性聲明,以及頂層元素聲明。注:其他頂層模式組件不映射到ASN.1,XSD內(nèi)置10.4.2下面三條規(guī)定了映射排序。對(duì)于頂層模式組件,首先按它們的目標(biāo)名稱空間排序,排序時(shí),將缺省名稱空間置于XSD模式中規(guī)定的所有名稱空間名稱之前,以詞典編撰順序的升序排序排列。在每一個(gè)目標(biāo)名稱空間中,頂層模式組件應(yīng)分為如下排序的四個(gè)集合:a)元素聲明;b)屬性聲明;c)復(fù)雜類型定義和簡單類型定義;d)模型組定義。每個(gè)集合(見)中,模式組件按名稱,以詞典編撰順序的升序排序。10.4.3兩個(gè)ASN.1類型賦值集通過下述映射生成:a)一個(gè)ASN.1類型賦值集(見第13章、第14章、第15章、第17章以及第20章)與頂層模式組件直接對(duì)應(yīng),它們的類型引用名來自沒有后綴的模式組件名;b)另一個(gè)ASN.1類型賦值集(見第29章、第30章以及第31章)與頂層模式組件的特殊應(yīng)用相對(duì)應(yīng),它們的類型引用名由帶后綴模式組件名稱生成。注:源XSD模式中的每個(gè)頂層模式組件,最多能生成一個(gè)10.4.3a)中集合的ASN.1類型賦值,但在10.4.3b)集合中所列的ASN.1類型賦值可以生成多個(gè)A10.4.4在10.4.3a)中的ASN.1類型賦值集,應(yīng)按照所對(duì)應(yīng)的XSD模式組件(見10.4.1)的順序來生成,且應(yīng)在10.4.3b)生成類型賦值之前生成。10.4.5在10.4.3b)中的ASN.1類型賦值應(yīng)按下列順序生成:a)給定兩個(gè)頂層模式組件SC1和SC2,且SC1先于SC2,按照10.4.1所述順序,與SC1(如果有的話)相對(duì)應(yīng)的所有的ASN.1類型賦值應(yīng)在與SC2相對(duì)應(yīng)的任何類型賦值生成之前生成;b)在任何給定模式組件相對(duì)應(yīng)的每種類型賦值集中,類型賦值應(yīng)按照第29章到第31章規(guī)定的后綴排序生成,如下:1)后綴“-nillable”;2)后綴“-nillable-default-”;GB/T16263.5—xxxx/ISO/IEC8825-5:20213)后綴“-nillable-fixed-”;4)后綴“-derivations”;5)后綴“-deriv-default-”;6)后綴“-deriv-fixed-”;7)后綴“-deriv-nillable”;8)后綴“-deriv-nillable-default-”;9)后綴“-deriv-nillable-fixed-”;10)后綴“-group”;c)包含b)中的2)、3)、5)、6)、8)以及9)項(xiàng)的每組類型賦值集對(duì)應(yīng)任何給定模式組件以及任何給定后綴,這些類型賦值應(yīng)按照第29章規(guī)定的后綴的字典字母升序來生成。11XSD內(nèi)置類型的映射使用11.1本章由本文件中其他章明確調(diào)用來生成一個(gè)與XSD內(nèi)置類型使用相對(duì)應(yīng)的ASN.1類型定義。注:除xsd:anyType是一個(gè)復(fù)雜類型定義外,所有的XSD11.2XSD內(nèi)置類型的使用應(yīng)根據(jù)表2映射到ASN.1類型定義,表2給出要使用的ASN.1類型定義。符號(hào)“XSD.Name”表明ASN.1類型定義應(yīng)是通過使用10.2由對(duì)應(yīng)的ASN.1類型賦值所生成的ASN.1類型來定義(一個(gè)“DefinedType”),且該ASN.1類型賦值存在于XSD{joint-iso-itu-tasn1(1)specification(0)modules(0)xsd-module(2)version1(1)}模塊(見附錄A)或者XSD{joint-iso-itu-tasn1(1)specification(0)modules(0)xsd-module(2)version2(2)}模塊(見附錄B)。表2與XSD內(nèi)置類型使用相對(duì)應(yīng)的ASN.1類型定義anyURIanySimpleTypeXSD.AnySimpleTypeIntegerINTEGERXSD.AnyTypeorXSD.AnyType-nillablelanguageXSD.Language[BASE64]OCTETSTRINGbooleanBOOLEANNCNameXSD.DatenegativeIntegerdateTimeXSD.DateTimeNMTOKENdecimalXSD.DecimalNMTOKENSXSD.NMTOKENSdoublenonNegativeIntegerdurationXSD.DurationnonPositiveIntegerENTITIESXSD.ENTITIESnormalizedStringXSD.NormalizedStringXSD.NOTATIONfloatXSD.FloatpositiveIntegergDayXSD.GDayQNameXSD.QNamegMonthshortXSD.ShortgMonthDaystringGB/T16263.5—xxxx/ISO/IEC8825-5:2021XSD.GYeartimegYearMonthXSD.GYearMonthtokenXSD.TokenhexBinaryOCTETSTRINGunsignedByteXSD.IDunsignedintXSD.UnsignedIntXSD.IDREFunsignedLongXSD.UnsignedLongunsignedShortXSD.UnsignedShort11.3xsd:anyType作為元素聲明的類型定義來使用,且其值不為空時(shí)應(yīng)映射為XSD.AnyType。xsd:anyType作為元素聲明的類型定義來使用且其值為空時(shí)應(yīng)映射為XSD.AnyType-nillable。12映射約束本章由本文件中其他章明確調(diào)用來映射簡單類型定義的約束。ASN.1類型定義對(duì)應(yīng)STD時(shí),簡單類“Enumeration”(見12.4.1和12.4.2)。在這種情況下,不會(huì)從約束中產(chǎn)生ASN.1約束(見12.1.2、12.2.1、12.3.1和12.5.1)。12.1長度、最小長度和最大長度約束12.1.1當(dāng)XSD的內(nèi)置類型為:xsd:QName和xsd:NOTATION以及任何源自于這些類型的限制的簡單類型定義時(shí),應(yīng)忽略長度、最小長度和最大長度約束。12.1.2若簡單類型定義包括長度、最小長度和最大長度約束,以及被映射到ASN.1“Enumeration”(見12.4.1和12.4.2)的枚舉約束,那么不滿足長度、最小長度和最大長度約束的枚舉約束值的成員(若有)“Enumeration”不應(yīng)包含“EnumerationItem”。12.1.3否則,簡單類型定義的長度、最小長度和最大長度約束應(yīng)該映射為ASN.1長度約束,如表3所示。表3長度、最小長度和最大長度所對(duì)應(yīng)的ASN.1長度約束ASN.1長度約束length=valueminLength=minmaxLength=max(SIZE(0..max))minLength=minmaxLength=max12.2模式約束12.2.1若一個(gè)簡單類型定義,既有一個(gè)模式約束,又有一個(gè)映射到ASN.1“Enumeration”的枚舉約“EnumerationItem”。12.2.2否則,模式約束應(yīng)該映射為一個(gè)用戶自定義約束。下列為兩個(gè)映射適用條款。若模式約束的值是一個(gè)單正則表達(dá)式,用戶定義約束應(yīng)為:(CONSTRAINEDBY{/*XMLrepresentationoftheXSDpattern"xyz"*/})GB/T16263.5—xxxx/ISO/IEC8825-5:2021其中“xyz”是模式約束值的XML表述,但如果子串“*/”出現(xiàn)在模式約束值中,應(yīng)該用“/”替若模式約束的值是一個(gè)正則表達(dá)式的組合連接(通常情況),則不指定用戶定義約束(但可見12.5.4)。12.3空白約束12.3.1若空白約束具有簡單類型定義的替換或折疊的值,簡單類型定義又有一個(gè)映射到ASN.1“Enumeration”的枚舉約束(見12.4.1和12.4.2),則以下三條適用。若枚舉約束的值成員(若有)包含任何以下字符:HORIZONTALTABULATION,NEWLINE,或CARRIAGERETURN,或(在折疊情況下)以SPACE字符開始、結(jié)尾或出現(xiàn)多個(gè)連續(xù)SPACE字符,則其“Enumeration”中不包含“EnumerationItem”。若空白約束的值是替換且一個(gè)帶限定信息的最終TEXT編碼指令分配給ASN.1類型定義,則最終WHITESPACEREPLACE編碼指令也應(yīng)該分配給它。若空白約束的值是折疊且一個(gè)帶限定信息的最終TEXT編碼指令分配給ASN.1類型定義,則最終WHITESPACECOLLAPSE編碼指令也應(yīng)該分配給它。12.3.2否則,至多滿足以下三條之一:若空白約束的值是保留,則空白約束應(yīng)忽略。若空白約束的值是替換,并且簡單類型定義對(duì)應(yīng)的ASN.1類型定義是一個(gè)ASN.1受限字符TABULATION、NEWLIN或CARRIAGERETURN字符。最終WHITESPACECOLLAPSE編碼指令應(yīng)該分配給ASN.1類型定義。下面是需使用許可字母表約束或等同許可字母表約束:(FROM({0,0,0,32}…{0,16,255,255}))若空白約束的值是折疊,并且簡單類型定義所對(duì)應(yīng)的ASN.1類型定義是一個(gè)ASN.1受限字符串類型,則規(guī)定的許可字母表約束和禁止頭、尾或多個(gè)連續(xù)的空格字符(SPACE)的模式約束都應(yīng)該添加到ASN.1類型定義,以除去HORIZONTALTABULATION、NEWLIN或CARRIAGERETURN字符。最終WHITESPACECOLLAPSE編碼指令應(yīng)該分配給ASN.1類型定義。下面是需使用模式約束或等同的模式約束:12.4枚舉約束12.4.1當(dāng)一個(gè)枚舉約束屬于一個(gè)有多個(gè)原子類型的簡單類型定義,且簡單類型定義(直接或間接)源自于xsd:string約束,則它不應(yīng)該映射為“Enumeration”,此ASN.1的“Enumeration”對(duì)應(yīng)于簡單類型定義(見13.4),在以下四條進(jìn)行了相關(guān)規(guī)定。對(duì)于枚舉約束的值的成員,“EnumerationItem”應(yīng)添加一個(gè)標(biāo)識(shí)符“Enumeration”(符合12.1.2、12.2.1、12.3.1、12.5.1)。每個(gè)標(biāo)識(shí)符應(yīng)由10.3對(duì)應(yīng)的枚舉約束的值的成員來生成。枚舉約束的值的成員應(yīng)按照字典字母升序映射,并且任何重復(fù)的成員應(yīng)刪除。若簡單類型定義有一個(gè)帶保留或替換值的空白約束,則枚舉類型應(yīng)分配至少有一個(gè)最終TEXT編碼指令,最終TEXT編碼指令的限定信息顯示一個(gè)或更多“EnumerationItem”,而不是“TextToBeUsed”。注:一個(gè)重要的示例是有枚舉約束的xsd:string受限信GB/T16263.5—xxxx/ISO/IEC8825-5:202112.4.2當(dāng)一個(gè)枚舉約束屬于一個(gè)(直接或間接)源自于xsd:integer受限信息的簡單類型定義,且簡單類型定義有多個(gè)原子類型,則枚舉約束不應(yīng)映射成ASN.1約束。相反,約束應(yīng)映射成ASN.1的“Enumeration”,ASN.1枚舉類型對(duì)應(yīng)于簡單類型定義(見13.5),見下列四條的規(guī)定。對(duì)于每個(gè)枚舉約束的值的成員,都應(yīng)在"Enumeration"中添加一個(gè)類型為"NamedNumber"的"EnumerationItem"(符合12.1.2、12.2.1、12.3.1、12.5.1)。每個(gè)“NamedNumber”中的“identifier”應(yīng)通過連接字符串“int”與相應(yīng)的枚舉約束的值的成員的正則詞匯表達(dá)式(見W3CXML模式第2部分2.3.1)連接起來生成?!癗amedNumber”中“SignedNumber”應(yīng)是ASN.1的值的表示法(整數(shù))。枚舉約束的值的成員應(yīng)該按數(shù)值升序排序映射,且應(yīng)刪除任何重復(fù)成員。12.4.3其他枚舉約束應(yīng)映射為ASN.1約束,該約束是與枚舉值的成員相對(duì)應(yīng)的單個(gè)值或單個(gè)值的并集。注:枚舉約束應(yīng)用于base類型定義的值域。因此,對(duì)于XSD內(nèi)置類型為xsd:QName或xsd:NOTATION的枚舉,在XML表示中確定生成單一值的ASN.1約束生成的[USE-QNAME]SEQUENCE的uri組件值的XSD構(gòu)架的組成部分,<xsd:simpleTypename="state"><xsd:restrictionbase="xsd:string"><xsd:enumerationvalue="off"/><xsd:enumerationvalue="on"/></xsd:restriction></xsd:simpleType>State::=[NAMEASUNC示例2:下面描述了一個(gè)頂層簡單類型定義,它是帶枚舉約束的受限xsd:integer:<xsd:simpleTypename="integer-0-5-10"><xsd:restrictionbase="xsd:integer"><xsd:enumerationvalue="0"/><xsd:enumerationvalue="5"/><xsd:enumerationvalue="10"/></xsd:restriction></xsd:simpleType><xsd:simpleTypename="integer-1-10"><xsd:restrictionbase="xsd:integer"><xsd:minInclusivevalue="1"/><xsd:maxInclusivevalue="10"/></xsd:restriction></xsd:simpleType>GB/T16263.5—xxxx/ISO/IEC8825-5:2021示例4:下面描述了一個(gè)頂層簡單類型定義,它是另一個(gè)受限(有minInclusive約束)簡單類型定義,派生自帶<xsd:simpleTypename="multiple-of-4"><xsd:restriction><xsd:simpleType><xsd:restrictionbase="xsd:integer"><xsd:minInclusivevalue="1"/><xsd:maxInclusivevalue="10"/></xsd:restriction></xsd:simpleType><xsd:minExclusivevalue="5"/></xsd:restriction></xsd:simpleType>示例5:下面描述了一個(gè)頂層簡單類型定義,它是另一個(gè)受限(有最小長度和最大長度約束)簡單類型定義,派生自有附加枚舉約束的xsd:string元素。<xsd:simpleTypename="color"><xsd:restriction><xsd:simpleType><xsd:restrictionbase="xsd:string"><xsd:enumerationvalue="white"/><xsd:enumerationvalue="black"/><xsd:enumerationvalue="red"/></xsd:restriction></xsd:simpleType><xsd:minLengthvalue="2"/><xsd:maxLengthvalue="4"/></xsd:restriction></xsd:simpleType>12.5其他約束12.5.1若一個(gè)簡單類型定義,既有總數(shù)位、小數(shù)位、數(shù)值上界、數(shù)值上確界、數(shù)值下界和數(shù)值下確界約束,又有映射到一個(gè)ASN.1“Enumeration”(見12.4.1和12.14.2)的枚舉約束,那么對(duì)于那些不滿足總數(shù)位、小數(shù)位、數(shù)值上界、數(shù)值上確界、數(shù)值下界和數(shù)值下確界約束的枚舉約束的值成員(若有),其“Enumeration”中不包含“EnumerationItem”。12.5.2若一個(gè)簡單類型定義有數(shù)值上界、數(shù)值上確界、數(shù)值下界和數(shù)值下確界約束,而無枚舉約束,或有不能映射到ASN.1“Enumeration”的枚舉約束,那么需使用以下兩個(gè)條款:GB/T16263.5—xxxx/ISO/IEC8825-5:2021若此簡單類型定義(直接或間接)派生自一個(gè)XSD內(nèi)置類型:日期或時(shí)間(xsd:date,xsd:dateTime,xsd:duration,xsd:gDay,xsd:gMonth,xsd:gYear,xsd:gYearMonth,xsd:gMonthDay,或xsd:time),那么簡單類型定義的數(shù)值上界、數(shù)值上確界、數(shù)值下界和數(shù)值下確界約束應(yīng)該映射到ASN.1用戶定義約束(見12.5.4)。否則,簡單類型定義的數(shù)值上界、數(shù)值上確界、數(shù)值下界和數(shù)值下確界約束根據(jù)表4應(yīng)該映射到一個(gè)ASN.1值域或單值約束。表4對(duì)應(yīng)于數(shù)值上界、數(shù)值上確界、數(shù)值下界和數(shù)值下確界約束的ASN.1約束maxInclusive=ubmaxExclusive=ubminExclusive=lbminInclusive=lbminInclusive=ubmaxInclusive=lbminInclusive=ubmaxExclusive=lbminExclusive=ubmaxInclusive=lbminExclusive=ubmaxExclusive=lb12.5.3若一個(gè)簡單類型定義有總位數(shù)和小數(shù)位約束而無枚舉約束,或有不能映射到ASN.1“Enumeration”的枚舉約束(見12.4.1和12.4.2),那么簡單類型定義的總數(shù)位和小數(shù)位約束應(yīng)該映射到一個(gè)用戶定義約束(見12.5.4)。12.5.4當(dāng)一個(gè)約束映射到一個(gè)ASN.1用戶定義約束時(shí),推薦約束和其值出現(xiàn)在用戶定義約束的ASN.1注釋里。用戶定義的約束形式本文件不做明確規(guī)定。13簡單類型定義映射13.1本章由本文件中其他條明確調(diào)用來生成ASN.1類型賦值或與簡單類型定義所對(duì)應(yīng)的ASN.1類型定義。13.2一個(gè)頂層簡單類型定義應(yīng)映射為一個(gè)ASN.1類型賦值。10.3應(yīng)用于簡單類型定義的名應(yīng)生成“TypeAssignment”中“typereference”。根據(jù)13.4到13.9,“TypeAssignment”中“Type”應(yīng)成為ASN.1類型定義。13.3一個(gè)匿名簡單類型定義根據(jù)13.4到13.9的各條應(yīng)映射到一個(gè)ASN.1類型定義。13.4對(duì)于帶枚舉約束的原子類型的簡單類型定義且它(直接或間接)派生自xsd:string限制元素,ASN.1類型定義應(yīng)是一個(gè)ASN.1枚舉類型,其枚舉類型的“Enumeration”根據(jù)12.4.1規(guī)定生成。13.5對(duì)于帶枚舉約束的原子類型的簡單類型定義且它(直接或間接)派生自xsd:integer限制元素,ASN.1類型定義應(yīng)是一個(gè)ASN.1枚舉類型,其枚舉類型的“Enumeration”根據(jù)12.4.2規(guī)定生成。最終USE-NUMBER編碼指令應(yīng)分配給ASN.1枚舉類型。13.6對(duì)于帶枚舉約束的任何原子類型的其他任何簡單類型定義(設(shè)為D)直接或間接派生自頂層簡單類型定義,第23章應(yīng)用于頂層簡單類型定義(設(shè)為B)生成ASN.1類型定義,使得:GB/T16263.5—xxxx/ISO/IEC8825-5:2021a)D通過限制元素,派生(直接或間接)于B;b)或者B是D的基本類型定義,或從B到D的所有中間派生步驟都是匿名的簡單類型定義。那么對(duì)D(若有)的任何約束,第12章應(yīng)用于添加到ASN.1類型定義的約束,會(huì)生成一個(gè)ASN.1約束。13.7對(duì)于其他簡單類型定義(設(shè)為D),若其有原子類型,將第23章應(yīng)用于XSD內(nèi)置類型(設(shè)為B),將生成ASN.1類型定義,使得:a)D通過限制元素派生(直接或間接)于B;b)或者B是D的基本類型定義,或從B到D的所有中間派生步驟都是匿名的簡單類型定義。那么對(duì)D(若有)的任何約束,第12章用于添加到ASN.1類型定義的約束應(yīng)生成一個(gè)ASN.1約束。13.8對(duì)于其他簡單類型定義(設(shè)為D),若其帶有原子類型列表,應(yīng)用以下五條。13.8.1ASN.1類型定義應(yīng)是一個(gè)ASN.1序列類型,其類型序列組件是第23章應(yīng)用于item類型定義時(shí)生成的“Type”類型。13.8.2對(duì)于D約束的每一種,一個(gè)ASN.1約束通過將第12章中用于約束產(chǎn)生的限制應(yīng)添加到ASN.1序列類型。13.8.3如果列表項(xiàng)的簡單類型定義是xsd:string或是xsd:string的限制元素,并映射到一個(gè)ASN.1字符串類型;那么需要將許可字母表約束(FROM((0,0,0,33)..(0,16,255,253)))應(yīng)用到ASN.1字符串類型。13.8.4如果列表項(xiàng)的簡單類型定義是一個(gè)聯(lián)合類型,那么需要將13.8.3中規(guī)定的子約束應(yīng)用到ASN.1選擇類型中每個(gè)候選類型,ASN.1選擇類型是通過在可選類型上使用內(nèi)部子約束的字符串類型。13.8.5一個(gè)最終LIST編碼指令應(yīng)該分配給ASN.1序列類型。<xsd:simpleTypename="list-of-float"><xsd:listitemType="xsd:float"/></xsd:simpleType>13.9對(duì)于任何其他有聯(lián)合類型的簡單類型定義(設(shè)為D),需要應(yīng)用以下五條。13.9.1對(duì)于成員類型定義的每個(gè)成員,ASN.1類型定義應(yīng)是一個(gè)具有替代的ASN.1選擇類型?!癗amedType”中的“identifier”通過將10.3應(yīng)用于成員名稱(若該成員是XSD內(nèi)置類型或一個(gè)頂層簡單類型定義)或應(yīng)用于字符串“alt”(若成員是一個(gè)匿名簡單類型定義)而生成,并且將第23章應(yīng)用于成員類型定義時(shí),“NamedType”的“Type”應(yīng)是生成的ASN.1類型定義。13.9.3對(duì)于為匿名簡單類型定義的成員類型定義,對(duì)應(yīng)的“NamedType”應(yīng)有一個(gè)最終NAMEAS””編碼指令。13.9.4對(duì)于D約束的每一個(gè)方面,ASN.1約束通過將第12章應(yīng)用于添加到ASN.1選擇類型的約束上而生成。13.9.5最終USE-UNION編碼指令應(yīng)該分配給ASN.1選擇類型。<xsd:simpleTypename="decimalOrBinary"><xsd:union><xsd:simpleType><xsd:restrictionbase="xsd:decimal"/>GB/T16263.5—xxxx/ISO/IEC8825-5:2021</xsd:simpleType><xsd:simpleType><xsd:restrictionbase="xsd:float"/></xsd:simpleType></xsd:union></xsd:simpleType>DecimalOrBinary∷=[NAMEASUNCAPITALIZED][USE-UNION]CHOICE{alt[NAMEAS""]XSD.Decimal,alt-1[NAMEAS""]XSD.Float}14元素聲明映射14.1本章由本文件中其他條明確調(diào)用來生成ASN.1類型賦值或與元素聲明所對(duì)應(yīng)的ASN.1類型定注:元素聲明上的值約束通常會(huì)影響到映射。然而,8.10顯示了元素聲明映射具有值約束的情況,值約束的類型定義是xsd:QName或xsd:NOTATION或XSD內(nèi)置類型的限制14.2對(duì)頂層元素聲明應(yīng)予以忽略。14.3一個(gè)非抽象頂層元素聲明應(yīng)該映射到一個(gè)ASN.1類型賦值?!癟ypeAssignment”中“typere-ference”通過將10.3應(yīng)用于元素聲明的名稱而生成,并且“TypeAssignment”的“Type”應(yīng)是一個(gè)在14.5中規(guī)定的ASN.1類型定義。14.4一個(gè)本地元素聲明應(yīng)按14.5的規(guī)定映射為ASN.1類型定義。14.5第23章、第26章或第27章(見14.6)應(yīng)用于簡單類型定義或復(fù)雜類型定義(它們是元素聲明中類型定義),10.2應(yīng)用于(ASN.1類型賦值是根據(jù)第29章作用于類型定義上生成的)生成ASN.1類型定義。在這兩種情況下,元素聲明中值約束(若有)需提供可用的章條(第23章、第26章、第27章或第29章),并在產(chǎn)生的本條規(guī)定的ASN.1類型定義中使用這些條款。14.6根據(jù)下列條件選擇表5的內(nèi)容后,可從表5的最后一列獲得可用的條款編號(hào):a)元素聲明是否有可替換或不可替換的類型定義(見14.7);b)元素聲明是否為nillable或non-nillable;c)類型定義是否為簡單類型定義或復(fù)雜類型定義;d)類型定義是否為XSD內(nèi)置類型,還是匿名,或是頂層類型定義。表5元素聲明映射時(shí)的條款編號(hào)可否替代nillable類型定義可用條編號(hào)否否簡單或復(fù)雜XSD內(nèi)置、匿名或頂層否是否是頂層否是復(fù)雜XSD內(nèi)置、匿名或頂層否是復(fù)雜是是或否簡單或復(fù)雜XSD內(nèi)置、匿名或頂層GB/T16263.5—xxxx/ISO/IEC8825-5:202114.7當(dāng)出現(xiàn)短語“有一個(gè)可替換的類型定義”應(yīng)用到元素聲明時(shí),是指該元素聲明的類型定義是一個(gè)頂層簡單類型定義或復(fù)雜類型定義,它們作為另一個(gè)頂層簡單類型定義或復(fù)雜類型定義的基本類型定義出現(xiàn)。注:根據(jù)此定義,元素聲明的類型定義為XSD內(nèi)置類型xsd:anyType時(shí),15屬性聲明映射15.1本章由本文件中其他條明確調(diào)用來生成ASN.1類型賦值或與屬性聲明所對(duì)應(yīng)的ASN.1類型定15.2頂層屬性聲明映射到ASN.1類型賦值?!癟ypeAssignment”中的“typereference”應(yīng)通過將10.3用于屬性聲明的名來生成,并且“TypeAssignment”的“Type”應(yīng)是一個(gè)在14.5中規(guī)定的ASN.1類型定義。最終ATTRIBUTE編碼指令應(yīng)被分配給ASN.1類型賦值。15.3本地屬性聲明應(yīng)映射為在14.5中規(guī)定的ASN.1的類型定義。15.4ASN.1的類型定義應(yīng)通過第23章應(yīng)用于屬性聲明中的類型定義來生成。16簡單類型定義值映射16.1本章由本文件中其他條明確調(diào)用來生成與簡單類型定義值所對(duì)應(yīng)的ASN.1“Value”。16.2在簡單類型定義的值域上的給定值V,并且:a)ASN.1類型定義從簡單類型定義映射;b)V用正則詞匯表示法(見W3CXML模式第2部的2.3.1V應(yīng)被映射成一個(gè)ASN.1基本值符號(hào)(值符號(hào)用于ASN.1類型定義的抽象值),在EXTENDED-XER中,正則詞匯表示是一個(gè)有效的“ExtendedXMLValue”編碼。17模型組定義映射17.1本章由本文件中其他條明確調(diào)用來生成與模型組定義對(duì)應(yīng)的ASN.1類型賦值。17.2一個(gè)模型組定義中如果它的模型組有序列或選擇序列則應(yīng)映射為一個(gè)ASN.1類型賦值。將10.3應(yīng)用于模型組定義的名,應(yīng)生成“TypeAssignment”中的“typereference”,且將第18章應(yīng)用于模型組定義的名,應(yīng)生成“TypeAssignment”中的“Type”。18模型組映射18.1本章由本文件中其他條明確調(diào)用來生成與模型組所對(duì)應(yīng)的ASN.1類型定義。注:某些情況下本條不會(huì)被每個(gè)模型組調(diào)用。例如,模型組有一個(gè)全排序時(shí)不會(huì)映射到ASN.1,但其粒子模式組件18.2具有一個(gè)序列的排序的模型組會(huì)映射到ASN.1序列類型。對(duì)模型組中順序編排的粒子模式組件而言,零個(gè)或多個(gè)ASN.1“NamedType”序列表應(yīng)根據(jù)第19章應(yīng)用于原子而產(chǎn)生,并且這些“NamedType”應(yīng)以相同順序添加到類型序列中。一個(gè)最終UNTAGGED編碼指令應(yīng)分配給類型序列。18.3具有一個(gè)選擇的序列且其排序至少有一個(gè)粒子模式組件的模型組,將被應(yīng)映射到一個(gè)ASN.1選擇類型。對(duì)模型組中順序編排的粒子模式組件而言,“NamedType”應(yīng)根據(jù)第19章應(yīng)用于粒子而產(chǎn)GB/T16263.5—xxxx/ISO/IEC8825-5:2021生,并且這些“NamedType”應(yīng)以相同順序添加到選擇類型中。一個(gè)最終UNTAGGED編碼指令應(yīng)分配給選擇類型。18.4無粒子的選擇的排序模型組應(yīng)映射到一個(gè)ASN.1內(nèi)置類型NULL。19粒子映射19.1本章由本文件中其他條明確調(diào)用來生成與粒子對(duì)應(yīng)的零個(gè)或多個(gè)ASN.1“NamedType”有序的注1:本條款不會(huì)被每個(gè)粒子調(diào)用。例如,一個(gè)復(fù)雜類型定義的內(nèi)容類型的頂層粒子,若它的項(xiàng)是有序排列的模型注2:在多數(shù)據(jù)情況下,本條款生成一個(gè)單一“NamedType”。僅當(dāng)一個(gè)序列模型組件的粒子包“NamedType”。在此情況下,內(nèi)序列模型組19.2以下三條定義了本文件第19章的其余部分使用的術(shù)語。19.2.1若minoccurs和maxoccurs都為1,那么:a)若粒子的項(xiàng)是一個(gè)與模型組定義無關(guān)的有序的排序,且粒子自身屬于一個(gè)有序的排序的模型組,則粒子稱為“pointlesssequenceparticle”;a)否則,粒子稱作“mandatorypresenceparticle”。19.2.2若minoccurs為0而maxoccurs為,那么:a)若粒子的映射是為了產(chǎn)生一個(gè)ASN.1序列類型的一個(gè)組件,則該粒子稱作“optionalpresenceparticle”;b)否則,粒子稱作“optionalsingle-occurrenceparticle”。19.2.3若maxoccurs大于或等于2,則粒子稱為“multiple-occurrenceparticle”。19.3一個(gè)“pointlesssequenceparticle”應(yīng)映射為一個(gè)零或多個(gè)“NamedType”的有序列表(設(shè)為L)。列表L應(yīng)初始化為空。對(duì)于模型組(即粒子的有序術(shù)語)中的每個(gè)粒子(設(shè)為P),通過反復(fù)使用第19章內(nèi)容,粒子P會(huì)生成一個(gè)零或多個(gè)“NamedType”的有序列表,且這些“NamedType”應(yīng)以相同的順序添加到列表L中。19.4一個(gè)“mandatorypresenceparticle”或“optionalpresenceparticle”應(yīng)該映射成以下兩種條款規(guī)定中的“NamedType”。19.4.1“NamedType”的“identifier”應(yīng)通過將10.3應(yīng)用于符合19.6的字符串來生成,“NamedType”的“Type”應(yīng)通過將19.7應(yīng)用于粒子中的術(shù)語來生成。19.4.2若粒子是“optionalpresenceparticle”,則“NamedType”之后應(yīng)緊隨OPTIONAL關(guān)鍵字。19.5一個(gè)“optionalsingle-occurrenceparticle”或“multiple-occurrenceparticle”應(yīng)根據(jù)下面六種子條款規(guī)定來生成“NamedType”。19.5.1通過將10.3在“NamedType”的“identifier”后增加后綴”-list”字符串(見19.6)來生成,“NamedType”的“Type”是類型序列。19.5.219.5.2除minoccurs為0且maxoccurs為unbounded外,一個(gè)長度約束應(yīng)根據(jù)表6添加到類型序列中。表6minoccurs到maxoccurs區(qū)間所對(duì)應(yīng)的ASN.1長度約束ASN.1長度約束minoccurs=nmaxoccurs=nSIZE(n)GB/T16263.5—xxxx/ISO/IEC8825-5:2021n≥2minoccurs=minmaxoccurs=maxmax>minandmax≥2SIZE(min..max)minoccurs=0maxoccurs=1SIZE(0..1)minoccurs=minmaxoccurs=unboundedmin≥1SIZE(min..max)19.5.3若粒子的項(xiàng)是元素聲明,則類型序列組件應(yīng)是“NamedType”。此“Name“identifier”應(yīng)據(jù)10.3生成元素聲明的“name”,“NamedType”的“Type”應(yīng)通過將19.7應(yīng)用于粒子中的術(shù)語來生成。19.5.4若粒子的項(xiàng)是通配符,則類型序列組件應(yīng)是“NamedType”。此“NamedType”的“identifier”應(yīng)為elem且“NamedType”的“Type”應(yīng)通過將19.7應(yīng)用于粒子的術(shù)語來生成。19.5.5若粒子的項(xiàng)是模型組,則類型序列組件應(yīng)是“Type”且應(yīng)通過將19.7應(yīng)用于粒子的術(shù)語來生19.5.6最終UNTAGGED編碼指令應(yīng)分配給類型序列。19.6對(duì)應(yīng)于粒子產(chǎn)生的“NamedType”中“identifier”所使用的字符串應(yīng)是:a)若粒子中的項(xiàng)是一個(gè)元素聲明,“identifier”為元素聲明的名;b)若粒子中的項(xiàng)是一個(gè)模型組定義的模型組,“identifier”為模型組定義的名;c)若粒子中的項(xiàng)是一個(gè)與模型組定義無關(guān)的有序的排序的模型組,“identifier”為字符串“sequence”;d)若粒子中的項(xiàng)是一個(gè)與模型組定義無關(guān)的選擇的排序的模型組,“identifier”為字符串“choice”;e)若粒子中的項(xiàng)是一個(gè)通配符,“identifier”為字符串“elem”。19.7對(duì)應(yīng)于粒子(見19.4)的“NamedType”中的“Type”,或?qū)?yīng)于粒子的“SequenceOfType”中的“NamedType”的“Type”應(yīng)是:a)若粒子中的項(xiàng)為一個(gè)頂層元素聲明(組元素替代頭僅包含自身頭的),則ASN.1類型定義(一個(gè)“DefinitionType”)依據(jù)10.2生成符合第14章的元素聲明的ASN.1類型賦值;注1:包括沒有元素聲明的一般情況,引用此元素b)若粒子中的項(xiàng)是頂層元素聲明,其組元素替代標(biāo)頭至少包含多于一個(gè)元素的標(biāo)頭,則ASN.1類型定義(一個(gè)“DefinitionType)依據(jù)10.2生成符合第31章的元素聲明的ASN.1類型賦值;注2:若頭是元素聲明,那么它是抽象的,它不是元素自身的替代組成員。在此種情況下,若替代組至少有一個(gè)成員,那么條款b)適用;而若成員的數(shù)量為1,則替代組將映射c)若粒子中的項(xiàng)是一個(gè)抽象的頂層元素聲明,且該元素聲明為一個(gè)空元素替代組的頭,則ASN.1內(nèi)置類型為NULL;d)若粒子中的項(xiàng)是一個(gè)本地元素聲明,則ASN.1類型定義依據(jù)第14章生成元素聲明;e)若粒子中的項(xiàng)是一個(gè)模型組定義的模型組,則ASN.1類型定義(“DefinitiinType)依據(jù)10.2生成符合第17章的模型組定義的ASN.1類型賦值;f)若粒子中的項(xiàng)是一個(gè)與模型組定義無關(guān)的模型組,則ASN.1類型定義依據(jù)第18章生成模型注3:這包括這種情況,即一個(gè)的模型組內(nèi)重新定義包含一個(gè)自我參考。原始模型組定義的模型組,被復(fù)制到一個(gè)新結(jié)構(gòu),在此與一個(gè)模型組定義無關(guān)。因?yàn)樵寄P徒M定義自身不會(huì)復(fù)制到新結(jié)構(gòu)(新模型組定義有不同的g)若粒子中的項(xiàng)是一個(gè)通配符,則ASN.1類型定義依據(jù)第21章生成通配符。GB/T16263.5—xxxx/ISO/IEC8825-5:202120復(fù)雜類型定義映射20.1本章由本文件中其他條明確調(diào)用來生成與復(fù)雜類型定義對(duì)應(yīng)的ASN.1類型賦值或類型定義。20.2頂層復(fù)雜類型定義應(yīng)映射到ASN.1類型賦值?!癟ypeAssignment的“typereference應(yīng)依據(jù)10.3生成復(fù)雜類型定義的名,其中“TypeAssignment”的“Type”應(yīng)是符合20.4到20.11所指定的ASN.1類型定義。20.3匿名的復(fù)雜類型定義應(yīng)映射到符合20.4到20.11所指定的ASN.1類型定義。20.4ASN.1類型定義應(yīng)是一個(gè)ASN.1序列的類型,根據(jù)下面的20.5到20.11規(guī)定,0個(gè)或多個(gè)組件應(yīng)被有序地添加到序列中。20.5若復(fù)雜類型定義的內(nèi)容類型是混合內(nèi)容模型,那么組件應(yīng)添加到ASN.1序列類型。該組件中“NamedType”的“identifier”值應(yīng)是embed-values的,并且“NamedType”的“Type”應(yīng)是一個(gè)類型的序列,該類型的序列組件“Type”依據(jù)第23章要求,生成XSD內(nèi)置類型xsd:string,最后EMBED-VALUES編碼指令應(yīng)分配給ASN.1序列類型。20.6若復(fù)雜類型定義的內(nèi)容類型是一個(gè)項(xiàng)為帶所有序列的模型組件的粒子,那么組件應(yīng)添加到ASN.1序列類型。該組件的“NamedType”的“identifier”應(yīng)是順序的,并且“NamedType”應(yīng)是組件為“EnumeratedType”的類型。對(duì)模型組的每個(gè)的粒子(其術(shù)語總是一個(gè)元素聲明),一個(gè)“EnumerationItem”應(yīng)有序地添加到“Enumeration”,其中“EnumerationItem”的“identifier”與對(duì)應(yīng)的每個(gè)粒子的“NamedType”的“identifier”相一致。最后,USE-ORDER編碼指令分配給ASN.1序列類型。注:當(dāng)每一個(gè)組件被添加到序列類型,“NamedType

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論