ГОСТ Р HCO/HL7 27951—2016
Тип данных ST интерпретирует инкапсулированные данные как символьные (а не битовые) в зависимости от
свойства charset инкапсулированного типа данных.
type- CharacterStгmg alias ST specializes ED t
INT length;
ST headCharacter;
ST tailString;
t;
П р и м е ч а н и е — Поскольку в данном случав многие свойства инкапсулированных данных имеют значе
ния по умолчанию, то в спецификации реализуемой технологии эти свойства вообще не надо предоставлять.
В действительности если кодировка символов также фиксирована, то достаточно представлять только закодиро
ванные символьные данные.
Свойства headCharacter (голова) и tailString (хвост) определяют тип данных ST как последовательность эле
ментов. каждый из которых уникально идентифицирует один символ из объединения наборов всех символов, из
вестных во всех языках мира1*.
Голова типа данных ST представляет собой строку, состоящую ровно из одного символа. Значение типа ST
должно содержать хотя бы один символ, в противном случав оно считается пустым. Значение типа ST. имеющее
нулевую длину, является исключительным значением (NULL), а не допустимым значением.
invariant(ST х>
where x.nonNull (
х.headCharacter.notEmptу;
x.headCharacter.length.equal(1>;
x.headCharactet.te>IStrmg.lsEmpty;
x.tailString.isEmpty.implies(x.length.equal(1)>;
x.
t
ailString.notEmpty.implies
(x
.length.equal
(x .
tailString.length.successor>>;
)i
Длиной значения типа данных ST является число символов, а не число кодированных байтов. Байтовое ко
дирование является предметом спецификации реализуемой технологии, а не прикладного уровня.
К пробельным символам, содержащимся в значениях типа данных ST. применяются следующие правила:
- пробельными символами считаются TAB. пробел и символ конца строки:
- как ведущие, так и концевые пробельные символы считаются значащими;
- различные пробельные символы не являются взаимозаменяемыми:
- различные представления конца строки нормализуются в соответствии с методом, описанным в специфи
кации языка XML (Section 2.11 End-of-Line Handling);
- последовательности пробельных символов не могут сжиматься для получения более коротких последова
тельностей.
Требование
Тип данных ST является специализацией типа данных ED. поэтому каждый атрибут модели RIM. имеющий
тип ED. может быть ограничен до типа данных ST. Наиболее важным случаем является атрибут Act.text, который
имеет тип данных ED. позволяющий указывать ссылки и использовать мультимедийные данные. Однако тип этого
атрибута нередко ограничивается до неформатированного текста.
:| Стандарт ИСО/МЭК 10646-1:1993 определяет символ как «Член множества элементов, используе
мых для организации, управления или представления данных». В техническом отчете ИСО/МЭК ТО 15285 «Ин
формационные технологии. Операционная модель применения графических символов и глифов» обсуждаются
проблемы, связанные с определением понятия символов. Примечательно, что символы рассматриваются как аб
страктные единицы информации, не зависящие от шрифта или языка. В стандарте ИСО 10646 (UNICODE
[http://
VAVw.untcode.org])
(в Японии JIS Х0221) описан глобально применимый набор символов, уникально
идентифициру ющий все символы всех языков мира.
В настоящей спецификации стандарт ИСО 10646 используется как семантическая модель строк символов.
Важный момент состоит в том. что в ней нет понятия отдельных наборов символов и переключения от одного
набора к другому. Наборы символов и их кодировки рассматриваются на уровне спецификации реализуемой тех
нологии. Формальное определение указывает на этот эффект, поскольку каждый символ сам по себе является
значением типа ST. имеющим свойство набора символов charset. Поэтому двоичное кодирование каждого сим
вола всегда осуществляется в контексте определенного набора символов. Это вовсе не означает, что специфика
ция реализуемой технологии всегда должна представлять строку символов как последовательность полновесных
значений типа данных ED. Это значит лишь то. что на прикладном уровне понятие кодировки символов не имеет
значения для обсуждения строк символов.
312