14.3. XML でのプロセス定義
BPMN 2.0 仕様を使用して、XML 形式でプロセスを直接作成できます。これらの XML プロセスの構文は、BPMN 2.0 XML スキーマ定義を使用して定義されます。
プロセス XML ファイルは、以下のコアセクションで設定されます。
-
process: これは、さまざまなノードとそのプロパティーの定義を含むプロセス XML の最上部になります。プロセス XML ファイルは、1 つの<process>要素で設定されます。この要素には、プロセスに関連するパラメーター (そのタイプ、名前、ID、およびパッケージ名) が含まれ、3 つのサブセクションで設定されます。つまり、変数、グローバル、インポート、レーンなどのプロセスレベル情報が定義されるヘッダーセクション、プロセス内の各ノードを定義するノードセクション、およびプロセス内のすべてのノード間の接続を含む接続セクションの 3 つです。 -
BPMNDiagram: これは、ノードの場所など、すべての描画情報を含むプロセス XML ファイルの下の部分になります。ノードセクションには、各ノードの特定の要素が含まれ、そのノードタイプのさまざまなパラメーターとサブ要素を定義します。
以下のプロセス XML ファイルのフラグメントは、開始イベント、"Hello World" をコンソールに出力するスクリプトタスク、および終了イベントを含むシンプルなプロセスを示しています。
<?xml version="1.0" encoding="UTF-8"?>
<definitions
id="Definition"
targetNamespace="http://www.jboss.org/drools"
typeLanguage="http://www.java.com/javaTypes"
expressionLanguage="http://www.mvel.org/2.0"
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
xmlns:g="http://www.jboss.org/drools/flow/gpd"
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"
xmlns:tns="http://www.jboss.org/drools">
<process processType="Private" isExecutable="true" id="com.sample.hello" name="Hello Process">
<!-- nodes -->
<startEvent id="_1" name="Start" />
<scriptTask id="_2" name="Hello">
<script>System.out.println("Hello World");</script>
</scriptTask>
<endEvent id="_3" name="End" >
<terminateEventDefinition/>
</endEvent>
<!-- connections -->
<sequenceFlow id="_1-_2" sourceRef="_1" targetRef="_2" />
<sequenceFlow id="_2-_3" sourceRef="_2" targetRef="_3" />
</process>
<bpmndi:BPMNDiagram>
<bpmndi:BPMNPlane bpmnElement="com.sample.hello" >
<bpmndi:BPMNShape bpmnElement="_1" >
<dc:Bounds x="16" y="16" width="48" height="48" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_2" >
<dc:Bounds x="96" y="16" width="80" height="48" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_3" >
<dc:Bounds x="208" y="16" width="48" height="48" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="_1-_2" >
<di:waypoint x="40" y="40" />
<di:waypoint x="136" y="40" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_2-_3" >
<di:waypoint x="136" y="40" />
<di:waypoint x="232" y="40" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>