Кіріспе
Деректер интерфейсін сипаттау тілі
Abstract Syntax Notation One (ASN.1) – платформааралық түрде тізбектеле (сериалдастырыла) және тізбектелмеуге (десериалдастырыла) болатын дерек құрылымдарын анықтау үшін стандартты интерфейсті сипаттау тілі (IDL). Ол телекоммуникация және компьютерлік желілерде, әсіресе криптографияда кеңінен қолданылады. Протокол әзірлеушілер дерек құрылымдарын ASN.1 модульдерінде анықтайды, олар әдетте ASN.1 тілінде жазылған үлкен стандарттар құжатының бөлігі болып табылады. Оның артықшылығы – ASN.1 деректерді кодтау сипаттамасының нақты компьютер немесе бағдарламалау тіліне тәуелді болмауы. ASN.1 адам және машина оқи алатындықтан, ASN.1 компиляторы модульдерді код кітапханаларына, кодектерге, дерек құрылымдарын кодтауға немесе декодтауға арналған модульдерге түрлендіре алады. Кейбір ASN.1 компиляторлары бірнеше кодтамаларды, мысалы, жинақы (packed), BER немесе XML кодтамаларын кодтауға немесе декодтауға код жасай алады. ASN.1 – Халықаралық телекоммуникация одағының телекоммуникацияны стандарттау секторының (ITU T) ITU T 17 зерттеу тобы және Халықаралық стандарттау ұйымы/Халықаралық электротехникалық комиссияның (ISO/IEC) бірлескен стандарты, алғаш рет 1984 жылы CCITT X.409:1984 стандартының бөлігі ретінде анықталған. 1988 жылы ASN.1 кең қолданылуына байланысты жеке стандарты X.208 стандартына көшті. 1995 жылғы қайта қарастырылған нұсқасы X.680 сериясына жатады. X.680 ұсынымдарының соңғы қайта қаралуы – 2021 жылы жарияланған 6.0 нұсқасы.
Тілдік қолдау
ASN.1 – дерек типін жариялау нотациясы. Ол мұндай типтегі айнымалыны қалай өңдеуді анықтамайды. Айымалыларды өңдеу SDL (Сипаттама және ерекшелеу тілі) сияқты, орындалатын модельдеу үшін немесе TTCN 3 (Тестілеу және тестілеуді басқару нотациясы) сияқты, сәйкестік тестілеуі үшін басқа тілдерде анықталады. Бұл екі тіл ASN.1 жариялауларын түпкілікті қолдайды. ASN.1 модулін импорттап, модульде жарияланған ASN.1 типтерінің кез келгенінің айнымалысын жариялауға болады.
Қолданбалар
ASN.1 көптеген протоколдарды анықтау үшін қолданылады. Оның ең кең таралған қолдануы телекоммуникация, криптография және биометрия болып табылады. + ASN.1 протокол спецификациясын пайдаланатын протоколдар Белгіленген немесе әдеттегі кодтау ережелері Interledger Protocol ILPV4 спецификациясы Окталық кодтау ережелері NTCIP 1103 Тасымалдау басқару протоколдары NTCIP 1103 Окталық кодтау ережелері Қозғалыс, көлік және инфрақұрылымды басқару X.500 Каталог қызметтері ITU X.500 ұсынымдар сериясы Негізгі кодтау ережелері, Ерекше кодтау ережелері LDAP, TLS (X.509) сертификаттары, куәландыру Жеңіл каталогтық кіру протоколы (LDAP) Негізгі кодтау ережелері PKCS криптография стандарттары PKCS криптография стандарттары Негізгі және ерекше кодтау ережелері Асимметриялық кілттер, сертификат жинақтары X.400 Хабарларды өңдеу ITU X.400 ұсынымдар сериясы Электрондық поштаға ерте бәсекелес EMV EMVCo жарияланымдары Төлем карталары T.120 Мультимедиалық конференциялар ITU T.120 ұсынымдар сериясы Негізгі кодтау ережелері, жинақы кодтау ережелері Microsoft-тың қашықтан жұмыс үстелі протоколы (RDP) Жеңіл желілік басқару протоколы (SNMP) Негізгі кодтау ережелері Желілер мен компьютерлерді басқару және бақылау, әсіресе өнімділік пен сенімділікке қатысты сипаттамалар Ортақ басқару ақпараттық протоколы (CMIP) ITU X.711 ұсынысы SNMP-ға бәсекелес, бірақ мүмкіндіктері жоғарырақ және одан әлдеқайда аз танымал Сигналдық жүйе №7 (SS7) ITU Q.700 ұсынымдар сериясы Қоғамдық коммутациялық телефондық желіде (PSTN) телефон қосылыстарын басқару ITU H сериясы Мультимедиалық протоколдар ITU H.200, H.300 және H.400 ұсынымдар сериясы Дауыс Интернет-протоколы арқылы (VOIP) BioAPI өзара әрекеттесу протоколы (BIP) ISO/IEC 24708:2008 Биометриялық ақпарат алмасу форматының жалпы тізбесі (CBEFF) NIST IR 6529 A Негізгі кодтау ережелері Биометрия үшін куәландыру контексттері (ACBio) ISO/IEC 24761:2019 Компьютерлік қолдау көрсетілетін телекоммуникациялық қолданбалар (CSTA) Негізгі кодтау ережелері Арнайы қысқа қашықтықтағы байланыс (DSRC) SAE J2735 Жинақы кодтау ережелері Көлік құралдары арасындағы байланыс IEEE 802.11p (IEEE WAVE) IEEE 1609.2 Көлік құралдары арасындағы байланыс Интеллектуалды көлік жүйелері (ETSI ITS) ETSI EN 302 637 2 (CAM) ETSI EN 302 637 3 (DENM) Сәйкестендірілмеген жинақы кодтау ережелері Көлік құралдары арасындағы байланыс Ұялы байланыс жүйесі (GSM) 2G ұялы телефон байланысы Жалпы пакеттік радио қызметі (GPRS) / GSM эволюциясы үшін күшейтілген деректер жылдамдығы (EDGE) 2.5G ұялы телефон байланысы 3G ұялы телефон байланысы Ұзақ мерзімді эволюция (LTE) 4G ұялы телефон байланысы 5G 5G ұялы телефон байланысы Ортақ ескерту протоколы (CAP) XML кодтау ережелері Ескерту туралы ақпаратты алмасу, мысалы, Amber ескертулері Ұшқыш-бақылаушы деректер байланысы (CPDLC) Әуе кеңістігі байланысы Космикалық байланыс қызметтері (SLE) Космикалық жүйелер байланысы Өндіріс хабарламасының спецификациясы (MMS) ISO 9506 1:2003 Өндіріс файлдарын беру, кіру және басқару (FTAM) Файлдарды беру протоколына ерте және мүмкіндіктері жоғарырақ бәсекелес, бірақ қазірде сирек қолданылады. Қашықтан басқару қызмет элементі протоколы (ROSE) ITU X.880, X.881 және X.882 ұсынымдары Қашықтан процедуралық шақырудың алғашқы түрі Қауымдастық бақылау қызмет элементі (ACSE) ITU X.227 ұсынысы Ғимараттарды автоматтандыру және басқару желілері протоколы (BACnet) ASHRAE 135 2020 BACnet кодтау ережесі Өрт сигнализациясы, лифтілер, HVAC жүйелері және т.б. сияқты ғимараттарды автоматтандыру және басқару. Kerberos Негізгі кодтау ережесі Қауіпсіз куәландыру WiMAX 2 Кең ауқымды желілер Интеллектуалды желі ITU Q.1200 ұсынымдар сериясы Телекоммуникациялар және компьютерлік желілер X2AP Негізгі сәйкестендірілген жинақы кодтау ережесі Заңды тыңдау (LI) Тапсыру интерфейсі ETSI TS 102 232 1 Заңды тыңдау
Кодтау
ASN.1 дерек құрылымын байттар тізбегі ретінде көрсету тәсілін анықтайтын кодтау ережелері жиынтығымен тығыз байланысты. Стандартты ASN.1 кодтау ережелері: + ASN.1 кодтау ережелері rowspan=2 Объект сәйкестендіргіші Объект сипаттамасы мәні rowspan=2 rowspan=2 rowspan=2 rowspan=2 rowspan=2 rowspan=2 Сипаттама Нүктелі IRI (Internationalized resource identifier) 2.1.1 /ASN.1/Basic Encoding Бір ASN.1 түрінің негізгі кодтауы ITU X.690 Октаты ✔ ✔ Бірінші көрсетілген кодтау ережелері. Элементтерді тег-ұзындық-мәнді (TLV) тізбектер ретінде кодтайды. Әдетте дерек мәндерін кодтаудың бірнеше нұсқасын ұсынады. Бұл ең икемді кодтау ережелерінің бірі. 2.1.2.1 /ASN.1/BERDerived/DistinguishedEncoding Бір ASN.1 түрінің ерекше кодтауы ITU X.690 Октаты ✔ ✔ Базалық кодтау ережесінің (BER) шектеулі жиынтығы. Көбінесе цифрлық қолтаңбаланған нысандар үшін қолданылады, себебі DER кодтау үшін азырақ мүмкіндіктер бар және DER кодталған мәндер дәл сол байттарда қайта кодталуы мүмкін, сондықтан берілген абстрактілік мән бойынша жасалған цифрлық қолтаңбалар барлық іске асыруларда бірдей болады және DER кодталған деректерге жасалған цифрлық қолтаңбалар соқтығысуға негізделген шабуылдарға аз бейім. 2.1.2.0 /ASN.1/BERDerived/CanonicalEncoding Бір ASN.1 түрінің канондық кодтауы ITU X.690 Октаты ✔ ✔ Базалық кодтау ережесінің (BER) шектеулі жиынтығы. Бөлінген кодтау ережелері (DER) сияқты көптеген шектеулерді қолданады, бірақ ерекше айырмашылығы - CER көптеген үлкен мәндерді (әсіресе жолдарды) 1000 байт немесе 1000 символ белгісінде (дерек түріне байланысты) жекеше кішкентай жол элементтеріне "бөлу" керектігін көрсетеді. 2.1.3.0.0 /ASN.1/PackedEncoding/Basic/Aligned Бір ASN.1 түрінің (негізгі сәйкестендірілген) қаптамалы кодтауы ITU X.691 Бит ✔ Біттердегі мәндерді кодтайды, бірақ егер кодталған биттер сегізге толық бөлінбесе, онда мәнді кодтайтын октаттардың толық саны болғанға дейін толтыру биттері қосылады. Өте ықшам кодтамаларды жасауға қабілетті, бірақ күрделілік есебінен, және PER дерек түрлеріне қойылған шектеулерге қатты тәуелді. 2.1.5.0 /ASN.1/XMLEncoding/Basic Бір ASN.1 түрінің негізгі XML кодтауы ITU X.693 Символ ✔ ✔ ✔ ASN.1 деректерін XML ретінде кодтайды. 2.1.6.0 Бір ASN.1 түрінің негізгі OER кодтауы ITU X.696 Октаты ✔ Октеттердегі мәндерді кодтайтын, бірақ негізгі кодтау ережелері (BER) сияқты тегтерді немесе ұзындық анықтамаларын кодтамайтын кодтау ережелерінің жиынтығы. Октат кодтау ережесін қолдану арқылы кодталған дерек мәндері көбінесе "жазбаға негізделген" протоколдарда кездесетіндерге ұқсайды. Октат кодтау ережесі (OER) оңай іске асыру және Базалық кодтау ережесінен (BER) жасалған кодтамаларға қарағанда ықшам кодтамаларды жасау үшін жасалды. Кодтаушы/декодтаушыларды әзірлеуге жұмсалатын күшті азайтудан басқа, OER пайдалану жолақты пайдалануды азайта алады (бірақ қаптамалы кодтау ережелеріне қарағанда аз), процессор циклдарын үнемдейді және кодтау/декодтаудың кідірісін азайтады. ITU X.697 Символ ✔ ✔ ✔ ASN.1 деректерін JSON түрінде кодтайды. 1.2.36.79672281.0.0 Жалпы жол кодтау ережесі (GSER) ✔ Адам оқи алатын мәндерді жасайтын кодтау ережесінің толық емес сипаттамасы. GSER мақсаты кодталған деректерді пайдаланушыға немесе пайдаланушыдан кіріс деректерді өте қарапайым форматта ұсыну болып табылады. GSER бастапқыда Жеңіл каталогқа қол жеткізу протоколы (LDAP) үшін жасалған және одан тыс жерде сирек қолданылады. GSER-ді нақты протоколдарда пайдалану ұсынылмайды, себебі ASN.1 қолдайтын барлық жолдарды оның құрамына енгізу мүмкін емес. ASHRAE 135 Октаты ✔ ✔ ✔ Элементтерді тег-ұзындық-мәнді (TLV) тізбектері ретінде кодтайды, сияқты Базалық кодтау ережесі (BER). France Telecom R&D Ішкі құжат Октаты ✔ ✔ Көбінесе GSM және SS7 сияқты телекоммуникациямен байланысты протоколдарда қолданылады. ASN.1-де көрсетілмеген бұрынғы протоколдар шығаратын бірдей кодтаманы жасау үшін жасалған. INRIA-ның ішкі құжаты. Жады сөзі ✔ INRIA-ның "Flat Tree Light Weight Syntax" (FTLWS) егжей-тегжейлі сипаттайтын ішкі құжатынан алынған. 1997 жылы қаптамалы кодтау ережелерінің (PER) жоғары өнімділігіне байланысты тоқтатылды. Үлкен енділік немесе кіші енділік тарату, сондай-ақ 8 бит, 16 бит және 32 бит жад сөздері. (Осылайша, алты нұсқа бар, себебі осы нұсқалардың алты комбинациясы бар.) Бит 1980 жылдары ұсынылған. Қаптамалы кодтау ережелері (PER) сияқты мүмкіндігінше ықшам болу үшін жасалған. Бит NEMA жасаған толық емес кодтау ережесінің сипаттамасы. Ол толық емес, себебі ол барлық ASN.1 дерек түрлерін кодтай және декодтай алмайды. Қаптамалы кодтау ережелері (PER) сияқты ықшам. "Жылдам желілер үшін кодтау ережесі" Бұл кодтау ережесінің анықтамасы INRIA-ның Flat Tree Light Weight Syntax (FTLWS) жұмысының нәтижесі болды.
+ ASN.1 Encoding Rules rowspan=2 Object identifier Object descriptor value rowspan=2 rowspan=2 rowspan=2 rowspan=2 rowspan=2 Description Dotted IRI (Internationalized resource identifier) 2.1.1 /ASN.1/Basic Encoding Basic Encoding of a single ASN.1 type ITU X.690 Octet ✔ ✔ The first specified encoding rules. Encodes elements as tag length value (TLV) sequences. Typically provides several options as to how data values are to be encoded. This is one of the most flexible encoding rules. 2.1.2.1 /ASN.1/BERDerived/DistinguishedEncoding Distinguished encoding of a single ASN.1 type ITU X.690 Octet ✔ ✔ A restricted subset of the Basic Encoding Rules (BER). Typically used for things that are digitally signed because, since the DER allow for fewer options for encoding, and because DER encoded values are more likely to be re encoded on the exact same bytes, digital signatures produced by a given abstract value will be the same across implementations and digital signatures produced over DER encoded data will be less susceptible to collision based attacks. 2.1.2.0 /ASN.1/BERDerived/CanonicalEncoding Canonical encoding of a single ASN.1 type ITU X.690 Octet ✔ ✔ A restricted subset of the Basic Encoding Rules (BER). Employs almost all of the same restrictions as the Distinguished Encoding Rules (DER), but the noteworthy difference is that the CER specify that many large values (especially strings) are to be "chopped up" into individual substring elements at the 1000 byte or 1000 character mark (depending on the data type). 2.1.3.0.0 /ASN.1/PackedEncoding/Basic/Aligned Packed encoding of a single ASN.1 type (basic aligned) ITU X.691 Bit ✔ Encodes values on bits, but if the bits encoded are not evenly divisible by eight, padding bits are added until an integral number of octets encode the value. Capable of producing very compact encodings, but at the expense of complexity, and the PER are highly dependent upon constraints placed on data types. 2.1.5.0 /ASN.1/XMLEncoding/Basic Basic XML encoding of a single ASN.1 type ITU X.693 Character ✔ ✔ ✔ Encodes ASN.1 data as XML. 2.1.6.0 Basic OER encoding of a single ASN.1 type ITU X.696 Octet ✔ A set of encoding rules that encodes values on octets, but does not encode tags or length determinants like the Basic Encoding Rules (BER). Data values encoded using the Octet Encoding Rules often look like those found in "record based" protocols. The Octet Encoding Rules (OER) were designed to be easy to implement and to produce encodings more compact than those produced by the Basic Encoding Rules (BER). In addition to reducing the effort of developing encoder/decoders, the use of OER can decrease bandwidth utilization (though not as much as the Packed Encoding Rules), save CPU cycles, and lower encoding/decoding latency. ITU X.697 Character ✔ ✔ ✔ Encodes ASN.1 data as JSON. 1.2.36.79672281.0.0 Generic String Encoding Rules (GSER) Character ✔ An incomplete specification for encoding rules that produce human readable values. The purpose of GSER is to represent encoded data to the user or input data from the user, in a very straightforward format. GSER was originally designed for the Lightweight Directory Access Protocol (LDAP) and is rarely used outside of it. The use of GSER in actual protocols is discouraged since not all character string encodings supported by ASN.1 can be reproduced in it. ASHRAE 135 Octet ✔ ✔ ✔ Encodes elements as tag length value (TLV) sequences like the Basic Encoding Rules (BER). France Telecom R&D Internal Document Octet ✔ ✔ Used primarily in telecommunications related protocols, such as GSM and SS7. Designed to produce an identical encoding from ASN.1 that previously existing protocols not specified in ASN.1 would produce. Internal document by INRIA. Memory Word ✔ Originates from an internal document produced by INRIA detailing the "Flat Tree Light Weight Syntax" (FTLWS). Abandoned in 1997 due to the superior performance of the Packed Encoding Rules (PER). Optionally Big Endian or Little Endian transmission as well as 8 bit, 16 bit, and 32 bit memory words. (Therefore, there are six variants, since there are six combinations of those options.) Bit Proposed in the 1980s. Meant to be as compact as possible, like the Packed Encoding Rules (PER). Bit An incomplete encoding rule specification produced by NEMA. It is incomplete because it cannot encode and decode all ASN.1 data types. Compact like the Packed Encoding Rules (PER). "Coding Rules for High Speed Networks" Definition of these encoding rules were a byproduct of INRIA's work on the Flat Tree Light Weight Syntax (FTLWS).
Кодтаудың бақылау белгісі
ASN.1 ұсыныстары бірқатар алдын ала анықталған кодтау ережелерін ұсынады. Егер қолданыстағы кодтау ережелерінің ешқайсысы да қолайлы болмаса, Кодтауды Басқару Нотациясы (ECN) пайдаланушыға өзінің қажетті кодтау ережелерін жасауға мүмкіндік береді.
Құпиялылық-көшейткіш пошта (PEM) кодтамасына қатысты
Құпиялылықты арттырылған электрондық пошта (PEM) кодтамасы ASN.1 және оның кодектерімен ешқандай қатысы жоқ, бірақ ASN.1 деректері, көбінесе екілік форматта болады, мәтіндік деректер түрінде тарату үшін, мысалы SMTP релелері арқылы немесе көшіру/қою буферлері арқылы жіберуге қолайлы болуы үшін PEM кодтамасына айналдырылады.
ұқсас схемалармен салыстыру
ASN.1 мақсаты мен қолданылуы бойынша Google протоколы буферлеріне және Apache Thrift-ке ұқсас, олар да кросс-платформалық деректерді сериалдау үшін интерфейсті сипаттау тілдері болып табылады. Бұл тілдердегідей, оның схемасы (ASN.1-де "модуль" деп аталады) және әдетте тип-ұзындық-мәнді кодтамалар жиынтығы бар. Олардан айырмашылығы, ASN.1 бірден-бір және оңай қолданылатын ашық бастапқы кодты іске асыруды қамтамасыз етпейді және үшінші тарап жеткізушілері іске асыратын спецификация ретінде жарияланады. Дегенмен, 1984 жылы анықталған ASN.1, олардан көп жылдар бұрын пайда болды. Ол сондай-ақ негізгі деректердің кең түрлерін қамтиды, олардың кейбіреулері ескірген, және кеңейтуге көбірек мүмкіндіктер береді. Бір ASN.1 хабарламасы бірнеше стандарттарда, тіпті жылдар бойы анықталған стандарттардағы бірнеше модульдерден деректерді қамтуы мүмкін. ASN.1 мәндер мен өлшемдерге қатысты шектеулерді де қолдайды. Мысалы, модуль 0 мен 100 аралығында болуы тиіс бүтін сан өрісін көрсете алады. Мәндер тізбесінің (массивтің) ұзындығын да белгіленген ұзындығы немесе рұқсат етілген ұзындықтар диапазоны ретінде көрсетуге болады. Шектеулерді негізгі шектеулер жиынтығының логикалық комбинациялары ретінде де көрсетуге болады. Шектеу ретінде қолданылатын мәндер PDU спецификациясында қолданылатын литеральдер немесе схема файлының басқа бөлігінде көрсетілген ASN.1 мәндері болуы мүмкін. Кейбір ASN.1 құралдары осы ASN.1 мәндерін бағдарламашыларға жасалған бастапқы кодта қолжетімді етеді. Бұл мәндер белгіленген протоколдың тұрақтылары ретінде пайдаланылады, және әзірлеушілер оларды протоколдың логикалық іске асырылуында қолдана алады. Осылайша, барлық PDU және протокол тұрақтыларын схемада анықтауға болады, және протоколдың кез келген тілдегі іске асырылуы осы мәндерге сүйенеді. Бұл әзірлеушілерге протокол тұрақтыларын өздерінің іске асыруының бастапқы кодында қолмен енгізу қажеттігін жояды. Бұл протоколды әзірлеуге көмектеседі; протоколдың тұрақтыларын ASN.1 схемасында өзгертуге болады, және барлық іске асырылулар қайта құрастыру арқылы жаңартылады, бұл жылдам және аз тәуекелді даму циклын қамтамасыз етеді. Егер ASN.1 құралдары жасалған бастапқы кодта шектеулерді тексеруді дұрыс іске асырса, бұл бағдарлама жұмыс істеп тұрғанда протокол деректерін автоматты түрде растайды. Әдетте ASN.1 құралдары сериялау/сериясыздық процедураларына шектеулерді тексеруді қосады, және шектен тыс деректер кездессе қателер немесе ерекшеліктер тудырады. ASN.1 компиляторында ASN.1 шектеулерінің барлық аспектілерін іске асыру қиын. Барлық құралдар мүмкін шектеулер өрнектерінің толық спектрін қолдамайды. XML схемасы мен JSON схемасы да ұқсас шектеулер тұжырымдамаларын қолдайды. Құралдың шектеулерді қолдау деңгейі әртүрлі. Microsoft-тың xsd.exe компиляторы оларды елемейді. ASN.1 сырт көрінісі жағынан көптеген интернет-протоколдарды, мысалы HTTP және SMTP-ді анықтау үшін қолданылатын кеңейтілген Backus Naur формасына (ABNF) ұқсас. Дегенмен, іс жүзінде олар мүлдем басқаша: ASN.1 әртүрлі жолдармен кодталатын деректер құрылымын анықтайды (мысалы, JSON, XML, екілік). ABNF, керісінше, деректер құрылымын ("семантика") анықтағанда бірге кодтаудың ("синтаксис") анықтайды. ABNF көбінесе мәтіндік, адам оқи алатын протоколдарды анықтау үшін қолданылады, және әдетте тип-ұзындық-мәнді кодтамаларды анықтау үшін қолданылмайды. Көптеген бағдарламалау тілдері тілге тән сериалдау форматтарын анықтайды. Мысалы, Python-ның "pickle" модулі және Ruby-дің "Marshal" модулі. Бұл форматтар әдетте тілге тән. Олар сондай-ақ схеманы қажет етпейді, бұл оларды арнайы сақтау сценарийлерінде пайдалануға оңай, бірақ байланыс протоколдары үшін қолайсыз. JSON және XML-ге де схема қажет емес, сондықтан оларды пайдалану оңай. Олар сондай-ақ екі платформалық стандарттар, олар байланыс протоколдары үшін кеңінен танымал, әсіресе JSON схемасы немесе XML схемасымен біріктірілген кезде. Кейбір ASN.1 құралдары ASN.1 мен XML схемасы (XSD) арасында аударуға қабілетті. Аударма ITU ұйымымен стандартталған. Бұл протоколды ASN.1-де, сондай-ақ автоматты түрде XSD-де анықтауға мүмкіндік береді. Осылайша, жобада XSD схемасын ASN.1 құралдарымен құрастыруға болады, ол объектілерді JSON сым форматына/одан сериалдайтын бастапқы кодты шығарады (бәлкім, дұрыс емес). Практикалық қолданылуы басқа қосымша жобаларға ASN.1 схемасының орнына XSD схемасын пайдалануға рұқсат беру болып табылады, мүмкін, қосымша жобалардың таңдаған тілі үшін құралдардың қолдауын ескере отырып, XER протоколдың сым форматы ретінде қолданылады. Толықрақ мәлімет алу үшін, деректерді сериалдау форматтарының салыстыруына қараңыз.