CIM Tutorial > CIM > Overview > MOF

CIM Managed Object Format (MOF)

MOF BNF

There are potentially many ways in which CIM management information could be represented to exchange information. The CIM Specification defines a language based on the Interface Definition Language (IDL) called Managed Object Format (MOF).

The grammar for MOF syntax is described in the notation defined in Augmented BNF for Syntax Specifications. The MOF syntax is a way to describe object definitions in textual form. It establishes the syntax for writing definitions. The main components of a MOF specification are textual descriptions of classes, associations, properties, references, methods and instance declarations and their associated qualifiers. Comments are permitted. A MOF file can be encoded in either Unicode or UTF-8.

The MOF file is basically made up of a series of class and instance declarations.

Class Example Instance Example
[Version ("2.7.0"), Experimental, Description (
    "A CIM is a type of CIM_WBEMService "
    "that instruments one or more aspects of the CIM Schema. "
    "A CIM_Provider operates at the request of the "
    "CIM_ObjectManager to perform operations on CIM objects. "
    "The properties CreationClasName, SystemCreationClassName "
    "and SystemName can be set to empty strings. In this case, "
    "the CIM Object Manager must interpret the properties with "
    "the local system information.") ]
class CIM_Provider : CIM_WBEMService {

    [Override ("Name"), Description (
        "A human-readable name that uniquely "
        "identifies the provider within a system.") ]
    string Name;

    [Required, Description (
        "An implementation specific string that identifies the "
        "handle to the provider.") ]
    string Handle;
};

instance of CIM_Provider {
    Name = "ACME_OperatingSystemProvider";
    Handle = "ACME_OperatingSystemProvider";
};


instance of CIM_ProviderCapabilities {
    ClassName = "CIM_OperatingSystem";
    ProviderType = { 2 };
    SupportedProperties = NULL;
    SupportedMethods = NULL;
};