13.1 引言
BasicOCL是暴露需要与Core::Basic工作的最小化的OCL包。
Basic OCL依赖Core::Basic包。它显式地引用如下Core::Basic类:Property、Operation、Parameter、TypedElement、Type、Class、DataType、Enumeration、PrimitiveType和EnumberationLiteral。
EssentialOCL是暴露需要与EMOF工作的最小化的OCL的包。EssentialOCL依赖EMOF包。它显式地引用EMOF类:Property、Operation、Parameter、TypedElement、Type、Class、DataType、Enumeration、PrimitiveType和EnumberationLiteral。
EssentialOCL使用包合并、以类似EMOF从Core::Basic构建而来的方式从Core::Basic和BasicOcl构建而来。结构上BasicOCL和EssientialOCL没有区别。为此在本章我们为这两个包提供了一组定义抽象语法的图。
为了方便,因为BasicOCL(或EssentailOCL)概念上是完整OCL语言的一个子集,我们不会重复定义已经在其它章节定义的类描述和良构规则。在适用的时候,所有的这些定义都在特定的Core::Basic(或EMOF)上下文中被重新解释。子章节“用于元建模的OCL适配”定义了对这个“完整”OCL进行重新解释的特定规则,而“图”子章节提供了完整的图来定义BasicOCL(或EssentialOCL)的抽象语法。