ГОСТ Р ИСО 21090—2016
7.9.2.3 Равенство
Поскольку тип данных COLL является абстрактным, равенство его экземпляров не определено.
7.9.3 Тип данных DSET (дискретное множество)
7.9.3.1 Описание
Специализация типа данных COLL
Параметр: Т : ANY
Неупорядоченная коллекция, содержащая различные дискретные значения.
Правильные (не имеющие причин пустоты nullFlavor) дискретные множества не должны содер
жать дублирующие элементы. В контексте использования должно быть определено, каким образом
сравниваются элементы при проверке их уникальности во множестве. По умолчанию определение
уникальности основано на правилах равенства, определенных в настоящем стандарте. Дискретные
множества не должны содержать равные значения и не должны содержать пустые элементы или
элементы, имеющие причину пустоты nullFlavor, для которых равенство не может быть определе
но. При фактическом использовании дискретного множества в контексте его использования может
быть указано альтернативное определение уникальности элементов. Оно может разрешать наличие в
правильном множестве элементов с причиной пустоты nullFlavor. Во избежание неоднозначности в
объявлениях соответствия элементов обработки информации, предусматривающих альтернативные
определения уникальности элементов множества, должно быть точно указано, как такие определе
ния представлены.
В то время как правильные множества (не имеющие элементов с причинами пустоты nullFlavor) не
содержат элементы, не отвечающие определению уникальности, дискретные множества с причинами
пустоты nullFlavor могут содержать элементы с дублируемыми значениями или со значениями, имею
щими причины пустоты nullFlavor. Учтите, что дискретные множества, помеченные как обязательные, не
могут иметь причину пустоты nullFlavor и поэтому не могут содержать такие значения.
7.9.3.2 Синтаксис ИСО/МЭК 11404
type DSET {Т :ANY) - class {
validTimeLow : characterstring,
validTimeHigh : characterstring,
controlInformationRoot :characterstring,
controlInformationExtension : characterstring,
nullFlavor : NullFlavor,
updateMode : L‘pdateMode,
flavorld : Set (characterstring),
item : Bag(T>
)
Примечание — Тип данных DSET описывает множество дискретных элементов. Если элементы при
надлежат упорядоченному, но дискретному домену (например, целые числа типа INT) и представляют собой по
следовательность смежных значений, например. 2. 3, 4. 5. то это же самое множество может быть описано типом
данных QSET, к примеру. IVL(2..5). Однако во всех других случаях между экземплярами типов данных OSET и
DSET нет пересечений.
7.9.3.3 Атрибуты
7.9.3.3.1 item : Bag(T): содержание множества
Это пример шаблона обертки примитивного типа данных. Дополнительные сведения приведены
в 6.3.
Элементы содержатся в мультимножестве, поскольку контекст использования точно определяет,
как задается уникальность элементов экземпляра типа DSET. Понятие множества в ядре языка OCL
предполагает фиксированное определение равенства, а именно равенства, задаваемого для типа дан
ных, которое может быть менее детальным, чем в контексте использования. Хотя внутренняя структура
позволяет дубликаты, все элементы множества должны быть уникальными в соответствии с
определе нием. предоставленным контекстом использования. Если в контексте это определение не
выделено, то по умолчанию используются определения равенства, приведенные в настоящем
стандарте.
Примечание — Формальное определение ограничений уникальности здесь не приводится, поскольку
оно является достаточно сложным и его польза не очевидна.
115