Откройте актуальную версию документа прямо сейчас
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.
Приложение А
(обязательное)
Определение схемы структуры взаимодействия
А.1 Введение
Структура взаимодействия должна соответствовать правилам, которые включены в схему структуры взаимодействия. В настоящем приложении определение схемы структуры взаимодействия приводится в формате EXPRESS и в формате XSD. Кроме того, приведены описания типов элементов, атрибутов, элементов и ссылок.
Для каждого объекта в схеме взаимодействия требуются дата начала и дата окончания. Это позволяет включать временные ограничения в срок действия конкретного объекта.
А.2 Определение схемы структуры взаимодействия (формат EXPRESS) 1)
------------------------------
1)В настоящем стандарте приводится полное описание схемы структуры взаимодействия, представленное в ИСО 29481-2:2012.
------------------------------
SCHEMA ISO 29481_Part_2A;
ENTITY ProjectType; - Определение конкретной группы проектов. Обычно в структуре взаимодействия будет присутствовать только один экземпляр, определяющий структуру элементов, которые будут предоставляться в каждом экземпляре проекта.
namespace: STRING;
description: STRING;
startDate: DATETIME;
endDate: DATETIME;
state: STRING;
dateLaMu: DATETIME;
userLaMu: STRING;
language: OPTIONAL STRING;
category: OPTIONAL STRING;
helpInfo: OPTIONAL STRING;
code: OPTIONAL STRING;
complexElements: OPTIONAL SET [0:?] OF ComplexElementType;
END_ENTITY;
ENTITY PersonType; - Определение конкретной группы лиц. Обычно в структуре взаимодействия будет присутствовать только один экземпляр, определяющий структуру элементов, которые будут предоставляться в каждом экземпляре лица.
description: STRING;
startDate: DATETIME;
endDate: DATETIME;
state: STRING;
dateLaMu: DATETIME;
userLaMu: STRING;
language: OPTIONAL STRING;
category: OPTIONAL STRING;
helplnfo: OPTIONAL STRING;
code: OPTIONAL STRING;
complexElements: OPTIONAL SET [0:?] OF ComplexElementType;
END_ENTITY;
ENTITY OrganisationType; - Определение конкретной группы организаций. Обычно в структуре взаимодействия присутствует только один экземпляр, определяющий структуру элементов, которые должны предоставляться в каждом экземпляре организации.
description: STRING;
startDate: DATETIME;
endDate: DATETIME;
state: STRING;
dateLaMu: DATETIME;
userLaMu: STRING;
language: OPTIONAL STRING;
category: OPTIONAL STRING;
helpInfo: OPTIONAL STRING;
code: OPTIONAL STRING;
complexElements: OPTIONAL SET [0:?] OF ComplexElementType;
END_ENTITY;
ENTITY AppendixType; - AppendixType содержит определение дополнения. Какие элементы данных должны записываться с помощью дополнения, можно указать в разделе составного элемента.
description: STRING;
startDate: DATETIME;
endDate: DATETIME;
state: STRING;
dateLaMu: DATETIME;
userLaMu: STRING;
language: OPTIONAL STRING;
category: OPTIONAL STRING;
helpInfo: OPTIONAL STRING;
code: OPTIONAL STRING;
complexElements: OPTIONAL SET [0:?] OF ComplexElementType;
END_ENTITY;
ENTITY ComplexElementType; - ComplexElementType содержит набор SimpleElementTypes. Каждый заявленный тип SimpleElementType входит ровно столько раз, сколько он упоминается.
description: STRING;
startDate: DATETIME;
endDate: DATETIME;
state: STRING;
dateLaMu: DATETIME;
userLaMu: STRING;
language: OPTIONAL STRING;
category: OPTIONAL STRING;
helpInfo: OPTIONAL STRING;
complexElements: OPTIONAL SET [0:?] OF ComplexElementType;
simpleElements: OPTIONAL SET [0:?] OF SimpleElementType;
END_ENTITY;
ENTITY MessageType; - Определение типа сообщения (MessageType), которое указывает структуру сообщения и какой набор типов SimpleElementType (через ComplexElementType) оно может сопровождать.
description: STRING;
startDate: DATETIME;
endDate: DATETIME;
state: STRING;
dateLaMu: DATETIME;
userLaMu: STRING;
language: OPTIONAL STRING;
category: OPTIONAL STRING;
helpInfo: OPTIONAL STRING;
code: OPTIONAL STRING;
complexElements: OPTIONAL SET [0:?] OF ComplexElementType;
appendixTypes: OPTIONAL SET [1:?] OF AppendixType;
END_ENTITY;
ENTITY ElementCondition; - Условие SimpleElementType в том виде, как оно используется в конкретном MessageType.
description: STRING;
condition: STRING;
helpInfo: OPTIONAL STRING;
complexElement: OPTIONAL ComplexElementType;
simpleElement: OPTIONAL SimpleElementType;
messageInTransaction: OPTIONAL MessageInTransactionType;
END_ENTITY;
ENTITY SimpleElementType; - Определение типа простого элемента (SimpleElementType). Этот тип элемента указывает свойство, которое может встречаться в различных структурах объекта, например в MessageType (см. также AppendixType, ProjectType, PersonType и OrganisationType). SimpleElementType всегда является вложенным в ComplexElementType.
description: STRING;
interfaceType: STRING;
state: STRING;
dateLaMu: DATETIME;
userLaMu: STRING;
language: OPTIONAL STRING;
category: OPTIONAL STRING;
helpInfo: OPTIONAL STRING;
valueList: OPTIONAL STRING;
userDefinedType: UserDefinedType;
END_ENTITY;
ENTITY UserDefinedType; - Спецификация типа данных (для использования в SimpleElementType). Этот тип данных формирует заполняемые области в конечном сообщении; например, нидерландский почтовый индекс всегда начинается с четырех цифр, за которыми следуют две буквы.
description: STRING;
state: STRING;
dateLaMu: DATETIME;
userLaMu: STRING;
baseType: STRING;
xsdRestriction: OPTIONAL STRING;
language: OPTIONAL STRING;
helpInfo: OPTIONAL STRING;
END_ENTITY;
ENTITY MessageInTransactionType; - Образец типа MessageType в типе TransactionType, относящийся к конкретному типу группы (GroupType).
requiredNotify: INTEGER;
dateLaMu: DATETIME;
userLaMu: STRING;
received: BOOLEAN;
send: BOOLEAN;
state: STRING;
initiatorToExecutor: OPTIONAL BOOLEAN;
openSecondaryTransactionsAllowed: OPTIONAL BOOLEAN;
firstMessage: OPTIONAL BOOLEAN;
message: MessageType;
previous: OPTIONAL SET [0:?] OF MessageInTransactionType;
transaction: TransactionType;
transactionPhase: OPTIONAL TransactionPhaseType;
group: GroupType;
appendixTypes: OPTIONAL SET [1:?] OF AppendixType;
END_ENTITY;
ENTITY TransactionPhaseType; - Определение фазы, относящейся к транзакции.
Примеры: "назначение принято" или "часть результата получена".
description: STRING;
startDate: DATETIME;
endDate: DATETIME;
state: STRING;
dateLaMu: DATETIME;
userLaMu: STRING;
language: OPTIONAL STRING;
category: OPTIONAL STRING;
helpInfo: OPTIONAL STRING;
code: OPTIONAL STRING;
END_ENTITY;
ENTITY TransactionType; - Определение типа транзакции. Тип транзакции может ссылаться на другие типы транзакции. Транзакцию будет инициировать лицо, принадлежащее к организации, выполняющей определенную роль. На этом уровне должен быть заявлен тип роли инициатора (введенный в действие активированной схемой). Это же верно для исполнителя.
description: STRING;
startDate: DATETIME;
endDate: DATETIME;
state: STRING;
dateLaMu: DATETIME;
userLaMu: STRING;
language: OPTIONAL STRING;
category: OPTIONAL STRING;
helpInfo: OPTIONAL STRING;
code: OPTIONAL STRING;
result: OPTIONAL STRING;
subTransactions: OPTIONAL SET [1:?] OF TransactionType;
initiator: RoleType;
executor: RoleType;
appendixTypes: OPTIONAL SET [1.?] OF AppendixType;
END_ENTITY;
ENTITY RoleType; - Определение конкретного типа роли.
description: STRING;
startDate: DATETIME;
endDate: DATETIME;
state: STRING;
dateLaMu: DATETIME;
userLaMu: STRING;
language: OPTIONAL STRING;
category: OPTIONAL STRING;
helpInfo: OPTIONAL STRING;
code: OPTIONAL STRING;
responsibilityScope: OPTIONAL STRING;
responsibility Task: OPTIONAL STRING;
responsibilitySupportTask: OPTIONAL STRING;
responsibilityFeedback: OPTIONAL STRING;
END_ENTITY;
ENTITY GroupType; - Определение группы для сохранения дополнений, отправленных с сообщением в транзакции.
description: STRING;
startDate: DATETIME;
endDate: DATETIME;
state: STRING;
dateLaMu: DATETIME;
userLaMu: STRING;
language: OPTIONAL STRING;
category: OPTIONAL STRING;
helpInfo: OPTIONAL STRING;
END_ENTITY;
END_SCHEMA;
А.3 Определение схемы структуры взаимодействия (формат XSD)
А.4 Типы элемента
А.4.1 AppendixType
Атрибуты: id
Элементы: description, startDate, endDate, state, dateLaMu, userLaMu, language, category, helpInfo, code
Ссылки: complexElements
AppendixType содержит определение дополнения. Какие элементы данных должны записываться с помощью дополнения, можно указать в разделе составного элемента.
Пример -
Примечание - Элемент appendixTypes. Если структура взаимодействия указывает много типов дополнений, пользователям может быть трудно выбрать подходящий тип дополнения. Эта ссылка позволяет выбирать из набора всех типов дополнений типы, действительные для конкретных транзакции или сообщения.
А.4.2 ComplexElementType
Атрибуты: id
Элементы: description, startDate, endDate, state, dateLaMu, userLaMu, language, category, helpInfo
Ссылки: elements
ComplexElementType содержит набор SimpleElementTypes. Каждый заявленный тип SimpleElementType входит ровно столько раз, сколько он упоминается.
Пример -
А.4.3 ElementCondition
Атрибуты: id
Элементы: description, requiredNotify, minValue, maxValue, format, helpInfo
Ссылки: message, element
Условие SimpleElementType в том виде, как оно используется в конкретном MessageType.
Пример -
A.4.4 GroupType
Атрибуты: id
Элементы: description, startDate, endDate, state, dateLaMu, userLaMu, language, category, helpInfo. Определение группы для сохранения дополнений, отправленных вместе с сообщением в транзакции.
Пример -
A.4.5 MessageType
Атрибуты: id
Элементы: description, startDate, endDate, state, dateLaMu, userLaMu, language, category, helpInfo, code
Ссылки: complexElements, appendixTypes
Определение типа сообщения (MessageType), которое указывает структуру сообщения и какой набор типа SimpleElementType (через ComplexElementType) оно может сопровождать.
Пример -
Примечание - Элемент firstMessage. В общем случае транзакция будет запускаться лицом, выполняющим роль инициатора, с помощью типа сообщения, независимого от типа любого предыдущего сообщения. Однако этот принцип нельзя применять к транзакции, которая выполняется как подтранзакция в другой транзакции. Этот элемент явно заявляет, можно ли использовать тип сообщения для запуска новой транзакции.
А.4.6 MessageInTransactionType
Атрибуты: id
Элементы: requiredNotify, dateLaMu, userLaMu, received, send, state, initiatorToExecutor, openSecondaryTransactionsAllowed, firstMessage
Ссылки: message, previous, transaction, transactionPhase, group, appendixTypes
Образец типа MessageType в типе TransactionType, относящийся к конкретному типу группы (GroupType).
Пример -
A.4.7 OrganisationType
Атрибуты: id
Элементы: description, startDate, endDate, state, dateLaMu, userLaMu, language, category, helpInfo, code
Ссылки: complexElements
Определение конкретной группы организаций. Обычно в структуре взаимодействия присутствует только один экземпляр, определяющий структуру элементов, которые должны предоставляться в каждом экземпляре организации.
Пример -
A.4.8 PersonType
Атрибуты: id
Элементы: description, startDate, endDate, state, dateLaMu, userLaMu, language, category, helpInfo, code
Ссылки: complexElements
Определение конкретной группы лиц. Обычно в структуре взаимодействия будет присутствовать только один экземпляр, определяющий структуру элементов, которые будут предоставляться в каждом экземпляре лица.
Пример -
A.4.9 ProjectType
Атрибуты: id
Элементы: namespace, description, startDate, endDate, state, dateLaMu, userLaMu, language, category, helpInfo, code
Ссылки: complexElements
Определение конкретной группы проектов. Обычно в структуре взаимодействия будет присутствовать только один экземпляр, определяющий структуру элементов, которые будут предоставляться в каждом экземпляре проекта.
Пример -
A.4.10 RoleType
Атрибуты: id
Элементы: description, startDate, endDate, state, dateLaMu, userLaMu, language, category, helpInfo, code, responsibilityFeedback, responsibilityScope, responsibilitySupportTask, responsibilityTask
Определение конкретного типа роли.
Пример -
A.4.11 SimpleElementType
Атрибуты: id
Элементы: description, interfaceType, state, dateLaMu, userLaMu, language, category, helpInfo, valueList Ссылки: composedOf, userDefinedType
Определение типа простого элемента (SimpleElementType). Этот тип элемента указывает свойство, которое может встречаться в различных структурах объектов, например в MessageType (см. также AppendixType, ProjectType, PersonType и OrganisationType). SimpleElementType всегда является вложенным в ComplexElementType.
Пример -
A.4.12 TransactionPhaseType
Атрибуты: id
Элементы: description, startDate, endDate, state, dateLaMu, userLaMu, language, category, helpInfo, code Thedefinitionofaphaserelated toatransaction. Примеры: "назначение принято" или "часть результата получена".
Пример -
A.4.13 TransactionType
Атрибуты: id
Элементы: description, startDate, endDate, state, dateLaMu, userLaMu, language, category, helpInfo, code, result
Ссылки: initiator, executor, subTransactions
Определение типа транзакции. Тип транзакции может в свою очередь ссылаться на другие типы транзакции. Транзакцию будет инициировать лицо, принадлежащее к организации, выполняющей определенную роль. На этом уровне должен быть заявлен тип роли инициатора (продвигаемая схема будет обеспечивать это). Это же верно для исполнителя.
Пример -
A.4.14 UserDefinedType
Атрибуты: #id
Элементы: description, state, dateLaMu, userLaMu, baseType, xsdRestriction, language, helpInfo
Спецификация типа данных (для использования в SimpleElementType). Этот тип данных инкапсулирует заполняемые области в конечном сообщении.
Пример -
A.5 Атрибуты
A.5.1 id
Уникальное "краткое" имя образца. После продвижения это имя будет именем объекта.
Пример -
Объект структуры
А.6 Элементы
А.6.1 baseType
Содержит базовый тип типа SimpleElementType.
Пример -
Здесь Height в типе SimpleElementType всегда содержит целое число (возможно, с ограничением: xsdRestriction).
А.6.2 category
Категория, связанная с этим объектом (необязательное значение).
А.6.3 code
Согласованный код структуры взаимодействия для этого объекта.
Пример -
А.6.4 dateLaMu
Дата и время последнего изменения этого объекта.
Пример -
А.6.5 description
Описание объекта.
Пример -
А.6.6 endDate
Дата и время окончания срока действия этого объекта.
Пример -
А.6.7 firstMessage
Необязательное Булево значение, показывающее, разрешается ли использовать этот объект типа MessageInTransactionType как стартовое сообщение для новой транзакции. Значение по умолчанию - false.
Пример -
A.6.8 format
Разметка элемента (необязательная).
A.6.9 helpInfo
URL-адрес или URI-код ссылки на дополнительную информацию об этом объекте.
Пример -
A.6.10 initiatorToExecutor
Булево значение, представляющее направление, в котором сообщение должно посылаться.
Пример -
Предполагается, что сообщение TenderAcceptance будет отправлено от клиента (исполнитель транзакции) исполнителю работ (инициатор).
А.6.11 interfaceType
Интерфейс типа или представление этого SimpleElementType для конкретного сообщения.
А.6.12 language
Язык для использования после продвижения объекта.
Пример -
A.6.13 namespace
Имя целевого пространства имен для идентификации сообщений, принадлежащих этой структуре взаимодействия.
Пример -
Примечание - Элемент namespace. Ранее все схемы структуры взаимодействия ссылались на одно целевое пространство имен, которое совпадало с пространством имен самой схемы взаимодействия. С помощью этого элемента в каждой схеме взаимодействия можно указать ее собственное пространство имен.
А.6.14 openSecondaryTransactionsAllowed
Необязательное логическое значение, которое позволяет продолжить основную транзакцию, даже если завершены не все подчиненные транзакции. Значение TRUE интерпретируется как сигнал, разрешающий продолжение (шлюз OR). Значение FALSE интерпретируется как сигнал, запрещающий продолжение, пока не будут завершены все подчиненные транзакции (шлюз AND). Если элемент openSecondaryTransactionsAllowed не указан, его значение интерпретируется как TRUE.
А.6.15 received
Логическое значение, показывающее, что предыдущее сообщение получено.
А.6.16 requiredNotify
С этим элементом не связана никакая семантика.
А.6.17 responsibilityFeedback
Ожидаемая обратная связь в направлении к другим ролям (необязательная строка).
А.6.18 responsibilityScope
Область действия/рамки определенных отношений ответственности роли (необязательная строка).
А.6.19 responsibilitySupportTask
Задачи, которые должны выполняться для поддержки других ролей. Например, делегированные ответственности (необязательная строка).
А.6.20 responsibilityTask
Задачи, возникающие из-за отношений ответственности данной роли (необязательная строка).
А.6.21 result
Ожидаемый результат выполнения транзакции.
А.6.22 send
Логическое значение, показывающее, было ли отправлено сообщение.
А.6.23 startDate
Дата и время начала срока действия объекта.
Пример -
А.6.24 state
Состояние видимости объекта, возможные значения:
Пример -
A.6.25 userLaMu
Пользователь последнего изменения объекта.
Пример -
А.6.26 valueList
Разделяемый точкой с запятой список значений, которые может принимать образец на уровне сообщения. Исходно этот элемент предназначался для поддержки перечислений. Сейчас это реализуется с помощью типа элемента UserDefinedType и элемента xsdRestriction. Значения перечисления задаются в xsdRestriction. С этим элементом больше не связывается никакая семантика.
Пример -
A.6.27 xsdRestriction
Этот элемент указывает ограничение, которое будет выполняться на уровне сообщения в типе SimpleElementType этого типа UserDefinedType.
А.7 Ссылки
А.7.1 appendixTypes
Набор доступных для выбора типов дополнения.
А.7.2 complexElements
Ссылка на набор типов SimpleElementType (собранных в ComplexElementType).
Пример -
На уровне сообщения это конкретизируется в:
А.7.3 composedOf
Тип SimpleElementType может состоять из набора типов SimpleElementType (собранных в типе ComplexElementType).
Пример -
На уровне сообщения это конкретизируется в:
A.7.4 element
Состояние для типа SimpleElementType, который будет использоваться в типе MessageType.
Пример -
В этом примере показано, что в типе MessageType со значением М объект Doorheight должен иметь значение не меньше 2000, хотя это не применяется на уровне типа SimpleElementType.
А.7.5 elements
Набор типов SimpleElementType, доступный внутри типа ComplexElementType.
Пример -
На уровне сообщения это конкретизируется в:
Обязательным является то, что все элементы точно указываются только один раз. У этих дверей всегда имеется верхнее окно. Число дверей не ограничено.
А.7.6 executor
Роль 'исполняющий' (RoleType), связанная с конкретной транзакцией.
Пример -
A.7.7 group
Тип GroupType, связанный с сообщением в пределах конкретной транзакции.
Пример -
Сообщение М в транзакции Т принадлежит к группе G (может существовать несколько сообщений М в транзакции Т, принадлежащих к той же самой или другой группе).
А.7.8 Initiator
Роль 'инициирующий' (RoleType), принадлежащая к конкретной транзакции.
Пример -
A.7.9 message
Сообщение в MessageInTransactionType.
Пример -
A.7.10 previous
Тип MessageInTransactionType может обеспечивать принудительное выполнение предыдущего сообщения в конкретной транзакции (этот предыдущий тип MessageInTransactionType не должен принадлежать к тому же самому типу TransactionType).
Пример -
Транзакции, которые могут выполняться в данной транзакции.
Пример -
Тип TransactionType со значением AcquireWork состоит из типов TransactionType со значениями AcquisitionTrack и TenderTraject.
A.7.11 simpleElements
Набор простых типов элементов, принадлежащих к данному сложному типу элементов.
Пример -
На уровне сообщения это может привести к следующему результату:
A.7.12 subTransactions
Транзакции, которые могут быть запущены из данной транзакции.
Пример -
A.7.13 transaction
Транзакция в типе MessageInTransactionType.
Пример -
A.7.14 transactionPhase
Объект TransactionPhase для конкретного типа MessageType в конкретном типе TransactionType.
Пример -
Где тип MessageType, имеющий значение M внутри конкретного типа TransactionType, имеющего значение Т, определяет тип TransactionPhaseType, имеющий значение ТР.
А.7.15 UserDefinedType
Ссылка на тип UserDefinedType, который задает формат типа SimpleElementType.
Пример -
Тип SimpleElementType Height задает формат Integer для каждого образца (возможно, с ограничением в виде xsdRestriction).
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.