Native File Formats
Native XEA and Native XML are Enterprise Architect-specific file formats for model exchange between various Enterprise Architect repositories. Native file formats are, therefore, a mechanism for round-tripping models (that is, performing Enterprise Architect-to-Enterprise Architect transfers). Compared to XMI 1.1/2.1, these file formats have a structure that closely mimics the Enterprise Architect repository, so exporting to Native file formats are considerably faster compared to exporting to XMI 1.1/2.1.
By default, when importing an XMI 1.1/2.1 file over an existing Package, all information in the current Package is deleted from the model before the data is imported from the XMI file. With a Native file import, the existing Package will not be deleted from the model, but will instead be updated with data from the Native file. Therefore, importing a Native file will also be considerably faster than importing from XMI 1.1/2.1.
When exporting a Package to Native file format, the Package being exported will become the root Package in the file. The children of the Package being exported (that is, its elements, diagrams, connectors and so on) will be exported under the root Package in the file. When importing this file into a model, the Native File Importer will check if:
- The root Package in file exists in the model
- Any of the children of the root Package in file exist in the model
If the target model does not contain the root Package in file or its children, then the contents of the file will be created as new items in the model.
If the target model contains the root Package in Native file and its children, then the existing items in the model will be updated with the contents of the Native file.
Importing a Native file to a model that contains some of the imported items
Your model might contain at least one Package that is also used in other models, but not necessarily in the same context. For example, consider the two projects shown here:
Package 'Order' exists in two separate projects, 'Project X' and 'Project Y'. In 'Project X' the 'Order' Package is available as a child of Package 'Abstract Class Model', whereas in 'Project Y' it is a View Package.
When you export the Package 'Abstract Class Model' from 'Project X' to Native file, the file will contain:
- 'Abstract Class Model' as its root Package and
- All information on 'Abstract Class Model' and its children (including Package 'Order')
When this file is imported into 'Project Y', the Native File Importer will determine that:
- The root Package in Native file, 'Abstract Class Model', does not exist in the model
- The child Package 'Order' does exist in the model
In such a scenario, where the root Package in Native file does not exist in the model but its children do, the 'Existing Import Item(s)' dialog will be displayed, which will list the items in Native file that already exist in the model:
Double-click on an item in the list
Selects the item in the Browser window.
Replace Item(s) in Model with Native file contents
Select this radio button to:
In our example, after import 'Project Y' will have this content:
Retain Item(s) in Model and import entire Native file with Strip GUIDs
Select this option to:
In our example, after import, 'Project Y' will have this content:
As you can see, two copies of Package 'Order' will exist in 'Project Y' after import. The View Package 'Order' that existed in the model before import will remain unchanged. The Package 'Order' from the Native file will be imported as a new Package under the imported 'Abstract Class Model' Package.
Cancel the Native file import.
Importing Native files into Models that contain the root Package and children, in a different location
Consider the combination of Projects and Packages shown here:
Packages 'Abstract Class Model' and 'Order' exist in two separate projects, 'Project X' and 'Project Y'. In 'Project X', 'Order' exists as a child of Package 'Abstract Class Model', whereas in 'Project Y' they are both peer Packages.
When Package 'Abstract Class Model' is exported from 'Project X' to Native file, the file will contain:
- 'Abstract Class Model' as its root Package
- All information about 'Abstract Class Model' and its children (including Package 'Order')
When this file is imported into 'Project Y', the Native File Importer determines that:
- The root Package in file, 'Abstract Class Model', exists in the model
- The child Package 'Order' exists in the model
- The root Package and its children are in different locations in the model
In such a scenario, where the root Package in file and its children exist in the model (albeit in different locations), the Importer will replicate the Native file Package structure; that is, it will automatically move Package 'Order' under Package 'Abstract Class Model' in the model. The 'Existing Import Item(s)' dialog will not be displayed. After import, 'Project Y' will have the contents shown:
- In the Corporate, Unified and Ultimate Editions of Enterprise Architect, if security is enabled you need to have:
- 'Export XMI' permission to export Packages to Native file format
- 'Import XMI' permission to import Packages from Native file format
- Native XML files exported by Enterprise Architect version 15.0 or later cannot be imported by versions of Enterprise Architect earlier than 15.0
- Native XEA files exported by Enterprise Architect version 16.0 or later cannot be imported by versions of Enterprise Architect earlier than 16.0
- Native XML files exported using the 'Export to Native/XMI File' dialog will not be formatted (that is, 'pretty-printed'), even if the 'Format XMI Output' option is enabled in the 'XML Specifications' option-group of the 'Preferences' dialog
- If you are connected to a SQL Server repository, you require ALTER permission on the t_image table in Enterprise Architect, to be able to import model images