There are two scenarios where subtypes can be used. An association can point to an abstract or non-abstract type, in which the concrete subtype is allowed or required. The second scenario is when an association points to a particular non-abstract subtype. In this case, the subtype is always called for, and there is no need for xsi:type. For example, CVR::ImageData points to CVR::Image, a subtype of CVR::File, in this case there is no need to use xsi:type.
This is not a super easy fix, because the application of xsi:type is on the xsl:template associated with each class, but we need the xsi:type to apply contextually.
There are two scenarios where subtypes can be used. An association can point to an abstract or non-abstract type, in which the concrete subtype is allowed or required. The second scenario is when an association points to a particular non-abstract subtype. In this case, the subtype is always called for, and there is no need for xsi:type. For example,
CVR::ImageData
points toCVR::Image
, a subtype ofCVR::File
, in this case there is no need to usexsi:type
.