Compliant implementations MUST not remove any fields from the file, even if they don't support them. This ensures that any desktop-specific extensions will be preserved even if another system accesses and changes the file. Strings may have locale-specific characters included, which should be identified as part of the key, as described below. Those keys which have several values should have a semicolon as the trailing character. The locale entries should match those of the standard C library.
Case is significant.
The same holds for group names. Key values are case sensitive as well. If a key is optional it may or may not be present in the file. However, if it isn't, the implementation of the standard should not blow up, it must provide some sane defaults. Additionally, keys either MUST or MAY be supported by a particular implementation.