There can be multiple mapping rules for the same source type. For example, String > varchar and String > nvarchar. In this case, one of the rules must be marked as default by setting the default tag value on it to true.

The type map having several rules for the same type and without any one set as default cannot be used.

During the initial transformation, only the default rules for each source type come into play. E.g., if the user has a property with the String type, this will be transformed to property having the varchar type set.

However, during the transformation update, all rules come into play. If the destination type is one of the acceptable types according to the map, it is not changed. Otherwise it is replaced with the default mapping.

Regarding the example above, let’s say that after the initial transformation, the user changes the type of the property in the destination model from varchar to nvarchar (as a post-transformation refinement process). If the user now runs a transformation update, this change will not be overwritten, since nvarchar is an acceptable
type as there is a String > nvarchar mapping in the type map as well. If on the other hand the user sets the type of this property to number, this would be reset the during transformation update, and the type will be forced back to varchar, as there is no String > number mapping.