Native and foreign format


A native format, in the context of software applications, refers to the file format which the application is designed to work with. It captures the internal reality of the program as well as is possible. Most likely this is also the default format of the application. A native file format therefore most likely has a one to one relationship with the applications features. In turn, a foreign format is not a true reflection of application internals, even though it may be supported by an application. To read a foreign file causes translation of data, this can cause data loss and further editing may prevent faithful writing back to the foreign format.

Example

A document writer application may support a multitude of files, ranging from simple text files that only store characters and not font faces or sizes, to complex documents containing text effects and images. However, when these text files or documents are opened, they are not necessarily edited in their original format.
Instead, the document writer may first convert the file into its own native data structure. Once the file is done being edited, the application will then convert the file back to its original format.
In some cases, applications may be able to open files, but not save them in the same format. This may be due to licensing issues, or simply because the feature has not been implemented in the application's programming yet. However, the application will typically be able to save the document in its own native format or any of the other foreign formats it is programmed to export.
For example, Microsoft Office Word 2003 is able to open Windows Write files, but cannot save them. Instead it is able to save them in its native Word Document format or a number of other common formats.