用于对同义词进行匹配的算法

自动映射 (automap) 函数匹配同义词的方式,用于在特定输入和输出之间创建映射,它遵循一组规则。

  1. 名称匹配排除固定值输出和映射的输出。 名称匹配将排除所有具有固定值的输出字段。 名称匹配将排除所有已映射的输出或者位于已映射的容器之下的输出。
  2. 同义词匹配通过使用元素、数据库列或属性(与其类型无关)的名称来执行。 如果输入与输出同名,那么视为匹配,而与输入和输出的种类以及 XSD 类型无关。 元素、数据库列或属性在其名称相同的情况下都可以构成匹配项。
  3. 字母数字字符的同义词匹配不区分大小写,并且与 自动将输入映射到输出元素中使用的匹配完全相同。
  4. 名称空间或名称空间前缀不参与同义词匹配。 名称匹配排除 XML 名称空间。 因此,abc:somethingxyz:something都被认为是一样的{http://www.abc.com}:something{http://www.xyz.com}:something.
  5. 当多个输入具有以下内容时:same名称作为一个输出,将创建一个映射。 但是,如果您的多个输入与一个输出同名,而且您选择按同一名称(或相似名称)进行映射匹配后代,那么会首先尝试按路径和名称进行匹配。 如果找到匹配项,那么将创建一个变换,并且不会考虑更多匹配项。
  6. 如果输入和输出具有以下内容:same名称,它们不会被视为同义词选项下的匹配项。 如果您需要同名输入和输出的映射,还必须选择输入和输出同名时创建变换选项。
  7. 您可能不仅希望映射同义词,还想为某些(但并非全部)同名的输入和输出创建映射。 在这种情况下,您有两个选择:
    • 取消选中在输入与输出同名时创建变换,并将同名的输入和输出包括在同义词文件中
    • 选中在输入与输出同名时创建变换,并在向导的第二页上取消选中不需要的映射。
  8. 如果同时选中映射所选元素的所有简单后代选项以及同名选项和同义词映射选项,那么将执行下列步骤以匹配名称:
    • 对所选输入和输出的相对路径和项名进行比较
    • 在不考虑相对路径的情况下,对项名进行比较
    • 在不考虑同义词的相对路径的情况下,对项名进行比较

    在前一步中匹配的输入和输出不参与后续步骤。

  9. 如果同时选中映射所选元素的直接子代选项以及同名选项和同义词映射选项,那么将执行下列步骤以匹配名称:
    1. 在不考虑相对路径的情况下,对项名进行比较
    2. 在不考虑同义词的相对路径的情况下,对项名进行比较

    在前一步中匹配的输入和输出不参与后续步骤。