Source module unspecified | Source module specified | |
|---|---|---|
Target module unspecified | Generalize this structural type to its base ancestor | Check whether the root element of the topic type matches a specified source module; generalize to its base ancestor if it does, otherwise ignore the structural type instance unless it has domains to generalize. |
Target module specified | Check whether the class attribute contains the target module. If it does contain the target, rename the element to the value associated with the target module. Otherwise, ignore the element. | It is an error if the root element matches a specified source but its class attribute does not contain the target. If the root element matches a specified source module and its class attribute does contain the target module, generalize to the target module. Otherwise, ignore the structural type instance unless it has domains to generalize. |
Source module unspecified | Source module specified | |
|---|---|---|
Target module unspecified | Do not generalize domain specializations in this structural type. | Check whether the domains attribute lists the specified domain; proceed with generalization if it does, otherwise ignore the structural type instance unless it is itself a candidate for generalization. |
Target module specified | Check whether the domains attribute contains the target module. If it does, generalize to the target module. Otherwise, skip the structural type instance unless it is itself a candidate for generalization. | It is an error if the domains attribute matches a specified source but the domain value string does not contain the target. If the domains attribute matches a specified source module and the domain value string does contain the target module, generalize to the target module. Otherwise, ignore the structural type instance unless it is itself a candidate for generalization. |
Source module unspecified | Source module specified | |
|---|---|---|
Target module unspecified | If the class attribute starts with "-" (part of a structural type), rename the element to its base ancestor equivalent. Otherwise ignore it. | Check whether the last value of the class attribute matches a specified source; generalize to its base ancestor if it does, otherwise ignore the element. |
Target module specified | Check whether the class attribute contains the target module; rename the element to the value associated with the target module if it does contain the target, otherwise ignore the element. | It is an error if the last value in the class attribute matches a specified source but the previous values do not include the target. If the last value in the class attribute matches a specified source module and the previous values do include the target module, rename the element to the value associated with the target module. Otherwise, ignore the element. |