3.1.1.2 Localization Support
The server MUST support storage of CIM localizable information. The localizable class properties MUST have amended qualifiers in the MOF class definition.
The server MUST store each class with amended qualifiers as two or more objects:
A locale-neutral object that contains all properties, with all amended qualifiers stripped.
A localized object for each supported locale. The class object contains only the properties that have amended qualifiers, and their respective qualifiers. This localized object MUST be stored in a namespace that is a direct child of the namespace (from NamespaceConnectionTable) in which a locale-neutral object exists and the name of the namespace MUST be a locale name in the "MS_xxx" format (see section 2.2.29).
When the server updates an existing class, it MUST observe the WBEM_FLAG_USE_AMENDED_QUALIFIERS flag:
If the client specifies the flag, then both locale-neutral and locale-specific objects MUST be updated.
If the client does not specify the flag, only the locale-neutral object MUST be updated. If the class sent by the client contains amended qualifiers, then the server MUST update the locale-neutral class exactly as requested, rather than removing the amended qualifiers.
When the client creates a new class, the server MUST create the class only in the locale-neutral area (regardless whether WBEM_FLAG_USE_AMENDED_QUALIFIERS is set). The amended qualifiers MUST not be stripped.
When the client retrieves a class object and the WBEM_FLAG_USE_AMENDED_QUALIFIERS is set, the server MUST merge the locale-neutral and locale-dependent class definitions and present them as one class to the client using the following algorithm.
Retrieve the locale-neutral class. Then it MUST search for localized class objects, using the list of locales in the NamespaceConnection object's ClientPreferredLocales. The search for the class is made in the order of the locales in ClientPreferredLocales. When the requested class is found in one locale namespace, the server MUST stop looking.
If present, the localized object MUST be merged with the neutral object (which has priority over any qualifier present in the localized object).
When a client retrieves a class object and the WBEM_FLAG_USE_AMENDED_QUALIFIERS flag is not set, the server MUST return the locale-neutral object as-is, without checking for localized definitions. If the locale-neutral class is not found, the server MUST return WBEM_E_NOT_FOUND, regardless of whether WBEM_FLAG_USE_AMENDED_QUALIFIERS is specified, even if locale-specific objects exist.
Note The class will have amended qualifiers if the class object was originally created without stripping the amended qualifiers.
If a class is annotated with the Amendment qualifier, attempts to create instances of the class MUST fail with a WBEM_E_INVALID_OPERATION error.
When a client deletes a class object and the WBEM_FLAG_USE_AMENDED_QUALIFIERS flag is not set, the server MUST delete the locale-neutral object as-is, without checking for localized definitions.
When a client deletes a class object and the WBEM_FLAG_USE_AMENDED_QUALIFIERS flag is set, the server MUST fail with a WBEM_E_INVALID_PARAMETER error.