自动生成的规则

缺省情况下,出厂缺省 mapping_rules 设置包含 INCLUDE_AUTO_RULES 伪指令。此伪指令包含从当前运行中客户机类型的活动类型定义自动生成的映射规则。

例如,您可以在 Windows 客户机上定义具有与 .doc.dot 后缀匹配的两种模式的 msword 类型。在 Windows 客户机上,自动生成的规则在指定了 INCLUDE_AUTO_RULES 伪指令的位置包括以下两个规则:

WHEN %name =~ '.*\\.[Dd][Oo][Cc]$' SET type TO 'msword'

WHEN %name =~ '.*\\.[Dd][Oo][Tt]$' SET type TO 'msword'

使用自动生成规则的优势是基于类型的规则在对应的类型定义中定义。 而且,如果类型定义从一个数据库导出并导入到另一个数据库,那么对应的迁移规则也会如此。这在您在数据库之间使用 DCM 并复制类型定义的情况下特别有用。

映射规则设置或文件完全控制对迁移规则的排序。您可以移除 INCLUDE_AUTO_RULES 伪指令,以便迁移规则文件显式定义每个规则。您还可以移动该文件中此伪指令的位置以更改包含了自动生成规则的位置。

自动生成规则使用以下过程来生成:
  1. 将首先生成预定义 asciibinary 类型中的规则。
  2. 将处理每个将 asciibinary 用作其超类型的类型,从而使类型继承树从顶部跨越到底部,并从左侧跨越到右侧。作为某超类型的子级的更多特定类型将在其父超类型之后生成规则。例如,如果类型定义 javaccjava 的子类型,而 java 又是 ascii 的子类型,那么这三个类型的映射规则将以如下顺序来生成:asciijavajavacc
  3. 文件中类型匹配列表的每个非注释条目均会生成以下格式的规则:

    WHEN %name =~ regular_expression SET TYPE TO 'type'

  4. Ignore 设置为 TRUE 的每个类型均会生成以下格式的规则:

    WHEN %name =~ regular_expression IGNORE

您可以通过使用 ccm show -mar 命令来查看通过 INCLUDE_AUTO_RULES 伪指令来包含的自动生成规则。


反馈