在动态模型编程中模型是像XML这样的结构化的数据,因此动作的原理就是关于如何解释执行模型的。
动态模型编程首先假设任何模型都是可以执行的。
由于预设了任何模型都是可执行的假设,而模型是像XML这样的结构化的数据,一个模型可以拥有子节点,因此我们可以把一个模型的某些子节点当作它的行为定义。
在动态模型编程中一个模型的第一个事物名为actions的子节点下的模型被看作是它的行为的定义,一个事物的行为也可以继承于它的描述者或被继承的事物,具体可参看模型相关的文档。
由事物模型的行为的定义可知一个模型的行为也是模型。
由于模型的行为也是模型,因此执行一个模型的run方法就是要执行run方法模型的run方法,因此是一个递归过程。
动作的解释执行过程是一个递归的过程,若要递归能够终止,那么有些模型执行时就不是执行它的run方法了,而是由引擎直接执行,这样的模型和动作就称为元动作。XWorker的模型引擎是使用Java执行的,它的元动作叫JvaAction。