Документация / BPMN

BPMN XML

Модель BPMN хранится в XML-файле по схеме стандарта (пространство имён http://www.omg.org/spec/BPMN/20100524/MODEL). Файл состоит из двух частей: семантической — что происходит в процессе — и графической (Diagram Interchange, DI) — где и каким размером нарисован каждый элемент.

Структура файла

<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
                  xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
                  xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
                  xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
                  id="Definitions_1" targetNamespace="http://example.com/bpmn">
  <!-- глобальные определения: сообщения, сигналы, ошибки -->
  <bpmn:message id="Message_Order" name="Заказ" />
  <!-- участники и потоки сообщений -->
  <bpmn:collaboration id="Collaboration_1">...</bpmn:collaboration>
  <!-- процессы -->
  <bpmn:process id="Process_1">...</bpmn:process>
  <!-- изображение -->
  <bpmndi:BPMNDiagram id="Diagram_1">
    <bpmndi:BPMNPlane id="Plane_1" bpmnElement="Collaboration_1">...</bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</bpmn:definitions>
ЭлементНазначение
definitionsКорень файла; targetNamespace — пространство имён модели
processПроцесс: события, действия, шлюзы, потоки, данные, дорожки
collaborationУчастники (participant), потоки сообщений, связь пулов с процессами
message, signal, error, escalationГлобальные определения, на которые ссылаются события
BPMNDiagram / BPMNPlaneЛист диаграммы; bpmnElement — процесс или коллаборация на листе
BPMNShapeФигура элемента: dc:Bounds — координаты и размер
BPMNEdgeЛиния потока: точки излома di:waypoint
BPMNLabelПоложение подписи, если она не на фигуре

Идентификаторы и ссылки

У каждого элемента есть уникальный id. Связи задаются ссылками на идентификаторы: поток — sourceRef и targetRef, фигура — bpmnElement, событие — messageRef или errorRef, пул — processRef. Внутри элементов процесса дублирующие ссылки incoming и outgoing перечисляют их потоки — редакторы заполняют их автоматически.

Идентификатор должен быть корректным XML-именем: начинаться с буквы или подчёркивания, без пробелов. Понятные идентификаторы (Approve, Flow_Yes) упрощают чтение XML и сравнение версий.

Условия и выражения

Выражения записываются в элементах типа tFormalExpression: условия потоков (conditionExpression), интервалы таймеров (timeDuration, timeDate, timeCycle). Язык выражений зависит от движка исполнения; для описательных моделей условия часто оставляют текстом в названиях потоков.

<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">amount &gt; 100000</bpmn:conditionExpression>

Расширения

Стандарт разрешает добавлять свои атрибуты и элементы в других пространствах имён — так BPM-платформы хранят технические настройки (исполнителей, формы, переменные). Такие данные размещают в extensionElements или в атрибутах с префиксом своего пространства имён. Другие редакторы должны сохранять расширения без изменений.

<bpmn:userTask id="Approve" name="Согласовать заявку" xmlns:acme="http://acme.example/bpmn">
  <bpmn:extensionElements>
    <acme:assignee group="managers" />
  </bpmn:extensionElements>
</bpmn:userTask>

Работа с XML в редакторе

  • Код справа и холст слева синхронизированы: правка в любом из них сразу отражается в другом.
  • Если в XML ошибка, редактор покажет её строку и не будет перерисовывать холст, пока XML не станет корректным.
  • Элементы без фигуры в BPMNDiagram на холсте не видны, хотя есть в модели. Добавьте им BPMNShape или создайте их на холсте.
  • Экспорт в SVG и PNG берёт то, что видно на холсте; экспорт в BPMN — файл целиком, вместе с расширениями.

Обновлено: 30 сентября 2026 г.