Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 8825-4-2009 Информационная технология (ИТ). Правила кодирования АСН.1. Часть 4. Правила XML кодирования (XER)

     
Приложение А
(справочное)

     
Примеры кодирования BASIC-XER и CXER


Данное приложение иллюстрирует применение базовых и канонических правил XML кодирования, определенных в настоящем стандарте. Приложение содержит XML разметку представления (гипотетической) записи данных о персонале, которая определена с использованием АСН.1.

А.1 АСН.1 описание структуры записи

Структура гипотетической кадровой записи данных описана ниже с использованием АСН.1, определенной в ИСО/МЭК 8824-1. Приведенный пример идентичен описанному в приложении А ИСО/МЭК 8825-1.

PersonnelRecord::= [APPLICATION 0] IMPLICIT SET {

name

Name,

title

[0] VisibleString,

number

EmployeeNumber,

dateOfHire

[1] Date,

nameOfSpouse

[2] Name,

children

[3] IMPLICIT

SEQUENCE OF Childlnformation DEFAULT {}}

Childlnformation ::=SET

{ name

Name,

dateOfBirth

[0] Date}

Name ::= [APPLICATION 1] IMPLICIT SEQUENCE

{ givenName

VisibleString,

initial

VisibleString,

familyName

VisibleString}

EmployeeNumber::= [APPLICATION 2] IMPLICIT INTEGER

Date ::= [APPLICATION 3] IMPLICIT VisibleString - YYYYMMDD


Примечание - В этом примере используются теги только для сравнения с примером ранней версии ИСО/МЭК 8824-1. Они не влияют на BASIC-XER, CXER и EXTENDED-XER XML кодирование.

А.2 АСН.1 описание значений записи

Значение кадровой записи данных John Smith's описано ниже, с использованием основной нотации значений АСН.1:

{ name

{givenName "John", initial "P", familyName "Smith"},

title

"Director",

number

51,

dateOfHire

"19710917",

nameOfSpouse

{givenName "Mary", initial "T", familyName "Smith"},

children

{{ name {givenName "Ralph", initial "T", familyName "Smith"},

dateOfBirth "19571111"},

{ name {givenName "Susan", initial "B", familyName "Jones"},

dateOfBirth "19590717"}}}

A.3 Базовое XML представление значения записи

Представление значения записи, приведенное в А.2 (после применения базовых правил XML кодирования, определенных в настоящем стандарте), показано ниже, предполагается пустой пролог.

Длина этого кодирования в BASIC-XER - 653 октета, без всех разделителей. Для сравнения та же запись, кодированная с UNALIGNED вариантом PER (см. ИСО/МЭК 8825-1) - 84 октета, с ALIGNED вариантом PER - 94 октета, с BER (см. ИСО/МЭК 8825-2) с использованием формы определенной длины - минимум 136 октетов, и с BER с использованием формы неопределенной длины - минимум 161 октет.

<PersonnelRecord>

<name>

<givenName>John</givenName>

<initial>P</initial>

<familyName>Smith</familyName>

</name>

<title>Director</title>

<number>51</number>

<dateOfHire>19710917</dateOfHire>

<nameOfSpouse>

<givenName>Mary</givenName>

<initial>T</initial>

<familyName>Smith</familyName>

</nameOfSpouse>

<children>

<Childlnformation>

<name>

<givenName>Ralph</givenName>

<initial>T</initial>

<familyName>Smith</familyName>

</name>

<dateOfBirth>19571111</dateOfBirth>

</Childlnformation>

<Childlnformation>

<name>

<given Name>Susan</given Name>

<initial>B</initial>

<familyName>Jones</familyName>

</name>

<dateOfBirth>19590717</dateOfBirth>

</Childlnformation>

</children>

</PersonnelRecord>

A.4 Каноническое XML представление значения записи

Представление значения записи, приведенное в А.3 (после применения канонических правил XML кодирования, определенных в настоящем стандарте), показано ниже:

<PersonnelRecord><name><givenName>John</givenName><initial>P</initial><familyName>Smith</fam
ilyName></name><number>51</number><title>Director</title><dateOfHire>19710


917</dateOfHire><nameOfSpouse><givenName>Mary</givenName><initial>T</initial><familyName>Smith</
familyNamex></name


OfSpouse><children><Childlnformation><name><givenName>Ralph</givenName><initial>T</initia

l><familyName>Smith</familyName></name><dateOfBirth>19571111</dateOfBirth>< /Childlnformation

><Childlnformation><name><givenName>Susan</givenName><initial>B</initial><familyName>Jones</
familyName></name><dateOfBirth>19590717</dateOfBirth></Childlnformation></children></Personn
elRecord>