UppaalのXML編集ではまる
自分はXMLのことはよくわからないけれど、UppaalのファイルはXMLで記述されているので、その編集をするためにRubyのREXMLを使ってプログラミングをしています。
さて、次のようなElementを
<transition> <source ref="id4" /> <target ref="id4" /> <label kind="synchronisation" x="128" y="-152">go!</label> <label kind="assignment" x="0" y="0">_u()</label> <nail x="120" y="-224" /> <nail x="168" y="-104" /> </transition>
次のように、子の順番を入れ替えます。
<transition> <source ref="id4" /> <target ref="id4" /> <label kind="synchronisation" x="128" y="-152">go!</label> <nail x="120" y="-224" /> <nail x="168" y="-104" /> <label kind="assignment" x="0" y="0">_u()</label> </transition>
すると、Uppaalで正しく読み込めなくなりました。これがXMLというやつの力なのでしょうか。それともUppaalが馬鹿なだけなのでしょうか。
(追記)ああでも良く考えたら、例えば上のnailタグはエッジの経由する座標を示しているのだけれど、順序を属性として持っていないので、これは完全に順番に依存しますね。(少なくともUppaalの)XMLは勝手に順番を変えてはいけないということがよくわかります。
Elementを末尾に加えるだけではなく、Parent#insert_beforeあたりを使って順序を制御しないといけないのですね。XMLは面倒だなあ。