Java アプリケーションで SCXML を使用しています。ステート マシンを実装するために apache-commons-scxml api を使用しています。sxml API を使用してデータ モデルに値を設定できますが、Java コードでその値を読み取ることができません。
読み取り操作のたびに、実行時に設定された最新の値を読み取る代わりに、scxml ドキュメントに設定されたデフォルト値がフェッチされます。ただし、同じ値の式を scxml doc に記録すると、更新された値が出力されますが、Java コードでは更新された値を取得できません。
以下はデータモデルです。
<datamodel><!-- Usage where the value is an XML data tree -->
<data id="XYZ">
<A xmlns="">T</DevID>
<B xmlns="">F</Result>
</data>
</datamodel>
データ モデルの読み取り:
List<Data> dataTest = handlerFSM.getEngine().getStateMachine().getDatamodel().getData();
Iterator<Data> itrTest = dataTest.iterator();
while(itrTest.hasNext()){
Data d = itrTest.next();
if(d.getId().equals("XYZ")){
NodeList nodeList = d.getNode().getChildNodes();
}
値の設定:
nodeList.item(1).setTextContent("dummy");
値の読み取り:
nodeList1.item(1).getTextContent();
読み取り操作では常に、実行時に設定される「ダミー」ではなく「F」という値が返されます。Apache commons-scxml api を介して Java コードでノードの更新された値 (この場合は「ダミー」) を読み取る方法はありますか?