2015-11-04 2 views
0

Я не могу выяснить, который является результатом множества работы расширяемых ограничений в ASN.1, как показано ниже:Что результирующий набор операция расширяемых ограничений в ASN.1

A ::= INTEGER ((1..64, ..., 100..128) INTERSECTION (1..32, ..., 33..120)) 
B ::= INTEGER ((1..64, ..., 100..128) UNION (1..32, ..., 33..120)) 
C ::= INTEGER (1..64, ..., 100..128) (1..32, ..., 33..120) 

Что полученное ограничение из этих типов?

Любая помощь приветствуется.

ответ

1

Первые два определения недействительны, поскольку ... может произойти только на самом верхнем уровне, а не вложенном в несколько круглых скобок, поэтому A и B являются недопустимыми определениями. См. Пункт 50.1 и 50.5 МСЭ-Т X.680.

C также технически недействителен, поскольку значение 120 не находится в базовом диапазоне 1..64 для «родительского типа». Если вы измените 120 до 64, то эффективное ограничение следующим образом:

C :: = INTEGER (1..32, ..., 33..64)

МСЭ-Т X.680 статья 50.10 имеет следующее:

50.10 Если ограничение типа подтипа последовательно применяется к родительскому типу, который может расширяться при приложении расширяемого ограничения, нотация значения, используемая в нем, не должна ссылаться на значения, которые не находятся в корне расширения родительский тип. Результат второго (последовательно примененного) ограничения определяется таким же, как если бы ограничение было применено к родительскому типу без его маркера расширения и возможных добавлений расширения.

+0

Благодарим вас за такие четкие объяснения. Я все еще сомневаюсь, есть ли какие-то противоречия или некоторые из них устарели, как я вижу из примера X.691-0207 [ссылка] (http://www.itu.int/ITU-T/studygroups/com17/languages /X.691-0207.pdf) Приложение B, раздел B.3 (стр. 49): A3 :: = INTEGER ((1..32, ..., 33..128)^(1..128)) , которые имеют маркер расширения в вложенных круглых скобках, т. е. набор расширяемых значений был lhs заданной операции, является ли это законным или нет, или это более новая версия стандарта ASN.1? – Ryan

+0

Привет Райан. Я доведу это до сведения Комитета АСН.1, чтобы обсудить обновление Приложения B. Обратите внимание, что приложение В является «информативным» приложением, а не «нормативным» приложением. Таким образом, правила в тексте X.680 являются обязательными, а не тем, что содержится в этом информационном приложении. –

+0

Спасибо, Пол! – Ryan

Смежные вопросы