# Application Schema Differences

(Available since ShapeChange 2.2.0)

ShapeChange can compute differences between the application schemas from the input model and a reference model.

## 1. Configuration

Set the outputFormat to 'HTML' and provide valid values for the parameters referenceModelType and referenceModelFileNameOrConnectionString in the configuration of the FeatureCatalogue target.

Note | By default, ShapeChange uses the XSL file named 'html_diff.xsl' to create an HTML page showing the differences in application schemas. With the target parameter xslhtmlFile, a custom XSLT to create the output can be configured.

### 1.1. Example

      1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

      <Target class="de.interactive_instruments.ShapeChange.Target.FeatureCatalogue.FeatureCatalogue"
      mode="enabled">
      <targetParameter name="outputDirectory" value="results/diff"/>
      <targetParameter name="outputFilename" value="application_schema_diff"/>
      <targetParameter name="sortedOutput" value="true"/>
      <targetParameter name="inheritedProperties" value="false"/>
      <targetParameter name="outputFormat" value="HTML"/>
      <targetParameter name="name" value="'Feature Catalogue XYZ'"/>
      <targetParameter name="scope" value="This feature catalogue ..."/>
      <targetParameter name="versionNumber" value="1.0"/>
      <targetParameter name="versionDate" value="n/a"/>
      <targetParameter name="producer" value="Organization XYZ"/>
      <targetParameter name="referenceModelType" value="EA7"/>
      <targetParameter name="referenceModelFileNameOrConnectionString" value="referenceModel/refModel.eap"/>
    </Target>

## 2. How it works

For each application schema from the input model that is selected for processing, ShapeChange tries to find an application schema with the same name (case sensitive!) in the reference model. If a corresponding schema was found, the following kinds of differences are computed:

- Case changes in the name of application schema elements (packages, classes and properties that belong to the application schema).

  - Only case changes can be computed, because elements from the input are looked up in the reference model by their name (the lookup ignores case).

- Changes in the metadata of application schema elements: alias, documentation, definition, description, primary code, legal basis

- Multiplicity changes

- Value type changes

- Changes of supertypes / generalization relationships

- Changes to the set of:

  - Subpackages, i.e. the packages that are contained in a package

  - Classes contained in a package

  - Properties contained in a class (includes enums in enumerations and code lists)

- Stereotype changes

- Tagged value changes

## 3. Output

ShapeChange documents identified changes in two ways: the log and a single HTML page.

Note | The log contains all changes. The HTML currently does not show changes to stereotypes and tagged values.