The Settings tab of an XML Map connector does not load the settings of the mapping with an error stating that a connector does not exist:
However, the XML Map does continue to process XML files, as evidenced by activity in the Input and Output tabs:
Cause: The XML Map connector can use two types of references for the Source File and Destination File in the settings of the map. A reference with the connector:// prefix will reference a sample file created as a result from another connector in your flow:
Alternately, a simple file reference will reference an xml file that was uploaded to the connector:
There are advantages and disadvantages to references from other connectors (those with the connector:// prefix) can be generated from sample files uploaded to those connectors:
https://cdn.cdata.com/help/AZK/mft/XML-Map-Template-Files.html
And those references are dynamic, so changes to a mapping.xml in a database connector will be reloaded the next time the XML Map is refreshed.
The disadvantage is that the loading of the designer in the Settings tab is going to be contingent on the reference existing in the connector following the connector:// prefix. If the original connector that contained this reference file is gone – if for instance, the original file was copied and then deleted, the Settings page for this connector cannot be loaded.
Note that this does not break the complete functionality of the XML Map, just the designer in the Settings tab and the ability to make changes to the map. Once the first Foreach element in a map is dragged and dropped in an XML Map, the state of the mapping logic is stored in an internal resource file, and the Settings tab simply visualizes the mapping logic already stored in the connector.
Solution:
In order to display the mapping again, the missing reference will need to be corrected to one that already exists. If you select a new reference in the designer, you will be prompted to restart your mapping:
Doing this will lose the state of your existing mapping, so choose No here. Instead, you can update the connector:// reference in the XML Map outside of the designer. First, check to see if the original connector has been replaced. Here’s an example of an out of date reference:
The original reference, SQLServerOriginal, no longer exists, but it can reasonably be assumed that SQLServerCopy is its replacement, and the XML Map can be updated to use that reference. If you are sure that the referenced mapping is in a new connector, navigate to the Advanced tab of the connector, and in the Other Settings field, you can set Source or Destination to manually reference the resource of another connector in the format
Source=connector://ConnectorID:resourcename.xml
OR
Destination=connector://ConnectorID:resourcename.xml
In the above example, the Source reference is missing, and the connector ID of the updated reference is SQLServerCopy, so the setting would look like:
Once this change is made and your changes are saved, close and reopen the connector settings. If you successfully updated the reference, you will see that the design view of the map can now be loaded:
If you made a typo, that is not a problem – you can simply try again.
In the event that there is no suitable copy of the existing connector to reference, you can still update the XML Map so that it uses a static file reference. Simply generate an XML file that matches the format that you expect to parse, and upload it as a new reference, using the Upload Sample File reference:
Be sure to use a simple filename like NewReference.xml because as before, you will need to type out the new reference later. Again, you will be prompted to overwrite your changes, and again, choose No
Now, the new reference is uploaded in the XML Map, and you can overwrite the source or destination using a static reference like
Source=resourcename.xml
OR
Destination=resourcename.xml
Again, if the reference is found, it will be loaded when you reopen the XML Map: