// descriptions based on Tech Edit review. // Copyright (c) 2005 DMTF. All rights reserved. // Update of // descriptions based on Tech Edit review. // Clarify // description of Override qualifier and correct its // definition to allow repeated usage in subclasses. // Add a // UmlPackagePath qualifier. // Addition // of the Correlatable qualifier. // Extend the OCL // Qualifier. // Add method scope to // Required Qualifier. // 2.13 qualifier updates // and changes // Add UmlPackagePath // qualifier to CIM Schema. // ================================================================== // Qualifiers // ================================================================== //=============== //Meta Qualifiers //=============== Qualifier Association : boolean = false, Scope(association), Flavor(DisableOverride); Qualifier Indication : boolean = false, Scope(class, indication), Flavor(DisableOverride); //=================== //Standard Qualifiers //=================== Qualifier Abstract : boolean = false, Scope(class, association, indication), Flavor(Restricted); Qualifier Aggregate: boolean = false, Scope (reference), Flavor(DisableOverride); Qualifier Aggregation : boolean = false, Scope(association), Flavor(DisableOverride); Qualifier ArrayType : string = "Bag", Scope(property, parameter), Flavor(DisableOverride); Qualifier BitMap : string[], Scope(property, method, parameter); Qualifier BitValues : string[], Scope(property, method, parameter), Flavor(Translatable); Qualifier ClassConstraint: string[], Scope(class, association, indication); Qualifier Composition : boolean = false, Scope(association), Flavor(DisableOverride); Qualifier Counter : boolean = false, Scope(property, method, parameter); Qualifier Deprecated : string [], Scope(any), Flavor(Restricted); Qualifier Description : string = null, Scope(any), Flavor(Translatable); Qualifier DisplayName : string = null, Scope(any), Flavor(Translatable); Qualifier DN : boolean=false, Scope(property, method, parameter), Flavor(DisableOverride); Qualifier EmbeddedInstance : string, Scope(property, method, parameter), Flavor(DisableOverride); Qualifier EmbeddedObject : boolean = false, Scope(property, method, parameter), Flavor(DisableOverride); Qualifier Exception: boolean = false, Scope(class, indication), Flavor(disableoverride, tosubclass); Qualifier Experimental : boolean = false, Scope(any), Flavor(Restricted); Qualifier Gauge : boolean = false, Scope(property, method, parameter); Qualifier In : boolean = true, Scope(parameter), Flavor(DisableOverride); Qualifier Key : boolean = false, Scope(property, reference), Flavor(DisableOverride); Qualifier MappingStrings : string[], Scope(any); Qualifier Max : uint32 = null, Scope(reference); Qualifier MaxLen : uint32 = null, Scope(property, method, parameter); Qualifier MaxValue : sint64 = null, Scope(property, method, parameter); Qualifier MethodConstraint: string[], Scope(method); Qualifier Min : uint32 = 0, Scope(reference); Qualifier MinLen : uint32 = 0, Scope(property, method, parameter); Qualifier MinValue : sint64 = null, Scope(property, method, parameter); Qualifier ModelCorrespondence : string[], Scope(any); /* The Nonlocal qualifer has been removed (as an errata) as of CIM 2.3 For more information see CR1461. */ Qualifier Nonlocal : string = null, Scope(reference); /* The NonlocalType qualifer has been removed (as an errata) as of CIM 2.3 For more information see CR1461. */ Qualifier NonlocalType : string = null, Scope(reference); Qualifier NullValue : string = null, Scope (property), Flavor(DisableOverride); Qualifier Octetstring : boolean = false, Scope(property, method, parameter), Flavor(DisableOverride); Qualifier Out : boolean = false, Scope(parameter), Flavor(DisableOverride); Qualifier Override : string = null, Scope(property, method, reference), Flavor(Restricted); Qualifier Propagated : string = null, Scope(property), Flavor(DisableOverride); Qualifier PropertyConstraint: string[], Scope(property, reference); Qualifier Read : boolean = true, Scope(property); Qualifier Required : boolean = false, Scope(property, reference, parameter, method), Flavor(DisableOverride); // The Revision qualifier has been deprecated. For the replacement, // see the usage rule for the version qualifier in the CIM // Specification. Qualifier Revision : string = null, Scope(class, association, indication ), Flavor(Translatable); Qualifier Schema : string = null, Scope (property, method), Flavor(DisableOverride, Translatable); /* The Source qualifer has been removed (as an errata) as of CIM 2.3 For more information see CR1461. */ Qualifier Source : string = null, Scope(class, association, indication); /* The SourceType qualifer has been removed (as an errata) as of CIM 2.3 For more information see CR1461. */ Qualifier SourceType : string = null, Scope(class, association, indication, reference); Qualifier Static : boolean = false, Scope(method, property), Flavor(DisableOverride); Qualifier Terminal : boolean = false, Scope(class, association, indication); Qualifier UMLPackagePath : string = null, Scope(class, association, indication); Qualifier Units : string = null, Scope(property, method, parameter), Flavor(Translatable); Qualifier ValueMap : string[], Scope(property, method, parameter); Qualifier Values : string[], Scope(property, method, parameter), Flavor(Translatable); Qualifier Version : string = null, Scope(class, association, indication), Flavor(Restricted, Translatable); Qualifier Weak : boolean = false, Scope(reference), Flavor(DisableOverride, ToSubclass); Qualifier Write : boolean = false, Scope(property); Qualifier BooleanQ : Boolean = true, Scope(any); Qualifier Sint8Q : Sint8 = -8 , Scope(any); Qualifier Uint8Q : Uint8 = 8 , Scope(any); Qualifier Sint16Q : Sint16 = -16 , Scope(any); Qualifier Uint16Q : Uint16 = 16 , Scope(any); Qualifier Sint32Q : Sint32 = -32 , Scope(any); Qualifier Uint32Q : Uint32 = 32 , Scope(any); Qualifier Sint64Q : Sint64 = -64 , Scope(any); Qualifier Uint64Q : Uint64 = 64 , Scope(any); Qualifier Real32Q : Real32 = 32.32 , Scope(any); Qualifier Real64Q : Real64 = 64.64 , Scope(any); Qualifier Char16Q : Char16 = 'A', Scope(any); Qualifier StringQ : String = "string", Scope(any); Qualifier DatetimeQ : Datetime = "20091225123000.123456-360", Scope(any); Qualifier BooleanAQ : Boolean[] = {true}, Scope(any); Qualifier Sint8AQ : Sint8[] = {-8}, Scope(any); Qualifier Uint8AQ : Uint8[] = {8}, Scope(any); Qualifier Sint16AQ : Sint16[] = {-16}, Scope(any); Qualifier Uint16AQ : Uint16[] = {16}, Scope(any); Qualifier Sint32AQ : Sint32[] = {-32}, Scope(any); Qualifier Uint32AQ : Uint32[] = {32}, Scope(any); Qualifier Sint64AQ : Sint64[] = {-64}, Scope(any); Qualifier Uint64AQ : Uint64[] = {64}, Scope(any); Qualifier Real32AQ : Real32[] = {32.32}, Scope(any); Qualifier Real64AQ : Real64[] = {64.64}, Scope(any); Qualifier Char16AQ : Char16[] = {'A'}, Scope(any); Qualifier StringAQ : String[] = {"string"}, Scope(any); Qualifier DatetimeAQ : Datetime[] = {"20091225123000.123456-360"}, Scope(any); Qualifier DatetimeQ2 : Datetime = "12345678121212.123456:000", Scope(any); class MyClass { [Key] String MyKey; [BooleanQ, Uint32Q(1234), StringQ("Hello")] String MyProperty; }; [Association] class MyAssoc { [Key] MyClass REF Left; [Key] MyClass REF Right; }; class YourClass : MyClass { [Key] String MyKey; String YourProperty; String AnotherProperty; [Static] Uint32 Foo( [In] String Arg1, [In, Out] String Arg2, [In(false), Out] String Arg3); }; Qualifier X : Uint32 = 32 , Scope(any), Flavor(Restricted); Qualifier Y: Uint32 = 32 , Scope(any), Flavor(DisableOverride); Qualifier Z: Uint32 = 32 , Scope(any); [X(100)] class X { [Key] String A; String B; }; [Y(200), X(400):ToSubclass] class Y : X { String B; String C; }; [Z(300), Y(200)] class Z : Y { String C; String D; }; [Y(200), X(400):ToSubclass ToInstance] class Y2 : X { String B; String C; }; [Z(300), Y(200): ToInstance ToSubClass] class Z2 : Y2 { String C; String D; }; class Class { uint16 TypeOfClass; }; class Tosubclass : Class { uint64 ANum; string string = "Default value"; datetime datetime; uint32 FLAVOR; Sint16 toinstance; uint8 Qualifier; SINT8 OF; Boolean PRAGMA; Boolean Reference; Boolean ANY; }; instance of Tosubclass { TypeOfClass = 3; ANum = 0x123409812341; String = "A string no. 2"; DATETIME = "20131106150000.000000-480"; FLAVOR = 1000; toinstance = -1; Qualifier = 13; of = -33; Pragma = false; Reference = FALSE; any = TRUE; }; Qualifier SMS_Report: Boolean = FALSE, Scope(any); Qualifier SMS_Group_Name: String, Scope(class); Qualifier SMS_Class_ID: String, Scope(class); Qualifier SMS_Units: String, Scope(property); //============================================================================= // SMS_Class_Template must be the parent of every class //============================================================================= class SMS_Class_Template { }; [ SMS_Report (TRUE), SMS_Group_Name ("Computer System"), SMS_Class_ID ("MICROSOFT|COMPUTER_SYSTEM|1.0") ] class Test_Misc : SMS_Class_Template { [Key, MinValue(1), MaxValue(100000), SMS_Report (TRUE) ] uint32 ID; [SMS_Report (TRUE) ] uint16 Numbers[8]; [SMS_Report (TRUE) ] sint16 CurrentTimeZone; [ArrayType("Bag"), Description("A" "B"), SMS_Report (TRUE) ] string Description = "Default Decription"; [SMS_Report (TRUE) ] string Domain; [SMS_Report (TRUE) ] uint16 domainrole; [SMS_Report (TRUE) ] datetime DT; [SMS_Report (TRUE) ] datetime DTA[]; [SMS_Report (TRUE) ] string Manufacturer; [SMS_Report (TRUE) ] string ManyStrings[]; [SMS_Report (TRUE) ] string Model; [SMS_Report (True), key ] string Name; [SMS_Report (False) ] string NameFormat; [SMS_Report (true) ] uint32 NumberOfProcessors; [Sms_REPORT (TRUE) ] string Roles[]; [SMS_Report (TRUE) ] string Status; [SMS_Report (TRUE) ] string SystemType; [SMS_Report (FALSE), SMS_Units("KiloBytes") ] uint64 TotalPhysicalMemory; [SMS_Report (TRUE) ] string UserName; [SMS_Report (TRUE) ] Uint16 Very16; [SMS_Report (TRUE) ] MyClass EmbeddedInst; [SMS_Report (TRUE) ] object XObj; [SMS_Report (TRUE) ] object ObjA[]; }; instance of Test_Misc AS $Misc1 { ID = 12345; Numbers = { 3, 1, 4, 9, 5, 9 }; CurrentTimeZone = -480; Description = "A virtual computer"; Domain = "VIRTUAL"; DomainRole = 1; dt = "****0317093000.000000-480"; DTA = { "20160327093000.000000-480", "19421121103300.000000+***", "20120729225400.000000+000" }; Manufacturer = "Hyper-V"; MANYSTRINGS = { "String 1", "", "etc." }; Model = "Hyper 1"; Name = "rhel6"; NumberOfProcessors = 2; Roles = { "ALL" }; status = "running"; SystemType = "Red Hat Linux 6"; USERNAME = "root"; ObjA = { }; }; instance of Test_Misc as $Misc2 { ID = 65537; Numbers = { 2, 7, 1, 8 }; CurrentTimeZone = -480; Description = "Another virtual computer II"; Domain = "VIRTUAL"; DomainRole = 1; DT = "20110327093000.000000-480"; DTA = { "20110327093000.000000-480", "1942**21103300.000000-480", "20120729225400.000000-480" }; Manufacturer = "Hyper-V"; ManyStrings = { "Thing 1", "Thing 2" }; Model = "Hyper 1"; Name = "sles11"; NUMBEROFPROCESSORS = 4; Roles = { "ALL", "NONE" }; Status = "running"; systemtype = "SUSE Linux 11"; UserName = "root"; EmbeddedInst = Instance of MyClass { A = "X"; }; XObj = Instance Of MyClass { A = "XObj"; }; ObjA = { INSTANCE OF ToSubclass { String = "63"; }, instance of MyClass { MyKey = "A"; } }; }; instance of Test_Misc { }; instance of Test_Misc { ID = 0; [SMS_Report] Description; };