Data exchange is the process of taking data structured under a source schema and actually transforming it into data structured under a target schema, so that the target data is an accurate representation of the source data. Data exchange is similar to the related concept of data integration except that data is actually restructured (with possible loss of content) in data exchange. There may be no way to transform an instance given all of the constraints. Conversely, there may be numerous ways to transform the instance (possibly infinitely many), in which case a "best" choice of solutions has to be identified and justified.
Often there are a few dozen different source and target schema (proprietary data formats) in some specific domain. Often people develop a exchange format or interchange format for some single domain, and then write a few dozen different routines to (indirectly) translate each and every source schema to each and every target schema by using the interchange format as an intermediate step. That requires a lot less work than writing and debugging the hundreds of different routines that would be required to directly translate each and every source schema directly to each and every target schema. (For example, Standard Interchange Format for geospatial data, Data Interchange Format for spreadsheet data, GPS eXchange Format or Keyhole Markup Language for indicating GPS coordinates on the globe, Quicken Interchange Format for financial data, GDSII for integrated circuit layout, etc.)