At Beringer, a common request is to develop data integrations for various CRM implementations. Sometimes the data source may be a file, such as an XML file. In order for an application to properly read data from an XML file, it needs to know the XML Schema. An XML Schema defines the structure of that XML document. If you've viewed XML documents before, you understand that the listed data attributes can change from one element to another even if they contain the same type of data. For example, let's say you have an element called Contacts with phone numbers within your XML document. If Contact A has a phone number, you might see that within its own data attribute. In addition, it may have multiple phones each listed within different nodes:
However, if Contact B has no phone provided, the phone attribute may not appear at all within the Contact element as seen in this example:
The XML Schema helps your application understand that the phone attribute exists within the XML structure, but that it is null for some Contacts. For more details on the purpose of an XML Schema, please refer to http://www.w3schools.com/schema/.
Recently, I was asked to troubleshoot an issue with one of our integrations that read data from an XML document. The integration itself had been working well for several months, but it was now producing the following error:
In addition, our field mappings were producing errors, indicating that the attributes were not valid. The application we were using was Scribe Insight, but the errors would be similar regardless of what tool was used to read the XML file. After contacting the vendor of the XML file, we discovered that the URL to the XML schema had recently changed. To resolve the error, we opened the Scribe dts via the workbench and changed the URL of the schema:
We also changed the URL within the XML document itself:
We then resumed the integration and it worked. I want to point out that with Scribe Insight, the Schema URL needs to be correct in both places as mentioned. By correcting it in only one area, the integration may appear to succeed, but not work the way you expect. In our case, we saw that the integration succeeded after changing the Schema URL within the dts, but no new records were inserted into CRM. After noticing that the Schema URL was also incorrect within the XML file itself and changing it, the integration was able to insert the data into CRM.
I hope this experience will help others out there understand the impact of the Schema in an integration utilizing XML files. For questions, please contact Beringer.