ГОСТ Р ИСО/МЭК 8825-4 — 2009
ются для всех возможных вариантов альтернатив в группе альтернатив, для всех возможных осуществлений
выборочности вгруппе конкатенаций, для всех возможных повторений в группе повторений, идля всех возможных
упорядочений кодировки компонентов набора.
П р и м е ч а н и е — При чтении и реализации следующих пунктов текст уточнения «для всех возможных»
очень важен. Создатели инструментов, определяющих, что является однозначной спецификацией, а что нет.
придется анализировать все возможные комбинации вариантов, выборочности. повторений и порядков.
Б.2.4 Определение требования: не должно быть двух соседних содержаний частичных XML элементов
с одинаковым именем элемента для первого элемента содержания второго частичного XML элемента и содер
жание последнего элемент содержание первого частичного XML элемента, если первый частичный XML элемен
та не требует саморазграничения.
П р и м е р !
—
Содержание частичного XML элемента созданного [UNTAGGED] SEQUENCE,
саморазграничено, если оно не заканчивается элементом OPTIONAL.
П р и м е р 2
—
Содержание частичного XML элемента созданного [UNTAGGED] SEQUENCE OF,
саморазграничено, если оно имеет фиксированное число итераций, которые саморазграниченными.
Это означает, в частности, что SEQUENCE OF[UNTAGGED] SEQUENCE OF INTEGER является неодноз
начным и нарушает 9.2.11, если число повторений во второй SEQUENCE OFне будет фиксированным.
П р и м е р 3
—
Содержание частичного XML элемента, созданного [UNTAGGED] SET, никогда не
саморазграничивается, если оно имеет любые дополнительные элементы.
Б.2.5 Альтернативное определение требований: первые XML элементы альтернативного содержания
частичного XML элемента в группе альтернатив должны иметь различные имена элементов.
П р и м е ч а н и е — Приведенный выше текст не учитывает возможного использования USE-TYPE и
USE-UNION, которые выходят за рамки настоящего приложения.
П р и м е р 4
—
Кодировка:
BadExample1::= CHOICE{
•
-
Первая альтернатива содержания частичное XML элемента
аП1 [UNTAGGED] SEQUENCE {
name UTF8String,
zip-code UTF8String},
аП2 [UNTAGGED] SEQUENCE {
name UTF8String,
post-code UTF8String} }
на самом деле не неоднозначная EXTENDED-XER кодировка (для декодера человека), но она нарушает
вышеуказанные требования, а также нарушает 9.2.11. Это неправильное использование команды
кодирования.
Б.2.6 Вспомогательное определение требований: имена XML элементов первого элемента XML всех после
довательностей опционального содержания частичного XML элемента плюс, что вследующем/следующих обяза
тельных содержаниях частичного XML элемента должны отличаться.
П р и м е ч а н и е — Это означает, в частности, что любое опциональное содержание частичного XML
элемента в конце группы, которая повторяется, и опциональное содержание частичного XML элемента в ее
начале должны иметь различные имена XML элемента, если количество повторений ограничено максимум 1.
Если все содержание частичного XML элемента группы, которая повторяется, не является обязательным, то их
имена XML элементов должны быть различны.
П р и м е р 5
—
Кодировка:
BadExample2::= SEQUENCE OF {
[UNTAGGED] SEQUENCE {
first[UNTAGGED] CommonlnitialParms,
secondMainlnformation.
third[UNTAGGED] CommonEndParms } }
где
CommonlnitialParms
: : =
SEQUENCE { date GeneralizedTime OPTIONAL,
married BOOLEAN}
CommonEndParms::- SEQUENCE { name UTFBString,
date GeneralizedTime OPTIONAL]
нарушает требования опционального определения и нарушает 9.2.11. Это неправильное использование
команды кодирования.
Б.2.7 Требование определения числа повторений: все группы повторения, имеющие число повторений,
которое не закреплено, должны сопровождаться содержанием частичного XML элемента, чей первый XML
70