1

私は大規模な EMF モデル、具体的には MDT プロジェクトの BPMN2.0 モデルを持っています。私たちのソフトウェアには、Oracle JDeveloper BPMN2 エクスポート形式をサポートする必要があるという要件があります。これは、BPMN2.0 スキーマにほぼ対応していますが、独自の拡張機能があります。次に例を示します。

<startEvent isInterrupting="false" name="Start" id="startEvent0">
        <ns2:OracleExtensions>
            <ns2:GraphicsAttributes>
                <ns2:Position y="225" x="100"/>
                <ns2:Size height="21" width="21"/>
            </ns2:GraphicsAttributes>
            <ns2:FeatureSet>
                <ns2:BooleanFeature value="false" name="sync"/>
                <ns2:BooleanFeature value="false" name="catchAllErrors"/>
                <ns2:BooleanFeature value="false" name="catchAllSystemExceptions"/>
                <ns2:StringFeature value="" name="associatedProcess"/>
                <ns2:StringFeature value="" name="associatedNode"/>
                <ns2:StringFeature value="" name="initiator"/>
                <ns2:StringFeature value="operation" name="definedOperationName"/>
                <ns2:StringFeature value="PROCESS_DEFAULT" name="generatesEvents"/>
                <ns2:StringFeature value="USE_PROCESS_PERMISSION" name="sealType"/>
            </ns2:FeatureSet>
            <ns2:Participant/>
        </ns2:OracleExtensions>
        <outputSet/>
        <messageEventDefinition/>
    </startEvent>

ns2 用の XSD スキーマがあるので、対応する eCore モデルを簡単に生成できました。私が 2 日間解決しようとしている問題は、OracleExtensions モデルを既存の BPMN2.0 eCore モデルに正しい方法で「プラグイン」する方法です。私が達成しようとしている目標は、BPMN2.0 モデラー プラグインを使用してモデルを編集し、Oracle 固有の機能を編集するための拡張プロパティを提供することです。

どんな提案でも大歓迎です!

4

1 に答える 1

2

これはEMF Facetのタスクのように思えます:

ツールを開発するときの問題は、最終的なユーザーが本当に必要とする可能性のあるすべての拡張機能を想像できないことです。そのため、EMF Facet は既存の Ecore メタモデルを変更せずに拡張するソリューションを提案しています。

アイデアは、新しい機能 (型、属性、操作、および参照) をメタモデルに追加し、追加のプロパティ (アイコン、ラベルなど) を追加して既存の機能をカスタマイズするための非侵入型メカニズムを提供することです。

于 2012-12-17T15:27:03.400 に答える