ГОСТ Р 10.0.06-2019/ИСО 12006-3:2007. Национальный стандарт Российской Федерации. Система стандартов информационного моделирования зданий и сооружений. Строительство зданий. Структура информации об объектах строительства. Часть 3. Основы обмена объектно-ориентированной информацией
(утв. и введен в действие Приказом Росстандарта от 05.06.2019 № 282-ст)
Примечание
Документ введен в действие с 01.09.2019. Взамен ГОСТ Р ИСО 12006-3-2017.
ИСТОРИЯ ИЗМЕНЕНИЙ НОРМАТИВНО-ТЕХНИЧЕСКИХ АКТОВ
flowchart LR n0["ГОСТ Р ИСО 12006-3-2017"]:::rst click n0 "https://bukva.ai/docs/gost-r-iso-12006-3-2017" "ГОСТ Р ИСО 12006-3-2017. Национальный стандарт Российской Федерации. Строительство. Модель организации данных о строительных работах. Часть 3. Основы обмена... (утв. и введен в дей" n1["ГОСТ Р 10.0.06-2019"]:::doc click n1 "https://bukva.ai/docs/gost-r-10-0-06-2019" "ГОСТ Р 10.0.06-2019. Национальный стандарт Российской Федерации. Система стандартов информационного моделирования зданий и сооружений. Строительство зданий. Структура информации об" n0 --> n1 classDef rst fill:#FFEBEB,stroke:#8B0000,color:#000; classDef doc fill:#EBFFEB,stroke:#006400,color:#000; classDef notEnt fill:#FFFFEB,stroke:#FF8C00,color:#000;
Утвержден и введен в действие
Приказом Федерального
агентства по техническому
регулированию и метрологии
от 5 июня 2019 г. № 282-ст
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
СИСТЕМА СТАНДАРТОВ ИНФОРМАЦИОННОГО МОДЕЛИРОВАНИЯ
ЗДАНИЙ И СООРУЖЕНИЙ
СТРУКТУРА ИНФОРМАЦИИ ОБ ОБЪЕКТАХ СТРОИТЕЛЬСТВА
ОСНОВЫ ОБМЕНА ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ ИНФОРМАЦИЕЙ
System of standards on information modeling of buildings
and structures. Building construction. Organization
of information about construction works. Part 3. Framework
for object-oriented information
(ISO 12006-3:2007,
Building construction — Organization of information
about construction works — Part 3: Framework
for object-oriented information, IDT)
1 сентября 2019 года
1 ПОДГОТОВЛЕН Ассоциацией организаций по развитию технологий информационного моделирования в строительстве и ЖКХ (БИМ-Ассоциация) на основе собственного перевода на русский язык англоязычной версии стандарта, указанного в пункте 4
2 ВНЕСЕН Проектным техническим комитетом по стандартизации ПТК 705 «Технологии информационного моделирования на всех этапах жизненного цикла объектов капитального строительства и недвижимости»
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 5 июня 2019 г. № 282-ст
4 Настоящий стандарт идентичен международному стандарту ИСО 12006-3:2007 «Строительство зданий. Структура информации об объектах строительства. Часть 3. Основы обмена объектно-ориентированной информацией» (ISO 12006-3:2007 «Building construction — Organization of information about construction works — Part 3: Framework for object-oriented information», IDT).
Наименование настоящего стандарта изменено относительно наименования указанного международного стандарта для приведения в соответствие с ГОСТ Р 1.5-2012 (пункт 3.5).
При применении настоящего стандарта рекомендуется использовать вместо ссылочных международных стандартов соответствующие им национальные стандарты, сведения о которых приведены в дополнительном приложении ДА
5 ВЗАМЕН ГОСТ Р ИСО 12006-3-2017
Правила применения настоящего стандарта установлены в статье 26 Федерального закона от 29 июня 2015 г. № 162-ФЗ «О стандартизации в Российской Федерации». Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок — в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя «Национальные стандарты». Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost.ru)
Основную часть настоящего стандарта составляет описание спецификации таксономической модели, позволяющей определять понятия по их свойствам, группировать понятия и определять отношения между ними. Основными элементами этой модели являются объекты, коллекции объектов и их отношения (взаимосвязи). Набор свойств, присущих определенному объекту, обуславливает его формальное определение и типичное поведение. Свойства обладают значениями, которые могут выражаться количественно в единицах измерения.
Через модель определяется роль, которую должен играть объект, что дает возможность выявить контекст, в котором этот объект используется. Каждый объект может иметь несколько имен, что позволяет выражать его несколькими синонимами или на нескольких языках. Языковое имя каждого объекта всегда должно указываться на английском языке, служащим языком, используемым по умолчанию. Также объект можно назвать на языке той местности, на которой он определяется или используется. С помощью ссылок объекты могут быть связаны с формальными системами классификации.
В модели есть одна корневая сущность, из которой наследуются следующие три сущности, являющиеся ее подтипами: объекты, коллекции и отношения между ними. Корневая сущность позволяет назначать производным типам любой набор имен, меток, описаний и ссылок на любом языке, а также присваивать идентификаторы и даты.
Все объекты подразделяются на субъекты, действия, акторы, единицы, значения и меры с единицами и свойствами. Субъекты и действия — это описываемые вещи и процессы. Остальные объекты являются описательными сущностями, связанными с другими объектами через отношения.
Отношения обеспечивают механизм связи между объектами. Все отношения подразделяются на следующие основные типы: сопоставления, коллекции, специализации, композиции, участия (воздействия на), присваивания свойств, последовательности и присваивания меры (единиц измерения).
Под коллекциями подразумеваются все виды группирования объектов, включая вложенные коллекции, определенные посредством набора отношений в коллекции.
Свойства являются сущностями, создающими контекст данных, хранящихся в виде значений. Все свойства различаются по типу данных, которые они содержат, среди которых: перечисляемые значения, значения списка, значения ограниченного списка, ограниченные значения, одиночные значения и табличные значения.
Количественное значение того или иного свойства выражается соответствующей единицей измерения и хранится в зависимости от языка программирования в определенной части программы. Другой компонент определяет способ представления любого имени, описания, значения или ссылки, свой для каждого языка.
Модель, описанная в настоящем стандарте, предлагается как связующее звено между системами классификации, описанными в ISO 12006-2 [5] и моделирование продуктов, описанных в нескольких публикациях [2], [3], [6], [7].
В настоящем стандарте описывается не зависящая от языка информационная модель, применяемая при разработке словарей для хранения или предоставления информации о результатах строительных работ.
Она позволяет ссылаться на системы классификации, информационные, объектные и процессные модели в рамках общей структуры.
В настоящем стандарте использованы нормативные ссылки на следующие стандарты:
ISO 10303-11, Industrial automation systems and integration — Product data representation and exchange — Part 11: Description methods: The EXPRESS language reference manual (Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS)
ISO/IEC 10646, Information technology — Universal Coded Character Set (UCS) (Информационные технологии. Универсальный многобайтовый кодированный набор символов (UCS)
Вся информация, указанная как тип String (строкового типа) или разрешающая тип String, должна быть выражена с помощью набора символов UNICODE [8] согласно ИСО/МЭК 10646, желательно с использованием кодировки UTF-8, схемы кодирования UTF-8 и 8-битного формата преобразования UCS Transformation Format 8 [4].
4.1 Общие положения
В настоящем стандарте модель описывается с помощью языка определения данных EXPRESS согласно ИСО 10303-11.
Неформальное описание модели представлено в 4.2 в нотации EXPRESS-G.
Формальное описание модели в нотации EXPRESS представлено в 4.3 (краткое) и 4.4 (подробное).
4.2 Спецификация EXPRESS-G
Неформальная спецификация EXPRESS-G в нотации EXPRES-G приведена на шести диаграммах (рисунки 1 - 6), каждая из которых иллюстрирует одну из частей модели. Все сущности на этих диаграммах описаны формально в 4.3.
На рисунке 1 представлена диаграмма верхнего уровня с xtdRoot, его атрибуты и производные типы xtdObject, xtdRelationship и xtdCollection.
На рисунке 2 представлена диаграмма xtdLanguageRepresentation с его производными типами xtdName и xtdDescription, которые являются атрибутами xtdRoot и его подтипов.
На рисунке 3 представлены выведенные из xtdRelationship типы отношений, используемые для установления возможных отношений между xtdObjects, xtdCollections и xtdExternalDocuments или их подтипами.
На рисунке 4 представлено присвоение xtdProperties на xtdObjects с помощью xtdRelAssignsProperties и xtdMeasureWithUnit с назначением значений с помощью xtdRelAssignsMeasures.
На рисунке 5 представлен список базовых типов, используемых в модели, и соответствующие типы EXPRESS.
На рисунке 6 подробно представлены xtdValue и xtdExternalDocument.
4.3 Спецификация EXPRESS
Данная формальная спецификация представлена на языке EXPRESS.
) SCHEMA ISO_12006_3_VERSION_3; (
xtdDate — определенный тип данных простого типа данных STRING, используемый для буквенно-цифрового представления даты. Рекомендуемый формат представления даты — «YYYY.MM.DD»
Пример - 31 мая 2000 года необходимо записывать как «2000.05.31»
) TYPE xtdDate = STRING; END_TYPE; (
xtdGlobalUniqueID — определенный тип данных простого типа данных STRING, содержащий глобально уникальный идентификатор.
Обычно идентификатор создается с использованием алгоритма (например, публикованного Object Management Group), основанного на IP-адресе компьютера, генерирующего этот идентификатор.
Существуют реализации указанного выше алгоритма, которые можно использовать для создания идентификатора.
Идентификатор представляет собой уникальное 128-битное число. Размер идентификатора рекомендуется сжимать для уменьшения объема служебных данных. Разработчикам следует сжимать идентификатор до строки из 22 символов с помощью алгоритма сжатия с 64 символами в качестве основного набора (кодировка BASE 64). Кодирование основного набора из 64 символов представлено ниже:
Пример - 22-символьная строка «93f09e4A_899402a9$D013» является глобально уникальным идентификатором.
Каждое понятие в библиотеке может иметь только один глобально уникальный идентификатор. Глобально уникальные идентификаторы похожих понятий в различных библиотеках, разрабатываемых независимо друг от друга, могут отличаться. В настоящем стандарте не представлен механизм, автоматически оценивающий похожие понятия с различными глобально уникальными идентификаторами из разных библиотек. Оценка понятий из разных библиотек в целях установления эквивалентности должна проводиться отдельно.
Примечание - Объяснение алгоритма представлено на http://www.opengroup.org/dce/info/draft-leach-uuids-guids-01.txt.
) TYPE xtdGlobalUniqueID = STRING; END_TYPE; (
xtdLabel — определенный тип данных простого типа данных STRING, представляющий собой набор буквенно-цифровых символов UNICODE для наименования объекта.
) TYPE xtdLabel = STRING; END_TYPE; (
xtdText — определенный тип данных простого типа данных STRING, представляющий собой набор буквенно-цифровых символов UNICODE для аннотирования объекта.
) TYPE xtdText = STRING; END_TYPE; (
xtdVersionID — определенный тип данных простого типа данных STRING, представляющий собой набор буквенно-цифровых символов UNICODE для указания версии объекта.
Пример - «1A», «12», «1.1» являются вариантами обозначения версий.
) TYPE xtdVersionID = STRING; END_TYPE; (
xtdToleranceTypeEnum — тип перечислений, представляющий диапазон возможных типов допусков, которые можно применить к значению. Допустимые варианты:
Realvalue — определенный тип эквивалентного типа как значение, выражающее допуск как действительную величину;
Percentage — тип, определяющий процент, выражающий допуск в процентах от значения.
) TYPE xtdToleranceTypeEnum = ENUMERATION OF REALVALUE, PERCENTAGE); END_TYPE; (
xtdValueRoleEnum — тип перечислений, представляющий диапазон возможных типов интерпретации, применяемых к значению. Допустимые варианты:
Nominal — определенный тип, обозначающий значение номинального типа;
Maximum — определенный тип, обозначающий значение, как максимальное.
Minimum — определенный тип, обозначающий значение, как минимальное.
) TYPE xtdValueRoleEnum = ENUMERATION OF (NOMINAL, MAXIMUM, MINIMUM); END_TYPE; (
xtdValueTypeEnum — перечисляемый тип, представляющий диапазон возможных типов простых значений, из которых можно выбирать. Допустимые варианты:
xtdString — определенный тип простого типа STRING для описания.
xtdNumber — определенный тип простого типа STRING.
xtdInteger — определенный тип простого типа INTEGER.
xtdReal — определенный тип простого типа REAL.
xtdBoolean — определенный тип простого типа BOOLEAN.
xtdLogical — определенный тип простого типа LOGICAL.
) TYPE xtdValueTypeEnum = ENUMERATION OF (XTDSTRING, XTDNUMBER, XTDINTEGER, XTDREAL, XTDBOOLEAN, XTDLOGICAL); END_TYPE; (
xtdActivity — специализация xtdObject, представляющая действие или процесс изменения xtdSubject.
Пример - «Кладка кирпича» представляет собой действие или процесс кладки кирпичей и раствора для создания стены или других конструктивных элементов.
) ENTITY xtdActivity SUBTYPE OF (xtdObject); END_ENTITY; (
xtdActor — специализация xtdObject, представляющая актора, действующего на xtdSubject в пределах xtdActivity.
Актором может быть человек, должность, подразделение организации или оборудование.
Пример 1 — «плотник» является xtdActor.
Пример 2 — «Международная организация по стандартизации» является xtdActor.
Пример 3 — «Кран грузоподъемный» может быть использован в качестве xtdActor.
) ENTITY xtdActor SUBTYPE OF(xtdObject); END_ENTITY; (
xtdBag — детализация xtdCollection, не имеющая ограничений на предметы, которые могут входить в эту коллекцию.
Коллекция акторов, действий и субъектов может быть собрана с помощью экземпляра xtdBag.
) ENTITY xtdBag SUBTYPE OF(xtdCollection); END_ENTITY; (
xtdCollection представляет группу или коллекцию предметов. XtdCollection может быть одной из xtdNest или xtdBag.
) ENTITY xtdCollection ABSTRACT SUPERTYPE OF (ONEOF(xtdNest, xtdBag)) SUBTYPE OF (xtdRoot); END_ENTITY; (
xtdDescription содержит описание или определение предмета с помощью текста.
Пример - «Створка двери — это открывающаяся часть двери, позволяющая людям проходить или перемещать предметы» — определительное описание объекта «створка двери» на русском языке.
) ENTITY xtdDescription SUBTYPE OF(xtdLanguageRepresentation); Description :xtdText; INVERSE is_description_of :SET [1:?] OF xtdRoot FOR Descriptions; END_ENTITY; (
Пример - xtdText, содержащий описание или определение.
xtdExternalDocument используется для представления внешних документов, книг или другой письменной информации.
Пример 1 — «ISO 31» является документом.
Пример 2 — «NS 3420» является документом.
*) ENTITY xtdExternalDocument;
UniqueID :xtdGlobalUniqueID;
Names :SET [1:?] OF xtdName;
END_ENTITY; (*
Глобально уникальный идентификатор для внешнего документа.
Набор зависящих от языка имен внешнего документа.
xtdLanguage представляет язык, на котором выражаются имена, описания, значения и ссылки, включая собственное обозначение на этом языке и на английском языке.
LanguageNameInEnglish :xtdLabel;
LanguageNameInSelf :OPTIONAL xtdLabel;
Comments :OPTIONAL LIST [1:?] OF xtdText;
UniqueID :xtdGlobalUniqueID;
END_ENTITY; (*
Название языка, на котором выражен идентифицирующий описательный атрибут, на английском языке.
Название языка должно интерпретироваться без учета регистра.
Примеры английских наименований языков в соответствии с ИСО 3166-1 [1] приведены ниже.
Пример 1 — «English» — наименование ИСО 3166-1 для всех типов английского языка.
Пример 2 — «German» — английское наименование языка, на котором говорят в Германии и окружающих ее странах.
Название языка, на котором выражен идентифицирующий описательный атрибут, на этом языке.
Пример 1 — «Deutsch» — наименование немецкого языка, известное людям, говорящим на этом языке.
Пример 2 — «Русский» — название русского языка.
Пример 3 — «British English» — наименование формы английского языка, для которой характерна орфография и произношение, используемые на Британских островах и в некоторых других частях света.
Опциональный список комментариев для используемого языка.
Глобально уникальный идентификатор языка.
4.3.16 xtdLanguageRepresentation
xtdLanguageRepresentation — представление языка, используемого для указания имени, описания, значения или ссылки.
*) ENTITY xtdLanguageRepresentation ABSTRACT SUPERTYPE OF (ONEOF(xtdName, xtdDescription));
LanguageName :xtdLanguage;
UniqueID :xtdGlobalUniqueID;
END_ENTITY; (*
Название языка, используемого для xtdLanguageRepresentation.
Глобально уникальный идентификатор для представления языка.
xtdMeasureWithUnit — специализация xtdObject, делающая xtdProperty измеримым путем связи единиц измерения со значением.
Пример 1 — «1 м» — экземпляр xtdMeasureWithUnit с компонентом единицы измерения «м» и компонентом значения «1».
Пример 2 — «AB88» — экземпляр xtdMeasureWithUnit с компонентом значения «AB88» и без компонента единицы измерения.
*) ENTITY xtdMeasureWithUnit SUBTYPE OF(xtdObject);
UnitComponent :OPTIONAL xtdUnit;
ValueDomain :OPTIONAL LIST [1:?] OF xtdValue;
END_ENTITY; (*
Единица измерения, в которой выражается значение.
Область значений данной единицы измерения.
xtdName — название объекта на целевом языке проекта. Объект может иметь несколько имен в одном языке, и эти имена не обязательно должны быть уникальными для определенного объекта.
Пример 1 — «Beam» и «truss» — два английских наименования одного и того же объекта.
Пример 2 — «балка» — русское название английского «beam».
) ENTITY xtdName SUBTYPE OF(xtdLanguageRepresentation); Name :xtdLabel; INVERSE is_name_of :SET [1:?] OF xtdRoot FOR Names; END_ENTITY; (
Метка, содержащая имя объекта.
xtdNest — специализация xtdCollection, позволяющая входить в коллекцию только предметам одного типа.
Пример - «Свойства окна» — это xtdNest, члены которого — исключительно экземпляры xtdProperty.
) ENTITY xtdNest SUBTYPE OF(xtdCollection); WHERE WR1 :SIZEOF(QUERY(Result < SELF\xtdRelCollects.RelatedThings | NOT(TYPEOF(SELF\xtdRelCollects.RelatingCollection) = TYPEOF(Result)))) = 0; END_ENTITY; (*
WR1 — Тип коллекции должен всегда совпадать с типом каждого предмета, т.е. коллекция и все входящие в нее предметы должны иметь одинаковый тип.
xtdObject — специализация xtdRoot, являющая собой абстрактный элемент, из которого выводятся xtdProperty, xtdMeasureWithUnit, xtdActor, xtdUnit, xtdSubject, xtdValue and xtdActivity.
) ENTITY xtdObject ABSTRACT SUPERTYPE OF (ONEOF(xtdSubject, xtdActivity, xtdUnit, xtdProperty, xtdMeasureWithUnit, xtdActor, xtdValue)) SUBTYPE OF(xtdRoot); END_ENTITY; (
xtdProperty — специализация xtdObject, используемая для качественного или количественного определения xtdObject.
Пример 1 — «Ширина» — это xtdProperty.
Пример 2 — «Ширина двери» — это xtdProperty, используемое для качественного описания «ширины» экземпляра xtdSubject «дверь».
Пример 3 — «Теплопередача» — это xtdProperty.
Пример 4 — «Цвет» — это xtdProperty.
Пример 5 — «Продолжительность» — это xtdProperty.
Пример 6 — «Комфорт» — это xtdProperty.
) ENTITY xtdProperty SUBTYPE OF(xtdObject); END_ENTITY; (
xtdRelActsUpon — специализация xtdRelAssociates, представляющая один xtdObject, действующий на один или несколько других xtdObjects.
Пример 1 — «Колонна поддерживает балку».
Пример 2 — «Каменщик кладет кирпичи».
) ENTITY xtdRelActsUpon SUBTYPE OF(xtdRelAssociates); WHERE WR1 :SIZEOF(QUERY(Result < RelatedObjects | RelatingObject:=: Result)) = 0; END_ENTITY; (*
WR1 — Экземпляр, на который указывает атрибут связующий объект, не должен содержаться в наборе атрибута связанных объектов.
4.3.23 xtdRelAssignsCollections
xtdRelAssignsCollections — специализация xtdRelationship, осуществляющая присваивание одного или более экземпляров xtdCollection объекту xtdObject.
*) ENTITY xtdRelAssignsCollections SUBTYPE OF(xtdRelationship);
RelatingObject :xtdObject;
RelatedCollections :SET [1:?] OF xtdCollection;
END_ENTITY; (*
Объект, которому присваиваются коллекции.
Набор коллекций, которые присваиваются объекту.
xtdRelAssignsMeasures — специализация xtdRelationship, осуществляющая присваивание одного или более экземпляров xtdMeasureWithUnit свойству xtdProperty.
*) ENTITY xtdRelAssignsMeasures SUBTYPE OF(xtdRelationship);
RelatingProperty :xtdProperty;
RelatedMeasures :SET [1:?] OF xtdMeasureWithUnit;
MethodOfInterpretation :OPTIONAL xtdName;
END_ENTITY; (*
Свойство, которому присваиваются единицы измерения.
Набор единиц измерения, присваиваемых свойству.
Опциональное пояснение значения в единицах измерения.
Пример - «Верхняя граница» — это метод интерпретации меры с единицей измерения, представляющий верхнюю границу ограниченного значения.
4.3.25 xtdRelAssignsProperties
xtdRelAssignsProperties — специализация xtdRelationship, осуществляющая присваивание одного или более экземпляров xtdProperty объекту xtdObject.
Пример - «высота двери» — это xtdProperty, присвоенное xtdObject «дверь».
*) ENTITY xtdRelAssignsProperties SUBTYPE OF(xtdRelationship);
RelatedProperties :SET [1:?] OF xtdProperty;
RelatingObject :xtdObject;
END_ENTITY; (*
Набор свойств, которые присваиваются объекту.
Объект, которому присваиваются свойства.
4.3.26 xtdRelAssignsPropertyWithValues
xtdRelAssignsPropertyWthValues — специализация xtdRelationship, являющаяся трехсторонней связью, которая осуществляет присваивание одного или нескольких значений из полного набора значений соответствующего свойства относимому объекту.
*) ENTITY xtdRelAssignsPropertyWithValues SUBTYPE OF(xtdRelationship);
RelatedProperty :xtdProperty;
RelatingObject :xtdObject;
RelatedValues :LIST [1:?] OF UNIQUE xtdValue;
END_ENTITY; (*
Свойство, содержащее полный список значений, из которого выбираются RelatedValues.
Объект, которому присваивается список значений.
Список значений, выбранных из полного набора значений относящегося свойства.
xtdRelAssignsUnits — специализация xtdRelationship, осуществляющая присваивание xtdMeasureWithUnit одного или более экземпляров xtdUnit.
*) ENTITY xtdRelAssignsUnits SUBTYPE OF(xtdRelationship);
RelatingMeasure :xtdMeasureWithUnit;
RelatedUnits :SET [1:?] OF xtdUnit;
END_ENTITY; (*
Мера, которой присваиваются единицы измерения.
Список единиц измерения, которые присваиваются мере.
xtdRelAssignsValues — специализация xtdRelationship, осуществляющая присваивание xtdMeasureWthUnit одного или более экземпляров xtdValue.
*) ENTITY xtdRelAssignsValues SUBTYPE OF(xtdRelationship);
RelatingMeasure :xtdMeasureWithUnit;
RelatedValues :LIST [1:?] OF UNIQUE xtdValue;
END_ENTITY; (*
Мера, которой присваиваются значения.
Список единиц измерения, которые присваиваются мере.
xtdRelAssociates — специализация xtdRelationship, осуществляющая сопоставление относимого xtdObject и набора относящихся экземпляров xtdObject.
*) ENTITY xtdRelAssociates SUPERTYPE OF (ONEOF(xtdRelComposes, xtdRelGroups, xtdRelSpecializes, xtdRelActsUpon)) SUBTYPE OF(xtdRelationship);
RelatingObject :xtdObject;
RelatedObjects :SET [1:?] OF xtdObject;
WHERE WR1 :SIZEOF(QUERY(Result <* RelatedObjects | RelatingObject:=: Result)) = 0; END_ENTITY; (*
Объект, являющийся целевым для отношения.
Набор объектов, которые сопоставляются с целевым объектом.
WR1 — Экземпляр, на который указывает атрибут связующий объект, не должен содержаться в наборе атрибута связанных объектов.
xtdRelCollects — специализация xtdRelationship, представляющая собрание произвольных сущностей в xtdCollection. xtdCollection инстанциируется как xtdNest или xtdBag.
*) ENTITY xtdRelCollects SUBTYPE OF(xtdRelationship);
RelatedThings :SET [1:?] OF xtdRoot;
RelatingCollection :xtdCollection;
END_ENTITY; (*
Набор предметов, составляющих коллекцию.
Коллекция предметов, где каждый экземпляр коллекции представляет собой объект или отношение.
xtdRelComposes — специализация xtdRelAssociates, представляющая xtdObject составленным из других экземпляров xtdObject. Отношение композиции может применяться рекурсивно, так что составной xtdObject может быть частью другого составного xtdObject.
Пример - «Дверная рама» и «створка двери» — это части (целого) «дверного блока».
) ENTITY xtdRelComposes SUBTYPE OF(xtdRelAssociates); WHERE WR1 :SIZEOF(QUERY(Result < SELF.RelatedObjects | NOT(TYPEOF(SELF.RelatingObject) = TYPEOF(Result)))) = 0; WR2 :SIZEOF(QUERY(Result2 <* RelatedObjects | RelatingObject:=: Result2)) = 0; END_ENTITY; (*
WR1 — Тип связанного объекта должен всегда совпадать с типом каждого связанного объекта, т.е. экземпляры xtdSubject составляются только из других экземпляров xtdSubject.
WR2 — Экземпляр, на который указывает атрибут связующий объект, не должен содержаться в наборе атрибута связанных объектов.
xtdRelDocuments — специализация xtdRelationship, документирующая объекты путем их отношения к документам, в которых они описываются. Каждый документ может относиться ко многим объектам.
*) ENTITY xtdRelDocuments SUBTYPE OF(xtdRelationship);
RelatedObjects :SET [1:?] OF xtdObject;
RelatingDocument :xtdExternalDocument;
END_ENTITY; (*
Набор объектов, которые описываются во внешнем документе.
Внешний документ, который описывает связанные объекты.
xtdRelGroups — специализация xtdRelAssociates, осуществляющая группирование наборов относящихся экземпляров xtdObject в относимом xtdObject.
) ENTITY xtdRelGroups SUBTYPE OF(xtdRelAssociates); WHERE WR1 :SIZEOF(QUERY(Result < RelatedObjects | RelatingObject:=: Result)) = 0; END_ENTITY; (*
WR1 — Экземпляр, на который указывает атрибут связующий объект, не должен содержаться в списке атрибута связанных объектов.
XtdRelSequences — специализация xtdRelationship, описывающая последовательность двух экземпляров xtdActivity. Связывающая xtdActivity предшествует в последовательности связуемой xtdActivity.
*) ENTITY xtdRelSequences SUBTYPE OF(xtdRelationship);
RelatingActivity :OPTIONAL xtdActivity; RelatedActivity :OPTIONAL xtdActivity;
WHERE
WR1 :RelatedActivity:<>: RelatingActivity; WR2 :EXISTS(RelatingActivity) OR EXISTS(RelatedActivity);
END_ENTITY; (*
Ссылка на предшествующее действие в последовательности.
Ссылка на последующее действие в последовательности.
WR1 — Относимое действие не должно указывать на тот же экземпляр, что и относящееся действие.
WR2 — Относимое либо относящееся действие должно быть подтверждено.
xtdRelSpecializes — специализация xtdRelAssociates, представляющая специализацию супертипа в один или более подтипов, при условии, что подтип более ограничен, чем супертип.
Пример 1 — «Входная дверь» — это специализация «двери».
Пример 2 — «Пространство» — это обобщение «комнаты».
) ENTITY xtdRelSpecializes SUBTYPE OF(xtdRelAssociates); WHERE WR1 :SIZEOF(QUERY(Result < RelatedObjects | RelatingObject:=: Result)) = 0; WR2 :SIZEOF(QUERY(Result <* SELF.RelatedObjects | NOT(TYPEOF(SELF.RelatingObject) = TYPEOF(Result)))) = 0; END_ENTITY; (*
WR1 — Экземпляр, на который указывает атрибут связующий объект, не должен содержаться в списке атрибута связанных объектов.
WR2 — Тип связующего объекта всегда должен совпадать с типом каждого связуемого объекта, т.е. экземпляр xtdSubject может быть только специализацией другого экземпляра xtdSubject.
xtdRelationship — специализация xtdRoot. Это абстрактный элемент, который объектифицирует отношения, позволяющий добавлять к таким сущностям дополнительные атрибуты.
) ENTITY xtdRelationship ABSTRACT SUPERTYPE OF (ONEOF(xtdRelAssociates, xtdRelAssignsProperties, xtdRelAssignsMeasures, xtdRelCollects, xtdRelAssignsCollections, xtdRelSequences, xtdRelDocuments, xtdRelAssignsUnits, xtdRelAssignsValues, xtdRelAssignsPropertyWithValues)) SUBTYPE OF(xtdRoot); ViewSelector :OPTIONAL xtdName; END_ENTITY; (
Необязательный атрибут, используемый для уточнения отношения в целях создания различных представлений данных.
Пример - Переключатель представлений «IFC 2x2» может использоваться для идентификации отношений, исходящих из модели IFC 2x2.
xtdRoot — абстрактная сущность, с помощью которой основные сервисы идентификации, присвоения имени, версии, описания и ссылок могут применяться к экземплярам ее подтипов xtdObject, xtdRelationship и xtdCollection.
*) ENTITY xtdRoot ABSTRACT SUPERTYPE OF (ONEOF(xtdObject, xtdRelationship, xtdCollection));
VersionDate :OPTIONAL xtdDate;
VersionID :OPTIONAL xtdVersionID;
UniqueID :xtdGlobalUniqueID;
Descriptions :OPTIONAL SET [1:?] OF xtdDescription;
Names :SET [1:?] OF xtdName;
END_ENTITY; (*
Дата последнего исправления объекта справочных данных.
Номер версии справочных данных версии объекта.
Глобально уникальный идентификатор объекта.
Опциональный набор описаний объекта не зависящий от языка.
Набор названий объекта зависящих от языка.
xtdSubject — специализация xtdObject, являющаяся субъектом, который описывается сопоставленными свойствами и действиями. xtdSubject может быть физическим или логическим.
Пример 1 — «Крыша» — это xtdSubject.
Пример 2 — «Вестибюль» — это xtdSubject.
Пример 3 — «Система контроля» — это xtdSubject.
Пример 4 — «Дорога» — это xtdSubject.
Пример 5 — «Аэропорт» — это xtdSubject.
Пример 6 — «Программное обеспечение» — это xtdSubject.
) ENTITY xtdSubject SUBTYPE OF(xtdObject); END_ENTITY; (
xtdUnit — специализация xtdObject, представляющая собой шкалу, позволяющую измерить значение.
Пример 1 — «метр» — xtdUnit, обозначаемый символом «м».
Пример 2 — «Вт/м·К» — xtdUnit, используемый для свойства «теплопроводность».
) ENTITY xtdUnit SUBTYPE OF(xtdObject); END_ENTITY; (
xtdValue — специализация xtdLanguageRepresentation, содержащая описание значения xtdProperty.
Пример 1 — «Vertikaal schuivend» — голландское обозначение «вертикального скольжения».
*) ENTITY xtdValue SUBTYPE OF(xtdObject);
LowerTolerance :OPTIONAL xtdText;
NominalValue :OPTIONAL xtdText;
UpperTolerance :OPTIONAL xtdText;
ValueType :OPTIONAL xtdValueTypeEnum;
ValueRole :OPTIONAL xtdValueRoleEnum;
ToleranceType :OPTIONAL xtdToleranceTypeEnum;
END_ENTITY; (*
Опциональный нижний допуск значения.
Опциональная текстовая строка, содержащая номинальное значение.
Опциональный верхний допуск значения.
Опционально выбираемый тип для указания типа значения.
Опционально выбираемый тип для указания роли значения.
Опционально выбираемый тип для указания типа допуска для значения.
4.4 Подробная спецификация EXPRESS <1>
<1> В настоящем стандарте приводится подробная спецификация EXPRESS, представленная в стандарте ИСО 12006-3.
Данная формальная спецификация представлена на языке EXPRESS.
TYPE xtdDate = STRING; END_TYPE;
TYPE xtdGlobalUniqueID = STRING; END_TYPE;
TYPE xtdLabel = STRING; END_TYPE;
TYPE xtdText = STRING; END_TYPE;
TYPE xtdToleranceTypeEnum = ENUMERATION OF (REALVALUE, PERCENTAGE); END_TYPE;
TYPE xtdValueRoleEnum = ENUMERATION OF (NOMINAL, MAXIMUM, MINIMUM); END_TYPE;
TYPE xtdValueTypeEnum = ENUMERATION OF (XTDSTRING, XTDNUMBER, XTDINTEGER, XTDREAL, XTDBOOLEAN, XTDLOGICAL); END_TYPE;
TYPE xtdVersionID = STRING; END_TYPE;
ENTITY xtdActivity SUBTYPE OF(xtdObject); END_ENTITY;
ENTITY xtdActor SUBTYPE OF(xtdObject); END_ENTITY;
ENTITY xtdBag SUBTYPE OF(xtdCollection); END_ENTITY;
ENTITY xtdCollection ABSTRACT SUPERTYPE OF (ONEOF(xtdNest, xtdBag)) SUBTYPE OF(xtdRoot); END_ENTITY;
ENTITY xtdDescription SUBTYPE OF(xtdLanguageRepresentation); Description : xtdText; INVERSE is_description_of : SET [1:?] OF xtdRoot FOR Descriptions; END_ENTITY;
ENTITY xtdExternalDocument; UniqueID : xtdGlobalUniqueID; Names : SET [1:?] OF xtdName; END_ENTITY;
ENTITY xtdLanguage; LanguageNameInEnglish : xtdLabel;
LanguageNameInSelf : OPTIONAL xtdLabel;
Comments : OPTIONAL LIST [1:?] OF xtdText;
UniqueID : xtdGlobalUniqueID;
END_ENTITY;
ENTITY xtdLanguageRepresentation ABSTRACT SUPERTYPE OF (ONEOF(xtdName, xtdDescription)); LanguageName : xtdLanguage; UniqueID : xtdGlobalUniqueID; END_ENTITY;
ENTITY xtdMeasureWithUnit SUBTYPE OF(xtdObject); UnitComponent : OPTIONAL xtdUnit; ValueDomain : OPTIONAL LIST [1:?] OF xtdValue; END_ENTITY;
ENTITY xtdName SUBTYPE OF (xtdLanguageRepresentation); Name : xtdLabel; INVERSE is_name_of : SET [1:?] OF xtdRoot FOR Names; END_ENTITY;
ENTITY xtdNest SUBTYPE OF (xtdCollection); WHERE WR1 : SIZEOF(QUERY(Result <* SELF\xtdRelCollects.RelatedThings | NOT(TYPEOF(SELF\xtdRelCollects.RelatingCollection) = TYPEOF(Result)))) = 0; END_ENTITY;
ENTITY xtdObject ABSTRACT SUPERTYPE OF (ONEOF(xtdSubject, xtdActivity, xtdUnit, xtdProperty, xtdMeasureWithUnit, xtdActor, xtdValue)) SUBTYPE OF (xtdRoot); END_ENTITY;
ENTITY xtdProperty SUBTYPE OF (xtdObject); END_ENTITY;
ENTITY XtdRelActsUpon SUBTYPE OF(xtdRelAssociates); WHERE WR1 : SIZEOF(QUERY(Result <* RelatedObjects | RelatingObject:=: Result))= 0; END_ENTITY;
ENTITY xtdRelAssignsCollections SUBTYPE OF(xtdRelationship); RelatingObject : xtdObject; RelatedCollections : SET [1:?] OF xtdCollection; END_ENTITY;
ENTITY xtdRelAssignsMeasures SUBTYPE OF(xtdRelationship);
RelatingProperty : xtdProperty;
RelatedMeasures : SET [1:?] OF xtdMeasureWithUnit;
MethodOfInterpretation : OPTIONAL xtdName;
END_ENTITY;
ENTITY xtdRelAssignsProperties SUBTYPE OF(xtdRelationship); RelatedProperties : SET [1:?] OF xtdProperty; RelatingObject : xtdObject; END_ENTITY;
ENTITY xtdRelAssignsPropertyWithValues SUBTYPE OF(xtdRelationship); RelatedProperty : xtdProperty;
RelatingObject : xtdObject;
RelatedValues : LIST [1:?] OF UNIQUE xtdValue;
END_ENTITY;
ENTITY xtdRelAssignsUnits SUBTYPE OF(xtdRelationship); RelatingMeasure : xtdMeasureWithUnit; RelatedUnits : SET [1:?] OF xtdUnit; END_ENTITY;
ENTITY xtdRelAssignsValues SUBTYPE OF(xtdRelationship); RelatingMeasure : xtdMeasureWithUnit; RelatedValues : LIST [1:?] OF UNIQUE xtdValue; END_ENTITY;
ENTITY xtdRelAssociates SUPERTYPE OF (ONEOF(xtdRelComposes, xtdRelGroups, xtdRelSpecializes, xtdRelActsUpon)) SUBTYPE OF(xtdRelationship); RelatingObject : xtdObject; RelatedObjects : SET [1:?] OF xtdObject; WHERE WR1 : SIZEOF(QUERY(Result <* RelatedObjects | RelatingObject:=: Result))= 0; END_ENTITY;
ENTITY xtdRelationship ABSTRACT SUPERTYPE OF (ONEOF(xtdRelAssociates, xtdRelAssignsProperties, xtdRelAssignsMeasures, xtdRelCollects, xtdRelAssignsCollections, xtdRelSequences, xtdRelDocuments, xtdRelAssignsUnits, xtdRelAssignsValues, xtdRelAssignsPropertyWithValues)) SUBTYPE OF (xtdRoot); ViewSelector : OPTIONAL xtdName; END_ENTITY;
ENTITY xtdRelCollects SUBTYPE OF(xtdRelationship); RelatedThings : SET [1:?] OF xtdRoot; RelatingCollection : xtdCollection; END_ENTITY;
ENTITY xtdRelComposes SUBTYPE OF(xtdRelAssociates); WHERE WR1 : SIZEOF(QUERY(Result <* SELF.RelatedObjects | NOT(TYPEOF(SELF.RelatingObject) = TYPEOF(Result)))) = 0; WR2 : SIZEOF(QUERY(Result2 <* RelatedObjects | RelatingObject:=: Result2)) = 0; END_ENTITY;
ENTITY xtdRelDocuments SUBTYPE OF (xtdRelationship); RelatedObjects : SET [1:?] OF xtdObject; RelatingDocument : xtdExternalDocument; END_ENTITY;
ENTITY xtdRelGroups SUBTYPE OF (xtdRelAssociates); WHERE WR1 : SIZEOF(QUERY(Result <* RelatedObjects | RelatingObject:=: Result)) = 0; END_ENTITY;
ENTITY xtdRelSequences SUBTYPE OF (xtdRelationship); RelatingActivity : OPTIONAL xtdActivity; RelatedActivity : OPTIONAL xtdActivity; WHERE WR1 : RelatedActivity:<>: RelatingActivity; WR2 : EXISTS(RelatingActivity) OR EXISTS(RelatedActivity); END_ENTITY;
ENTITY xtdRelSpecializes SUBTYPE OF(xtdRelAssociates); WHERE WR1 : SIZEOF(QUERY(Result <* RelatedObjects | RelatingObject:=: Result))= 0; WR2 : SIZEOF(QUERY(Result <* SELF.RelatedObjects | NOT(TYPEOF(SELF.RelatingObject) = TYPEOF(Result)))) = 0; END_ENTITY;
ENTITY xtdRoot ABSTRACT SUPERTYPE OF (ONEOF(xtdObject, xtdRelationship, xtdCollection));
VersionDate : OPTIONAL xtdDate;
VersionID : OPTIONAL xtdVersionID;
UniqueID : xtdGlobalUniqueID;
Descriptions : OPTIONAL SET [1:?] OF xtdDescription;
Names : SET [1:?] OF xtdName;
END_ENTITY;
ENTITY xtdSubject SUBTYPE OF(xtdObject); END_ENTITY;
ENTITY xtdUnit SUBTYPE OF(xtdObject); END_ENTITY;
ENTITY xtdValue SUBTYPE OF(xtdObject); LowerTolerance : OPTIONAL xtdText; NominalValue : OPTIONAL xtdText; UpperTolerance : OPTIONAL xtdText;
ValueType : OPTIONAL xtdValueTypeEnum;
ValueRole : OPTIONAL xtdValueRoleEnum;
ToleranceType : OPTIONAL xtdToleranceTypeEnum;
END ENTITY;
END_SCHEMA;
(справочное)
При разработке настоящего стандарта использовались нижеприведенные соглашения об именах. Эти соглашения не применимы при создании содержимого информационной структуры или при ее использовании.
А.2 Символы, используемые для имен
Для имен используются прописные буквы [A — Z], строчные буквы [a — z] и цифры [0 — 9].
Имена записываются прописными и строчными буквами как единое имя без пробелов.
Первый символ в каждом слове, как правило, следует после префикса схемы и записывается прописной буквой. Все другие символы, формирующие это же слово, как правило, записываются строчными буквами.
Для идентификации имен, используемых в информационной модели настоящего стандарта, используется префикс «xtd». «xtd» — это аббревиатура для extensible taxonomy definition («расширяемое классификационное определение»).
А.6 Имена элементов (за исключением отношений)
Именем элемента может служить существительное или комбинация существительных, обозначающих содержание или тип этого объекта.
Сущности, действующие в модели в качестве отношений, содержат обозначение «Rel» после префикса «xtd» и перед самим именем сущности. Как правило, вставка «Rel» считается словом, к ней применяется правило «Регистр имени». Отношения именуются начиная с связуемых (относимых) объектов (SET [1:?]) и заканчивая связующим (относимым) объектом; например, xtdRelComposes означает, что отношение объединяет части (SET [1:?]) в единое целое.
Именование отношений — это глагол или глагольная фраза, обозначающие «функцию» отношения.
А.8 Множественное число в имени агрегации
Имена атрибутов и отношений внутри агрегации выражаются в форме множественного числа.
| Обозначение ссылочного международного стандарта | Степень соответствия | Обозначение и наименование соответствующего национального стандарта |
| ISO 10303-11 | IDT | ГОСТ Р ИСО 10303-11-2009 «Системы автоматизации производства и их интеграция. Представление данных об изделии и обмен этими данными. Часть 11. Методы описания. Справочное руководство по языку EXPRESS» |
| ISO/IEC 10646 | - | <*> |
| <*> Перевод разделов 9, 10 международного стандарта ISO/IEC 10646:2017 приведен в приложении ДБ. Примечание — В настоящей таблице использовано следующее условное обозначение степени соответствия стандарта: - IDT — идентичный стандарт. | ||
(обязательное)
9.1 Общие положения
Настоящий международный стандарт предоставляет три формы кодирования, выражающие каждое UCS скалярное значение в виде одного уникального кодового набора или последовательности нескольких уникальных кодовых наборов. Они называются UTF-8, UTF-16 и UTF-32 соответственно (от англ. Unicode Transformation Format, 8-bit, 16-bit, 32-bit — формат преобразования Юникода, 8-бит, 16-бит, 32-бит соответственно).
9.2 UTF-8
UTF-8 является формой кодирования UCS, которая присваивает каждому скалярному значению UCS байтовую последовательность из одного-четырех байтов, как определено в таблице 2.
- Символы UCS из «BASIC LATIN» (базового набора латиницы) представлены в UTF-8 в соответствии с ISO/IEC 4873, т.е. в виде отдельных байтов со значениями от 20 до 7E.
- Функции управления в кодовых точках от 0000 до 001F и управляющий символ в кодовой точке 007F представлены без использования набора байтов, установленных в разделе 11 настоящего стандарта, т.е. в виде одиночных байтов со значениями от 00 до 1F и 7F соответственно, в соответствии с ISO/IEC 4873 и с 8-битной структурой ISO/IEC 2022.
- Байт значений от 00 до 7F создается исключительно в кодировке UTF-8 для каждого символа. Это обеспечивает совместимость с существующими системами обработки файлов и подсистемами связи, которые анализируют последовательности единиц кода для байта этих значений.
- Первый байт в кодированном представлении UTF-8 любого символа может быть непосредственно идентифицирован при проверке последовательности единиц кода, по очереди по одному байту, начиная с произвольного местоположения. Он указывает количество байтов (если таковые имеются) в последовательности из нескольких байтов, составляющей кодовое представление этого символа.
Таблица 2 задает битовое распределение для формы кодирования UTF-8, показывая диапазоны скалярных значений UCS, соответствующих одной, двум, трем и четырем последовательностям байтов.
Поскольку суррогатные кодовые точки не являются скалярными значениями UCS, любая последовательность UTF-8, которая иначе сопоставлялась бы с кодовыми точками D800-DFFF, сформирована некорректно.
В таблице 3 перечислены все диапазоны (включительно) байтовых последовательностей, которые правильно сформированы в UTF-8. Любая последовательность UTF-8, которая не соответствует шаблонам, перечисленным в таблице 3, является некорректной.
Для соблюдения условий корректности, указанных в таблице 9.2, в UTF-8 запрещены следующие байтовые значения: C0-C1, F5-FE.
9.3 UTF-16
UTF-16 является формой кодирования UCS, которая выражает каждое скалярное значение UCS последовательностью одного-двух не использованных ранее 16-разрядных кодов, как определено в таблице 4.
| Скалярное значение | UTF-16 |
|---|---|
| xxxxxxxxxxxxxxxx | xxxxxxxxxxxxxxxx |
| 000uuuuuxxxxxxxxxxxxxxxx | 110110wwwwxxxxxx 110111xxxxxxxxxx |
Примечание - Предыдущие издания этого международного стандарта включали ссылки на двухбайтовую форму кодирования BMP под названием UCS-2, которая является подмножеством формы кодирования UTF-16, ограниченным скалярными значениями BMP UCS. Форма UCS-2 устарела.
В форме кодирования UTF-16, кодовые точки в диапазоне 0000-D7FF и E000-FFFF представлены в виде пар 16-разрядных кодовых единиц. Эти пары специальных кодовых единиц называются суррогатными парами.
Значения кодовых единиц, используемых для суррогатных пар, не совпадают с кодовыми единицами, используемыми для представления единичных кодовых единиц, что обеспечивает неперекрываемость для всех представлений кодовых точек в UTF-16.
UTF-16 оптимизирует представление символов в формате BMP (от англ. Bitmap Picture — «битовая карта изображения», формат графических файлов, состоящих из четырех частей: заголовка, информационного заголовка, таблицы цветов (палитры) и данных изображения), содержащем подавляющее большинство символов общего пользования.
Поскольку суррогатные кодовые точки не являются скалярными значениями UCS, непарные единицы суррогатного кода сформированы некорректно.
Таблица 4 показывает распределение битов для формы кодирования UTF-16. Вычисление значений суррогатной пары включает вычитание шестнадцатеричных 10000 для учета начального смещения к скалярному значению (выраженному как 'wwww = uuuu-1' в таблице).
9.4 UTF-32 (UCS-4)
UTF-32 (или UCS-4) является формой кодирования UCS, которая присваивает каждому скалярному значению UCS единственный уникальный 32-разрядный код без знака. Термины UTF-32 и UCS-4 могут использоваться как взаимозаменяемые для обозначения этой формы кодирования.
Поскольку суррогатные кодовые точки не являются скалярными значениями UCS, кодовые единицы UTF-32 в диапазоне 0000 D800 — 0000 DFFF сформированы некорректно.
10.1 Общие положения
Схемы кодирования сериализованными байтами характерны для каждой формы кодирования UCS, включая спецификацию подписи, если это допускается. Подпись представляет собой последовательность единиц кода, соответствующую кодовой точке «FEFF ZERO WIDTH NO-BREAK SPACE» (неразрывного пробела нулевой ширины) в соответствующей форме кодирования. При использовании подписи в начале потока сериализованных байтов указывают порядок байтов в форме кодирования, используемой для представления символов.
Настоящий международный стандарт определяет семь схем кодирования: UTF-8, UTF-16BE, UTF-16LE, UTF-16, UTF-32BE, UTF-32LE, и UTF-32.
10.2 UTF-8
Схема кодирования UTF-8 сериализует последовательность единиц кода UTF-8 в том же порядке, в каком чередуются наборы кодов.
При кодировании в UTF-8 подпись превращается в последовательность байт
10.3 UTF-16BE
Схема кодирования UTF-16BE сериализует кодовую последовательность UTF-16, упорядочивая байты таким образом, что наиболее значимый байт (старший) предшествует менее значимому байту (младшему). Порядок от старшего к младшему.
Примечание - Этот порядок известен, как порядок big-endian от англ. — большой конец. Этот порядок соответствует привычному порядку записи арабскихцифр , например, число сто двадцать три было бы записано при таком порядке как 123.
В UTF-16BE начальная последовательность байтов
10.4 UTF-16LE
Схема кодирования UTF-16LE сериализует последовательность единиц кода UTF-16, упорядочивая байты таким образом, что младший байт предшествует старшему байту (порядок от младшего к старшему).
В UTF-16LE начальная последовательность байтов
10.5 UTF-16
Схема кодирования UTF-16 сериализует последовательность единиц кода UTF-16, упорядочивая байты таким образом, что младший байт предшествует или следует за старшим байтом.
В схеме кодирования UTF-16 начальная подпись, читаемая как
При отсутствии подписи порядок байт схемы кодирования UTF-16 состоит в том, что старший байт предшествует младшему байту.
10.6 UTF-32BE
Схема кодирования UTF-32BE сериализует последовательность единиц кода UTF-32, упорядочивая байты таким образом, что старшие байты предшествуют младшим байтам (порядок от старшего к младшему).
В UTF-32BE начальная последовательность байт <00 00 FE FF> интерпретируется как FEFF ZERO WIDTH NO-BREAK SPACE (неразрывный пробел нулевой ширины) и не передает значение подписи.
10.7 UTF-32LE
Схема кодирования UTF-32LE сериализует последовательность единиц кода UTF-32, упорядочивая байты таким образом, что младший байт предшествует старшему байту (порядок от младшего к старшему).
В UTF-32LE начальная последовательность байт <FF FE 00 00> интерпретируется как FEFF ZERO WIDTH NO-BREAK SPACE (неразрывный пробел нулевой ширины) и не передает значение подписи.
10.8 UTF-32
Схема кодирования UTF-32 сериализует последовательность единиц кода UTF-32, упорядочивая байты таким образом, что младшие байты предшествуют или следуют за старшими байтами.
В схеме кодирования UTF-32 начальная подпись <00 00 FE FF> указывает, что старший байт предшествует младшему байту, а <FF FE 00 00> — наоборот. Подпись не является частью текстовых данных.
При отсутствии подписи порядок байт схемы кодирования UTF-32 состоит в том, что старший байт предшествует младшему байту.






