用途:在 Draw.io 的 mxGraph XML 中正确生成泳道图、跨职能流程图以及池/泳道布局,核心是强制使用容器相对坐标,避免子图形使用绝对页面坐标这一最常见错误。
主要能力与规则:每个泳道和池的样式中必须设置 container=1,否则子图形不会随泳道移动;子图形必须使用相对泳道左上角的坐标,并把 parent 设为所属容器 ID;跨泳道连线必须把 parent 设为共同祖先(池),而不是某条泳道;泳道必须加 collapsible=0,防止在编辑器中误折叠。
层级结构:根(id=1)→ 池(container=1,parent=1,绝对坐标)→ 泳道(container=1,parent=池,相对池坐标)→ 图形(parent=泳道,相对泳道坐标);跨泳道连线 parent 为池。
样式要点:池可用 shape=table;startSize=30;container=1;collapsible=0;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1; 或简化为 swimlane;startSize=30;container=1;collapsible=0;。泳道用 swimlane;startSize=30;container=1;collapsible=0;horizontal=1;。horizontal 控制表头方向而非堆叠方向,horizontal=0 为顶部表头、泳道并排、自上而下流程,是多数业务流程图的默认;horizontal=1 为左侧表头、泳道上下堆叠、自左向右流程。startSize 控制表头高度,常用 20/30/40/50+。
几何规则:池用绝对坐标;泳道相对池,首条泳道 y=startSize,后续 y 为前序泳道高度累加;泳道宽度等于池宽;池高 = startSize + 各泳道高度之和;子图形 y 应不小于泳道 startSize 以免压住表头。支持嵌套子泳道,子泳道坐标相对父泳道,宽度等于父泳道宽。container=1 时 Draw.io 会在子图形越界时自动扩展容器,可通过预留足够尺寸、resizable=1、recursiveResize=0 控制。
限制与检查:输出前需确认池与泳道均有 container=1、泳道有 collapsible=0、子图形 parent 正确且用相对坐标、跨泳道连线 parent 为池、泳道宽等于池宽、池高公式成立、结构单元 id=0 与 id=1 存在、ID 唯一、连线 source/target 有效。资料未提供收费、平台与效果信息。