Xtext で DSL を定義しました。次のように見えるとしましょう。
Model:
components+=Component*
;
Component:
House | Car
;
House:
'House' name=ID
('height' hubRadius=DOUBLE)? &
('width' hubRadius=DOUBLE)?
'end' 'House'
;
Car:
'Car' name=ID
('maxSpeed' hubRadius=INT)? &
('brand' hubRadius=STRING)?
'end' 'Car'
;
私の DSL に基づいて生成された Eclipse IDE で、モデルを実装しました。次のように見えるとしましょう。
House MyHouse
height 102.5
width 30.56
end House
Car MyCar
maxSpeed 190
brand "mercedes"
end Car
そのモデルを XMI または XML ファイルとしてエクスポートしたいと考えています。
これを行う理由は、XMI/XML ファイルを使用して、その場でモデル パラメーターを変更できる別のワークフローがあるからです。したがって、モデルを再定義する代わりに、XML/XMI ファイルをワークフローに渡すだけで済みます。ワークフローはこれを自動的に行います。
簡単な例: DSL では、コンポーネントHouse
と を定義できますCar
。はHouse
パラメータwidth
およびheight
を許可し、 はパラメータおよびをCar
許可します(上記の文法を参照)。maxSpeed
brand
そのため、私が話していた私のワークフローでは、パラメーターはさまざまな値で変更されます。たとえば、私が探している生成された XML は次のようになります。
<model>
<component name='House'>
<param name='height'>102.5</param>
<param name='width'>30.56</param>
</component>
<component name='Car'>
<param name='maxSpeed'>190</param>
<param name='brand'>mercedes</param>
</component>
</model>
モデルを XMI/XML としてエクスポートするにはどうすればよいですか?