变换编写者可以添加下面的一项或两项规则,以确保此变换正确地将 UML 库和概要文件应用于已经应用了 UML 库和概要文件的现有目标模型。如果变换操作将更新现有目标模型而不是完全覆盖现有目标模型或者创建新的目标模型,那么由变换在运行时生成的 in-memory 模型与现有目标模型必须引用每个已应用的 UML 库和概要文件的同一实例,否则就不能合并这些模型。
- UMLDefaultLibrariesAddRule 规则:已将此规则添加至模型到模型变换中的主变换。此规则会按特定方式将缺省 UML 库和概要文件添加至已生成的 in-memory 模型,以确保仅在运行变换时才将每个 UML 概要文件和库装入到内存中,并且只装入一次。例如,如果多个对象引用一个概要文件或库中的同一对象,那么此规则将确保它们引用该 UML 概要文件或库中的对象的同一 in-memory 实例。此功能便于将已生成的 in-memory 模型与现有目标模型进行合并。
- CrossModelReferenceCheckRule 规则:已将此规则添加至模型到模型变换的根变换。它将验证已生成的 in-memory 模型不包含对已装入在其他资源集中的模型的引用。如果存在这样的引用,就会妨碍成功合并这些模型。