Поделиться через


Компиляция локализованных MOF-файлов

Необходимо скомпилировать главный MOF-файл, чтобы создать MOF-файлы, независимые от языка и зависящие от языка.

Введите следующую команду в командной строке, чтобы скомпилировать главный MOF-файл.

mofcomp -MOF:Lnmof.mof -MFL:Lsmof.mfl -Поправка:MS_409 Mastermof.mof

При выполнении этой команды компилятор MOF создает два MOF-файла из исходного файла Mastermof.mof. Компилятор MOF создает нейтральную версию языка Lnmof.mof, в которой удаляются все элементы, относящиеся к языку. Также создается вторая языковая версия, Lsmof.mof; этот файл содержит только элементы, помеченные с измененным Qualifier Flavor в файле Mastermof.mof.

В следующем примере кода показано содержимое нейтрального к языку MOF-файла (Lnmof.mof), который создается.

#pragma namespace("\\\\.\\root")

Instance of __Namespace
{
  Name = "TEST";
};
#pragma namespace("\\\\.\\root\\TEST")

[LOCALE(1033)] 
class myclass
{
  [key] string Name;
  uint64 Value;
  uint64 Timestamp;
};

В следующем примере кода показано содержимое созданного MOF-файла для конкретного языка (Lsmof.mfl).

#pragma namespace("\\\\.\\root\\TEST")
instance of __namespace{ name="ms_409";};
#pragma namespace("\\\\.\\root\\TEST\\ms_409")

[Description("Localized version of MyClass for American English") :
    Amended, LOCALE(0x409)] 

class myclass
{
    [DisplayName("User Name") : Amended,
    Description("The Name property contains the name of the user") : 
    Amended, key]
     string Name;

    [DisplayName("Time Stamp") : Amended,
    Description("This property shows when the object was created") : 
    Amended] 
     uint64 Timestamp;
};

Компиляция MOF-файла с измененным квалификатором создает только отдельные MOF-файлы, нейтральные к языку и специфичные для языка; Репозиторий CIM не обновляется новыми сведениями о классе. Для компиляции двух MOF-файлов, созданных первой компиляцией, необходимо использовать компилятор MOF, прежде чем все сведения о классе будут доступны WMI.

При компиляции основного MOF-файла только квалификаторы с Amended flavor перемещаются в MOF-файл, специфичный для языка. Квалификаторы, не имеющие измененную вариацию, не подвергаются локализации и используются только в определении базового класса в файле MOF, независимом от языка. Нелокализованные квалификаторы можно использовать для описаний по умолчанию, если локализованные описания недоступны.

Можно использовать директиву pragma вместо указания измененные в качестве переключателя для компилятора MOF. Обе эти опции эквивалентны запросу языко-зависимой и языко-независимой версий MOF-файла. Если вы используете команду изменения pragma или параметр командной строки Amended, необходимо указать имена выходных файлов с помощью опций -MFL и -MOF в командной строке.

Заметка

Файл MOF, нейтральный с точки зрения языковой привязки, который создает компилятор MOF, содержит десятичный эквивалент идентификатора языкового стандарта, даже если это значение было введено в шестнадцатеричном виде. В приведенном выше примере компилятор преобразовал значение 0x409 в десятичное число 1033 для выходного файла Lnmof.mof.