<rng:element name="fsm">
<rng:optional>
<rng:attribute name="init">
<rng:ref name="macro.fsm.state"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="final">
<rng:ref name="macro.fsm.state"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="tinit">
<rng:ref name="macro.fsm.state"/>
</rng:attribute>
</rng:optional>
<rng:optional>
<rng:attribute name="tfinal">
<rng:ref name="macro.fsm.state"/>
</rng:attribute>
</rng:optional>
<rng:oneOrMore>
<rng:ref name="transition"/>
</rng:oneOrMore>
</rng:element>
element fsm
{
attribute init { macro.fsm.state }?,
attribute final { macro.fsm.state }?,
attribute tinit { macro.fsm.state }?,
attribute tfinal { macro.fsm.state }?,
transition+
}