Примеры кодирования 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 |
917</dateOfHire><nameOfSpouse><givenName>Mary</givenName><initial>T</initial><familyName>Smith</ |
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</ |