SSIS Package Format
Applies To: SQL Server 2016
In the current release of Integration Services, significant changes were made to the package format (.dtsx file) to make it easier to read the format and to compare packages. You can also more reliably merge packages that don’t contain conflicting changes or changes stored in binary format.
To view the current DTSX package file format, see [MS-DTSX]: Data Transformation Services Package XML File Format Specification.
The following list outlines the file format changes. To view code examples of these changes, see Package Format Changes in SQL Server 2012.
Formatting conventions have been applied to make it easier to read and understand the .dtsx file.
The format is more concise. Separate elements for each property have been persisted as attributes, with the exception of the PackageFormatVersion. Attributes are listed alphabetically, and properties that have default values are no longer persisted. Finally, elements that can appear multiple times, are now contained within a parent element.
Most objects within a package that can be referred to by other objects now have a refId attribute defined in the package XML. Instead of persisting lineage IDs, the refID is now persisted. Lineage IDs are still used within the runtime and regenerated when the package is loaded.
The refId value is a unique string that is readable and understandable, compared to GUIDs or integer values. The string is similar to path values used for package configurations in previous releases of Integration Services.
If you are merging changes between two versions of a package, the refId can be used in find/replace operations to ensure that all references to that object have been correctly updated.
The layout information is contained in a CData section.
Annotations are persisted in cleartext. This makes it easier to extract the information for automated generation of documentation.