(file) Return to cim_spec_v22.html CVS log (file) (dir) Up to [Pegasus] / dmtfdocs

   1 karl  1.1 <HTML>
   2           <HEAD>
   3           <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
   4           <META NAME="Generator" CONTENT="Microsoft Word 97">
   5           <TITLE> 1 INTRODUCTION AND OVERVIEW</TITLE>
   6           </HEAD>
   7           <BODY BGCOLOR="#ffffff" TEXT="#000000" LINK="#0000ff">
   8           
   9           <B><FONT SIZE=5><P ALIGN="CENTER"><A NAME="_Toc373214099">Distributed Management Task Force, Inc.</P>
  10           <P ALIGN="CENTER"></P><DIR>
  11           <DIR>
  12           
  13           </FONT><FONT SIZE=2><P><IMG SRC="Image1.gif" WIDTH=488 HEIGHT=599></P>
  14           </FONT><FONT SIZE=6><P ALIGN="CENTER">Common Information Model (CIM) Specification</P></DIR>
  15           </DIR>
  16           
  17           </FONT><P ALIGN="CENTER">Version 2.2</P>
  18           <P ALIGN="CENTER">June 14, 1999</P>
  19           <P ALIGN="CENTER"></P>
  20           <P ALIGN="CENTER"><A NAME="_Toc347019662"><A NAME="_Toc347155412"><A NAME="_Toc347156221"><A NAME="_Toc347182227"><A NAME="_Toc347188854"><A NAME="_Toc347242374"><A NAME="_Toc347246350"><A NAME="_Toc347412084"><A NAME="_Toc347456050"><A NAME="_Toc347540172"><A NAME="_Toc348066057"><A NAME="_Toc348153486"><A NAME="_Toc348669713"><A NAME="_Toc349032900"><A NAME="_Toc349055852"><A NAME="_Toc349064762"></P><DIR>
  21           <DIR>
  22 karl  1.1 
  23           </B><FONT SIZE=3><P ALIGN="CENTER">Technical inquiries and editorial comments should be directed in writing to:</P><DIR>
  24           <DIR>
  25           <DIR>
  26           <DIR>
  27           <DIR>
  28           <DIR>
  29           
  30           <P>Distributed Management Task Force, Inc. (DMTF)</P>
  31           </FONT><FONT SIZE=2><P>c/o </FONT><A HREF="http://www.mkinc.com/"><FONT SIZE=2>MacKenzie Kesselring, Inc.</FONT></A><FONT SIZE=2><BR>
  32           200 SW Market Street, Suite 450<BR>
  33           Portland, OR 97201<BR>
  34           (503) 294-0739<BR>
  35           (503) 225-0765 (fax)<BR>
  36           </P></DIR>
  37           </DIR>
  38           </DIR>
  39           </DIR>
  40           </DIR>
  41           </DIR>
  42           
  43 karl  1.1 </FONT><FONT SIZE=3><P ALIGN="CENTER">email: <B>dmtf-info@dmtf.org</P>
  44           </B><P>Additional electronic copies of this specification can be obtained free of charge from the  Internet at:</P>
  45           <B><P ALIGN="CENTER">ftp://ftp.dmtf.org</P>
  46           </B><P ALIGN="CENTER">or</P>
  47           <P ALIGN="CENTER">from the World Wide Web at:</P>
  48           <B><P ALIGN="CENTER">http://www.dmtf.org</P>
  49           </B><P>Additional hardcopies can be obtained for a fee by contacting the DMTF at the address listed above.</P>
  50           <P ALIGN="CENTER">IMPORTANT INFORMATION AND DISCLAIMERS</P>
  51           </FONT><FONT SIZE=1><P>1. THIS SPECIFICATION (WHICH SHALL INCORPORATE ANY REVISIONS, UPDATES, AND MODIFICATIONS HERETO) IS FURNISHED FOR INFORMATIONAL PURPOSES ONLY. INTEL CORPORATION, MICROSOFT CORPORATION, DIGITAL EQUIPMENT CORPORATION, HEWLETT-PACKARD COMPANY, INTERNATIONAL BUSINESS MACHINES CORPORATION, NOVELL INC., SUN MICROSYSTEMS, INC., COMPAQ COMPUTER CORPORATION, DELL COMPUTER CORP., SYMANTEC, THE SANTA CRUZ OPERATION, NEC TECHNOLOGIES, INC., OR ANY OTHER DMTF MEMBER MAKE NO WARRANTIES WITH REGARD THERETO, AND IN PARTICULAR DO NOT WARRANT OR REPRESENT THAT THIS SPECIFICATION OR ANY PRODUCTS MADE IN CONFORMANCE WITH IT WILL WORK IN THE INTENDED MANNER OR BE COMPATIBLE WITH OTHER PRODUCTS IN NETWORK SYSTEMS. NOR DO THEY ASSUME RESPONSIBILITY FOR ANY ERRORS THAT THE SPECIFICATION MAY CONTAIN OR HAVE ANY LIABILITIES OR OBLIGATIONS FOR DAMAGES INCLUDING, BUT NOT LIMITED TO, SPECIAL, INCIDENTAL, INDIRECT, PUNITIVE, OR CONSEQUENTIAL DAMAGES WHETHER ARISING FROM OR IN CONNECTION WITH THE USE OF THIS SPECIFICATION IN ANY WAY. CORPORATIONS MAY FOLLOW OR DEVIATE FROM THIS SPECIFICATION AT ANY TIME.</P>
  52           <P>2. NO REPRESENTATIONS OR WARRANTIES ARE MADE THAT ANY PRODUCT BASED IN WHOLE OR IN PART ON THE ABOVE SPECIFICATION WILL BE FREE FROM DEFECTS OR SAFE FOR USE FOR ITS INTENDED PURPOSE. ANY PERSON MAKING, USING OR SELLING SUCH PRODUCT DOES SO AT HIS OWN RISK.</P>
  53           <P>3. THE USER OF THIS SPECIFICATION HEREBY EXPRESSLY ACKNOWLEDGES THAT THE SPECIFICATION IS PROVIDED AS IS, AND THAT THE DMTF, NEITHER INDIVIDUALLY NOR COLLECTIVELY, MAKE ANY REPRESENTATIONS, EXTEND ANY WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, ORAL OR WRITTEN, INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, OR WARRANTY OR REPRESENTATION THAT THE SPECIFICATION OR ANY PRODUCT OR TECHNOLOGY UTILIZING ANY ASPECT OF THE SPECIFICATION WILL BE FREE FROM ANY CLAIMS OF INFRINGEMENT OF INTELLECTUAL PROPERTY, INCLUDING PATENTS, COPYRIGHT AND TRADE SECRETS OF ANY THIRD PARTY, OR ASSUMES ANY OTHER RESPONSIBILITIES WHATSOEVER WITH RESPECT TO THE SPECIFICATION OR SUCH PRODUCTS. IN NO EVENT WILL DMTF MEMBERS BE LIABLE FOR ANY LOSSES, DAMAGES INCLUDING, WITHOUT LIMITATION, THOSE DAMAGES DESCRIBED IN SECTION 1 ABOVE, COSTS, JUDGMENTS, OR EXPENSES ARISING FROM THE USE OR LICENSING OF THE SPECIFICATION HEREUNDER.</P></DIR>
  54           </DIR>
  55           
  56           </FONT><B><FONT SIZE=5><P ALIGN="CENTER">Abstract</P><DIR>
  57           <DIR>
  58           
  59           </B></FONT><FONT SIZE=3><P>The DMTF Common Information Model (CIM) is an approach to the management of systems and networks that applies the basic structuring and conceptualization techniques of the object-oriented paradigm. The approach uses a uniform modeling formalism that—together with the basic repertoire of object-oriented constructs—supports the cooperative development of an object-oriented schema across multiple organizations. </P>
  60           <P>A management schema is provided to establish a common conceptual framework at the level of a fundamental typology—both with respect to classification and association, and with respect to a basic set of classes intended to establish a common framework for a description of the managed environment. The management schema is divided into these conceptual layers:</P></DIR>
  61           </DIR>
  62           
  63           
  64 karl  1.1 <UL>
  65           
  66           <UL>
  67           <LI>Core model—an information model that captures notions that are applicable to all areas of management.</LI>
  68           <LI>Common model—an information model that captures notions that are common to particular management areas, but independent of a particular technology or implementation. The common areas are systems, applications, databases, networks and devices. The information model is specific enough to provide a basis for the development of management applications. This model provides a set of base classes for extension into the area of technology-specific schemas. The Core and Common models together are expressed as the CIM schema.</LI>
  69           <LI>Extension schemas—represent technology-specific extensions of the Common model.  These schemas are specific to environments, such as operating systems (for example, UNIX<B><SUP>†</B></SUP> or Microsoft Windows<B><SUP>†</B></SUP>).</LI></UL>
  70           </UL>
  71           
  72           </FONT><B><FONT SIZE=4><P>Participants</P><DIR>
  73           <DIR>
  74           
  75           </B></FONT><FONT SIZE=3><P>This list shows the names of the companies that participated in the Distributed Management Task Force - CIM Sub-Committee whose contributions made this document possible. </P></DIR>
  76           </DIR>
  77           
  78           
  79           <UL>
  80           
  81           <UL>
  82           <LI>Compaq Computer Corporation</LI>
  83           <LI>Computer Associates Intl., Inc</LI>
  84           <LI>Hewlett-Packard Company</LI>
  85 karl  1.1 <LI>Intel Corporation </LI>
  86           <LI>Microsoft Corporation</LI>
  87           <LI>Novell, Inc.</LI>
  88           <LI>Sun Microsystems, Inc.</LI>
  89           <LI>Tivoli Systems, Inc.</LI></UL>
  90           </UL>
  91           
  92           </FONT><FONT SIZE=2><P>&nbsp;</P>
  93           </FONT><B><FONT SIZE=4><P>Change History</P></B></FONT>
  94           <P ALIGN="CENTER"><CENTER><TABLE BORDER CELLSPACING=1 BORDERCOLOR="#000000" CELLPADDING=7 WIDTH=552>
  95           <TR><TD WIDTH="17%" VALIGN="TOP">
  96           <FONT SIZE=1><P>Version 1</FONT></TD>
  97           <TD WIDTH="30%" VALIGN="TOP">
  98           <FONT SIZE=1><P>Wednesday, April 09, 1997</FONT></TD>
  99           <TD WIDTH="52%" VALIGN="TOP">
 100           <FONT SIZE=1><P>First Public Release</FONT></TD>
 101           </TR>
 102           <TR><TD WIDTH="17%" VALIGN="TOP">
 103           <FONT SIZE=1><P>Version 1.1</FONT></TD>
 104           <TD WIDTH="30%" VALIGN="TOP">
 105           <FONT SIZE=1><P>Thursday, October 23, 1997</FONT></TD>
 106 karl  1.1 <TD WIDTH="52%" VALIGN="TOP">
 107           <FONT SIZE=1><P>Output after Working Groups input</FONT></TD>
 108           </TR>
 109           <TR><TD WIDTH="17%" VALIGN="TOP">
 110           <FONT SIZE=1><P>Version 1.2a</FONT></TD>
 111           <TD WIDTH="30%" VALIGN="TOP">
 112           <FONT SIZE=1><P>Monday, November 03, 1997</FONT></TD>
 113           <TD WIDTH="52%" VALIGN="TOP">
 114           <FONT SIZE=1><P>Naming</FONT></TD>
 115           </TR>
 116           <TR><TD WIDTH="17%" VALIGN="TOP">
 117           <FONT SIZE=1><P>Version 1.2b</FONT></TD>
 118           <TD WIDTH="30%" VALIGN="TOP">
 119           <FONT SIZE=1><P>Monday, November 17, 1997</FONT></TD>
 120           <TD WIDTH="52%" VALIGN="TOP">
 121           <FONT SIZE=1><P>Remove reference qualifier</FONT></TD>
 122           </TR>
 123           <TR><TD WIDTH="17%" VALIGN="TOP">
 124           <FONT SIZE=1><P>Version 2.0a</FONT></TD>
 125           <TD WIDTH="30%" VALIGN="TOP">
 126           <FONT SIZE=1><P>Thursday, December 11, 1997</FONT></TD>
 127 karl  1.1 <TD WIDTH="52%" VALIGN="TOP">
 128           <FONT SIZE=1><P>Apply pending changes and new metaschema</FONT></TD>
 129           </TR>
 130           <TR><TD WIDTH="17%" VALIGN="TOP">
 131           <FONT SIZE=1><P>Version 2.0d</FONT></TD>
 132           <TD WIDTH="30%" VALIGN="TOP">
 133           <FONT SIZE=1><P>Thursday, December 11, 1997</FONT></TD>
 134           <TD WIDTH="52%" VALIGN="TOP">
 135           <FONT SIZE=1><P>Output of 12/9/1997 TDC, Dallas</FONT></TD>
 136           </TR>
 137           <TR><TD WIDTH="17%" VALIGN="TOP">
 138           <FONT SIZE=1><P>Version 2.0f</FONT></TD>
 139           <TD WIDTH="30%" VALIGN="TOP">
 140           <FONT SIZE=1><P>Monday, February 16, 1998</FONT></TD>
 141           <TD WIDTH="52%" VALIGN="TOP">
 142           <FONT SIZE=1><P>Output of 2/3/1998 TDC, Austin</FONT></TD>
 143           </TR>
 144           <TR><TD WIDTH="17%" VALIGN="TOP">
 145           <FONT SIZE=1><P>Version 2.0g</FONT></TD>
 146           <TD WIDTH="30%" VALIGN="TOP">
 147           <FONT SIZE=1><P>Thursday, February 26, 1998</FONT></TD>
 148 karl  1.1 <TD WIDTH="52%" VALIGN="TOP">
 149           <FONT SIZE=1><P>Apply approved change requests and final edits submitted through 2/26/1998.</FONT></TD>
 150           </TR>
 151           <TR><TD WIDTH="17%" VALIGN="TOP">
 152           <FONT SIZE=1><P>Version 2.2</FONT></TD>
 153           <TD WIDTH="30%" VALIGN="TOP">
 154           <FONT SIZE=1><P>Tuesday, June 14, 1999</FONT></TD>
 155           <TD WIDTH="52%" VALIGN="TOP">
 156           <FONT SIZE=1><P>Incorporate Errata and approved change requests through 1999-06-08</FONT></TD>
 157           </TR>
 158           </TABLE>
 159           </CENTER></P>
 160           
 161           <FONT SIZE=2>
 162           <P>&nbsp;</P>
 163           </FONT><B><FONT SIZE=4><P>Contents</A></A></A></A></A></A></A></A></A></A></A></A></A></A></A></A></P><DIR>
 164           
 165           </FONT><FONT FACE="Arial"><P>1&#9;Introduction and Overview&#9;</B></FONT><A HREF="#_Toc453584947">*</A></DIR>
 166           
 167           <B><FONT SIZE=2><P>1.1&#9;CIM Management Schema&#9;</B></FONT><A HREF="#_Toc453584948">*</A></P><DIR>
 168           
 169 karl  1.1 <FONT SIZE=2><P>1.1.1&#9;Core Model&#9;</FONT><A HREF="#_Toc453584949">*</A></P>
 170           <FONT SIZE=2><P>1.1.2&#9;Common Model&#9;</FONT><A HREF="#_Toc453584950">*</A></P>
 171           <FONT SIZE=2><P>1.1.3&#9;Extension Schema&#9;</FONT><A HREF="#_Toc453584951">*</A></P></DIR>
 172           
 173           <B><FONT SIZE=2><P>1.2&#9;CIM Implementations&#9;</B></FONT><A HREF="#_Toc453584952">*</A></P><DIR>
 174           
 175           <FONT SIZE=2><P>1.2.1&#9;CIM Implementation Conformance&#9;</FONT><A HREF="#_Toc453584953">*</A></P></DIR>
 176           
 177           <B><FONT FACE="Arial"><P>2&#9;Meta Schema&#9;</B></FONT><A HREF="#_Toc453584954">*</A></P>
 178           <B><FONT SIZE=2><P>2.1&#9;Definition of the Meta Schema&#9;</B></FONT><A HREF="#_Toc453584955">*</A></P>
 179           <B><FONT SIZE=2><P>2.2&#9;Property Data Types&#9;</B></FONT><A HREF="#_Toc453584956">*</A></P><DIR>
 180           
 181           <FONT SIZE=2><P>2.2.1&#9;Date, Time, and Interval Types&#9;</FONT><A HREF="#_Toc453584957">*</A></P>
 182           <FONT SIZE=2><P>2.2.2&#9;Indicating Additional Type Semantics with Qualifiers&#9;</FONT><A HREF="#_Toc453584958">*</A></P></DIR>
 183           
 184           <B><FONT SIZE=2><P>2.3&#9;Supported Schema Modifications&#9;</B></FONT><A HREF="#_Toc453584959">*</A></P><DIR>
 185           
 186           <FONT SIZE=2><P>2.3.1&#9;Schema Versions&#9;</FONT><A HREF="#_Toc453584960">*</A></P></DIR>
 187           
 188           <B><FONT SIZE=2><P>2.4&#9;Class Names&#9;</B></FONT><A HREF="#_Toc453584961">*</A></P>
 189           <B><FONT SIZE=2><P>2.5&#9;Qualifiers&#9;</B></FONT><A HREF="#_Toc453584962">*</A></P><DIR>
 190 karl  1.1 
 191           <FONT SIZE=2><P>2.5.1&#9;Meta Qualifiers&#9;</FONT><A HREF="#_Toc453584963">*</A></P>
 192           <FONT SIZE=2><P>2.5.2&#9;Standard Qualifiers&#9;</FONT><A HREF="#_Toc453584964">*</A></P>
 193           <FONT SIZE=2><P>2.5.3&#9;Optional Qualifiers&#9;</FONT><A HREF="#_Toc453584965">*</A></P>
 194           <FONT SIZE=2><P>2.5.4&#9;User-defined Qualifiers&#9;</FONT><A HREF="#_Toc453584966">*</A></P>
 195           <FONT SIZE=2><P>2.5.5&#9;Mapping MIF Attributes&#9;</FONT><A HREF="#_Toc453584967">*</A></P>
 196           <FONT SIZE=2><P>2.5.6&#9;Mapping Generic Data to CIM Properties&#9;</FONT><A HREF="#_Toc453584968">*</A></P></DIR>
 197           
 198           <B><FONT FACE="Arial"><P>3&#9;Managed Object Format&#9;</B></FONT><A HREF="#_Toc453584969">*</A></P>
 199           <B><FONT SIZE=2><P>3.1&#9;MOF usage&#9;</B></FONT><A HREF="#_Toc453584970">*</A></P>
 200           <B><FONT SIZE=2><P>3.2&#9;Class Declarations&#9;</B></FONT><A HREF="#_Toc453584971">*</A></P>
 201           <B><FONT SIZE=2><P>3.3&#9;Instance Declarations&#9;</B></FONT><A HREF="#_Toc453584972">*</A></P>
 202           <B><FONT FACE="Arial"><P>4&#9;MOF Components&#9;</B></FONT><A HREF="#_Toc453584973">*</A></P>
 203           <B><FONT SIZE=2><P>4.1&#9;Keywords&#9;</B></FONT><A HREF="#_Toc453584974">*</A></P>
 204           <B><FONT SIZE=2><P>4.2&#9;Comments&#9;</B></FONT><A HREF="#_Toc453584975">*</A></P>
 205           <B><FONT SIZE=2><P>4.3&#9;Validation Context&#9;</B></FONT><A HREF="#_Toc453584976">*</A></P>
 206           <B><FONT SIZE=2><P>4.4&#9;Naming of Schema Elements&#9;</B></FONT><A HREF="#_Toc453584977">*</A></P>
 207           <B><FONT SIZE=2><P>4.5&#9;Class Declarations&#9;</B></FONT><A HREF="#_Toc453584978">*</A></P><DIR>
 208           
 209           <FONT SIZE=2><P>4.5.1&#9;Declaring a Class&#9;</FONT><A HREF="#_Toc453584979">*</A></P>
 210           <FONT SIZE=2><P>4.5.2&#9;Subclasses&#9;</FONT><A HREF="#_Toc453584980">*</A></P>
 211 karl  1.1 <FONT SIZE=2><P>4.5.3&#9;Default Property Values&#9;</FONT><A HREF="#_Toc453584981">*</A></P>
 212           <FONT SIZE=2><P>4.5.4&#9;Class and Property Qualifiers&#9;</FONT><A HREF="#_Toc453584982">*</A></P>
 213           <FONT SIZE=2><P>4.5.5&#9;Key Properties&#9;</FONT><A HREF="#_Toc453584983">*</A></P></DIR>
 214           
 215           <B><FONT SIZE=2><P>4.6&#9;Association Declarations&#9;</B></FONT><A HREF="#_Toc453584984">*</A></P><DIR>
 216           
 217           <FONT SIZE=2><P>4.6.1&#9;Declaring an Association&#9;</FONT><A HREF="#_Toc453584985">*</A></P>
 218           <FONT SIZE=2><P>4.6.2&#9;Subassociations&#9;</FONT><A HREF="#_Toc453584986">*</A></P>
 219           <FONT SIZE=2><P>4.6.3&#9;Key References and Properties&#9;</FONT><A HREF="#_Toc453584987">*</A></P>
 220           <FONT SIZE=2><P>4.6.4&#9;Object References&#9;</FONT><A HREF="#_Toc453584988">*</A></P></DIR>
 221           
 222           <B><FONT SIZE=2><P>4.7&#9;Qualifier Declarations&#9;</B></FONT><A HREF="#_Toc453584989">*</A></P>
 223           <B><FONT SIZE=2><P>4.8&#9;Instance Declarations&#9;</B></FONT><A HREF="#_Toc453584990">*</A></P><DIR>
 224           
 225           <FONT SIZE=2><P>4.8.1&#9;Instance Aliasing&#9;</FONT><A HREF="#_Toc453584991">*</A></P>
 226           <FONT SIZE=2><P>4.8.2&#9;Arrays&#9;</FONT><A HREF="#_Toc453584992">*</A></P></DIR>
 227           
 228           <B><FONT SIZE=2><P>4.9&#9;Method Declarations&#9;</B></FONT><A HREF="#_Toc453584993">*</A></P>
 229           <B><FONT SIZE=2><P>4.10&#9;Compiler Directives&#9;</B></FONT><A HREF="#_Toc453584994">*</A></P>
 230           <B><FONT SIZE=2><P>4.11&#9;Value Constants&#9;</B></FONT><A HREF="#_Toc453584995">*</A></P><DIR>
 231           
 232 karl  1.1 <FONT SIZE=2><P>4.11.1&#9;String Constants&#9;</FONT><A HREF="#_Toc453584996">*</A></P>
 233           <FONT SIZE=2><P>4.11.2&#9;Character Constants&#9;</FONT><A HREF="#_Toc453584997">*</A></P>
 234           <FONT SIZE=2><P>4.11.3&#9;Integral Constants&#9;</FONT><A HREF="#_Toc453584998">*</A></P>
 235           <FONT SIZE=2><P>4.11.4&#9;Floating-Point Constants&#9;</FONT><A HREF="#_Toc453584999">*</A></P>
 236           <FONT SIZE=2><P>4.11.5&#9;Object Ref Constants&#9;</FONT><A HREF="#_Toc453585000">*</A></P>
 237           <FONT SIZE=2><P>4.11.6&#9;NULL&#9;</FONT><A HREF="#_Toc453585001">*</A></P></DIR>
 238           
 239           <B><FONT SIZE=2><P>4.12&#9;Initializers&#9;</B></FONT><A HREF="#_Toc453585002">*</A></P><DIR>
 240           
 241           <FONT SIZE=2><P>4.12.1&#9;Initializing Arrays&#9;</FONT><A HREF="#_Toc453585003">*</A></P>
 242           <FONT SIZE=2><P>4.12.2&#9;Initializing References Using Aliases&#9;</FONT><A HREF="#_Toc453585004">*</A></P></DIR>
 243           
 244           <B><FONT FACE="Arial"><P>5&#9;Naming&#9;&#9;</B></FONT><A HREF="#_Toc453585005">*</A></P>
 245           <B><FONT SIZE=2><P>5.1&#9;Background&#9;</B></FONT><A HREF="#_Toc453585006">*</A></P><DIR>
 246           
 247           <FONT SIZE=2><P>5.1.1&#9;Management Tool Responsibility for an Export Operation&#9;</FONT><A HREF="#_Toc453585007">*</A></P>
 248           <FONT SIZE=2><P>5.1.2&#9;Management Tool Responsibility for an Import Operation&#9;</FONT><A HREF="#_Toc453585008">*</A></P></DIR>
 249           
 250           <B><FONT SIZE=2><P>5.2&#9;Weak Associations: Supporting Key Propagation&#9;</B></FONT><A HREF="#_Toc453585009">*</A></P><DIR>
 251           
 252           <FONT SIZE=2><P>5.2.1&#9;Referencing Weak Objects&#9;</FONT><A HREF="#_Toc453585010">*</A></P></DIR>
 253 karl  1.1 
 254           <B><FONT SIZE=2><P>5.3&#9;Naming CIM Objects&#9;</B></FONT><A HREF="#_Toc453585011">*</A></P><DIR>
 255           
 256           <FONT SIZE=2><P>5.3.1&#9;Namespace Path&#9;</FONT><A HREF="#_Toc453585012">*</A></P>
 257           <FONT SIZE=2><P>5.3.2&#9;Model Path&#9;</FONT><A HREF="#_Toc453585013">*</A></P>
 258           <FONT SIZE=2><P>5.3.3&#9;Specifying the Object Name&#9;</FONT><A HREF="#_Toc453585014">*</A></P></DIR>
 259           
 260           <B><FONT SIZE=2><P>5.4&#9;Specifying Object Names in MOF Files&#9;</B></FONT><A HREF="#_Toc453585015">*</A></P><DIR>
 261           
 262           <FONT SIZE=2><P>5.4.1&#9;Synchronizing Namespaces&#9;</FONT><A HREF="#_Toc453585016">*</A></P>
 263           <FONT SIZE=2><P>5.4.2&#9;Building References Between Management Systems&#9;</FONT><A HREF="#_Toc453585017">*</A></P></DIR>
 264           
 265           <B><FONT FACE="Arial"><P>6&#9;Mapping Existing Models Into CIM&#9;</B></FONT><A HREF="#_Toc453585018">*</A></P>
 266           <B><FONT SIZE=2><P>6.1&#9;Technique Mapping&#9;</B></FONT><A HREF="#_Toc453585019">*</A></P>
 267           <B><FONT SIZE=2><P>6.2&#9;Recast Mapping&#9;</B></FONT><A HREF="#_Toc453585020">*</A></P>
 268           <B><FONT SIZE=2><P>6.3&#9;Domain Mapping&#9;</B></FONT><A HREF="#_Toc453585021">*</A></P>
 269           <B><FONT SIZE=2><P>6.4&#9;Mapping Scratch Pads&#9;</B></FONT><A HREF="#_Toc453585022">*</A></P>
 270           <B><FONT FACE="Arial"><P>7&#9;Repository Perspective&#9;</B></FONT><A HREF="#_Toc453585023">*</A></P>
 271           <B><FONT SIZE=2><P>7.1&#9;DMTF MIF Mapping Strategies&#9;</B></FONT><A HREF="#_Toc453585024">*</A></P>
 272           <B><FONT SIZE=2><P>7.2&#9;Recording Mapping Decisions&#9;</B></FONT><A HREF="#_Toc453585025">*</A></P>
 273           <B><FONT FACE="Arial"><P>Appendix A&#9;MOF Syntax Grammar Description&#9;</B></FONT><A HREF="#_Toc453585026">*</A></P>
 274 karl  1.1 <B><FONT FACE="Arial"><P>Appendix B&#9;CIM META SCHEMA&#9;</B></FONT><A HREF="#_Toc453585027">*</A></P>
 275           <B><FONT FACE="Arial"><P>Appendix C&#9;Values for UNITS Qualifier&#9;</B></FONT><A HREF="#_Toc453585028">*</A></P>
 276           <B><FONT FACE="Arial"><P>Appendix D&#9;UML Notation&#9;</B></FONT><A HREF="#_Toc453585029">*</A></P>
 277           <B><FONT FACE="Arial"><P>Appendix E&#9;Glossary&#9;</B></FONT><A HREF="#_Toc453585030">*</A></P>
 278           <B><FONT FACE="Arial"><P>Appendix F&#9;Unicode Usage&#9;</B></FONT><A HREF="#_Toc453585031">*</A></P>
 279           <B><FONT SIZE=2><P>F.1&#9;MOF Text&#9;</B></FONT><A HREF="#_Toc453585032">*</A></P>
 280           <B><FONT SIZE=2><P>F.2&#9;Quoted Strings&#9;</B></FONT><A HREF="#_Toc453585033">*</A></P>
 281           <B><FONT FACE="Arial"><P>Appendix G&#9;Guidelines&#9;</B></FONT><A HREF="#_Toc453585034">*</A></P>
 282           <B><FONT SIZE=2><P>G.1&#9;Mapping of Octet Strings&#9;</B></FONT><A HREF="#_Toc453585035">*</A></P>
 283           <B><FONT SIZE=2><P>G.2&#9;SQL Reserved Words&#9;</B></FONT><A HREF="#_Toc453585036">*</A></P>
 284           <B><FONT FACE="Arial"><P>Appendix H&#9;References&#9;</B></FONT><A HREF="#_Toc453585037">*</A></P>
 285           <FONT SIZE=3></P>
 286           </FONT><B><FONT SIZE=4><P>&nbsp;</P>
 287           <P>Table of Figures</P><DIR>
 288           
 289           </B></FONT><FONT SIZE=2><P>Figure 1-1 Four Ways to Use CIM&#9;</FONT><A HREF="#_Toc453585038">*</A>
 290           <FONT SIZE=2><P>Figure 2-1 Meta Schema Structure&#9;</FONT><A HREF="#_Toc453585039">*</A></P>
 291           <FONT SIZE=2><P>Figure 2-2 Reference Naming&#9;</FONT><A HREF="#_Toc453585040">*</A></P>
 292           <FONT SIZE=2><P>Figure 2-3 References, Ranges, and Domains&#9;</FONT><A HREF="#_Toc453585041">*</A></P>
 293           <FONT SIZE=2><P>Figure 2-4 References, Ranges, Domains and Inheritance&#9;</FONT><A HREF="#_Toc453585042">*</A></P>
 294           <FONT SIZE=2><P>Figure 5-1 Definitions of instances and classes&#9;</FONT><A HREF="#_Toc453585043">*</A></P>
 295 karl  1.1 <FONT SIZE=2><P>Figure 5-2 Exporting to MOF&#9;</FONT><A HREF="#_Toc453585044">*</A></P>
 296           <FONT SIZE=2><P>Figure 5-3 Information Exchange&#9;</FONT><A HREF="#_Toc453585045">*</A></P>
 297           <FONT SIZE=2><P>Figure 5-4 Example of Weak Association&#9;</FONT><A HREF="#_Toc453585046">*</A></P>
 298           <FONT SIZE=2><P>Figure 5-5 Object Naming&#9;</FONT><A HREF="#_Toc453585047">*</A></P>
 299           <FONT SIZE=2><P>Figure 5-6 Namespaces&#9;</FONT><A HREF="#_Toc453585048">*</A></P>
 300           <FONT SIZE=2><P>Figure 5-7 Namespace Path&#9;</FONT><A HREF="#_Toc453585049">*</A></P>
 301           <FONT SIZE=2><P>Figure 5-8 Pragma Example&#9;</FONT><A HREF="#_Toc453585050">*</A></P>
 302           <FONT SIZE=2><P>Figure 5-9 Namespace Path Example&#9;</FONT><A HREF="#_Toc453585051">*</A></P>
 303           <FONT SIZE=2><P>Figure 5-10 References Between Management Systems&#9;</FONT><A HREF="#_Toc453585052">*</A></P>
 304           <FONT SIZE=2><P>Figure 5-11 Example of Nonlocal Qualifier&#9;</FONT><A HREF="#_Toc453585053">*</A></P>
 305           <FONT SIZE=2><P>Figure 6-1 Technique Mapping Example&#9;</FONT><A HREF="#_Toc453585054">*</A></P>
 306           <FONT SIZE=2><P>Figure 6-2 MIF Technique Mapping Example&#9;</FONT><A HREF="#_Toc453585055">*</A></P>
 307           <FONT SIZE=2><P>Figure 6-3 Recast mapping&#9;</FONT><A HREF="#_Toc453585056">*</A></P>
 308           <FONT SIZE=2><P>Figure 7-1 Repository Partitions&#9;</FONT><A HREF="#_Toc453585057">*</A></P>
 309           <FONT SIZE=2><P>Figure 7-2 Homogeneous and Heterogeneous Export&#9;</FONT><A HREF="#_Toc453585058">*</A></P>
 310           <FONT SIZE=2><P>Figure 7-3 Scratch Pads and Mapping&#9;</FONT><A HREF="#_Toc453585059">*</A></P>
 311           <FONT SIZE=3></DIR>
 312           </P><DIR>
 313           <DIR>
 314           
 315           <P></A></P></DIR>
 316 karl  1.1 </DIR>
 317           
 318           <OL>
 319           
 320           </FONT><B><FONT SIZE=5><LI></LI>
 321           <LI><A NAME="_Toc373214113"><A NAME="_Toc404410862"><A NAME="_Toc406249659"><A NAME="_Ref411740004"><A NAME="_Ref411740019"><A NAME="_Ref412220530"><A NAME="_Ref412637562"><A NAME="_Ref453583325"><A NAME="_Toc453584947">Introduction and Overview</A></A></A></A></A></A></A></LI>
 322           </B></FONT><FONT SIZE=3><P>This section describes the many ways in which the Common Information Model (CIM) can be used. It provides a context in which the details described in the later chapters can be understood.</P>
 323           <P>Ideally, information used to perform tasks is organized or structured to allow disparate groups of people to use it. This can be accomplished by developing a model or representation of the details required by people working within a particular domain. Such an approach can be referred to as an information model. An information model requires a set of legal statement types or syntax to capture the representation, and a collection of actual expressions necessary to manage common aspects of the domain (in this case, complex computer systems). Because of the focus on common aspects, the DMTF refers to this information model as CIM, the Common Information Model.</P>
 324           <P>This document describes an object-oriented meta model based on the Unified Modeling Language (UML). This model includes expressions for common elements that must be clearly presented to management applications (for example, object classes, properties, methods and associations).  This document does not describe specific CIM implementations, APIs, or communication protocols – those topics will be addressed in a future version of the specification. For information on the current core and common schemas developed using this meta model, contact the Distributed Management Task Force.</P>
 325           <OL>
 326           
 327           <LI><A NAME="_Toc406249660"><A NAME="_Toc453584948"></FONT><B><FONT SIZE=4>CIM Management Schema</A></A></LI></OL>
 328           </OL>
 329           <DIR>
 330           <DIR>
 331           
 332           </B></FONT><FONT SIZE=3><P>Management schemas are the building blocks for management platforms and management applications, such as device configuration, performance management, and change management. CIM is structured in such a way that the managed environment can be seen as a collection of interrelated systems, each of which is composed of a number of discrete elements. </P>
 333           <P>CIM supplies a set of classes with properties and associations that provide a well-understood conceptual framework within which it is possible to organize the available information about the managed environment. It is assumed that CIM will be clearly understood by any programmer required to write code that will operate against the object schema, or by any schema designer intending to make new information available within the managed environment.</P>
 334           <P>CIM itself is structured into these distinct layers:</P></DIR>
 335           </DIR>
 336           
 337 karl  1.1 
 338           <UL>
 339           
 340           <UL>
 341           <LI>Core model—an information model that captures notions that are applicable to all areas of management.</LI>
 342           <LI>Common model—an information model that captures notions that are common to particular management areas, but independent of a particular technology or implementation. The common areas are systems, applications, networks and devices. The information model is specific enough to provide a basis for the development of management applications. This schema provides a set of base classes for extension into the area of technology-specific schemas. The Core and Common models together are referred to in this document as the CIM schema.</LI>
 343           <LI>Extension schemas—represent technology-specific extensions of the Common model. These schemas are specific to environments, such as operating systems (for example, UNIX or Microsoft Windows).</LI></UL>
 344           </UL>
 345           
 346           <OL>
 347           <OL>
 348           <OL>
 349           
 350           <LI><A NAME="_Toc406249661"><A NAME="_Toc453584949"></FONT><B><I>Core Model</A></A></LI>
 351           </B></I><FONT SIZE=3><P>The Core model is a small set of classes, associations and properties that provide a basic vocabulary for analyzing and describing managed systems. The Core model represents a starting point for the analyst in determining how to extend the common schema.  While it is possible that additional classes will be added to the Core model over time, major re-interpretations of the Core model classes are not anticipated.</P>
 352           <LI><A NAME="_Toc406249662"><A NAME="_Toc453584950"></FONT><B><I>Common Model</A></A></LI>
 353           </B></I><FONT SIZE=3><P>The Common model is a basic set of classes that define various technology-independent areas. The areas are systems, applications, networks and devices. The classes, properties, associations and methods in the Common model are intended to provide a view of the area that is detailed enough to use as a basis for program design and, in some cases, implementation. Extensions are added below the Common model in platform-specific additions that supply concrete classes and implementations of the Common model classes. As the Common model is extended, it will offer a broader range of information.</P>
 354           <LI><A NAME="_Toc406249663"><A NAME="_Toc453584951"></FONT><B><I>Extension Schema</A></A></LI></OL>
 355           </OL>
 356           </OL>
 357           <DIR>
 358 karl  1.1 <DIR>
 359           
 360           </B></I><FONT SIZE=3><P>The Extension schemas are technology-specific extensions to the Common model. It is expected that the Common model will evolve as a result of the promotion of objects and properties defined in the Extension schemas.</P></DIR>
 361           </DIR>
 362           
 363           <OL>
 364           <OL>
 365           
 366           <LI><A NAME="_Toc406249664"><A NAME="_Toc453584952"></FONT><B><FONT SIZE=4>CIM Implementations</A></A></LI>
 367           </B></FONT><FONT SIZE=3><P>CIM is a conceptual model that is not bound to a particular implementation. This allows it to be used to exchange management information in a variety of ways; four of these ways are illustrated in Figure 1-1.  It is possible to use these ways in combination within a management application.</P>
 368           <P ALIGN="CENTER"><IMG SRC="Image2.gif" WIDTH=644 HEIGHT=433></P>
 369           </FONT><I><FONT SIZE=2><P ALIGN="CENTER"><A NAME="_Ref412943503"><A NAME="_Toc453585038">Figure -1</A> Four Ways to Use CIM</A></P>
 370           </I></FONT><FONT SIZE=3><P>As a repository (see the Repository Perspective section for more detail), the constructs defined in the model are stored in a database. These constructs are not instances of the object, relationship, and so on; but rather are definitions for someone to use in establishing objects and relationships. The meta model used by CIM is stored in a repository that becomes a representation of the meta model. This is accomplished by mapping the meta-model constructs into the physical schema of the targeted repository, then populating the repository with the classes and properties expressed in the Core model, Common model and Extension schemas.</P>
 371           <P>For an application DBMS, the CIM is mapped into the physical schema of a targeted DBMS (for example, relational). The information stored in the database consists of actual instances of the constructs. Applications can exchange information when they have access to a common DBMS and the mapping occurs in a predictable way.</P>
 372           <P>For application objects, the CIM is used to create a set of application objects in a particular language. Applications can exchange information when they can bind to the application objects.</P>
 373           <P>For exchange parameters, the CIM—expressed in some agreed-to syntax—is a neutral form used to exchange management information by way of a standard set of object APIs. The exchange can be accomplished via a direct set of API calls, or it can be accomplished by exchange-oriented APIs which can create the appropriate object in the local implementation technology.</P>
 374           <P>&nbsp;</P>
 375           <OL>
 376           
 377           <LI><A NAME="_Toc406249665"><A NAME="_Toc453584953"></FONT><B><I>CIM Implementation Conformance</A></A></LI></OL>
 378           </OL>
 379 karl  1.1 </OL>
 380           <DIR>
 381           <DIR>
 382           
 383           </B></I><FONT SIZE=3><P>The ability to exchange information between management applications is fundamental to CIM.  The current mechanism for exchanging management information is the Management Object Format (MOF).  At the present time, no programming interfaces or protocols are defined by (and hence cannot be considered as) an exchange mechanism.  Therefore, a CIM-capable system must be able to import and export properly formed MOF constructs.  How the import and export operations are performed is an implementation detail for the CIM-capable system.</P>
 384           <P>Objects instantiated in the MOF must, at a minimum, include all key properties and all properties marked as required.  Required properties have the REQUIRED qualifier present and set to TRUE.</P>
 385           
 386           </FONT><FONT FACE="Courier" SIZE=1><P>&nbsp;</P></DIR>
 387           </DIR>
 388           
 389           <OL>
 390           
 391           </FONT><B><FONT SIZE=5><LI></LI>
 392           <LI><A NAME="_Ref412211604"><A NAME="_Toc453584954">Meta Schema</A></A></A></A></LI>
 393           </B></FONT><FONT SIZE=3><P>The Meta Schema is a formal definition of the model. It defines the terms used to express the model and its usage and semantics (see Appendix B).</P>
 394           <P>The Unified Modeling Language (UML) is used to define the structure of the meta schema. In the discussion that follows, italicized words refer to objects in the figure. The reader is expected to be familiar with UML notation (see http://www.rational.com/uml) and with basic object-oriented concepts in the form of classes, properties, methods, operations, inheritance, associations, objects, cardinality and polymorphism. </P>
 395           <OL>
 396           
 397           <LI><A NAME="_Toc404410863"><A NAME="_Toc453584955"></FONT><B><FONT SIZE=4>Definition of the Meta Schema</A></A></LI></OL>
 398           </OL>
 399           <DIR>
 400 karl  1.1 <DIR>
 401           
 402           </B></FONT><FONT SIZE=3><P>The elements of the model are Schemas, Classes, Properties and Methods. The model also supports Indications and Associations as types of Classes and References as types of Properties. </P>
 403           <P>A <I>Schema</I> is a group of classes with a single owner. Schemas are used for administration and class naming. Class names must be unique within their owning schemas.</P>
 404           <P>A <I>Class</I> is a collection of instances that support the same type: that is, the same properties and methods. </P>
 405           <P>Classes can be arranged in a generalization hierarchy that represents subtype relationships between Classes. The generalization hierarchy is a rooted, directed graph and does not support multiple inheritance.</P>
 406           <P>Classes can have Methods, which represent the behavior relevant for that Class. A Class may participate in Associations by being the target of one of the References owned by the Association. Classes also have instances (not represented in Figure 2-1).</P>
 407           <P>A <I>Property</I> is a value used to characterize instances of a Class. A Property can be thought of as a pair of Get and Set functions that, when applied to an object, return state and set state, respectively.</P>
 408           <P>A <I>Method</I> is a declaration of a signature (that is, the method name, return type and parameters), and, in the case of a concrete Class, may imply an implementation.</P>
 409           <P>A <I>Trigger</I> is a recognition of a state change (such as create, delete, update, or access) of a Class instance, and update or access of a Property.</P>
 410           <P>An <I>Indication</I> is an object created as a result of a Trigger. Because Indications are subtypes of Class, they can have Properties and Methods, and be arranged in a type hierarchy. </P>
 411           <P>An <I>Association</I> is a class that contains two or more References. It represents a relationship between two or more objects. Because of the way Associations are defined, it is possible to establish a relationship between Classes without affecting any of the related Classes.  That is, addition of an Association does not affect the interface of the related Classes. Associations have no other significance. Only Associations can have References. An Association cannot be a subclass of a non-association Class. Any subclass of an Association is an Association.</P>
 412           <I><P>References</I> define the role each object plays in an Association. The Reference represents the role name of a Class in the context of an Association. Associations support the provision of multiple relationship instances for a given object. For example, a system can be related to many system components.</P>
 413           <P>Properties and Methods have reflexive associations that represent Property and Method overriding. A Method can override an inherited Method, which implies that any access to the inherited Method will result in the invocation of the implementation of the overriding Method. A similar interpretation implies the overriding of Properties.</P>
 414           <I><P>Qualifiers</I> are used to characterize Named Elements (for example, there are Qualifiers that define the characteristics of a Property or the key of a Class). Qualifiers provide a mechanism that makes the meta schema extensible in a limited and controlled fashion. It is possible to add new types of Qualifiers by the introduction of a new Qualifier name, thereby providing new types of meta data to processes that manage and manipulate classes, properties and other elements of the meta schema. See below for details on the qualifiers provided. </P>
 415           <P ALIGN="CENTER"><IMG SRC="Image3.gif" WIDTH=575 HEIGHT=314><A NAME="_Ref411727235"><A NAME="_Ref411727344"><A NAME="_Ref411728652"></P>
 416           </FONT><I><FONT SIZE=2><P ALIGN="CENTER"><A NAME="_Ref412888727"><A NAME="_Toc453585039">Figure -1</A> Meta Schema Structure</A></P>
 417           </I></FONT><FONT SIZE=3><P></A></A></A>Figure 2-1 provides an overview of the structure of the meta schema.  The complete meta schema is defined by the MOF found in Appendix B.  The rules defining the meta schema are:</P><DIR>
 418           <DIR>
 419           
 420           <P>1.&#9;Every meta construct is expressed as a descendent of a Named Element. </P>
 421 karl  1.1 <P>2.&#9;A Named Element has zero or more Characteristics. A Characteristic is a Qualifier that characterizes a Named Element.</P>
 422           <P>3.&#9;A Named Element can trigger zero or more Indications. </P>
 423           <P>4.&#9;A Schema is a Named Element and can contain zero or more classes. A Class must belong to only one schema.</P>
 424           <P>5.&#9;A Qualifier Type (not shown in Figure 2-1) is a Named Element and must be used to supply a type for a Qualifier (that is, a Qualifier must have a Qualifier Type). A Qualifier Type can be used to type zero or more Qualifiers. </P>
 425           <P>6.&#9;A Qualifier is a Named Element and has a Name, a Type (intrinsic data type), a Value of this type, a Scope, a Flavor and a default Value.  The type of the Qualifier Value must agree with the type of the Qualifier Type.</P>
 426           <P>7.&#9;A Property is a Named Element and has only one Domain: the Class that owns the Property. </P>
 427           <P>8.&#9;A Property can have an Override relationship with another Property from a different class. The Domain of the overridden Property must be a supertype of the Domain of the overriding Property.  </P>
 428           <P>9.&#9;The Class referenced by the Range association (Figure 2-5) of an overriding Reference must be the same as, or a subtype of, the Class referenced by the Range associations of the Reference being overridden.</P>
 429           <P>10.&#9;The Domain of a Reference must be an Association.</P>
 430           <P>11.&#9;A Class is a type of Named Element. A Class can have instances (not shown on the diagram) and is the Domain for zero or more Properties. A Class is the Domain for zero or more Methods. </P>
 431           <P>12.&#9;A Class can have zero or one supertype, and zero or more subtypes. </P>
 432           <P>13.&#9;An Association is a type of Class.  Associations are classes with an Association qualifier. </P>
 433           <P>14.&#9;An Association must have two or more References. </P>
 434           <P>15.&#9;An Association cannot inherit from a non-association Class. </P>
 435           <P>16.&#9;Any subclass of an Association is an association.&#9;</P>
 436           <P>17.&#9;A Method is a Named Element and has only one Domain: the Class that owns the Method. </P>
 437           <P>18.&#9;A Method can have an Override relationship with another Method from a different Class. The Domain of the overridden Method must be a superclass of the Domain of the overriding Method.</P>
 438           <P>19.&#9;A Trigger is an operation that is invoked on any state change, such as object creation, deletion, modification or access, or on property modification or access. Qualifiers, Qualifier Types and Schemas may not have triggers. The changes that invoke a trigger are specified as a Qualifier.</P>
 439           <P>20.&#9;An Indication is a type of Class and has an association with zero or more Named Triggers that can create instances of the Indication.</P>
 440           <P>21.&#9;Every meta-schema object is a descendent of a Named Element and, as such, has a Name. All names are case-insensitive. The rules applicable to Name vary, depending on the creation type of the object. </P><DIR>
 441           <DIR>
 442 karl  1.1 
 443           <P>A&#9;Fully-qualified Class Names (that is, the Class name prefixed by the schema name) are unique within the schema. (See the discussion of schemas later in this section).</P>
 444           <P>B&#9;Fully-qualified Association and Indication Names are unique within the schema (implied by the fact that Associations and Indications are subtypes of Class).</P>
 445           <P>C&#9;Implicitly-defined Qualifier Names are unique within the scope of the characterized object (that is, a Named Element may not have two Characteristics with the same Name). Explicitly-defined Qualifier Names are unique within the defining Schema. An implicitly-defined Qualifier must agree in type, scope and flavor with any explicitly-defined Qualifier of the same name.</P>
 446           <P>D&#9;Trigger names must be unique within the Property, Class or Method to which the Trigger applies.</P>
 447           <P>E&#9;Method and Property names must be unique within the Domain Class. A Class can inherit more than one Property or Method with the same name. Property and Method names can be qualified using the name of the declaring Class. </P>
 448           <P>F&#9;Reference Names must be unique within the scope of their defining Association. Reference Names obey the same rules as Property Names. Note that Reference names are not required to be unique within the scope of the related Class. In such a scope, the Reference provides the name of the Class within the context defined by the Association.</P>
 449           <P>&nbsp;</P></DIR>
 450           </DIR>
 451           </DIR>
 452           </DIR>
 453           
 454           <P ALIGN="CENTER"><IMG SRC="Image4.gif" WIDTH=484 HEIGHT=164></P>
 455           </FONT><I><FONT SIZE=2><P ALIGN="CENTER"><A NAME="_Toc453585040">Figure -2 Reference Naming</A></P><DIR>
 456           <DIR>
 457           <DIR>
 458           <DIR>
 459           
 460           </I></FONT><FONT SIZE=3><P>It is legal for the class System to be related to Service by two independent Associations (<I>Dependency </I>and<I> Hosted Services,</I> each with roles <I>System</I> and <I>Service</I>).  It would not be legal for <I>Hosted Services</I> to define another Reference <I>Service </I>to the Service class, since a single association would then contain two references called <I>Service.</P></DIR>
 461           </DIR>
 462           
 463 karl  1.1 </I><P>22.&#9;Qualifiers are Characteristics of Named Elements. A Qualifier has a Name (inherited from Named Element) and a Value. The Value is used to define the characteristics of the Named Element. For example, a Class might have a Qualifier with the Name &quot;Description,&quot; the Value of which is the description for the Class. A Property might have a Qualifier with the Name &quot;Units,&quot; which has Values such as &quot;Bytes&quot; or &quot;KiloBytes.&quot; The Value can be thought of as a variant (that is, a value plus a type). </P></DIR>
 464           </DIR>
 465           </DIR>
 466           </DIR>
 467           
 468           <OL START=23>
 469           
 470           <OL>
 471           
 472           <LI>Association and Indication are types of Class; as such, they can be the Domain for Methods, Properties and References (that is, Associations and Indications can have Properties and Methods in the same way as a Class does).  Associations and Indications can have instances. The instance of an Association has a set of references that relate one or more objects. An instance of an Indication represents the occurrence of an event, and is created because of that occurrence—usually a Trigger. Indications are not required to have keys. Typically, Indications are very short-lived objects used to communicate information to an event consumer.</LI>
 473           <LI>A Reference has a range that represents the type of the Reference. For example, in the model of PhysicalElements and PhysicalPackages, there are two References: ContainedElement, which has PhysicalElement as its range and Container as its domain, and ContainingElement, which has PhysicalPackage as its range and Container as its domain.</LI></OL>
 474           </OL>
 475           <DIR>
 476           <DIR>
 477           
 478           <P ALIGN="CENTER"><IMG SRC="Image5.gif" WIDTH=424 HEIGHT=152></P>
 479           </FONT><I><FONT SIZE=2><P ALIGN="CENTER"><A NAME="_Toc399646930"><A NAME="_Ref413577345"><A NAME="_Toc453585041">Figure -3</A> References, Ranges, and Domains</A></A></P><DIR>
 480           <DIR>
 481           
 482           </I></FONT><FONT SIZE=3><P>25.&#9;A Class has a subtype-supertype association that represents substitutability relationships between the Named Elements involved in the relationship. The association implies that any instance of a subtype can be substituted for any instance of the supertype in an expression, without invalidating the expression. </P>
 483           <P>Revisiting the Container example: Card is a Subtype of PhysicalPackage. Therefore, Card can be used as a value for the Reference ContainingElement (that is, an instance of Card can be used as a substitute for an instance of PhysicalPackage).</P></DIR>
 484 karl  1.1 </DIR>
 485           
 486           <P ALIGN="CENTER"><IMG SRC="Image6.gif" WIDTH=496 HEIGHT=188></P>
 487           </FONT><I><FONT SIZE=2><P ALIGN="CENTER"><A NAME="_Toc399646931"><A NAME="_Ref413577396"><A NAME="_Toc453585042">Figure -5</A> References, Ranges, Domains and Inheritance</A></A></P><DIR>
 488           <DIR>
 489           
 490           </I></FONT><FONT SIZE=3><P>A similar relationship can exist between Properties. For example, given that PhysicalPackage has a Name property (which is a simple alphanumeric string), Card Overrides Name to a name of alpha-only characters. </P>
 491           <P>The same idea applies to Methods. A Method that overrides another Method must support the same signature as the original Method and, most importantly, must be substitutable for the original Method in all cases. </P>
 492           <P>26.&#9;The Override relationship is used to indicate the substitution relationship between a property or method of a subclass and the overridden property or method inherited from the superclass. This is the opposite of the C++ convention in which the superclass property or method is specified as virtual, with overriding occurring thereafter as a side effect of declaring a feature with the same signature as the inherited virtual feature. </P>
 493           <P><A NAME="_Toc368546708"><A NAME="_Toc372427643"><A NAME="_Toc373214114">27.&#9;The number of references in an Association class defines the arity of the Association. An Association containing two references is a binary Association.  An Association containing three references is a ternary association. Unary Associations (Associations containing one reference) are not meaningful. Arrays of references are not allowed.  When an association is sub-classed, its arity cannot change.</P>
 494           <P>28.&#9;Schemas provide a mechanism that allows ownership of portions of the overall model by individuals and organizations who are responsible for managing the evolution of the schema. In any given installation, all classes are mutually visible, regardless of schema ownership. Schemas have a universally unique name. The schema name is considered part of the class name. The full class name (that is, class name plus owning schema name) is unique within the namespace and is referred to as the fully-qualified name (see Section 2.4).</P></DIR>
 495           </DIR>
 496           </DIR>
 497           </DIR>
 498           
 499           <OL>
 500           <OL>
 501           
 502           <LI><A NAME="_Toc404410864"><A NAME="_Ref412210962"><A NAME="_Ref412617881"><A NAME="_Ref412617959"><A NAME="_Toc453584956"></FONT><B><FONT SIZE=4>Property Data Types</A></A></A></A></A></LI>
 503           </B></FONT><FONT SIZE=3><P>Property data types are limited to the intrinsic data types, or arrays of such.  Structured types are constructed by designing new classes. If the Property is an array property, the corresponding variant type is simply the array equivalent (fixed or variable length) of the variant for the underlying intrinsic type. </P>
 504           <P>This table contains the intrinsic data types and their interpretation:</P></FONT>
 505 karl  1.1 <P ALIGN="LEFT"><TABLE BORDER CELLSPACING=1 BORDERCOLOR="#000000" CELLPADDING=2 WIDTH=426>
 506           <TR><TD WIDTH="51%" VALIGN="TOP">
 507           <B><FONT SIZE=1><P ALIGN="CENTER">INTRINSIC DATA TYPE</B></FONT></TD>
 508           <TD WIDTH="49%" VALIGN="TOP"><DIR>
 509           
 510           <B><FONT SIZE=1><P>INTERPRETATION</DIR>
 511           </B></FONT></TD>
 512           </TR>
 513           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 514           <FONT SIZE=1><P ALIGN="CENTER">uint8</FONT></TD>
 515           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 516           
 517           <FONT SIZE=1><P>Unsigned 8-bit integer </DIR>
 518           </FONT></TD>
 519           </TR>
 520           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 521           <FONT SIZE=1><P ALIGN="CENTER">sint8</FONT></TD>
 522           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 523           
 524           <FONT SIZE=1><P>Signed 8-bit integer </DIR>
 525           </FONT></TD>
 526 karl  1.1 </TR>
 527           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 528           <FONT SIZE=1><P ALIGN="CENTER">uint16</FONT></TD>
 529           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 530           
 531           <FONT SIZE=1><P>Unsigned 16-bit integer </DIR>
 532           </FONT></TD>
 533           </TR>
 534           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 535           <FONT SIZE=1><P ALIGN="CENTER">sint16</FONT></TD>
 536           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 537           
 538           <FONT SIZE=1><P>Signed 16-bit integer </DIR>
 539           </FONT></TD>
 540           </TR>
 541           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 542           <FONT SIZE=1><P ALIGN="CENTER">uint32</FONT></TD>
 543           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 544           
 545           <FONT SIZE=1><P>Unsigned 32-bit integer</DIR>
 546           </FONT></TD>
 547 karl  1.1 </TR>
 548           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 549           <FONT SIZE=1><P ALIGN="CENTER">sint32</FONT></TD>
 550           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 551           
 552           <FONT SIZE=1><P>Signed 32-bit integer</DIR>
 553           </FONT></TD>
 554           </TR>
 555           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 556           <FONT SIZE=1><P ALIGN="CENTER">uint64</FONT></TD>
 557           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 558           
 559           <FONT SIZE=1><P>Unsigned 64-bit integer </DIR>
 560           </FONT></TD>
 561           </TR>
 562           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 563           <FONT SIZE=1><P ALIGN="CENTER">sint64</FONT></TD>
 564           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 565           
 566           <FONT SIZE=1><P>Signed 64-bit integer </DIR>
 567           </FONT></TD>
 568 karl  1.1 </TR>
 569           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 570           <FONT SIZE=1><P ALIGN="CENTER">string</FONT></TD>
 571           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 572           
 573           <FONT SIZE=1><P>UCS-2 string </DIR>
 574           </FONT></TD>
 575           </TR>
 576           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 577           <FONT SIZE=1><P ALIGN="CENTER">boolean</FONT></TD>
 578           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 579           
 580           <FONT SIZE=1><P>Boolean </DIR>
 581           </FONT></TD>
 582           </TR>
 583           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 584           <FONT SIZE=1><P ALIGN="CENTER">real32</FONT></TD>
 585           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 586           
 587           <FONT SIZE=1><P>IEEE 4-byte floating-point </DIR>
 588           </FONT></TD>
 589 karl  1.1 </TR>
 590           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 591           <FONT SIZE=1><P ALIGN="CENTER">real64</FONT></TD>
 592           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 593           
 594           <FONT SIZE=1><P>IEEE 8-byte floating-point </DIR>
 595           </FONT></TD>
 596           </TR>
 597           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 598           <FONT SIZE=1><P ALIGN="CENTER">datetime</FONT></TD>
 599           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 600           
 601           <FONT SIZE=1><P>A string containing a date-time</DIR>
 602           </FONT></TD>
 603           </TR>
 604           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 605           <FONT SIZE=1><P ALIGN="CENTER">&lt;classname&gt; ref</FONT></TD>
 606           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 607           
 608           <FONT SIZE=1><P>Strongly typed reference </DIR>
 609           </FONT></TD>
 610 karl  1.1 </TR>
 611           <TR><TD WIDTH="51%" VALIGN="TOP" HEIGHT=24>
 612           <FONT SIZE=1><P ALIGN="CENTER">char16</FONT></TD>
 613           <TD WIDTH="49%" VALIGN="TOP" HEIGHT=24><DIR>
 614           
 615           <FONT SIZE=1><P>16-bit UCS-2 character </DIR>
 616           </FONT></TD>
 617           </TR>
 618           </TABLE>
 619           </P>
 620           
 621           <OL>
 622           
 623           <FONT SIZE=1><LI><A NAME="_Toc404410865"><A NAME="_Toc453584957"></FONT><B><I>Date, Time, and Interval Types</A></A></LI></OL>
 624           </OL>
 625           </OL>
 626           <DIR>
 627           <DIR>
 628           
 629           </B></I><FONT SIZE=3><P>Date<I>, </I>datetime<I>, </I>interval and time<I> </I>property types are aliases for each other and use the same fixed string-based format:</P><DIR>
 630           
 631 karl  1.1 </FONT><FONT FACE="Courier New" SIZE=1><P>yyyymmddhhmmss.mmmmmmsutc</P></DIR>
 632           
 633           </FONT><FONT SIZE=3><P>where </P></DIR>
 634           </DIR>
 635           
 636           
 637           <UL>
 638           
 639           <UL>
 640           <LI>yyyy<I> </I>is a 4 digit year</LI>
 641           <LI>mm<I> </I>is the month </LI>
 642           <LI>dd<I> </I>is the day</LI>
 643           <LI>hh<I> </I>is the hour (24-hour clock)</LI>
 644           <LI>mm<I> </I>is the minute</LI>
 645           <LI>ss<I> </I>is the second</LI>
 646           <LI>mmmmmm<I> </I>is the number of microseconds</LI>
 647           <LI>s<I> </I>is a "+" or "-", indicating the sign of the UTC (Universal Coordinated Time; for all intents and purposes the same as Greenwich Mean Time) correction field, or a &quot;:&quot;.  In this case, the value is interpreted as a time interval, and yyyymm are interpreted as days.</LI>
 648           <LI>utc<I> </I>is the offset from UTC in minutes (using the sign indicated by <I>s</I>). It is ignored for a time interval.</LI></UL>
 649           </UL>
 650           <DIR>
 651           <DIR>
 652 karl  1.1 
 653           <P>For example, Monday, May 25, 1998, at 1:30:15 PM EST would be represented as:</P><DIR>
 654           
 655           </FONT><FONT FACE="Courier New" SIZE=1><P>19980525133015.0000000-300</P></DIR>
 656           
 657           </FONT><FONT SIZE=3><P>Values must be zero-padded so that the entire string is always the same 25-character length. Fields which are not significant must be replaced with asterisk characters.</P>
 658           <P>Similarly, intervals use the same format, except that the interpretation of the fields is based on elapsed time. For example, an elapsed time of 1 day, 13 hours, 23 minutes, and 12 seconds would be:</P><DIR>
 659           
 660           </FONT><FONT FACE="Courier New" SIZE=1><P>00000001132312.000000:000</P></DIR>
 661           
 662           </FONT><FONT SIZE=3><P>A UTC offset of zero is always used for interval<I> </I>properties.</P>
 663           <P>The string-based interval format is:</P><DIR>
 664           
 665           </FONT><FONT FACE="Courier New" SIZE=1><P>ddddddddhhmmss.mmmmmm:000</P></DIR>
 666           </DIR>
 667           </DIR>
 668           
 669           <OL>
 670           <OL>
 671           <OL>
 672           
 673 karl  1.1 <LI><A NAME="_Toc404410866"><A NAME="_Toc453584958"></FONT><B><I>Indicating Additional Type Semantics with Qualifiers</A></A></LI></OL>
 674           </OL>
 675           </OL>
 676           <DIR>
 677           <DIR>
 678           
 679           </B></I><FONT SIZE=3><P>Since "counter" and "gauge" types (as well as many others) are actually simple integers with specific semantics, they are not treated as separate intrinsic types. Instead, qualifiers must be used to indicate such semantics when properties are being declared (note the example below merely suggests how this may be done; the qualifier names chosen are not part of this standard):</P><DIR>
 680           
 681           </FONT><FONT FACE="Courier New" SIZE=1><P>class Acme_Example<BR>
 682           {<BR>
 683                   [counter]  <BR>
 684               uint32 NumberOfCycles;<BR>
 685                   [gauge] <BR>
 686               uint32 MaxTemperature;</P>
 687           <P>        [octetstring, ArrayType("Indexed")] <BR>
 688               uint8 IPAddress[10];</P>
 689           <P>};</P></DIR>
 690           
 691           </FONT><FONT SIZE=3><P>Implementers are permitted, for documentation purposes, to introduce arbitrary qualifiers in this manner. The semantics are not enforced.</P></DIR>
 692           </DIR>
 693           
 694 karl  1.1 <OL>
 695           <OL>
 696           
 697           <LI><A NAME="_Toc368546710"><A NAME="_Toc373214115"><A NAME="_Toc404410867"><A NAME="_Toc453584959"></A></A></A></FONT><B><FONT SIZE=4>Supported Schema Modifications</A></A></A></A></LI></OL>
 698           </OL>
 699           <DIR>
 700           <DIR>
 701           
 702           </B></FONT><FONT SIZE=3><P>This is a list of supported schema modifications, some of which, when used, will result in changes in application behavior. Changes are all subject to security restrictions; in particular, only the owner of the schema, or someone authorized by the owner, can make modifications to the schema.</P></DIR>
 703           </DIR>
 704           
 705           <OL>
 706           
 707           <OL>
 708           
 709           <LI>A class can be added to or deleted from a schema.</LI>
 710           <LI>A property can be added to or deleted from a class.</LI>
 711           <LI>A class can be added as a subtype or supertype of an existing class. </LI>
 712           <LI>A class can become an association as a result of the addition of an Association qualifier, plus two or more references.</LI>
 713           <LI>A qualifier can be added to or deleted from any Named Element.</LI>
 714           <LI>The Override qualifier can be added to or removed from a property or reference.</LI>
 715 karl  1.1 <LI>A class can alias a property (or reference, if the class is a descendent of an association), using the Alias qualifier. Both inherited and immediate properties of the class may be aliased.</LI>
 716           <LI>A method can be added to a class.</LI>
 717           <LI>A method can override an inherited method.</LI>
 718           <LI>Methods can be deleted, and the signature of a method can be changed.</LI>
 719           <LI>A trigger may be added to or deleted from a class.</LI></OL>
 720           </OL>
 721           <DIR>
 722           <DIR>
 723           
 724           <P><A NAME="_Toc372427645"><A NAME="_Toc373214116"><A NAME="_Toc368546711">In defining an extension to a schema, the schema designer is expected to operate within the constraints of the classes defined in the Core model. With respect to classification, it is recommended that any added component of a system be defined as a subclass of an appropriate Core model class. It is expected that the schema designer will address the following question to each of the Core model classes: &quot;Is the class being added a subtype of this class?&quot; Having identified the Core model class to be extended, the same question should be addressed with respect to each of the subclasses of the identified class. This process, which defines the superclasses of the class to be defined, should be continued until the most detailed class is identified. The Core model is not a part of the meta schema, but is an important device for introducing uniformity across schemas intended to represent aspects of the managed environment.</P></DIR>
 725           </DIR>
 726           
 727           <OL>
 728           <OL>
 729           <OL>
 730           
 731           <LI><A NAME="_Toc404410868"><A NAME="_Toc453584960"></FONT><B><I>Schema Versions</A></A></A></A></LI></OL>
 732           </OL>
 733           </OL>
 734           <DIR>
 735           <DIR>
 736 karl  1.1 
 737           </B></I><FONT SIZE=3><P>Certain modifications to a schema can cause failure in applications that operated against the schema prior to the modification. These modifications are:</P></DIR>
 738           </DIR>
 739           
 740           <OL>
 741           
 742           <OL>
 743           
 744           <LI>Deletion of classes, properties, or methods.</LI>
 745           <LI>Movements of a class anywhere other than down a hierarchy.</LI>
 746           <LI>Alteration of property type or method signature.</LI>
 747           <LI>Altering a reference range to anything other than the original specification.</LI></OL>
 748           </OL>
 749           <DIR>
 750           <DIR>
 751           
 752           <P>Other alterations are considered to be interface-preserving. Any use of the schema changes listed above implies the generation of a new major version of the schema (as defined by the VERSION qualifier described in Section 2.5.2).</P></DIR>
 753           </DIR>
 754           
 755           <OL>
 756           <OL>
 757 karl  1.1 
 758           <LI><A NAME="_Toc404410869"><A NAME="_Ref406302721"><A NAME="_Ref406302733"><A NAME="_Ref412631016"><A NAME="_Toc453584961"></FONT><B><FONT SIZE=4>Class Names</A></A></A></A></A></LI></OL>
 759           </OL>
 760           <DIR>
 761           <DIR>
 762           
 763           </B></FONT><FONT SIZE=3><P>Fully-qualified class names are in the form &lt;schema name&gt;_&lt;class name&gt;.  An underscore is used as a delimiter between the &lt;schema name&gt; and the &lt;class name&gt;. The delimiter is not allowed to appear in the &lt;schema name&gt; although it is permitted in the &lt;class name&gt;.</P>
 764           <P>The format of the fully-qualified name is intended to allow the scope of class names to be limited to a schema: that is, the schema name is assumed to be unique, and the class name is only required to be unique within the schema. The isolation of the schema name using the underscore character allows user interfaces to conveniently strip off the schema when the schema is implied by the context.</P>
 765           <P>Examples of fully-qualified class names:</P></DIR>
 766           </DIR>
 767           
 768           
 769           <UL>
 770           
 771           <UL>
 772           <LI>CIM_ManagedSystemElement: the root of the CIM managed system element hierarchy.</LI>
 773           <LI>CIM_ComputerSystem: the object representing computer systems in the CIM schema.</LI>
 774           <LI>CIM_SystemComponent: the association relating systems to their components.</LI>
 775           <LI>Win32_ComputerSystem: the object representing computer systems in the Win32 schema.</LI></UL>
 776           </UL>
 777           
 778 karl  1.1 <OL>
 779           <OL>
 780           
 781           <LI><A NAME="_Toc373214117"><A NAME="_Toc404410870"><A NAME="_Toc453584962"></FONT><B><FONT SIZE=4>Qualifiers</A></A></A></A></LI>
 782           </B></FONT><FONT SIZE=3><P>Qualifiers are values that provide additional information about classes, associations, indications, methods, method parameters, triggers, instances, properties or references. All qualifiers have a name, type, value, scope, flavor and default value. Qualifiers cannot be duplicated; there cannot be more than one qualifier of the same name for any given class, instance, or property. </P>
 783           <P>The following sections describe meta, standard, optional and user-defined qualifiers.  When any of these qualifiers are used in a model, they must be declared in the MOF file before being used.  These declarations must abide by the details (name, applied to, type) specified in the tables below.  It is not valid to change any of this information for the meta, standard and optional qualifiers.  It is possible to change the default values.  A default value is the assumed value for a qualifier when it is not explicitly specified for particular model elements.</P>
 784           <OL>
 785           
 786           <LI><A NAME="_Toc404410871"><A NAME="_Toc453584963"></FONT><B><I>Meta Qualifiers</A></A></LI>
 787           </B></I><FONT SIZE=3><P>This table lists the qualifiers that are used to refine the definition of the meta constructs in the model. These qualifiers are used to refine the actual usage of an object class or property declaration within the MOF syntax. These qualifiers are all mutually exclusive.</P></FONT>
 788           <P ALIGN="RIGHT"><TABLE BORDER CELLSPACING=1 BORDERCOLOR="#000000" CELLPADDING=7 WIDTH=511>
 789           <TR><TD WIDTH="20%" VALIGN="TOP">
 790           <B><FONT SIZE=1><P>QUALIFIER</B></FONT></TD>
 791           <TD WIDTH="18%" VALIGN="TOP">
 792           <B><FONT SIZE=1><P>DEFAULT</B></FONT></TD>
 793           <TD WIDTH="15%" VALIGN="TOP">
 794           <B><FONT SIZE=1><P>TYPE</B></FONT></TD>
 795           <TD WIDTH="48%" VALIGN="TOP">
 796           <B><FONT SIZE=1><P>MEANING</B></FONT></TD>
 797           </TR>
 798           <TR><TD WIDTH="20%" VALIGN="TOP">
 799 karl  1.1 <FONT SIZE=1><P>ASSOCIATION</FONT></TD>
 800           <TD WIDTH="18%" VALIGN="TOP">
 801           <FONT SIZE=1><P>FALSE</FONT></TD>
 802           <TD WIDTH="15%" VALIGN="TOP">
 803           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
 804           <TD WIDTH="48%" VALIGN="TOP">
 805           <FONT SIZE=1><P>The object class is defining an association.</FONT></TD>
 806           </TR>
 807           <TR><TD WIDTH="20%" VALIGN="TOP">
 808           <FONT SIZE=1><P>INDICATION</FONT></TD>
 809           <TD WIDTH="18%" VALIGN="TOP">
 810           <FONT SIZE=1><P>FALSE</FONT></TD>
 811           <TD WIDTH="15%" VALIGN="TOP">
 812           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
 813           <TD WIDTH="48%" VALIGN="TOP">
 814           <FONT SIZE=1><P>The object class is defining an indication.</FONT></TD>
 815           </TR>
 816           </TABLE>
 817           </P>
 818           
 819           <FONT SIZE=2><LI><A NAME="_Toc373214118"><A NAME="_Toc375540906"><A NAME="_Toc404410872"><A NAME="_Ref412635657"><A NAME="_Ref412635666"><A NAME="_Ref453580382"><A NAME="_Toc453584964"></FONT><B><I>Standard Qualifiers</A></A></A></A></A></A></A></LI>
 820 karl  1.1 </B></I><FONT SIZE=3><P>This table is a list of standard qualifiers that all CIM-compliant implementations are required to handle. Any given object will not have all of the qualifiers listed. It is expected that additional qualifiers will be supplied by extension classes to facilitate the provision of instances of the class and other operations on the class.</P>
 821           <P>It is also important to recognize that not all of these qualifiers can be used together. First, as indicated in the table, not all qualifiers can be applied to all meta-model constructs. These limitations are identified in the &quot;Applies To&quot; column. Second, for a particular meta-model construct like associations, the use of the legal qualifiers may be further constrained because some qualifiers are mutually exclusive or the use of one qualifier implies some restrictions on the value of another qualifier, and so on. These usage rules are documented in the &quot;Meaning&quot; column of the table. Third, legal qualifiers are not inherited by meta-model constructs. For example, the MAXLEN qualifier that applies to properties is not inherited by references. </P>
 822           <P>The &quot;Applies To&quot; column in the table identifies the meta-model construct(s) that can use a particular qualifier. For qualifiers like ASSOCIATION (discussed in the previous section), there is an implied usage rule that the meta qualifier must also be present. For example, the implicit usage rule for the AGGREGATION qualifiers is that the ASSOCIATION qualifier must also be present. </P></FONT>
 823           <P ALIGN="RIGHT"><TABLE BORDER CELLSPACING=1 CELLPADDING=7 WIDTH=576>
 824           <TR><TD WIDTH="23%" VALIGN="TOP">
 825           <B><FONT SIZE=1><P>QUALIFIER</B></FONT></TD>
 826           <TD WIDTH="13%" VALIGN="TOP">
 827           <B><FONT SIZE=1><P>DEFAULT</B></FONT></TD>
 828           <TD WIDTH="16%" VALIGN="TOP">
 829           <B><FONT SIZE=1><P>APPLIES TO</B></FONT></TD>
 830           <TD WIDTH="13%" VALIGN="TOP">
 831           <B><FONT SIZE=1><P>TYPE</B></FONT></TD>
 832           <TD WIDTH="36%" VALIGN="TOP">
 833           <B><FONT SIZE=1><P>MEANING</B></FONT></TD>
 834           </TR>
 835           <TR><TD WIDTH="23%" VALIGN="TOP">
 836           <FONT SIZE=1><P>ABSTRACT</FONT></TD>
 837           <TD WIDTH="13%" VALIGN="TOP">
 838           <FONT SIZE=1><P>FALSE</FONT></TD>
 839           <TD WIDTH="16%" VALIGN="TOP">
 840           <FONT SIZE=1><P>Class, Association, Indication</FONT></TD>
 841 karl  1.1 <TD WIDTH="13%" VALIGN="TOP">
 842           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
 843           <TD WIDTH="36%" VALIGN="TOP">
 844           <FONT SIZE=1><P>Indicates that the class is abstract and serves only as a base for new classes. It is not possible to create instances of such classes.</FONT></TD>
 845           </TR>
 846           <TR><TD WIDTH="23%" VALIGN="TOP">
 847           <FONT SIZE=1><P>AGGREGATE</FONT></TD>
 848           <TD WIDTH="13%" VALIGN="TOP">
 849           <FONT SIZE=1><P>FALSE</FONT></TD>
 850           <TD WIDTH="16%" VALIGN="TOP">
 851           <FONT SIZE=1><P>Reference</FONT></TD>
 852           <TD WIDTH="13%" VALIGN="TOP">
 853           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
 854           <TD WIDTH="36%" VALIGN="TOP">
 855           <FONT SIZE=1><P>Defines the "parent" component of an Aggregation association.<B>Usage Rule:</B> The Aggregation and Aggregate qualifiers are used together – Aggregation qualifying the association, and Aggregate specifying the "parent" reference.</FONT></TD>
 856           </TR>
 857           <TR><TD WIDTH="23%" VALIGN="TOP">
 858           <FONT SIZE=1><P>AGGREGATION</FONT></TD>
 859           <TD WIDTH="13%" VALIGN="TOP">
 860           <FONT SIZE=1><P>FALSE</FONT></TD>
 861           <TD WIDTH="16%" VALIGN="TOP">
 862 karl  1.1 <FONT SIZE=1><P>Association</FONT></TD>
 863           <TD WIDTH="13%" VALIGN="TOP">
 864           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
 865           <TD WIDTH="36%" VALIGN="TOP">
 866           <FONT SIZE=1><P>Indicates that the association is an aggregation.</FONT></TD>
 867           </TR>
 868           <TR><TD WIDTH="23%" VALIGN="TOP">
 869           <FONT SIZE=1><P>ALIAS</FONT></TD>
 870           <TD WIDTH="13%" VALIGN="TOP">
 871           <FONT SIZE=1><P>NULL</FONT></TD>
 872           <TD WIDTH="16%" VALIGN="TOP">
 873           <FONT SIZE=1><P>Property, Reference, Method</FONT></TD>
 874           <TD WIDTH="13%" VALIGN="TOP">
 875           <FONT SIZE=1><P>STRING</FONT></TD>
 876           <TD WIDTH="36%" VALIGN="TOP">
 877           <FONT SIZE=1><P>Establishes an alternate name for a property or method in the schema.</FONT></TD>
 878           </TR>
 879           <TR><TD WIDTH="23%" VALIGN="TOP">
 880           <FONT SIZE=1><P>ARRAYTYPE</FONT></TD>
 881           <TD WIDTH="13%" VALIGN="TOP">
 882           <FONT SIZE=1><P>"Bag"</FONT></TD>
 883 karl  1.1 <TD WIDTH="16%" VALIGN="TOP">
 884           <FONT SIZE=1><P>Property, Parameter</FONT></TD>
 885           <TD WIDTH="13%" VALIGN="TOP">
 886           <FONT SIZE=1><P>STRING</FONT></TD>
 887           <TD WIDTH="36%" VALIGN="TOP">
 888           <FONT SIZE=1><P>Indicates the type of the qualified array. Valid values are "Bag", "Indexed" and "Ordered".<B>Usage rule:</B> The ArrayType qualifier should only be applied to properties and method parameters that are arrays (defined using the square bracket syntax specified in Appendix A).</FONT></TD>
 889           </TR>
 890           <TR><TD WIDTH="23%" VALIGN="TOP">
 891           <FONT SIZE=1><P>BITMAP</FONT></TD>
 892           <TD WIDTH="13%" VALIGN="TOP">
 893           <FONT SIZE=1><P>NULL</FONT></TD>
 894           <TD WIDTH="16%" VALIGN="TOP">
 895           <FONT SIZE=1><P>Property, Method, Parameter</FONT></TD>
 896           <TD WIDTH="13%" VALIGN="TOP">
 897           <FONT SIZE=1><P>STRING ARRAY</FONT></TD>
 898           <TD WIDTH="36%" VALIGN="TOP">
 899           <FONT SIZE=1><P>Indicates which bit positions are significant in a bit map. The position of a specific value in the BitMap array defines an index that is used in selecting a string literal from the BitValues array.</FONT></TD>
 900           </TR>
 901           <TR><TD WIDTH="23%" VALIGN="TOP">
 902           <FONT SIZE=1><P>BITVALUES</FONT></TD>
 903           <TD WIDTH="13%" VALIGN="TOP">
 904 karl  1.1 <FONT SIZE=1><P>NULL</FONT></TD>
 905           <TD WIDTH="16%" VALIGN="TOP">
 906           <FONT SIZE=1><P>Property, Method, Parameter</FONT></TD>
 907           <TD WIDTH="13%" VALIGN="TOP">
 908           <FONT SIZE=1><P>STRING ARRAY</FONT></TD>
 909           <TD WIDTH="36%" VALIGN="TOP">
 910           <FONT SIZE=1><P>Provides translation between a bit position value and an associated string. See the description for the BitMap qualifier.</FONT></TD>
 911           </TR>
 912           <TR><TD WIDTH="23%" VALIGN="TOP">
 913           <FONT SIZE=1><P>COUNTER</FONT></TD>
 914           <TD WIDTH="13%" VALIGN="TOP">
 915           <FONT SIZE=1><P>FALSE</FONT></TD>
 916           <TD WIDTH="16%" VALIGN="TOP">
 917           <FONT SIZE=1><P>Property, Method, Parameter</FONT></TD>
 918           <TD WIDTH="13%" VALIGN="TOP">
 919           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
 920           <TD WIDTH="36%" VALIGN="TOP">
 921           <FONT SIZE=1><P>Applicable only to unsigned integer types.Represents a non-negative integer which monotonically increases until it reaches a maximum value of 2^n-1, when it wraps around and starts increasing again from zero. N can be 8, 16, 32 or 64 depending on the datatype of the object to which the qualifier is applied.Counters have no defined "initial" value, and thus, a single value of a Counter has (in general) no information content</FONT></TD>
 922           </TR>
 923           <TR><TD WIDTH="23%" VALIGN="TOP">
 924           <FONT SIZE=1><P>DESCRIPTION</FONT></TD>
 925 karl  1.1 <TD WIDTH="13%" VALIGN="TOP">
 926           <FONT SIZE=1><P>NULL</FONT></TD>
 927           <TD WIDTH="16%" VALIGN="TOP">
 928           <FONT SIZE=1><P>Any</FONT></TD>
 929           <TD WIDTH="13%" VALIGN="TOP">
 930           <FONT SIZE=1><P>STRING</FONT></TD>
 931           <TD WIDTH="36%" VALIGN="TOP">
 932           <FONT SIZE=1><P>Provides a description of a Named Element.</FONT></TD>
 933           </TR>
 934           <TR><TD WIDTH="23%" VALIGN="TOP">
 935           <FONT SIZE=1><P>DISPLAYNAME</FONT></TD>
 936           <TD WIDTH="13%" VALIGN="TOP">
 937           <FONT SIZE=1><P>NULL</FONT></TD>
 938           <TD WIDTH="16%" VALIGN="TOP">
 939           <FONT SIZE=1><P>Any</FONT></TD>
 940           <TD WIDTH="13%" VALIGN="TOP">
 941           <FONT SIZE=1><P>STRING</FONT></TD>
 942           <TD WIDTH="36%" VALIGN="TOP">
 943           <FONT SIZE=1><P>Defines a name that will be displayed on UI instead of the actual name of the element.</FONT></TD>
 944           </TR>
 945           <TR><TD WIDTH="23%" VALIGN="TOP">
 946 karl  1.1 <FONT SIZE=1><P>GAUGE</FONT></TD>
 947           <TD WIDTH="13%" VALIGN="TOP">
 948           <FONT SIZE=1><P>FALSE</FONT></TD>
 949           <TD WIDTH="16%" VALIGN="TOP">
 950           <FONT SIZE=1><P>Property, Method, Parameter</FONT></TD>
 951           <TD WIDTH="13%" VALIGN="TOP">
 952           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
 953           <TD WIDTH="36%" VALIGN="TOP">
 954           <FONT SIZE=1><P>Applicable only to unsigned integer types.Represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value. The maximum value can not be greater than 2^n - 1. N can be 8, 16, 32 or 64 depending on the datatype of the object to which the qualifier is applied.The value of a Gauge has its maximum value whenever the information being modeled is greater or equal to that maximum value; if the information being modeled subsequently decreases below the maximum value, the Gauge also decreases.</FONT></TD>
 955           </TR>
 956           <TR><TD WIDTH="23%" VALIGN="TOP">
 957           <FONT SIZE=1><P>IN</FONT></TD>
 958           <TD WIDTH="13%" VALIGN="TOP">
 959           <FONT SIZE=1><P>TRUE</FONT></TD>
 960           <TD WIDTH="16%" VALIGN="TOP">
 961           <FONT SIZE=1><P>Parameter</FONT></TD>
 962           <TD WIDTH="13%" VALIGN="TOP">
 963           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
 964           <TD WIDTH="36%" VALIGN="TOP">
 965           <FONT SIZE=1><P>Indicates that the associated parameter is used to pass values to a method.</FONT></TD>
 966           </TR>
 967 karl  1.1 <TR><TD WIDTH="23%" VALIGN="TOP">
 968           <FONT SIZE=1><P>KEY</FONT></TD>
 969           <TD WIDTH="13%" VALIGN="TOP">
 970           <FONT SIZE=1><P>FALSE</FONT></TD>
 971           <TD WIDTH="16%" VALIGN="TOP">
 972           <FONT SIZE=1><P>Property, Reference</FONT></TD>
 973           <TD WIDTH="13%" VALIGN="TOP">
 974           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
 975           <TD WIDTH="36%" VALIGN="TOP">
 976           <FONT SIZE=1><P>Indicates that the property is part of the namespace handle (see Section 5.3.1.2 for information about namespace handles).  If more than one property has the KEY qualifier, then all such properties collectively form the key (a compound key). </P>
 977           <B><P>Usage Rule:</B> Keys are written once at object instantiation and must not be modified thereafter.  It does not make sense to apply a default value to a KEY-qualified property.</FONT></TD>
 978           </TR>
 979           <TR><TD WIDTH="23%" VALIGN="TOP">
 980           <FONT SIZE=1><P>MAPPINGSTRINGS</FONT></TD>
 981           <TD WIDTH="13%" VALIGN="TOP">
 982           <FONT SIZE=1><P>NULL</FONT></TD>
 983           <TD WIDTH="16%" VALIGN="TOP">
 984           <FONT SIZE=1><P>Class, Property,<BR>
 985           Association,<BR>
 986           Indication,<BR>
 987           Reference</FONT></TD>
 988 karl  1.1 <TD WIDTH="13%" VALIGN="TOP">
 989           <FONT SIZE=1><P>STRING ARRAY</FONT></TD>
 990           <TD WIDTH="36%" VALIGN="TOP">
 991           <FONT SIZE=1><P>Mapping strings for one or more management data providers or agents. See Section 2.5.5 and 2.5.6 for more details.</FONT></TD>
 992           </TR>
 993           <TR><TD WIDTH="23%" VALIGN="TOP">
 994           <FONT SIZE=1><P>MAX</FONT></TD>
 995           <TD WIDTH="13%" VALIGN="TOP">
 996           <FONT SIZE=1><P>NULL</FONT></TD>
 997           <TD WIDTH="16%" VALIGN="TOP">
 998           <FONT SIZE=1><P>Reference</FONT></TD>
 999           <TD WIDTH="13%" VALIGN="TOP">
1000           <FONT SIZE=1><P>INT</FONT></TD>
1001           <TD WIDTH="36%" VALIGN="TOP">
1002           <FONT SIZE=1><P>Indicates the maximum cardinality of the reference (i.e. the maximum number of values a given reference can have for each set of other reference values in the association). For example, if an association relates A instances to B instances, and there must be at most one A instance for each B instance, then the reference to A should have a Max(1) qualifier. </FONT></TD>
1003           </TR>
1004           <TR><TD WIDTH="23%" VALIGN="TOP">
1005           <FONT SIZE=1><P>MAXLEN</FONT></TD>
1006           <TD WIDTH="13%" VALIGN="TOP">
1007           <FONT SIZE=1><P>NULL</FONT></TD>
1008           <TD WIDTH="16%" VALIGN="TOP">
1009 karl  1.1 <FONT SIZE=1><P>Property, Method, Parameter</FONT></TD>
1010           <TD WIDTH="13%" VALIGN="TOP">
1011           <FONT SIZE=1><P>INT</FONT></TD>
1012           <TD WIDTH="36%" VALIGN="TOP">
1013           <FONT SIZE=1><P>Indicates the maximum length, in characters, of a string data item. When overriding the default value, any unsigned integer value (uint32) can be specified. A value of NULL implies unlimited length.</FONT></TD>
1014           </TR>
1015           <TR><TD WIDTH="23%" VALIGN="TOP">
1016           <FONT SIZE=1><P>MAXVALUE</FONT></TD>
1017           <TD WIDTH="13%" VALIGN="TOP">
1018           <FONT SIZE=1><P>NULL</FONT></TD>
1019           <TD WIDTH="16%" VALIGN="TOP">
1020           <FONT SIZE=1><P>Property, Method, Parameter</FONT></TD>
1021           <TD WIDTH="13%" VALIGN="TOP">
1022           <FONT SIZE=1><P>INT</FONT></TD>
1023           <TD WIDTH="36%" VALIGN="TOP">
1024           <FONT SIZE=1><P>Maximum value of this object.</FONT></TD>
1025           </TR>
1026           <TR><TD WIDTH="23%" VALIGN="TOP">
1027           <FONT SIZE=1><P>MIN</FONT></TD>
1028           <TD WIDTH="13%" VALIGN="TOP">
1029           <FONT SIZE=1><P>0</FONT></TD>
1030 karl  1.1 <TD WIDTH="16%" VALIGN="TOP">
1031           <FONT SIZE=1><P>Reference </FONT></TD>
1032           <TD WIDTH="13%" VALIGN="TOP">
1033           <FONT SIZE=1><P>INT</FONT></TD>
1034           <TD WIDTH="36%" VALIGN="TOP">
1035           <FONT SIZE=1><P>Indicates the minimum cardinality of the reference (i.e. the minimum number of values a given reference can have for each set of other reference values in the association). For example, if an association relates A instances to B instances, and there must be at least one A instance for each B instance, then the reference to A should have a Min(1) qualifier.</FONT></TD>
1036           </TR>
1037           <TR><TD WIDTH="23%" VALIGN="TOP">
1038           <FONT SIZE=1><P>MINVALUE</FONT></TD>
1039           <TD WIDTH="13%" VALIGN="TOP">
1040           <FONT SIZE=1><P>NULL</FONT></TD>
1041           <TD WIDTH="16%" VALIGN="TOP">
1042           <FONT SIZE=1><P>Property, Method, Parameter</FONT></TD>
1043           <TD WIDTH="13%" VALIGN="TOP">
1044           <FONT SIZE=1><P>INT</FONT></TD>
1045           <TD WIDTH="36%" VALIGN="TOP">
1046           <FONT SIZE=1><P>Minimum value of this object.</FONT></TD>
1047           </TR>
1048           <TR><TD WIDTH="23%" VALIGN="TOP">
1049           <FONT SIZE=1><P>MODEL CORRESPONDENCE</FONT></TD>
1050           <TD WIDTH="13%" VALIGN="TOP">
1051 karl  1.1 <FONT SIZE=1><P>NULL</FONT></TD>
1052           <TD WIDTH="16%" VALIGN="TOP">
1053           <FONT SIZE=1><P>Property</FONT></TD>
1054           <TD WIDTH="13%" VALIGN="TOP">
1055           <FONT SIZE=1><P>STRING ARRAY</FONT></TD>
1056           <TD WIDTH="36%" VALIGN="TOP">
1057           <FONT SIZE=1><P>Indicates a correspondence between an object’s property and other properties in the CIM Schema.  Object properties are identified using the following syntax:</P>
1058           <P>&lt;schema name&gt; "_" &lt;class or association name&gt; "." &lt;property name&gt;</FONT></TD>
1059           </TR>
1060           <TR><TD WIDTH="23%" VALIGN="TOP">
1061           <FONT SIZE=1><P>NONLOCAL</FONT></TD>
1062           <TD WIDTH="13%" VALIGN="TOP">
1063           <FONT SIZE=1><P>NULL</FONT></TD>
1064           <TD WIDTH="16%" VALIGN="TOP">
1065           <FONT SIZE=1><P>Reference</FONT></TD>
1066           <TD WIDTH="13%" VALIGN="TOP">
1067           <FONT SIZE=1><P>STRING</FONT></TD>
1068           <TD WIDTH="36%" VALIGN="TOP">
1069           <FONT SIZE=1><P>Indicates the location of an instance. Its value is &lt;namespacetype&gt;://&lt;namespacehandle&gt;&nbsp;<B>Usage Rule:</B> Cannot be used with the NonLocalType qualifier.</FONT></TD>
1070           </TR>
1071           <TR><TD WIDTH="23%" VALIGN="TOP">
1072 karl  1.1 <FONT SIZE=1><P>NONLOCALTYPE</FONT></TD>
1073           <TD WIDTH="13%" VALIGN="TOP">
1074           <FONT SIZE=1><P>NULL</FONT></TD>
1075           <TD WIDTH="16%" VALIGN="TOP">
1076           <FONT SIZE=1><P>&nbsp;Reference</FONT></TD>
1077           <TD WIDTH="13%" VALIGN="TOP">
1078           <FONT SIZE=1><P>STRING</FONT></TD>
1079           <TD WIDTH="36%" VALIGN="TOP">
1080           <FONT SIZE=1><P>Indicates the type of location of an instance. Its value is &lt;namespacetype&gt;&nbsp;&nbsp;<B>Usage Rule:</B> Cannot be used with the NonLocal qualifier.&nbsp;&nbsp;</FONT></TD>
1081           </TR>
1082           <TR><TD WIDTH="23%" VALIGN="TOP">
1083           <FONT SIZE=1><P>NULLVALUE</FONT></TD>
1084           <TD WIDTH="13%" VALIGN="TOP">
1085           <FONT SIZE=1><P>NULL</FONT></TD>
1086           <TD WIDTH="16%" VALIGN="TOP">
1087           <FONT SIZE=1><P>Property</FONT></TD>
1088           <TD WIDTH="13%" VALIGN="TOP">
1089           <FONT SIZE=1><P>STRING</FONT></TD>
1090           <TD WIDTH="36%" VALIGN="TOP">
1091           <FONT SIZE=1><P>Defines a value the presence of which indicates that the associated property is NULL – that is that the property cannot be considered as having a valid or meaningful value.<BR>
1092           The conventions and restrictions used for defining null values are the same as those applicable to the ValueMap qualifier.<BR>
1093 karl  1.1 Note this qualifier cannot be overridden as it seems unreasonable to permit a subclass to return a different null value to that of the superclass.</FONT></TD>
1094           </TR>
1095           <TR><TD WIDTH="23%" VALIGN="TOP">
1096           <FONT SIZE=1><P>OUT</FONT></TD>
1097           <TD WIDTH="13%" VALIGN="TOP">
1098           <FONT SIZE=1><P>FALSE</FONT></TD>
1099           <TD WIDTH="16%" VALIGN="TOP">
1100           <FONT SIZE=1><P>Parameter</FONT></TD>
1101           <TD WIDTH="13%" VALIGN="TOP">
1102           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
1103           <TD WIDTH="36%" VALIGN="TOP">
1104           <FONT SIZE=1><P>Indicates that the associated parameter is used to return values from a method.</FONT></TD>
1105           </TR>
1106           <TR><TD WIDTH="23%" VALIGN="TOP">
1107           <FONT SIZE=1><P>OVERRIDE</FONT></TD>
1108           <TD WIDTH="13%" VALIGN="TOP">
1109           <FONT SIZE=1><P>NULL</FONT></TD>
1110           <TD WIDTH="16%" VALIGN="TOP">
1111           <FONT SIZE=1><P>Property, Method,<BR>
1112           Reference</FONT></TD>
1113           <TD WIDTH="13%" VALIGN="TOP">
1114 karl  1.1 <FONT SIZE=1><P>STRING</FONT></TD>
1115           <TD WIDTH="36%" VALIGN="TOP">
1116           <FONT SIZE=1><P>Indicates that the property, method, or reference in the derived class overrides the similar construct (of the same name) in the parent class in the inheritance tree, or in the specified parent class. The value of this qualifier MAY identify the parent class whose subordinate construct (property, method, or reference) is overridden. The format of the string to accomplish this is:[&lt;class&gt;.]&lt;subordinate construct&gt;If the class name is omitted, the Override applies to the subordinate construct in the parent class in the inheritance tree.<B>Usage Rule: </B>The Override qualifier can only refer to constructs based on the same meta model. Also, it is not allowed to change a construct's name or signature when overriding.</FONT></TD>
1117           </TR>
1118           <TR><TD WIDTH="23%" VALIGN="TOP">
1119           <FONT SIZE=1><P>PROPAGATED</FONT></TD>
1120           <TD WIDTH="13%" VALIGN="TOP">
1121           <FONT SIZE=1><P>NULL</FONT></TD>
1122           <TD WIDTH="16%" VALIGN="TOP">
1123           <FONT SIZE=1><P>Property</FONT></TD>
1124           <TD WIDTH="13%" VALIGN="TOP">
1125           <FONT SIZE=1><P>STRING</FONT></TD>
1126           <TD WIDTH="36%" VALIGN="TOP">
1127           <FONT SIZE=1><P>The propagated qualifier is a string-valued qualifier that contains the name of the key that is being propagated. Its use assumes the existence of only one weak qualifier on a reference that has the containing class as its target. The associated property must have the same value as the property named by the qualifier in the class on the other side of the weak association. The format of the string to accomplish this is:</P>
1128           <P> [&lt;class&gt;.]&lt;subordinate construct&gt;</P>
1129           <B><P>Usage Rule: </B>When the PROPAGATED qualifier is used, the KEY qualifier must be specified with a value of TRUE.</FONT></TD>
1130           </TR>
1131           <TR><TD WIDTH="23%" VALIGN="TOP">
1132           <FONT SIZE=1><P>READ</FONT></TD>
1133           <TD WIDTH="13%" VALIGN="TOP">
1134           <FONT SIZE=1><P>TRUE</FONT></TD>
1135 karl  1.1 <TD WIDTH="16%" VALIGN="TOP">
1136           <FONT SIZE=1><P>Property</FONT></TD>
1137           <TD WIDTH="13%" VALIGN="TOP">
1138           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
1139           <TD WIDTH="36%" VALIGN="TOP">
1140           <FONT SIZE=1><P>Indicates that the property is readable. </FONT></TD>
1141           </TR>
1142           <TR><TD WIDTH="23%" VALIGN="TOP">
1143           <FONT SIZE=1><P>REQUIRED</FONT></TD>
1144           <TD WIDTH="13%" VALIGN="TOP">
1145           <FONT SIZE=1><P>FALSE</FONT></TD>
1146           <TD WIDTH="16%" VALIGN="TOP">
1147           <FONT SIZE=1><P>Property</FONT></TD>
1148           <TD WIDTH="13%" VALIGN="TOP">
1149           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
1150           <TD WIDTH="36%" VALIGN="TOP">
1151           <FONT SIZE=1><P>Indicates that a non-NULL value is required for the property.</FONT></TD>
1152           </TR>
1153           <TR><TD WIDTH="23%" VALIGN="TOP">
1154           <FONT SIZE=1><P>REVISION</FONT></TD>
1155           <TD WIDTH="13%" VALIGN="TOP">
1156 karl  1.1 <FONT SIZE=1><P>NULL</FONT></TD>
1157           <TD WIDTH="16%" VALIGN="TOP">
1158           <FONT SIZE=1><P>Class, <BR>
1159           Association, <BR>
1160           Indication, Schema</FONT></TD>
1161           <TD WIDTH="13%" VALIGN="TOP">
1162           <FONT SIZE=1><P>STRING</FONT></TD>
1163           <TD WIDTH="36%" VALIGN="TOP">
1164           <FONT SIZE=1><P>Provides the minor revision number of the schema object.</P>
1165           <B><P>Usage Rule:</B> The VERSION qualifier must be present to supply the major version number when the REVISION qualifier is used.</FONT></TD>
1166           </TR>
1167           <TR><TD WIDTH="23%" VALIGN="TOP">
1168           <FONT SIZE=1><P>SCHEMA</FONT></TD>
1169           <TD WIDTH="13%" VALIGN="TOP">
1170           <FONT SIZE=1><P>NULL</FONT></TD>
1171           <TD WIDTH="16%" VALIGN="TOP">
1172           <FONT SIZE=1><P>Property, Method </FONT></TD>
1173           <TD WIDTH="13%" VALIGN="TOP">
1174           <FONT SIZE=1><P>STRING</FONT></TD>
1175           <TD WIDTH="36%" VALIGN="TOP">
1176           <FONT SIZE=1><P>The name of the schema in which the feature is defined.</FONT></TD>
1177 karl  1.1 </TR>
1178           <TR><TD WIDTH="23%" VALIGN="TOP">
1179           <FONT SIZE=1><P>SOURCE</FONT></TD>
1180           <TD WIDTH="13%" VALIGN="TOP">
1181           <FONT SIZE=1><P>NULL</FONT></TD>
1182           <TD WIDTH="16%" VALIGN="TOP">
1183           <FONT SIZE=1><P>Class, Association, Indication, Reference</FONT></TD>
1184           <TD WIDTH="13%" VALIGN="TOP">
1185           <FONT SIZE=1><P>STRING</FONT></TD>
1186           <TD WIDTH="36%" VALIGN="TOP">
1187           <FONT SIZE=1><P>Indicates the location of an instance. Its value is &lt;namespacetype&gt;://&lt;namespacehandle&gt;<BR>
1188           <B>Usage Rule:</B> Cannot be used with the SourceType&nbsp; qualifier.</FONT></TD>
1189           </TR>
1190           <TR><TD WIDTH="23%" VALIGN="TOP">
1191           <FONT SIZE=1><P>SOURCETYPE</FONT></TD>
1192           <TD WIDTH="13%" VALIGN="TOP">
1193           <FONT SIZE=1><P>NULL</FONT></TD>
1194           <TD WIDTH="16%" VALIGN="TOP">
1195           <FONT SIZE=1><P>Class, Association, Indication, Reference</FONT></TD>
1196           <TD WIDTH="13%" VALIGN="TOP">
1197           <FONT SIZE=1><P>STRING</FONT></TD>
1198 karl  1.1 <TD WIDTH="36%" VALIGN="TOP">
1199           <FONT SIZE=1><P>Indicates the type of location of an instance. Its value is &lt;namespacetype&gt;&nbsp;&nbsp;Usage Rule: Cannot be used with the Source qualifier.&nbsp;&nbsp;</FONT></TD>
1200           </TR>
1201           <TR><TD WIDTH="23%" VALIGN="TOP">
1202           <FONT SIZE=1><P>STATIC</FONT></TD>
1203           <TD WIDTH="13%" VALIGN="TOP">
1204           <FONT SIZE=1><P>FALSE</FONT></TD>
1205           <TD WIDTH="16%" VALIGN="TOP">
1206           <FONT SIZE=1><P>Property, Method</FONT></TD>
1207           <TD WIDTH="13%" VALIGN="TOP">
1208           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
1209           <TD WIDTH="36%" VALIGN="TOP">
1210           <FONT SIZE=1><P>For methods indicates that the method is a class method that does not depend on any per-instance data.For properties, indicates that the property is a class variable rather than an instance variable.</FONT></TD>
1211           </TR>
1212           <TR><TD WIDTH="23%" VALIGN="TOP">
1213           <FONT SIZE=1><P>TERMINAL</FONT></TD>
1214           <TD WIDTH="13%" VALIGN="TOP">
1215           <FONT SIZE=1><P>FALSE</FONT></TD>
1216           <TD WIDTH="16%" VALIGN="TOP">
1217           <FONT SIZE=1><P>Class</FONT></TD>
1218           <TD WIDTH="13%" VALIGN="TOP">
1219 karl  1.1 <FONT SIZE=1><P>BOOLEAN</FONT></TD>
1220           <TD WIDTH="36%" VALIGN="TOP">
1221           <FONT SIZE=1><P>Indicate that the class can have no subclasses. If such a subclass is declared the compiler will generate an error.<BR>
1222           Note this qualifier cannot coexist with the Abstract qualifier. If both are specified the compiler generates an error.</FONT></TD>
1223           </TR>
1224           <TR><TD WIDTH="23%" VALIGN="TOP">
1225           <FONT SIZE=1><P>UNITS</FONT></TD>
1226           <TD WIDTH="13%" VALIGN="TOP">
1227           <FONT SIZE=1><P>NULL</FONT></TD>
1228           <TD WIDTH="16%" VALIGN="TOP">
1229           <FONT SIZE=1><P>Property, Method, Parameter</FONT></TD>
1230           <TD WIDTH="13%" VALIGN="TOP">
1231           <FONT SIZE=1><P>STRING</FONT></TD>
1232           <TD WIDTH="36%" VALIGN="TOP">
1233           <FONT SIZE=1><P>Provides units in which the associated data item is expressed. For example, a Size data item might have Units ("bytes"). The complete set of standard units is defined in Appendix C.</FONT></TD>
1234           </TR>
1235           <TR><TD WIDTH="23%" VALIGN="TOP">
1236           <FONT SIZE=1><P>VALUEMAP</FONT></TD>
1237           <TD WIDTH="13%" VALIGN="TOP">
1238           <FONT SIZE=1><P>NULL</FONT></TD>
1239           <TD WIDTH="16%" VALIGN="TOP">
1240 karl  1.1 <FONT SIZE=1><P>Property, Method, Parameter</FONT></TD>
1241           <TD WIDTH="13%" VALIGN="TOP">
1242           <FONT SIZE=1><P>STRING ARRAY</FONT></TD>
1243           <TD WIDTH="36%" VALIGN="TOP">
1244           <FONT SIZE=1><P>Defines the set of permissible values for this property, method return type or method parameter. The ValueMap can be used alone, or in combination with the Values qualifier. When used in combination with the Values qualifier, the location of the value in the ValueMap array provides the location of the corresponding entry in the Values array.ValueMap may only be used with string and integer values. The syntax for representing an integer value in the ValueMap array is:[+|-]digit[*digit]The content, maximum number of digits and represented value are constrained by the type of the associated property. For example, uint8 may not be signed, must be less than four digits, and must represent a value less than 256.</FONT></TD>
1245           </TR>
1246           <TR><TD WIDTH="23%" VALIGN="TOP">
1247           <FONT SIZE=1><P>VALUES</FONT></TD>
1248           <TD WIDTH="13%" VALIGN="TOP">
1249           <FONT SIZE=1><P>NULL</FONT></TD>
1250           <TD WIDTH="16%" VALIGN="TOP">
1251           <FONT SIZE=1><P>Property, Method, Parameter</FONT></TD>
1252           <TD WIDTH="13%" VALIGN="TOP">
1253           <FONT SIZE=1><P>STRING  ARRAY</FONT></TD>
1254           <TD WIDTH="36%" VALIGN="TOP">
1255           <FONT SIZE=1><P>Provides translation between an integer value and an associated string. If a ValueMap qualifier is not present, the Values array is indexed (zero relative) using the value in the associated property, method return type or method parameter. If a ValueMap qualifier is present, the Values index is defined by the location of the property value in the ValueMap.</FONT></TD>
1256           </TR>
1257           <TR><TD WIDTH="23%" VALIGN="TOP">
1258           <FONT SIZE=1><P>VERSION</FONT></TD>
1259           <TD WIDTH="13%" VALIGN="TOP">
1260           <FONT SIZE=1><P>NULL</FONT></TD>
1261 karl  1.1 <TD WIDTH="16%" VALIGN="TOP">
1262           <FONT SIZE=1><P>Class, Schema,<BR>
1263           Association,<BR>
1264           Indication</FONT></TD>
1265           <TD WIDTH="13%" VALIGN="TOP">
1266           <FONT SIZE=1><P>STRING</FONT></TD>
1267           <TD WIDTH="36%" VALIGN="TOP">
1268           <FONT SIZE=1><P>Provides the major version number of the schema object. This is incremented when changes are made to the schema that alter the interface. </FONT></TD>
1269           </TR>
1270           <TR><TD WIDTH="23%" VALIGN="TOP">
1271           <FONT SIZE=1><P>WEAK</FONT></TD>
1272           <TD WIDTH="13%" VALIGN="TOP">
1273           <FONT SIZE=1><P>FALSE</FONT></TD>
1274           <TD WIDTH="16%" VALIGN="TOP">
1275           <FONT SIZE=1><P>Reference</FONT></TD>
1276           <TD WIDTH="13%" VALIGN="TOP">
1277           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
1278           <TD WIDTH="36%" VALIGN="TOP">
1279           <FONT SIZE=1><P>Indicates that the keys of the referenced class include the keys of the other participants in the association. This qualifier is used when the identity of the referenced class depends on the identity of the other participants in the association. No more than one reference to any given class can be weak. The other classes in the association must define a key. The keys of the other classes in the association are repeated in the referenced class and tagged with a propagated qualifier. </FONT></TD>
1280           </TR>
1281           <TR><TD WIDTH="23%" VALIGN="TOP">
1282 karl  1.1 <FONT SIZE=1><P>WRITE</FONT></TD>
1283           <TD WIDTH="13%" VALIGN="TOP">
1284           <FONT SIZE=1><P>FALSE</FONT></TD>
1285           <TD WIDTH="16%" VALIGN="TOP">
1286           <FONT SIZE=1><P>Property</FONT></TD>
1287           <TD WIDTH="13%" VALIGN="TOP">
1288           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
1289           <TD WIDTH="36%" VALIGN="TOP">
1290           <FONT SIZE=1><P>Indicates whether write access is allowed for a property by any "consumers" of that property's data. This qualifier does not address the initial assignment of a property value, nor its maintenance by its "provider". It describes the maximal level of access that is allowed, and does not address whether security and authorization restrictions may actually prevent writing of the data. A value of true indicates that the property is readable and writable by "consumers", given appropriate administrative authorization. A value of false indicates that the property is only readable by "consumers", regardless of authorization.</FONT></TD>
1291           </TR>
1292           </TABLE>
1293           </P>
1294           
1295           <FONT SIZE=2><LI><A NAME="_Toc368546712"><A NAME="_Toc375540907"><A NAME="_Toc373214119"><A NAME="_Toc404410873"><A NAME="_Toc453584965"></FONT><B><I>Optional Qualifiers</A></LI>
1296           </B></I><FONT SIZE=3><P>The optional qualifiers listed in this table address situations that are not common to all CIM-compliant implementations.  Thus, CIM-compliant implementations can ignore optional qualifiers since they are not required to interpret or understand these qualifiers. These are provided in the specification to avoid random user-defined qualifiers for these recurring situations.</P>
1297           </FONT>
1298           <P ALIGN="RIGHT"><TABLE BORDER CELLSPACING=1 CELLPADDING=7 WIDTH=576>
1299           <TR><TD WIDTH="23%" VALIGN="TOP">
1300           <FONT SIZE=1><P>&nbsp;</P>
1301           <P>&nbsp;</P>
1302           <B><P>Qualifer</B></FONT></TD>
1303 karl  1.1 <TD WIDTH="13%" VALIGN="TOP">
1304           <B><FONT SIZE=1><P>Default</B></FONT></TD>
1305           <TD WIDTH="16%" VALIGN="TOP">
1306           <B><FONT SIZE=1><P>Applies To</B></FONT></TD>
1307           <TD WIDTH="13%" VALIGN="TOP">
1308           <B><FONT SIZE=1><P>Type</B></FONT></TD>
1309           <TD WIDTH="36%" VALIGN="TOP">
1310           <B><FONT SIZE=1><P>Meaning</B></FONT></TD>
1311           </TR>
1312           <TR><TD WIDTH="23%" VALIGN="TOP">
1313           <FONT SIZE=1><P>DELETE</FONT></TD>
1314           <TD WIDTH="13%" VALIGN="TOP">
1315           <FONT SIZE=1><P>FALSE</FONT></TD>
1316           <TD WIDTH="16%" VALIGN="TOP">
1317           <FONT SIZE=1><P>Association, Reference</FONT></TD>
1318           <TD WIDTH="13%" VALIGN="TOP">
1319           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
1320           <TD WIDTH="36%" VALIGN="TOP">
1321           <B><FONT SIZE=1><P>For associations</B>: Indicates that the qualified association must be deleted if any of the objects referenced in the association are deleted, AND the respective object referenced in the association is qualified with IFDELETED. </P>
1322           <B><P>For references</B>: Indicates that the referenced object must be deleted if the association containing the reference is deleted, AND qualified with IFDELETED, or if any of the objects referenced in the association are deleted AND the respective object referenced in the association is qualified with IFDELETED. </P>
1323           <B><P>Usage Rule</B>: Applications must to chase associations according to the modeled semantic and delete objects appropriately.  <I>Note: This usage rule must be verified when the CIM security model is defined.</I></FONT></TD>
1324 karl  1.1 </TR>
1325           <TR><TD WIDTH="23%" VALIGN="TOP">
1326           <FONT SIZE=1><P>EXPENSIVE</FONT></TD>
1327           <TD WIDTH="13%" VALIGN="TOP">
1328           <FONT SIZE=1><P>FALSE</FONT></TD>
1329           <TD WIDTH="16%" VALIGN="TOP">
1330           <FONT SIZE=1><P>Property, Reference, Class, Association, Method</FONT></TD>
1331           <TD WIDTH="13%" VALIGN="TOP">
1332           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
1333           <TD WIDTH="36%" VALIGN="TOP">
1334           <FONT SIZE=1><P>Indicates the property or class is expensive to compute.</FONT></TD>
1335           </TR>
1336           <TR><TD WIDTH="23%" VALIGN="TOP">
1337           <FONT SIZE=1><P>IFDELETED</FONT></TD>
1338           <TD WIDTH="13%" VALIGN="TOP">
1339           <FONT SIZE=1><P>FALSE</FONT></TD>
1340           <TD WIDTH="16%" VALIGN="TOP">
1341           <FONT SIZE=1><P>Association, Reference</FONT></TD>
1342           <TD WIDTH="13%" VALIGN="TOP">
1343           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
1344           <TD WIDTH="36%" VALIGN="TOP">
1345 karl  1.1 <FONT SIZE=1><P>Indicates that all objects qualified by DELETE within the association must be deleted if the referenced object or the association, respectively, is deleted. </FONT></TD>
1346           </TR>
1347           <TR><TD WIDTH="23%" VALIGN="TOP">
1348           <FONT SIZE=1><P>INVISIBLE</FONT></TD>
1349           <TD WIDTH="13%" VALIGN="TOP">
1350           <FONT SIZE=1><P>FALSE</FONT></TD>
1351           <TD WIDTH="16%" VALIGN="TOP">
1352           <FONT SIZE=1><P>Association, Property, Method, Reference, Class</P>
1353           </FONT></TD>
1354           <TD WIDTH="13%" VALIGN="TOP">
1355           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
1356           <TD WIDTH="36%" VALIGN="TOP">
1357           <FONT SIZE=1><P>Indicates that the association is defined only for internal purposes (for example, for definition of dependency semantics) and should not be displayed (for example, in maps).</FONT></TD>
1358           </TR>
1359           <TR><TD WIDTH="23%" VALIGN="TOP">
1360           <FONT SIZE=1><P>LARGE</FONT></TD>
1361           <TD WIDTH="13%" VALIGN="TOP">
1362           <FONT SIZE=1><P>FALSE</FONT></TD>
1363           <TD WIDTH="16%" VALIGN="TOP">
1364           <FONT SIZE=1><P>Property,  Class</FONT></TD>
1365           <TD WIDTH="13%" VALIGN="TOP">
1366 karl  1.1 <FONT SIZE=1><P>BOOLEAN</FONT></TD>
1367           <TD WIDTH="36%" VALIGN="TOP">
1368           <FONT SIZE=1><P>Indicates the property or class requires a large amount of storage space.</FONT></TD>
1369           </TR>
1370           <TR><TD WIDTH="23%" VALIGN="TOP">
1371           <FONT SIZE=1><P>PROVIDER</FONT></TD>
1372           <TD WIDTH="13%" VALIGN="TOP">
1373           <FONT SIZE=1><P>NULL</FONT></TD>
1374           <TD WIDTH="16%" VALIGN="TOP">
1375           <FONT SIZE=1><P>Any</FONT></TD>
1376           <TD WIDTH="13%" VALIGN="TOP">
1377           <FONT SIZE=1><P>STRING</FONT></TD>
1378           <TD WIDTH="36%" VALIGN="TOP">
1379           <FONT SIZE=1><P>An implementation specific handle to the instrumentation that populates those elements in the schemas which refer to dynamic data.</FONT></TD>
1380           </TR>
1381           <TR><TD WIDTH="23%" VALIGN="TOP">
1382           <FONT SIZE=1><P>SYNTAX</FONT></TD>
1383           <TD WIDTH="13%" VALIGN="TOP">
1384           <FONT SIZE=1><P>NULL</FONT></TD>
1385           <TD WIDTH="16%" VALIGN="TOP">
1386           <FONT SIZE=1><P>Property, Reference, Method, Parameter</FONT></TD>
1387 karl  1.1 <TD WIDTH="13%" VALIGN="TOP">
1388           <FONT SIZE=1><P>STRING</FONT></TD>
1389           <TD WIDTH="36%" VALIGN="TOP">
1390           <FONT SIZE=1><P>Specific type assigned to a data item. <B>Usage Rule:</B> Must be used with the SyntaxType qualifier.</FONT></TD>
1391           </TR>
1392           <TR><TD WIDTH="23%" VALIGN="TOP">
1393           <FONT SIZE=1><P>SYNTAXTYPE</FONT></TD>
1394           <TD WIDTH="13%" VALIGN="TOP">
1395           <FONT SIZE=1><P>NULL</FONT></TD>
1396           <TD WIDTH="16%" VALIGN="TOP">
1397           <FONT SIZE=1><P>Property, Reference, Method, Parameter</FONT></TD>
1398           <TD WIDTH="13%" VALIGN="TOP">
1399           <FONT SIZE=1><P>STRING</FONT></TD>
1400           <TD WIDTH="36%" VALIGN="TOP">
1401           <FONT SIZE=1><P>Defines the format of the SYNTAX qualifier.</P>
1402           <B><P>Usage Rule:</B> Must be used with the SYNTAX qualifier.</FONT></TD>
1403           </TR>
1404           <TR><TD WIDTH="23%" VALIGN="TOP">
1405           <FONT SIZE=1><P>TRIGGERTYPE</FONT></TD>
1406           <TD WIDTH="13%" VALIGN="TOP">
1407           <FONT SIZE=1><P>NULL</FONT></TD>
1408 karl  1.1 <TD WIDTH="16%" VALIGN="TOP">
1409           <FONT SIZE=1><P>Class, Property, Method, Association,<BR>
1410           Indication,<BR>
1411           Reference</P>
1412           </FONT></TD>
1413           <TD WIDTH="13%" VALIGN="TOP">
1414           <FONT SIZE=1><P>STRING</FONT></TD>
1415           <TD WIDTH="36%" VALIGN="TOP">
1416           <FONT SIZE=1><P>Indicates the circumstances under which a trigger is fired.</P>
1417           <B><P>Usage Rule:</B> The trigger types vary by meta-model construct. For classes and associations, the legal values are CREATE, DELETE, UPDATE and ACCESS. For properties and references, the legal values are: UPDATE and ACCESS. For methods, the legal values are BEFORE and AFTER. For indications, the legal values are THROWN.</FONT></TD>
1418           </TR>
1419           <TR><TD WIDTH="23%" VALIGN="TOP">
1420           <FONT SIZE=1><P>UNKNOWN<BR>
1421           VALUES</FONT></TD>
1422           <TD WIDTH="13%" VALIGN="TOP">
1423           <FONT SIZE=1><P>NULL</FONT></TD>
1424           <TD WIDTH="16%" VALIGN="TOP">
1425           <FONT SIZE=1><P>Property</FONT></TD>
1426           <TD WIDTH="13%" VALIGN="TOP">
1427           <FONT SIZE=1><P>STRING ARRAY</FONT></TD>
1428           <TD WIDTH="36%" VALIGN="TOP">
1429 karl  1.1 <FONT SIZE=1><P>Defines a set of values the presence of which indicates that the value of the associated property is unknown – that is that the property cannot be considered as having a valid or meaningful value.<BR>
1430           The conventions and restrictions used for defining unknown values are the same as those applicable to the ValueMap qualifier.<BR>
1431           Note this qualifier cannot be overridden as it seems unreasonable to permit a subclass to treat as a known value a value that is treated as unknown by some superclass.</FONT></TD>
1432           </TR>
1433           <TR><TD WIDTH="23%" VALIGN="TOP">
1434           <FONT SIZE=1><P>UNSUPPORTEDVALUES</FONT></TD>
1435           <TD WIDTH="13%" VALIGN="TOP">
1436           <FONT SIZE=1><P>NULL</FONT></TD>
1437           <TD WIDTH="16%" VALIGN="TOP">
1438           <FONT SIZE=1><P>Property</FONT></TD>
1439           <TD WIDTH="13%" VALIGN="TOP">
1440           <FONT SIZE=1><P>STRING ARRAY</FONT></TD>
1441           <TD WIDTH="36%" VALIGN="TOP">
1442           <FONT SIZE=1><P>Defines a set of values the presence of which indicates that the value of the associated property is unsupported – that is that the property cannot be considered as having a valid or meaningful value.<BR>
1443           The conventions and restrictions used for defining unsupported values are the same as those applicable to the ValueMap qualifier.<BR>
1444           Note this qualifier cannot be overridden as it seems unreasonable to permit a subclass to treat as a supported value a value that is treated as unknown by some superclass.</FONT></TD>
1445           </TR>
1446           </TABLE>
1447           </P>
1448           
1449           <FONT SIZE=2><LI><A NAME="_Toc453584966"></FONT><B><I>User-defined Qualifiers</A></A></A></A></A></LI>
1450 karl  1.1 </B></I><FONT SIZE=3><P>The user can define any additional arbitrary named qualifiers. However, it is recommended that only defined qualifiers be used, and that the list of qualifiers be extended only if there is no other way to accomplish a particular objective.</P>
1451           <LI><A NAME="_Toc375540908"><A NAME="_Toc404410874"><A NAME="_Ref406325584"><A NAME="_Ref406325634"><A NAME="_Ref412636290"><A NAME="_Ref453579073"><A NAME="_Ref453579102"><A NAME="_Ref453579768"><A NAME="_Ref453582913"><A NAME="_Toc453584967"></FONT><B><I>Mapping MIF Attributes</A></A></A></A></A></A></A></A></A></A></LI>
1452           </B></I><FONT SIZE=3><P>Mapping Management Information Format (MIF) attributes to CIM Properties can be accomplished using the MAPPINGSTRINGS qualifier. This qualifier provides a mechanism to specify the mapping from DMTF and vendor-defined MIF groups to specific properties. This allows for mapping using either Domain or Recast Mapping.</P>
1453           <P>Every MIF group contains a unique identification that is defined using the class string, which is defined as follows:</P>
1454           </FONT><FONT FACE="Courier New" SIZE=1><P>defining body|specific name|version</P>
1455           </FONT><FONT SIZE=3><P>where defining body is the creator and owner of the group, specific name is the unique name of the group and version is a three-digit number that identifies the version of the group definition. In addition, each attribute has a unique numeric identifier, starting with the number one.</P>
1456           <P>Therefore, the mapping qualifier can be represented as a string that is formatted as follows:</P>
1457           </FONT><FONT FACE="Courier New" SIZE=1><P>MIF.defining body|specific name|version.attributeid</P>
1458           </FONT><FONT SIZE=3><P>where MIF is a constant defining this as a MIF mapping followed by a dot. This is then followed by the class string for the group this defines, and optionally followed by a dot and the identifier of a unique attribute.</P>
1459           <P>In the case of a Domain Mapping, all of the above information is required, and provides a way to map an individual MIF attribute to a particular CIM Property. In the case of the recast mapping, a CIM class can be recast from a MIF group and only the MIF constant, followed by the dot separator followed by the class string, is required.</P>
1460           <P>For example, a Domain Mapping of a DMTF MIF attribute to a CIM property would be as follows:</P>
1461           </FONT><FONT FACE="Courier New" SIZE=1><P> &#9;[MAPPINGSTRINGS{"MIF.DMTF|ComponentID|001.4"},READ]<BR>
1462               SerialNumber = "";</P>
1463           </FONT><FONT SIZE=3><P>The above declaration defines a mapping to the SerialNumber property from the DMTF Standard Component ID group's serial number attribute. Because the qualifiers of CIM are a superset of those found in MIF syntax, any qualifier may be overridden in the CIM definition.</P>
1464           <P>To recast an entire MIF group into a CIM Object, the mapping string can be used to define an entire Class. For example:</P>
1465           </FONT><FONT FACE="Courier New" SIZE=1><P>    [MAPPINGSTRINGS {"MIF.DMTF|Software Signature|002"}]<BR>
1466           class MicroSoftWord : SoftwareSignature<BR>
1467           {<BR>
1468              ...<BR>
1469           }</P>
1470           <LI><A NAME="_Ref453579127"><A NAME="_Toc453584968"></FONT><B><I>Mapping Generic Data to CIM Properties</A></A></LI></OL>
1471 karl  1.1 </OL>
1472           </OL>
1473           <DIR>
1474           <DIR>
1475           
1476           </B></I><FONT SIZE=3><P>In addition to mapping MIF attributes, the MAPPINGSTRINGS qualifier can be used to map SNMP variables to CIM properties. Every standard SNMP variable has associated with it a variable name and a unique object identifier (OID) that is defined by a unique naming authority. This naming authority is a string. This string can either be a name</P>
1477           <P>standards body (e.g., "IETF"), a company name (e.g., "Acme") for defining the mappings to a company?s private MIB, and/or an appropriate management protocol (e.g., "SNMP"). For the IETF case, the ASN.1 module name, not the RFC number, should be used as the MIB name (e.g., instead of saying RFC1493, the string "BRIDGE-MIB" should be used). This is also true for the case of a company name being used as the naming authority. For the case of using a management protocol like SNMP, the SNMP OID can be used to identify the appropriate SNMP variable. This latter is especially important for mapping variables in private MIBs.</P>
1478           <P>It should be noted that the concept of a naming authority for mapping data other than SNMP data into CIM properties could be derived from this requirement. As an example, this can be used to map attributes of other data stores (e.g., directories) using an application-specific protocol (e.g., LDAP).</P>
1479           <P>The syntax for mapping MIF attributes as defined in Section 2.5.5 is as follows:</P><DIR>
1480           
1481           </FONT><FONT FACE="Courier New" SIZE=1><P>" MIF.&lt;defining_body | specific_name | version&gt;.attributeid"</P></DIR>
1482           
1483           <P><BR>
1484           </FONT><FONT SIZE=3>The above MIF format can be reconciled with the more general syntax needed to map generic data to CIM properties by realizing that both forms can be represented as follows:</P><DIR>
1485           
1486           </FONT><FONT FACE="Courier New" SIZE=1><P>" &lt;Format&gt;.&lt;Scoping_Name&gt;.&lt;Content&gt; "</P></DIR>
1487           
1488           </FONT><FONT SIZE=3><P>where:</P>
1489           <P>"Format" defines the format of the entry. It has the following values:</P><DIR>
1490           <DIR>
1491           
1492 karl  1.1 <P>"MIF" means that the rest of the string is interpreted as MIF data</P>
1493           <P>"MIB" means that the rest of the string is interpreted as a variable name of a MIB</P>
1494           <P>"OID" means that the rest of the string is interpreted as an OID that is defined by a particular protocol to represent a variable name</P></DIR>
1495           </DIR>
1496           
1497           <P>"Scoping_Name" defines the format used to uniquely identify the entry. It has the following values:</P><DIR>
1498           <DIR>
1499           
1500           <P>"defining_body | specific_name | version" is used for MIF mappings</P>
1501           <P>"Naming_Authority | MIB_Name" is used for MIB mappings</P>
1502           <P>"Naming_Authority | Protocol_Name" is used for protocol mappings that use OIDs to represent a variable name</P></DIR>
1503           </DIR>
1504           
1505           <P>"Content" defines the value of the entry. It has the following values:</P><DIR>
1506           <DIR>
1507           
1508           <P>"attributeid" is used for MIF mappings</P>
1509           <P>"Variable_Name" is used for MIB mappings</P>
1510           <P>"OID" is used for protocol mappings</P></DIR>
1511           </DIR>
1512           
1513 karl  1.1 <P>Here are two examples of the syntax. The first uses the MIB format and looks as follows:</P><DIR>
1514           
1515           </FONT><FONT FACE="Courier New" SIZE=1><P>    [Description(    "OperatingSystem's notion of the local date and time of day"),    MappingStrings {"MIB.IETF | HOST-RESOURCES-MIB.hrSystemDate"}]datetime LocalDateTime;</P></DIR>
1516           
1517           </FONT><FONT SIZE=3><P>The second example uses the OID format and looks as follows:</P><DIR>
1518           
1519           </FONT><FONT FACE="Courier New" SIZE=1><P>    [Description(    "OperatingSystem's notion of the local date and time of day"),    MappingStrings {"OID.IETF | SNMP.1.3.6.1.2.1.25.1.2"}]datetime LocalDateTime;</P></DIR>
1520           </DIR>
1521           </DIR>
1522           
1523           <OL>
1524           
1525           </FONT><B><FONT SIZE=5><LI></LI>
1526           <LI><A NAME="_Toc404410875"><A NAME="_Toc453584969">Managed Object Format</A></A></LI>
1527           </B></FONT><FONT SIZE=3><P>The management information is described in a language based on Interface Definition Language (IDL) [3] called the Managed Object Format (MOF). This document uses the term MOF specification to refer to a collection of management information described in a manner conformant to the MOF syntax.</P>
1528           <P>Elements of MOF syntax are introduced on a case-by-case basis with examples. In addition, a complete description of the MOF syntax is provided in Appendix A.</P>
1529           <P>Note: All grammars defined in this specification use the notation defined in [7]; any exceptions are stated with the grammar.</P>
1530           <P>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.</P>
1531           <P>In addition to serving the need for specifying the managed objects, a MOF specification can be processed using a compiler. To assist the process of compilation, a MOF specification consists of a series of compiler directives. </P>
1532           <P>A MOF file can be encoded in either Unicode or UTF-8.</P>
1533           <OL>
1534 karl  1.1 
1535           <LI><A NAME="_Toc381332525"><A NAME="_Toc382055158"></FONT><B><FONT SIZE=4>&#9;<A NAME="_Toc404410876"><A NAME="_Toc453584970">MOF usage</A></A></A></A></LI>
1536           </B></FONT><FONT SIZE=3><P>The managed object descriptions in a MOF specification can be validated against an active namespace (See Section 5). Such validation is typically implemented in an entity acting in the role of a Server. This section describes the behavior of an implementation when introducing a MOF specification into a namespace. Typically, such a process validates both the syntactic correctness of a MOF specification, as well as the semantic correctness of such a specification against a particular Implementation. A MOF specification can be validated for the syntactic correctness alone, in a component such as a MOF compiler.</P>
1537           <LI><A NAME="_Toc381332526"><A NAME="_Toc382055159"></FONT><B><FONT SIZE=4>&#9;<A NAME="_Toc404410877"><A NAME="_Toc453584971">Class Declarations</A></A></A></A></LI>
1538           </B></FONT><FONT SIZE=3><P>A class declaration is treated as an instruction to create a new class. It is a local matter as to whether the process of introducing a MOF specification into a namespace is allowed to add classes or modify classes. </P>
1539           <P><A NAME="_Toc381332527"><A NAME="_Toc382055160">Any class referenced in the specification of a class or reference specification must exist at the time of the specification (that is, forward references are not allowed).</P>
1540           </FONT><B><FONT SIZE=4><LI>&#9;<A NAME="_Toc404410878"><A NAME="_Toc453584972">Instance Declarations</A></A></A></A></LI></OL>
1541           
1542           </B></FONT><FONT SIZE=3><P>Classes <B>must</B> be defined before they are used to declare instances. However, if a class definition is already resident within the namespace, that class declaration need not appear in a MOF specification that introduces the instances of that class. </P>
1543           <P>Any instance declaration is treated as an instruction to create a new instance where the object's key values do not already exist, or an instruction to modify an existing instance where an object with identical key values already exists. </P>
1544           <LI><A NAME="_Ref371399494"><A NAME="_Toc381332528"><A NAME="_Toc382055161"><A NAME="_Toc404410879"></LI>
1545           </FONT><B><FONT SIZE=5><LI><A NAME="_Toc453584973">MOF Components</A></A></A></A></LI>
1546           <OL>
1547           
1548           <LI><A NAME="_Toc381332529"><A NAME="_Toc382055162"><A NAME="_Ref373496088"><A NAME="_Ref373496106"></FONT><FONT SIZE=4>&#9;<A NAME="_Toc404410880"><A NAME="_Toc453584974">Keywords</A></A></A></A></LI>
1549           </B></FONT><FONT SIZE=3><P>All keywords in the MOF syntax are case-insensitive.</P>
1550           <LI><A NAME="_Toc381332531"><A NAME="_Toc382055164"></A></A></A></FONT><B><FONT SIZE=4>&#9;<A NAME="_Toc404410882"><A NAME="_Toc453584975">Comments</A></A></A></A></LI>
1551           </B></FONT><FONT SIZE=3><P>Comments can appear anywhere in MOF syntax and are indicated by either a leading double slash "//", or a pair of matching "/*" and "*/" sequences. </P>
1552           <P>A "//" comment is terminated by carriage return, line feed or by the end of the MOF specification (whichever comes first).</P>
1553           <P>For example:</P>
1554           </FONT><FONT FACE="Courier New" SIZE=1><P>  // This is a comment</P>
1555 karl  1.1 </FONT><FONT SIZE=3><P>A "/*" comment is terminated by the next "*/" sequence or by the end of the MOF specification (whichever comes first). Comments are not recognized by the meta model and as such, will not be preserved across compilations.  In other words, the output of a MOF compilation is not required to include any comments.</P>
1556           <LI><A NAME="_Ref371319196"><A NAME="_Toc381332532"><A NAME="_Toc382055165"></FONT><B><FONT SIZE=4>&#9;<A NAME="_Toc404410883"><A NAME="_Toc453584976">Validation Context</A></A></A></A></A></LI>
1557           </B></FONT><FONT SIZE=3><P>Semantic validation of a MOF specification involves an explicit or implied namespace context. This is defined as the namespace against which the objects in the MOF specification are validated and the namespace in which they are created. Multiple namespaces typically indicate the presence of multiple management spaces or multiple devices.</P>
1558           <LI><A NAME="_Ref374854798"><A NAME="_Toc381332533"><A NAME="_Toc382055166"></FONT><B><FONT SIZE=4>&#9;<A NAME="_Toc404410884"><A NAME="_Toc453584977">Naming of Schema Elements</A></A></A></A></A></LI>
1559           </B></FONT><FONT SIZE=3><P>This section describes the rules for naming of schema elements; this applies to classes, properties, qualifiers, methods and namespaces. </P>
1560           <P>CIM is a conceptual model that is not bound to a particular implementation. This allows it to be used to exchange management information in a variety of ways, examples of which are described in Section 1. Some implementations may use case-sensitive technologies, while others may use case-insensitive technologies. The naming rules defined in this section are chosen to allow efficient implementation in either environment, and to enable the effective exchange of management information between all compliant implementations.</P>
1561           <P>All names are case-insensitive, in that two schema item names are identical if they differ only in case. This is mandated so that scripting technologies that are case-insensitive can leverage CIM technology. (Note, however, that string values assigned to properties and qualifiers are not covered by this rule, and must be treated in a case-sensitive manner).</P>
1562           <P>The case of a name is set by its defining occurrence and must be preserved by all implementations. This is mandated so that implementations can be built using case-sensitive technologies such as Java and object databases. (This also allows names to be consistently displayed using the same user-friendly mixed-case format).</P>
1563           <P>For example, an implementation, if asked to create class 'Disk', must reject the request if there is already a class 'DISK' in the current schema. Otherwise, when returning the name of the class 'Disk', it must return the name in mixed case as it was originally specified.</P>
1564           <P>CIM does not currently require support for any particular query language. It is assumed that implementations will specify which query languages are supported by the implementation and will adhere to the case conventions that prevail in the specified language. That is, if the query language is case-insensitive, statements in the language will behave in a case-insensitive manner.</P>
1565           <P>For the full rules for schema names see Appendix F, Unicode Usage.</P>
1566           <LI><A NAME="_Toc381332534"><A NAME="_Toc382055167"></FONT><B><FONT SIZE=4>&#9;<A NAME="_Toc404410885"><A NAME="_Toc453584978">Class Declarations</A></A></A></A></LI>
1567           </B></FONT><FONT SIZE=3><P>A class is an object describing a grouping of data items that are conceptually related and thought of as modeling an object. Class definitions provide a type system for instance construction.</P>
1568           <OL>
1569           
1570           <LI><A NAME="_Toc381332536"><A NAME="_Toc382055169"><A NAME="_Toc404410886"><A NAME="_Toc453584979"></FONT><B><I>Declaring a Class</A></A></A></A></LI></OL>
1571           </OL>
1572           </OL>
1573           <DIR>
1574           <DIR>
1575           
1576 karl  1.1 </B></I><FONT SIZE=3><P>A class is declared by specifying these components:</P></DIR>
1577           </DIR>
1578           
1579           <OL>
1580           
1581           <OL>
1582           
1583           <LI>The qualifiers of the class. This may be empty, or a list of qualifier name/value bindings separated by commas "," and enclosed with square brackets ("[" and "]").</LI>
1584           <LI>The class name.</LI>
1585           <LI>The name of the class from which this class is derived (if any).</LI>
1586           <LI>The class properties, which define the data members of the class. A property may also have an optional qualifier list, expressed in the same way as the class qualifier list. In addition, a property has a data type, and (optionally) a default (initializer) value.</LI>
1587           <LI>The methods supported by the class. A method may have an optional qualifier list. A method has a signature consisting of its return type, plus its parameters and their type and usage.</LI></OL>
1588           </OL>
1589           <DIR>
1590           <DIR>
1591           
1592           <P>This sample shows how to declare a class:</P><DIR>
1593           
1594           </FONT><FONT FACE="Courier New" SIZE=1><P> &#9;&#9;[abstract]<BR>
1595           class Win32_LogicalDisk<BR>
1596           {<BR>
1597 karl  1.1 &#9;&#9;[read] <BR>
1598               string DriveLetter;<BR>
1599           &#9;&#9;[read, Units("KiloBytes")] <BR>
1600               sint32 RawCapacity = 0;<BR>
1601            &#9;&#9;[write] <BR>
1602               string VolumeLabel;</P>
1603           <P>&#9;&#9;[Dangerous]<BR>
1604               boolean Format([in] boolean FastFormat);<BR>
1605           };</P></DIR>
1606           </DIR>
1607           </DIR>
1608           
1609           <OL>
1610           <OL>
1611           <OL>
1612           
1613           <LI><A NAME="_Toc381332537"><A NAME="_Toc382055170"><A NAME="_Toc404410887"><A NAME="_Toc453584980"></FONT><B><I>Subclasses</A></A></A></A></LI>
1614           </B></I><FONT SIZE=3><P>To indicate that a class is a subclass of another class, the derived class is declared by using a colon followed by the superclass name.</P>
1615           <P>For example, if the class Acme_Disk_v1 is derived from the class CIM_Media:</P>
1616           </FONT><FONT FACE="Courier New" SIZE=1><P>class Acme_Disk_v1 : CIM_Media<BR>
1617           {<BR>
1618 karl  1.1     // Body of class definition here ...<BR>
1619           };</P>
1620           </FONT><FONT SIZE=3><P>The terms Base class, superclass and supertype are used interchangeably, as are Derived<I> </I>class, subclass and subtype.</P>
1621           <P>The superclass declaration <B>must</B> appear at a prior point in the MOF specification or already be a registered class definition in the namespace in which the derived class is defined.</P>
1622           <LI><A NAME="_Toc381332538"><A NAME="_Toc382055171"><A NAME="_Toc404410888"><A NAME="_Toc453584981"></FONT><B><I>Default Property Values</A></A></A></A></LI>
1623           </B></I><FONT SIZE=3><P>Any properties in a class definition can have default initializers. For example:</P>
1624           </FONT><FONT FACE="Courier New" SIZE=1><P>class Acme_Disk_v1 : CIM_Media<BR>
1625           {<BR>
1626               string Manufacturer = "Acme";<BR>
1627               string ModelNumber  = "123-AAL";<BR>
1628           };</P>
1629           </FONT><FONT SIZE=3><P>When new instances of the class are declared, then any such property is automatically assigned its default value unless the instance declaration explicitly assigns a value to the property.</P>
1630           <LI><A NAME="_Ref374864890"><A NAME="_Toc381332539"><A NAME="_Toc382055172"><A NAME="_Toc404410889"><A NAME="_Toc453584982"></FONT><B><I>Class and Property Qualifiers</A></A></A></A></A></LI>
1631           </B></I><FONT SIZE=3><P>Qualifiers are meta data about a property, method, method parameter, class, or instance and are not part of the definition itself.  For example, a qualifier is used to indicate whether a property value is modifiable (using the WRITE<I> </I>qualifier). Qualifiers always precede the declaration to which they apply.</P>
1632           <P>Certain qualifiers are well known and cannot be redefined (see the description of the meta schema). Apart from these, arbitrary qualifiers may be used.</P>
1633           <P>Qualifier declarations include an explicit type indicator, which must be one of the intrinsic types. A qualifier with an array-based parameter is assumed to have a type, which is a variable-length homogeneous array of one of the intrinsic types. Note that in the case of boolean arrays, each element in the array is either TRUE or FALSE.</P>
1634           <P>Examples:</P>
1635           </FONT><FONT FACE="Courier New" SIZE=1><P>Write(true)&#9;&#9;&#9;&#9;// boolean</P>
1636           <P>profile { true, false, true }       // boolean []</P>
1637           <P>description("A string")             // string</P>
1638           <P>info { "this", "a", "bag", "is" }&#9;// string []</P>
1639 karl  1.1 <P>id(12)                              // uint32</P>
1640           <P>idlist { 21, 22, 40, 43 }           // uint32 []</P>
1641           <P>apple(3.14)                         // real32</P>
1642           <P>oranges { -1.23E+02, 2.1 }          // real32 []</P>
1643           </FONT><FONT SIZE=3><P>Qualifiers are applied to a class by preceding the class declaration with a qualifier list, comma-separated, and enclosed within square brackets. Qualifiers are applied to a property or method in a similar fashion.</P>
1644           <P>For example:</P>
1645           </FONT><FONT FACE="Courier New" SIZE=1><P>class CIM_Process:CIM_LogicalElement<BR>
1646           {<BR>
1647                uint32 Priority;<BR>
1648            &#9;&#9;[Write(true)]<BR>
1649                string Handle;<BR>
1650           };</P>
1651           </FONT><FONT SIZE=3><P>When specifying a boolean qualifier in a class or property declaration, the name of the qualifier can be used without also specifying a value. From the previous example:</P>
1652           </FONT><FONT FACE="Courier New" SIZE=1><P>class CIM_Process:CIM_LogicalElement<BR>
1653           {<BR>
1654           &#9;uint32 Priority;<BR>
1655           &#9;&#9;[Write] // Equivalent declaration to Write (True)<BR>
1656           &#9;string Handle;<BR>
1657           };</P>
1658           </FONT><FONT SIZE=3><P>If only the qualifier name is listed for a boolean qualifier, it is implicitly set to TRUE. In contrast, when a qualifier is not specified at all for a class or property, the default value for the qualifier is assumed. Using another example:</P>
1659           </FONT><FONT FACE="Courier New" SIZE=1><P>    [Association,<BR>
1660 karl  1.1     Aggregation]    // Specifies the Aggregation qualifier to be True<BR>
1661           class CIM_SystemDevice: CIM_SystemComponent<BR>
1662           {<BR>
1663                   [Override ("GroupComponent"),<BR>
1664                   Aggregate]  // Specifies the Aggregate qualifier to be True<BR>
1665               CIM_ComputerSystem Ref GroupComponent;<BR>
1666                   [Override ("PartComponent"),<BR>
1667                   Weak] // Defines the Weak qualifier to be True<BR>
1668               CIM_LogicalDevice Ref PartComponent;<BR>
1669           };<BR>
1670           [Association]    // Since the Aggregation qualifier is not specified,<BR>
1671                            // its default value, False, is set<BR>
1672           class Acme_Dependency: CIM_Dependency<BR>
1673           {<BR>
1674                   [Override ("Antecedent")]    // Since the Aggregate and Weak<BR>
1675                                                // qualifiers are not used, their <BR>
1676                                                // default values, False, are assumed<BR>
1677               Acme_SpecialSoftware Ref Antecedent;<BR>
1678                   [Override ("Dependent")]<BR>
1679               Acme_Device Ref Dependent;<BR>
1680           };</P>
1681 karl  1.1 </FONT><FONT SIZE=3><P>Qualifiers can be transmitted automatically from classes to derived classes, or from classes to instances, subject to certain rules. The rules behind how the transmission occurs are attached to each qualifier and encapsulated in the concept of the qualifier flavor. For example, a qualifier may be designated in the base class as automatically transmitted to all of its derived classes, or it may be designated as belonging specifically to that class and not transmittable. In addition, the qualifier flavor can be used to control whether or not derived classes can override the qualifier value, or whether it must be fixed for an entire class hierarchy. This aspect of qualifier flavor is referred to as override permissions.</P>
1682           <P>Qualifier flavors are indicated by an optional clause after the qualifier and preceded by a colon. They consist of some combination of the key words EnableOverride, DisableOverride, ToSubclass and Restricted, indicating the applicable propagation and override rules. For example:</P>
1683           </FONT><FONT FACE="Courier New" SIZE=1><P>class CIM_Process:CIM_LogicalElement<BR>
1684           {<BR>
1685               uint32 Priority;<BR>
1686                   [Write(true):DisableOverride ToSubclass]<BR>
1687               string Handle;<BR>
1688           };</P>
1689           </FONT><FONT SIZE=3><P>In this example, Handle is designated as writable for the Process class and for every subclass of this class.</P>
1690           <P>The recognized flavor types are:</P></FONT>
1691           <P ALIGN="CENTER"><CENTER><TABLE BORDER CELLSPACING=1 CELLPADDING=7 WIDTH=498>
1692           <TR><TD WIDTH="20%" VALIGN="TOP">
1693           <B><FONT SIZE=1><P><A NAME="_Ref374856420"><A NAME="_Toc381332540"><A NAME="_Toc382055173">PARAMETER</B></FONT></TD>
1694           <TD WIDTH="64%" VALIGN="TOP">
1695           <B><FONT SIZE=1><P>Interpretation</B></FONT></TD>
1696           <TD WIDTH="16%" VALIGN="TOP">
1697           <B><FONT SIZE=1><P ALIGN="CENTER">Default</B></FONT></TD>
1698           </TR>
1699           <TR><TD WIDTH="20%" VALIGN="TOP">
1700           <FONT SIZE=1><P>EnableOverride</FONT></TD>
1701           <TD WIDTH="64%" VALIGN="TOP">
1702 karl  1.1 <FONT SIZE=1><P>The qualifier is overridable.</FONT></TD>
1703           <TD WIDTH="16%" VALIGN="TOP">
1704           <FONT SIZE=1><P ALIGN="CENTER">yes</FONT></TD>
1705           </TR>
1706           <TR><TD WIDTH="20%" VALIGN="TOP">
1707           <FONT SIZE=1><P>DisableOverride</FONT></TD>
1708           <TD WIDTH="64%" VALIGN="TOP">
1709           <FONT SIZE=1><P>The qualifier cannot be overriden.</FONT></TD>
1710           <TD WIDTH="16%" VALIGN="TOP">
1711           <FONT SIZE=1><P ALIGN="CENTER">no</FONT></TD>
1712           </TR>
1713           <TR><TD WIDTH="20%" VALIGN="TOP">
1714           <FONT SIZE=1><P>ToSubclass</FONT></TD>
1715           <TD WIDTH="64%" VALIGN="TOP">
1716           <FONT SIZE=1><P>The qualifier is inherited by any subclass.</FONT></TD>
1717           <TD WIDTH="16%" VALIGN="TOP">
1718           <FONT SIZE=1><P ALIGN="CENTER">yes</FONT></TD>
1719           </TR>
1720           <TR><TD WIDTH="20%" VALIGN="TOP">
1721           <FONT SIZE=1><P>Restricted</FONT></TD>
1722           <TD WIDTH="64%" VALIGN="TOP">
1723 karl  1.1 <FONT SIZE=1><P>The qualifier applies only to the class in which it is declared.</FONT></TD>
1724           <TD WIDTH="16%" VALIGN="TOP">
1725           <FONT SIZE=1><P ALIGN="CENTER">no</FONT></TD>
1726           </TR>
1727           <TR><TD WIDTH="20%" VALIGN="TOP">
1728           <FONT SIZE=1><P>Translatable</FONT></TD>
1729           <TD WIDTH="64%" VALIGN="TOP">
1730           <FONT SIZE=1><P>Indicates the value of the qualifier can be specified in multiple locales (language and country combination).  When Translatable(yes) is specified for a qualifier, it is legal to create implicit qualifiers of the form : </P><DIR>
1731           <DIR>
1732           
1733           <P>label_ll_cc</P></DIR>
1734           </DIR>
1735           
1736           <P>where &quot; label&quot; is the name of the qualifier with Translatable(yes), and ll and cc are the language code and country code designation, respectively, for the translated string.  In other words, a label_ll_cc  qualifier is a clone, or derivative, of the &quot;label&quot; qualifier with a postfix to capture the translated value's locale. The locale of the original value (that is, the value specified using the qualifier with a name of &quot;label&quot;) is determined by the locale pragma. </P>
1737           <P>When a label_ll_cc qualifier is implicitly defined, the values for the other flavor parameters are assumed to be the same as for the &quot;label&quot; qualifier. When a label_ll_cc qualifier is defined explicitly, the values for the other flavor parameters must also be the same.  A &quot;yes&quot; for this parameter is only valid for string-type qualifiers.</P>
1738           <P>Example: if an English description is translated into Mexican Spanish the actual name of the qualifier is: DESCRIPTION_es_MX. </FONT></TD>
1739           <TD WIDTH="16%" VALIGN="TOP">
1740           <FONT SIZE=1><P ALIGN="CENTER">no</FONT></TD>
1741           </TR>
1742           </TABLE>
1743           </CENTER></P>
1744 karl  1.1 
1745           <FONT SIZE=1><LI><A NAME="_Toc404410890"><A NAME="_Ref453580338"><A NAME="_Toc453584983"></FONT><B><I>Key Properties</A></A></A></A></A></A></LI></OL>
1746           </OL>
1747           </OL>
1748           <DIR>
1749           <DIR>
1750           
1751           </B></I><FONT SIZE=3><P>Instances of a class require some mechanism through which the instances can be distinguished within a single namespace. Designating one or more properties with the reserved qualifier "key" provides instance identification. </P>
1752           <P>For example, this class has one property (Volume) which serves as its' key:</P><DIR>
1753           
1754           </FONT><FONT FACE="Courier New" SIZE=1><P>class Acme_Drive<BR>
1755           {<BR>
1756           &#9;&#9;[key] <BR>
1757            &#9;string Volume;<BR>
1758            &#9;string FileSystem;<BR>
1759            &#9;sint32 Capacity;<BR>
1760           };</P></DIR>
1761           
1762           </FONT><FONT SIZE=3><P>In this example, instances of Drive<I> </I>are distinguished using the Volume<I> </I>property, which acts as the key<I> </I>for the class.</P>
1763           <P>Compound keys are supported and are designated by marking each of the required properties with the key<I> </I>qualifier.</P>
1764           <P>If a new subclass is defined from a superclass, and the superclass has key properties (including those inherited from other classes), the new subclass <B>cannot</B> define any additional key properties. New key properties in the subclass can be introduced only if all classes in the inheritance chain of the new subclass are keyless.</P>
1765 karl  1.1 <P>If any reference to the class has the Weak qualifier, the properties that are qualified as Key in the other classes in the association are propagated to the referenced class. The key properties are duplicated in the referenced class using the name of the property, prefixed by the name of the original declaring class. For example:</P><DIR>
1766           
1767           </FONT><FONT FACE="Courier New" SIZE=1><P>class CIM_System:CIM_LogicalElement<BR>
1768           {<BR>
1769                   [Key]<BR>
1770               string Name;<BR>
1771           };</P>
1772           
1773           <P>class CIM_LogicalDevice: CIM_LogicalElement<BR>
1774           {<BR>
1775                [Key]<BR>
1776               string DeviceID;<BR>
1777                   [Key, Propagated("CIM_System.Name")]<BR>
1778               string SystemName;<BR>
1779           };<BR>
1780               [Association]<BR>
1781           class CIM_SystemDevice: CIM_SystemComponent<BR>
1782           {<BR>
1783                   [Override ("GroupComponent"), Aggregate, Min(1), Max(1)]<BR>
1784               CIM_System Ref GroupComponent;<BR>
1785                   [Override ("PartComponent"), Weak]<BR>
1786 karl  1.1     CIM_LogicalDevice Ref PartComponent;<BR>
1787           };</P></DIR>
1788           </DIR>
1789           </DIR>
1790           
1791           <OL>
1792           <OL>
1793           
1794           <LI><A NAME="_Toc453584984"></FONT><B><FONT SIZE=4>Association Declarations</A></LI>
1795           </B></FONT><FONT SIZE=3><P>An association is a special kind of a class describing a link between other classes. As such, they also provide a type system for instance constructions. Associations are just like other classes with a few additional semantics explained below.</P>
1796           <OL>
1797           
1798           <LI><A NAME="_Toc453584985"></FONT><B><I>Declaring an Association</A></LI></OL>
1799           </OL>
1800           </OL>
1801           <DIR>
1802           <DIR>
1803           
1804           </B></I><FONT SIZE=3><P>An association is declared by specifying these components:</P></DIR>
1805           </DIR>
1806           
1807 karl  1.1 <OL>
1808           
1809           <OL>
1810           
1811           <LI>The qualifiers of the association (at least the ASSOCIATION qualifier, if it doesn't have a supertype). Further qualifiers may be specified as a list of qualifier/name bindings separated by commas ",". The entire qualifier list is enclosed in square brackets ("[" and "]").</LI>
1812           <LI>. The association name.</LI>
1813           <LI> The name of the association from which this association is derived (if any).</LI>
1814           <LI>The association references which define pointers to other objects linked by this association. References may also have qualifier lists, expressed in the same way as the association qualifier list. Especially the qualifiers to specify cardinalities of references are important to be mentioned (see2.5.2. "Standard Qualifiers"). In addition, a reference has a data type, and (optionally) a default (initializer) value.</LI>
1815           <LI>Additional association properties which define further data members of this association. They are defined in the same way as for ordinary classes.</LI>
1816           <LI>The methods supported by the association. They are defined in the same way as for ordinary classes.</LI></OL>
1817           </OL>
1818           <DIR>
1819           <DIR>
1820           
1821           <P>The following example shows how to declare an association (assuming given classes CIM_A and CIM_B):</P><DIR>
1822           
1823           </FONT><FONT FACE="Courier New" SIZE=1><P>&nbsp;&nbsp;&nbsp; [Association]<BR>
1824           class CIM_LinkBetweenAandB : CIM_Dependency<BR>
1825           {<BR>
1826           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Override ("Antecedent")]<BR>
1827           &nbsp;&nbsp;&nbsp; CIM_A Ref Antecedent;<BR>
1828 karl  1.1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Override ("Dependent")]<BR>
1829           &nbsp;&nbsp;&nbsp; CIM_B Ref Dependent;<BR>
1830           };</P></DIR>
1831           </DIR>
1832           </DIR>
1833           
1834           <OL>
1835           <OL>
1836           <OL>
1837           
1838           <LI><A NAME="_Toc453584986"></FONT><B><I>Subassociations</A></LI>
1839           </B></I><FONT SIZE=3><P>To indicate that an association is a subassociation of another association, the same notation as for ordinary classes is used, i.e. the derived association is declared by using a colon followed by the superassociation name. (An example is provided above.) </P>
1840           <LI><A NAME="_Toc453584987"></FONT><B><I>Key References and Properties</A></LI>
1841           </B></I><FONT SIZE=3><P>Instances of an association also require some mechanism through which the instances can be distinguished, implied by the fact that they are just a special kind of a class. Designating one ore more references/properties with the reserved KEY qualifier provides instance identification.</P>
1842           <P>A reference/property of an association is (part of) the association key if the KEY qualifier is applied.</P>
1843           </FONT><FONT FACE="Courier New" SIZE=1><P>&nbsp;&nbsp;&nbsp; [Association, Aggregation]<BR>
1844           class CIM_Component<BR>
1845           {<BR>
1846           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Aggregate, Key]<BR>
1847           &nbsp;&nbsp;&nbsp; CIM_ManagedSystemElement Ref GroupComponent;<BR>
1848           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [Key]<BR>
1849 karl  1.1 &nbsp;&nbsp;&nbsp; CIM_ManagedSystemElement Ref PartComponent;<BR>
1850           };</P>
1851           </FONT><FONT SIZE=3><P>In principle, the key definition of association follows the same rules as for ordinary classes. Compound keys are supported in the same way. Also a new subassociation <B>cannot</B> define any additional key properties/references.</P>
1852           <P>If any reference to a class has the WEAK qualifier, the KEY-qualified properties of the other class, whose reference is not WEAK-qualified are propagated to the class. (see subchapter 4.5.5 "Key Properties").</P>
1853           <LI><A NAME="_Toc453584988"></FONT><B><I>Object References</A></LI></OL>
1854           </OL>
1855           </OL>
1856           <DIR>
1857           <DIR>
1858           
1859           </B></I><FONT SIZE=3><P>Object references are properties which are links or pointers to other objects (classes or instances). The value of an object reference is a string, which represents a path to another object. The path includes:</P></DIR>
1860           </DIR>
1861           
1862           <OL>
1863           
1864           <OL>
1865           
1866           <LI>The namespace in which the object resides. </LI>
1867           <LI>The class name of the object.</LI>
1868           <LI>If the object represents an instance, the values of all key properties for that instance.</LI></OL>
1869           </OL>
1870 karl  1.1 <DIR>
1871           <DIR>
1872           
1873           <P>Object reference properties are declared by "XXX ref", indicating a strongly typed reference to objects of the class with name "XXX" (or a derived class thereof). For example:</P><DIR>
1874           
1875           </FONT><FONT FACE="Courier New" SIZE=1><P>&nbsp;&nbsp;&nbsp; [Association]<BR>
1876           class Acme_ExampleAssoc<BR>
1877           {<BR>
1878           &nbsp;&nbsp;&nbsp; Acme_AnotherClass ref Inst1;<BR>
1879           &nbsp;&nbsp;&nbsp; Acme_Aclass&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ref Inst2;<BR>
1880           };</P></DIR>
1881           
1882           </FONT><FONT SIZE=3><P>In the above declaration, Inst1 can only be set to point to objects of type Acme_AnotherClass. Also see Section 4.12.2on Initializing References Using Aliases.</P>
1883           <P>In associations, object references have cardinalities - denoted using Min and Max qualifiers. Here are examples of UML cardinality notations and their respective combinations of Min and Max values:</P></DIR>
1884           </DIR>
1885           </FONT>
1886           <P ALIGN="CENTER"><CENTER><TABLE BORDER CELLSPACING=2 BORDERCOLOR="#008000" CELLPADDING=7 WIDTH=475>
1887           <TR><TD WIDTH="19%" VALIGN="TOP">
1888           <B><FONT SIZE=3><P>UML</B></FONT></TD>
1889           <TD WIDTH="11%" VALIGN="TOP">
1890           <B><FONT SIZE=3><P>MIN</B></FONT></TD>
1891 karl  1.1 <TD WIDTH="13%" VALIGN="TOP">
1892           <B><FONT SIZE=3><P>MAX</B></FONT></TD>
1893           <TD WIDTH="36%" VALIGN="TOP">
1894           <B><FONT SIZE=3><P>Required MOF Text*</B></FONT></TD>
1895           <TD WIDTH="21%" VALIGN="TOP">
1896           <B><FONT SIZE=3><P>Description</B></FONT></TD>
1897           </TR>
1898           <TR><TD WIDTH="19%" VALIGN="TOP">
1899           <FONT SIZE=3><P>*</FONT></TD>
1900           <TD WIDTH="11%" VALIGN="TOP">
1901           <FONT SIZE=3><P>0</FONT></TD>
1902           <TD WIDTH="13%" VALIGN="TOP">
1903           <FONT SIZE=3><P>NULL</FONT></TD>
1904           <TD WIDTH="36%" VALIGN="TOP">&nbsp;</TD>
1905           <TD WIDTH="21%" VALIGN="TOP">
1906           <FONT SIZE=3><P>Many</FONT></TD>
1907           </TR>
1908           <TR><TD WIDTH="19%" VALIGN="TOP">
1909           <FONT SIZE=3><P>1..*</FONT></TD>
1910           <TD WIDTH="11%" VALIGN="TOP">
1911           <FONT SIZE=3><P>1</FONT></TD>
1912 karl  1.1 <TD WIDTH="13%" VALIGN="TOP">
1913           <FONT SIZE=3><P>NULL</FONT></TD>
1914           <TD WIDTH="36%" VALIGN="TOP">
1915           <FONT SIZE=3><P>Min(1)</FONT></TD>
1916           <TD WIDTH="21%" VALIGN="TOP">
1917           <FONT SIZE=3><P>At least one</FONT></TD>
1918           </TR>
1919           <TR><TD WIDTH="19%" VALIGN="TOP">
1920           <FONT SIZE=3><P>1</FONT></TD>
1921           <TD WIDTH="11%" VALIGN="TOP">
1922           <FONT SIZE=3><P>1</FONT></TD>
1923           <TD WIDTH="13%" VALIGN="TOP">
1924           <FONT SIZE=3><P>1</FONT></TD>
1925           <TD WIDTH="36%" VALIGN="TOP">
1926           <FONT SIZE=3><P>Min(1), Max(1)</FONT></TD>
1927           <TD WIDTH="21%" VALIGN="TOP">
1928           <FONT SIZE=3><P>One</FONT></TD>
1929           </TR>
1930           <TR><TD WIDTH="19%" VALIGN="TOP">
1931           <FONT SIZE=3><P>0,1 (or 0..1)</FONT></TD>
1932           <TD WIDTH="11%" VALIGN="TOP">
1933 karl  1.1 <FONT SIZE=3><P>0</FONT></TD>
1934           <TD WIDTH="13%" VALIGN="TOP">
1935           <FONT SIZE=3><P>1</FONT></TD>
1936           <TD WIDTH="36%" VALIGN="TOP">
1937           <FONT SIZE=3><P>Max(1)</FONT></TD>
1938           <TD WIDTH="21%" VALIGN="TOP">
1939           <FONT SIZE=3><P>At most one</FONT></TD>
1940           </TR>
1941           </TABLE>
1942           </CENTER></P>
1943           
1944           <FONT SIZE=3><P>&nbsp;</P>
1945           <OL>
1946           <OL>
1947           
1948           <LI><A NAME="_Toc404410891"><A NAME="_Toc381332542"><A NAME="_Toc382055175"><A NAME="_Toc453584989"></FONT><B><FONT SIZE=4>Qualifier Declarations</A></A></LI>
1949           </B></FONT><FONT SIZE=3><P>Qualifiers may be declared using the keyword &quot;qualifier&quot;. The declaration of a qualifier allows the definition of types, default values, propagation rules (also known as Flavors), and restrictions on use. </P>
1950           <P>The default value for a declared qualifier is used when the qualifier is not explicitly specified for a given schema element (explicit specification includes when the qualifier specification is inherited).</P>
1951           <P>The MOF syntax allows specifying a qualifier without an explicit value.  In this case, the assumed value depends on the qualifier type:  booleans are true, numeric types are null, strings are null and arrays are empty.</P>
1952           <P>For example, the alias qualifier is declared as follows:</P>
1953           </FONT><FONT FACE="Courier New" SIZE=1><P>qualifier alias :string = null, scope (property, reference, method);</P>
1954 karl  1.1 </FONT><FONT SIZE=3><P>This declaration establishes a qualifier called alias. The type of the qualifier is string. It has a default value of null and may only be used with properties, references and methods.</P>
1955           <P>  The meta qualifiers are declared as:</P>
1956           </FONT><FONT FACE="Courier New" SIZE=1><P>Qualifier Association : boolean = false, </P>
1957           <P>    Scope(class, association), Flavor(DisableOverride);</P>
1958           
1959           <P>Qualifier Indication : boolean = false, </P>
1960           <P>    Scope( class, indication), Flavor(DisableOverride);<BR>
1961           </P>
1962           </FONT><FONT SIZE=3><P>See Appendix B for the complete list of standard qualifiers.</P>
1963           <LI><A NAME="_Toc404410892"><A NAME="_Toc453584990"></FONT><B><FONT SIZE=4>Instance Declarations</A></A></A></A></LI></OL>
1964           </OL>
1965           <DIR>
1966           <DIR>
1967           
1968           </B></FONT><FONT SIZE=3><P>Instances are declared using the keyword sequence "instance of" and the class name. The properties of the instance may be initialized within an initialization block.</P>
1969           <P>Property initialization consists of an optional list of preceding qualifiers (which must be compatible with the qualifiers declared in the class definition), the name of the property and an optional value. Any properties not initialized will have default values as specified in the class definition, or (if no default value has been specified) the special value NULL to indicate "absence of value". For example, given the class definition:</P><DIR>
1970           
1971           </FONT><FONT FACE="Courier New" SIZE=1><P>class Acme_LogicalDisk: CIM_Partition<BR>
1972           {<BR>
1973            &#9;&#9;[key]<BR>
1974               string DriveLetter;<BR>
1975 karl  1.1   &#9;&#9;[Units(&quot;kilo bytes&quot;)]<BR>
1976               sint32 RawCapacity = 128000;<BR>
1977             &#9;&#9;[write]</P>
1978           <P>    string VolumeLabel;<BR>
1979             &#9;&#9;[Units(&quot;kilo bytes&quot;)]<BR>
1980               sint32 FreeSpace;<BR>
1981           };</P></DIR>
1982           
1983           </FONT><FONT SIZE=3><P>an instance of the above class might be declared as:</P><DIR>
1984           
1985           </FONT><FONT FACE="Courier New" SIZE=1><P>instance of Acme_LogicalDisk<BR>
1986           {<BR>
1987               DriveLetter = "C";<BR>
1988               VolumeLabel = "myvol";<BR>
1989           };</P></DIR>
1990           
1991           </FONT><FONT SIZE=3><P>The resulting instance would take these property values:</P></DIR>
1992           </DIR>
1993           
1994           <OL>
1995           
1996 karl  1.1 <OL>
1997           
1998           <LI>DriveLetter would be assigned the value "C".</LI>
1999           <LI>RawCapacity would be assigned the default value 128000.</LI>
2000           <LI>VolumeLabel would be assigned the value "myvol".</LI>
2001           <LI>FreeSpace would be assigned the value NULL.</LI></OL>
2002           </OL>
2003           <DIR>
2004           <DIR>
2005           
2006           <P>For subclasses, all of the properties in the superclass must be initialized along with the properties in the subclass. Any properties not specifically assigned in the instance block will have either the default value for the property (if there is one), or else the value NULL (if there is not one).</P>
2007           <P>The values of all key properties must be specified in order for an instance to be identified and created. There is no requirement to explicitly initialize other properties. See Section 4.11.6 on behavior when there is no property initialization.</P>
2008           <P>Instances of Associations may also be defined. For example:</P><DIR>
2009           
2010           </FONT><FONT FACE="Courier New" SIZE=1><P>instance of CIM_ServiceSAPDependency<BR>
2011           {<BR>
2012               Dependent = "CIM_Service.Name = \"mail\"";<BR>
2013               Antecedent = "CIM_ServiceAccessPoint.Name = \"PostOffice\"";<BR>
2014           };<BR>
2015           </P></DIR>
2016           </DIR>
2017 karl  1.1 </DIR>
2018           
2019           <OL>
2020           <OL>
2021           <OL>
2022           
2023           <LI><A NAME="_Ref374864011"><A NAME="_Toc381332544"><A NAME="_Toc382055177"><A NAME="_Toc404410893"><A NAME="_Toc453584991"></FONT><B><I>Instance Aliasing</A></A></A></A></A></LI>
2024           </B></I><FONT SIZE=3><P>An alias can be assigned to an instance using this syntax:</P>
2025           </FONT><FONT FACE="Courier New" SIZE=1><P>instance of Acme_LogicalDisk as $Disk<BR>
2026           {<BR>
2027             // Body of instance definition here ...<BR>
2028           };</P>
2029           </FONT><FONT SIZE=3><P>Such an alias can later be used within the same MOF specification as a value for an object reference property. For more information, see Section4.12.2 Initializing References using Aliases<I>.</P>
2030           </I><LI><A NAME="_Toc381332550"><A NAME="_Toc382055183"><A NAME="_Toc404410895"><A NAME="_Ref412616964"><A NAME="_Toc453584992"></FONT><B><I>Arrays</A></A></A></A></A></LI></OL>
2031           </OL>
2032           </OL>
2033           <DIR>
2034           <DIR>
2035           
2036           </B></I><FONT SIZE=3><P>Arrays of any of the basic data types can be declared in the MOF specification by using square brackets after the property identifier. Fixed-length arrays indicate their length as an unsigned integer constant within the square brackets; otherwise, the array is assumed to be variable length. Arrays can be bags, ordered lists or indexed arrays.  An array's type is defined by the ARRAYTYPE qualifier, whose values are "Bag", "Ordered" or "Indexed". The default array type is "Bag". Regarding each of the array types:</P></DIR>
2037           </DIR>
2038 karl  1.1 
2039           
2040           <UL>
2041           
2042           <UL>
2043           <LI>An array of type "Bag" is unordered and multi-valued, allowing duplicate entries. </LI>
2044           <LI>An ordered list ("Ordered") is a special case of a bag, which is multi-valued and allows duplicate entries. It returns the property values in an implementation dependent, but fixed order. </LI>
2045           <LI>An indexed array ("Indexed") maintains the order of the elements, and could be implemented based on an integer index for each of the array values. </LI></UL>
2046           </UL>
2047           <DIR>
2048           <DIR>
2049           
2050           <P>Note that for the "Bag" array type, no significance is defined for the array index other than a convenience for accessing the elements of the array. For example, there can be no assumption that the same index will return the same value for every access to the array. The only assumption is that a complete enumeration of the indices will return a complete set of values.</P>
2051           <P>For the "Ordered" array type, the array index is significant as long as no array elements are added, deleted or changed. In this case the same index will return the same value for every access to the array. If an element is added, deleted or changed, the index of the elements might change according to the implementation-specific ordering algorithm.</P>
2052           <P>The "Indexed" array maintains the correspondence between element position and value. Array elements can be overwritten, but not deleted. Indexes start at 0 and have no gaps.</P>
2053           <P>The current release of CIM does not support n-dimensional arrays.</P>
2054           <P>Arrays of any basic data type are legal. Arrays of references are not legal.  Arrays must be homogeneous. Arrays of mixed types are not supported. In MOF, the data type of an array precedes the array name. Array size, if fixed length, is declared within square brackets, following the array name. If a variable length array is to be defined, empty square brackets follow the array name. </P>
2055           <P>Arrays are declared using this MOF syntax:</P><DIR>
2056           
2057           </FONT><FONT FACE="Courier New" SIZE=1><P>class A</P>
2058           <P>{</P>
2059 karl  1.1 <P>    [Description("An indexed array of variable length"), ArrayType("Indexed")]</P>
2060           <P>    uint8 MyIndexedArray[];</P>
2061           
2062           <P>    [Description("A bag array of fixed length")]</P>
2063           <P>    uint8 MyBagArray[17];</P>
2064           <P>};</P></DIR>
2065           
2066           </FONT><FONT SIZE=3><P>If default values are to be provided for the array elements, this syntax is used:</P><DIR>
2067           
2068           </FONT><FONT FACE="Courier New" SIZE=1><P>class A</P>
2069           <P>{</P>
2070           <P>    [Description("A bag array property of fixed length")]</P>
2071           <P>    uint8 MyBagArray[17] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17};</P>
2072           <P>};</P></DIR>
2073           
2074           </FONT><FONT SIZE=3><P>This MOF presents further examples of "Bag", "Ordered" and "Indexed" array declarations:</P><DIR>
2075           
2076           </FONT><FONT FACE="Courier New" SIZE=1><P>class Acme_Example</P>
2077           <P>{</P>
2078           <P>    char16 Prop1[];         // Bag (default) array of chars, Variable length</P>
2079           
2080 karl  1.1 <P>    [ArrayType ("Ordered")] // Ordered array of double-precision reals,</P>
2081           <P>    real64 Prop2[];         // Variable length </P>
2082           
2083           <P>    [ArrayType ("Bag")]     // Bag array containing 4 32-bit signed integers</P>
2084           <P>    sint32 Prop3[4]; </P>
2085           
2086           <P>    [ArrayType ("Ordered")] // Ordered array of strings, Variable length</P>
2087           <P>    string Prop4[] = {"an", "ordered", "list"};</P>
2088           
2089           <P>        // Prop4 is variable length with default values defined at the </P>
2090           <P>        // first three positions in the array</P>
2091           
2092           <P>    [ArrayType ("Indexed")] // Indexed array of 64-bit unsigned integers </P>
2093           <P>    uint64 Prop5[];</P>
2094           <P>};</P></DIR>
2095           </DIR>
2096           </DIR>
2097           
2098           <OL>
2099           <OL>
2100           
2101 karl  1.1 <LI><A NAME="_Toc381332551"><A NAME="_Toc382055184"><A NAME="_Toc404410896"><A NAME="_Toc453584993"></FONT><B><FONT SIZE=4>Method Declarations</A></A></A></A></LI>
2102           </B></FONT><FONT SIZE=3><P>A method is defined as an operation together with its signature. The signature consists of a possibly empty list of parameters and a return type.  There are no restrictions on the type of parameters other than they <B>must</B> be one of the data types described in Section 2.2, a fixed or variable length array of one of those types, or be an object reference.  Return types <B>must</B> be one of the data types described in Section 2.2.  Return types cannot be arrays, but otherwise are unrestricted. Syntactically, the only thing that distinguishes a method from a property is the parameter list. The fact that methods are expected to have side-effects is outside the scope of this specification.</P>
2103           <P>In this example, Start and Stop methods are defined on the Service class.  Each method returns an integer value:</P>
2104           </FONT><FONT FACE="Courier New" SIZE=1><P>class CIM_Service:CIM_LogicalElement<BR>
2105           {<BR>
2106                 [Key]<BR>
2107               string Name;<BR>
2108               string StartMode;<BR>
2109               boolean Started;<BR>
2110               uint32 StartService();<BR>
2111               uint32 StopService();<BR>
2112           };</P>
2113           </FONT><FONT SIZE=3><P>In this example, a Configure method is defined on the Physical DiskDrive class. It takes a DiskPartitionConfiguration object reference as a parameter, and returns a boolean value.</P>
2114           </FONT><FONT FACE="Courier New" SIZE=1><P>class Acme_DiskDrive:CIM_Media<BR>
2115           {<BR>
2116           &#9;sint32 BytesPerSector;<BR>
2117           &#9;sint32 Partitions;<BR>
2118           &#9;sint32 TracksPerCylinder;<BR>
2119           &#9;sint32 SectorsPerTrack;<BR>
2120           &#9;string TotalCylinders;<BR>
2121           &#9;string TotalTracks;<BR>
2122 karl  1.1 &#9;string TotalSectors;<BR>
2123           &#9;string InterfaceType;</P>
2124           <P>&#9;boolean Configure([IN] DiskPartitionConfiguration REF config);<BR>
2125           };</P>
2126           <LI><A NAME="_Toc381332552"><A NAME="_Toc382055185"><A NAME="_Toc404410897"><A NAME="_Toc453584994"></FONT><B><FONT SIZE=4>Compiler Directives</A></A></A></A></LI>
2127           </B></FONT><FONT SIZE=3><P><A NAME="_Ref374863290"><A NAME="_Toc381332553"><A NAME="_Toc382055186"><A NAME="_Toc404410898">Compiler directives are provided as the keyword "pragma", preceded by a hash ('#') character, and followed by a string parameter.</P>
2128           <P>The current standard compiler directives are:</P></FONT>
2129           <P ALIGN="RIGHT"><TABLE BORDER CELLSPACING=1 CELLPADDING=7 WIDTH=516>
2130           <TR><TD WIDTH="35%" VALIGN="TOP">
2131           <B><FONT SIZE=1><P>compiler Directive</B></FONT></TD>
2132           <TD WIDTH="65%" VALIGN="TOP">
2133           <B><FONT SIZE=1><P>Interpretation</B></FONT></TD>
2134           </TR>
2135           <TR><TD WIDTH="35%" VALIGN="TOP">
2136           <FONT SIZE=1><P>#pragma include() </FONT></TD>
2137           <TD WIDTH="65%" VALIGN="TOP">
2138           <FONT SIZE=1><P>Has a file name as a parameter. The file is assumed to be a MOF file. The pragma has the effect of textually inserting the contents of the include file at the point where the include pragma is encountered.</FONT></TD>
2139           </TR>
2140           <TR><TD WIDTH="35%" VALIGN="TOP">
2141           <FONT SIZE=1><P>#pragma instancelocale()</FONT></TD>
2142           <TD WIDTH="65%" VALIGN="TOP">
2143 karl  1.1 <FONT SIZE=1><P>Declares the locale used for instances described in a MOF file.  This pragma specifies the locale when "INSTANCE OF" MOF statements include string or char16 properties, and the locale is not the same as the locale specified by a #pragma locale() statement. The locale is specified as a parameter of the form ll_cc where ll is the language code based on ISO/IEC 639, and cc is the country code based on ISO/IEC 3166.</FONT></TD>
2144           </TR>
2145           <TR><TD WIDTH="35%" VALIGN="TOP">
2146           <FONT SIZE=1><P>#pragma locale()</FONT></TD>
2147           <TD WIDTH="65%" VALIGN="TOP">
2148           <FONT SIZE=1><P>Declares the locale used for a particular MOF file. The locale is specified as a parameter of the form ll_cc, where ll is the language code based on ISO/IEC 639, and cc is the country code based on ISO/IEC 3166. When the pragma is not specified, the assumed locale is "en_US".</P>
2149           <P>It is important to note that this pragma does not apply to the syntax structures of MOF.  Keywords, such as "class" and "instance", are always in en_US.</FONT></TD>
2150           </TR>
2151           <TR><TD WIDTH="35%" VALIGN="TOP">
2152           <FONT SIZE=1><P>#pragma namespace( ) </FONT></TD>
2153           <TD WIDTH="65%" VALIGN="TOP">
2154           <FONT SIZE=1><P>This pragma is used to specify a Namespace path.  The syntax needs to conform to the following: &lt;namespacetype&gt;://&lt;namespacehandle&gt;</FONT></TD>
2155           </TR>
2156           <TR><TD WIDTH="35%" VALIGN="TOP">
2157           <FONT SIZE=1><P>#pragma nonlocal() </FONT></TD>
2158           <TD WIDTH="65%" VALIGN="TOP">
2159           <FONT SIZE=1><P>See the description of the NonLocal qualifier for an explanation of this pragma.<B>Usage Rule:</B> Cannot be used with NonLocalType pragma.</FONT></TD>
2160           </TR>
2161           <TR><TD WIDTH="35%" VALIGN="TOP">
2162           <FONT SIZE=1><P>#pragma nonlocaltype()</FONT></TD>
2163           <TD WIDTH="65%" VALIGN="TOP">
2164 karl  1.1 <FONT SIZE=1><P>See the description of the NonLocalType qualifier for an explanation of this pragma.&nbsp;<B>Usage Rule:</B> Cannot be used with NonLocal pragma</FONT></TD>
2165           </TR>
2166           <TR><TD WIDTH="35%" VALIGN="TOP">
2167           <FONT SIZE=1><P>#pragma source() </FONT></TD>
2168           <TD WIDTH="65%" VALIGN="TOP">
2169           <FONT SIZE=1><P>See the description of the Source qualifier for an explanation of this pragma.&nbsp;<B>Usage Rule:</B> Cannot be used with sourcetype pragma</FONT></TD>
2170           </TR>
2171           <TR><TD WIDTH="35%" VALIGN="TOP">
2172           <FONT SIZE=1><P>#pragma sourcetype()</FONT></TD>
2173           <TD WIDTH="65%" VALIGN="TOP">
2174           <FONT SIZE=1><P>See the description of the SourceType qualifier for an explanation of this pragma.<B>Usage Rule:</B> Cannot be used with source pragma.</FONT></TD>
2175           </TR>
2176           </TABLE>
2177           </P>
2178           
2179           <FONT SIZE=3><P>Additional pragma directives may be added as a MOF extension mechanism.  Unless standardized in a future CIM specification, such new pragma definitions must be considered vendor-specific.  Use of non-standard pragmas will affect interoperability of MOF import and export functions.</P>
2180           <P>When a qualifier value is derived from either a qualifier or a pragma, the qualifier overrides the pragma. </P>
2181           <LI><A NAME="_Toc453584995"></FONT><B><FONT SIZE=4>Value Constants</A></A></A></A></A></LI>
2182           </B></FONT><FONT SIZE=3><P>The constant types supported in the MOF syntax are described in the subsections that follow. These are used in initializers for classes and instances, and in the parameters to named qualifiers.</P>
2183           <P>A formal specification of the representation is found in Appendix A, MOF Syntax Grammar Description.</P>
2184           <OL>
2185 karl  1.1 
2186           <LI><A NAME="_Ref374863075"><A NAME="_Ref374863078"><A NAME="_Toc381332554"><A NAME="_Toc382055187"><A NAME="_Toc404410899"><A NAME="_Toc453584996"></FONT><B><I>String Constants</A></A></A></A></A></A></LI>
2187           </B></I><FONT SIZE=3><P>A string constant is a sequence of zero or more UCS-2 characters enclosed in double-quotes ("). A double-quote is allowed within the value, as long as it is preceded immediately by a  backslash (\). </P>
2188           <P>For example:</P>
2189           </FONT><FONT FACE="Courier New" SIZE=1><P>"This is a string"</P>
2190           </FONT><FONT SIZE=3><P>Successive quoted strings are concatenated, as long as only white space or a comment intervenes:</P>
2191           </FONT><FONT FACE="Courier New" SIZE=1><P>"This"  " becomes a long string"</P>
2192           <P>"This" /* comment */ " becomes a long string"</P>
2193           </FONT><FONT SIZE=3><P>The escape sequences such as </FONT><FONT FACE="Courier New" SIZE=1>\n, \t</FONT><FONT SIZE=3> and </FONT><FONT FACE="Courier New" SIZE=1>\r</FONT><FONT SIZE=3> are recognized as legal characters within a string. The complete set is:</P>
2194           </FONT><FONT FACE="Courier New" SIZE=1><P>\b&#9;&#9;// \x0008: backspace BS</P>
2195           <P>\t&#9;&#9;// \x0009: horizontal tab HT</P>
2196           <P>\n&#9;&#9;// \x000A: linefeed LF</P>
2197           <P>\f&#9;&#9;// \x000C: form feed FF</P>
2198           <P>\r&#9;&#9;// \x000D: carriage return CR</P>
2199           <P>\"&#9;&#9;// \x0022: double quote "</P>
2200           <P>\' &#9;// \x0027: single quote '</P>
2201           <P>\\ &#9;// \x005C: backslash \</P>
2202           <P>\x&lt;hex&gt;&#9;// where &lt;hex&gt; is one to four hex digits</P>
2203           <P>\X&lt;hex&gt;&#9;// where &lt;hex&gt; is one to four hex digits </P>
2204           </FONT><FONT SIZE=3><P>The character set of the string depends on the character set supported by the local installation. While the MOF specification may be submitted in UCS-2 form [10], the local implementation may only support ANSI and vice-versa. Therefore, the string type is unspecified and dependent on the character set of the MOF specification itself. If a MOF specification is submitted using UCS-2 characters outside of the normal ASCII range, then the implementation may have to convert these characters to the locally-equivalent character set.</P>
2205           <LI><A NAME="_Toc382055188"><A NAME="_Ref374863137"><A NAME="_Toc381332555"><A NAME="_Toc404410900"><A NAME="_Toc453584997"></FONT><B><I>Character Constants</A></A></A></A></A></LI>
2206 karl  1.1 </B></I><FONT SIZE=3><P>Character and wide-character constants are specified as.</P>
2207           </FONT><FONT FACE="Courier New" SIZE=1><P>'a'</P>
2208           <P>'\n'</P>
2209           <P>'1'</P>
2210           <P>'\x32'</P>
2211           </FONT><FONT SIZE=3><P>Note: Forms such as octal escape sequences (e.g. ‘\020’) are not supported.</P>
2212           <P>Integer values can also be used as character constants, as long as they are within the numeric range of the character type. For example, wide-character constants must fall within the range 0 to 0xFFFF. </P>
2213           <LI><A NAME="_Toc381332556"><A NAME="_Toc382055189"><A NAME="_Toc404410901"><A NAME="_Toc453584998"></FONT><B><I>Integral Constants</A></A></A></A></LI>
2214           </B></I><FONT SIZE=3><P>Integer constants may be decimal, binary, octal or hexadecimal. </P>
2215           <P>For example, these are all legal:</P>
2216           </FONT><FONT FACE="Courier New" SIZE=1><P>1000</P>
2217           <P>-12310</P>
2218           <P>0x100</P>
2219           <P>01236</P>
2220           <P>100101B</P>
2221           </FONT><FONT SIZE=3><P>Note that binary constants have a series of 1 and 0 digits, with a "b" or "B" suffix to indicate that the value is binary.</P>
2222           <P>The number of digits permitted depends on the current type of the expression. For example, it is not legal to assign the constant 0xFFFF to a property of type uint8<I>.</P>
2223           <LI><A NAME="_Toc381332557"><A NAME="_Toc382055190"><A NAME="_Toc404410902"><A NAME="_Toc453584999"></FONT><B>Floating-Point Constants</A></A></A></A></LI>
2224           </B></I><FONT SIZE=3><P>Floating point constants are declared as specified by IEEE in Ref. [6].</P>
2225           <P>For example, these are legal:</P>
2226           </FONT><FONT FACE="Courier New" SIZE=1><P>3.14</P>
2227 karl  1.1 <P>-3.14</P>
2228           <P>-1.2778E+02</P>
2229           </FONT><FONT SIZE=3><P>The range for floating point constants depends on whether float<I> </I>or double<I> </I>properties are used and must fit within the range specified for IEEE 4-byte and 8-byte<I> </I>floating point values, respectively.</P>
2230           <B><LI><A NAME="_Toc381332558"><A NAME="_Toc382055191"><A NAME="_Toc404410903"><A NAME="_Toc453585000"></FONT><I>Object Ref Constants</A></A></A></A></LI>
2231           </B></I><FONT SIZE=3><P>Object references are simple URL-style links to other objects (which may be classes or instances). They take the form of a quoted string containing an object path. The object path is a combination of a namespace path and the model path.</P>
2232           <P>For example:</P>
2233           </FONT><FONT FACE="Courier New" SIZE=1><P>"//./root/default:LogicalDisk.SystemName=\"acme\",LogicalDisk.Drive=\"C\""</P>
2234           <P>"//./root/default:NetworkCard=2"</P>
2235           </FONT><FONT SIZE=3><P>An object reference can also be an alias. See Section 4.12.2 for more details.</P>
2236           <LI><A NAME="_Ref373498207"><A NAME="_Toc381332559"><A NAME="_Toc382055192"><A NAME="_Toc404410904"><A NAME="_Toc453585001"></FONT><B><I>NULL</A></A></A></A></A></LI></OL>
2237           
2238           </B></I><FONT SIZE=3><P>All types can be initialized to the predefined constant NULL, which indicates no value has been provided. The details of the internal implementation of the NULL value are not mandated by this document.</P>
2239           <LI><A NAME="_Toc381332560"><A NAME="_Toc382055193"><A NAME="_Toc404410905"><A NAME="_Toc453585002"></FONT><B><FONT SIZE=4>Initializers</A></A></A></A></LI>
2240           </B></FONT><FONT SIZE=3><P>Initializers are used both in class declarations for default values and instance declarations to initialize a property to a value. The format of initializer values is specified in Section 2 and its subsections.</P>
2241           <P>The initializer value <B>must</B> match the property data type.  The only exceptions are the NULL value, which may be used for any data type, and integral values, used for characters.</P>
2242           <OL>
2243           
2244           <LI><A NAME="_Toc381332561"><A NAME="_Toc382055194"><A NAME="_Toc404410906"><A NAME="_Toc453585003"></FONT><B><I>Initializing Arrays</A></A></A></A></LI>
2245           </B></I><FONT SIZE=3><P>Arrays can be defined to be of type, "Bag", "Ordered" or "Indexed", and can be initialized by specifying their values in a comma-separated list (as in the C programming language).  The list of array elements is delimited with curly brackets. </P>
2246           <P>For example, given this class definition:</P>
2247           </FONT><FONT FACE="Courier New" SIZE=1><P>class Acme_ExampleClass </P>
2248 karl  1.1 <P>{</P>
2249           <P>    [ArrayType ("Indexed")]</P>
2250           <P>    string ip_addresses [];    // Indexed array of variable length</P>
2251           <P>    sint32 sint32_values [10]; // Bag array of fixed length = 10</P>
2252           <P>};</P>
2253           </FONT><FONT SIZE=3><P>this is a valid instance declaration:</P>
2254           </FONT><FONT FACE="Courier New" SIZE=1><P>instance of Acme_ExampleClass</P>
2255           <P>{</P>
2256           <P>    ip_addresses = { "1.2.3.4", "1.2.3.5", "1.2.3.7" };</P>
2257           
2258           <P>        // ip_address is an indexed array of at least 3 elements, where </P>
2259           <P>        // values have been assigned to the first three elements of the</P>
2260           <P>        // array</P>
2261           
2262           <P>    sint32_values = { 1, 2, 3, 5, 6 };</P>
2263           <P>};</P>
2264           </FONT><FONT SIZE=3><P>Refer to Section 4.8.2 for additional information on declaring arrays, and the distinctions between bags, ordered arrays and indexed arrays.</P>
2265           <LI><A NAME="_Ref371317877"><A NAME="_Toc381332562"><A NAME="_Toc382055195"><A NAME="_Toc404410907"><A NAME="_Toc453585004"></FONT><B><I>Initializing References Using Aliases</A></A></A></A></A></LI></OL>
2266           </OL>
2267           </OL>
2268           <DIR>
2269 karl  1.1 <DIR>
2270           
2271           </B></I><FONT SIZE=3><P>Aliases are symbolic references to an object located elsewhere in the MOF specification. They only have significance within the MOF specification in which they are defined, and are only used at compile time to facilitate establishment of references. They are not available outside of the MOF specification.</P>
2272           <P>Classes and instances may be assigned an alias as described in Section 4.8.1.  Aliases are identifiers which begin with the $ symbol. When a subsequent reference to that instance is required for an object reference property, the identifier is used in place of an explicit initializer.</P>
2273           <P>Assuming that $Alias1 and $Alias2 have been declared as aliases for instances, and the obref1 and obref2 properties are object references, this example shows how the object references could be assigned to point to the aliased instances:</P><DIR>
2274           
2275           </FONT><FONT FACE="Courier New" SIZE=1><P>instance of Acme_AnAssociation<BR>
2276           {<BR>
2277               strVal = "ABC";<BR>
2278               obref1 = $Alias1;</P>
2279           <P>    obref2 = $Alias2;<BR>
2280           };</P></DIR>
2281           
2282           </FONT><FONT SIZE=3><P>Forward-referencing and circular aliases are permitted.</P></DIR>
2283           </DIR>
2284           
2285           <OL>
2286           
2287           <LI><A NAME="_Toc404410908"></LI>
2288           </FONT><B><FONT SIZE=5><LI><A NAME="_Ref411739983"><A NAME="_Ref411740039"><A NAME="_Ref411740083"><A NAME="_Ref411740095"><A NAME="_Toc453585005">Naming</A></A></A></A></A></A></LI></OL>
2289           <DIR>
2290 karl  1.1 <DIR>
2291           
2292           </B></FONT><FONT SIZE=3><P>Because CIM is not bound to a particular technology or implementation, it promises to facilitate sharing management information between a variety of management platforms.  The CIM Naming mechanism was defined to address enterprise-wide identification of objects, as well as the sharing of management information.</P>
2293           <P>CIM Naming addresses these requirements:</P></DIR>
2294           </DIR>
2295           
2296           <OL>
2297           
2298           <OL>
2299           
2300           <LI>Ability to locate and uniquely identify any object in an enterprise</LI></OL>
2301           </OL>
2302           
2303           
2304           <UL>
2305           
2306           <UL>
2307           <LI>Unambiguous enumeration of all objects</LI>
2308           <LI>Ability to determine when two object names reference the same entity</LI>
2309           <LI>Location transparency (no need to understand which management platforms proxy other platforms’ instrumentation)</LI></UL>
2310           </UL>
2311 karl  1.1 
2312           <OL>
2313           
2314           <OL>
2315           
2316           <LI>Allow sharing of objects and instance data among management platforms</LI></OL>
2317           </OL>
2318           
2319           
2320           <UL>
2321           
2322           <UL>
2323           <LI>Allow creation of different scoping hierarchies  which vary by &quot;time&quot; (for example, a &quot;current&quot; vs. &quot;proposed&quot;  scoping  hierarchy)</LI></UL>
2324           </UL>
2325           
2326           <OL>
2327           
2328           <OL>
2329           
2330           <LI>Facilitate move operations between object trees (including within a single management platform)</LI></OL>
2331           </OL>
2332 karl  1.1 
2333           
2334           <UL>
2335           
2336           <UL>
2337           <LI>Hide underlying management technology/provide technology transparency for the domain-mapping environment</LI>
2338           <LI>Object name identifiable regardless of instrumentation technology </LI>
2339           <LI>Allowing different names for DMI vs. SNMP objects requires the management platform to understand how the underlying objects are implemented</LI></UL>
2340           </UL>
2341           <DIR>
2342           <DIR>
2343           
2344           <P>The Key qualifier is the CIM Meta-Model mechanism used to identify the properties that uniquely identify an instance of a class (and indirectly an instance of an association). CIM Naming enhances this base capability by:</P></DIR>
2345           </DIR>
2346           
2347           
2348           <UL>
2349           
2350           <UL>
2351           <LI>introducing the Weak and Propogated qualifiers to express situations in which the keys of one object are to be propagated to another object.</LI>
2352           <LI>introducing the Source pragma and qualifier (&quot;namespacetype://namespace_handle&quot;) to allow details about the implementation source to be recorded in a MOF file. </LI>
2353 karl  1.1 <LI>introducing the NonLocal qualifier (&quot;namespacetype://namespace_handle&quot;) to reference an object instance kept in another implementation. </LI></UL>
2354           </UL>
2355           
2356           <OL>
2357           <OL>
2358           
2359           <LI><A NAME="_Toc401008281"><A NAME="_Toc404410909"><A NAME="_Toc453585006"></FONT><B><FONT SIZE=4>Back</A>ground</A></A></LI></OL>
2360           </OL>
2361           <DIR>
2362           <DIR>
2363           
2364           </B></FONT><FONT SIZE=3><P>CIM MOF files can contain definitions of instances, classes or both, as illustrated in this diagram:</P>
2365           </FONT><FONT SIZE=2></DIR>
2366           </DIR>
2367           
2368           <P ALIGN="CENTER"><IMG SRC="Image7.gif" WIDTH=411 HEIGHT=261></P><DIR>
2369           <DIR>
2370           
2371           <I><P ALIGN="CENTER"><A NAME="_Toc453585043">Figure -1 Definitions of instances and classes</A></P>
2372           </I></FONT><FONT SIZE=3><P>MOF files can be used to populate a technology that understands the semantics and structure of CIM. When a MOF file is consumed by a particular implementation, there are two operations that are actually being performed, depending on the file’s content. First, a compile or definition operation is performed to establish the structure of the model. Second, an import operation is performed to insert instances into the platform or tool. </P>
2373           <P>Once the compile and import are completed, the actual instances are manipulated using the native capabilities of the platform or tool. In other words, in order to manipulate an object (for example, change the value of a property), one must know the type of platform the information was imported into, the APIs or operations used to access the imported information, and the name of the platform instance that was actually imported. For example, the semantics become: </P>
2374 karl  1.1 <P>Set the Version property of the Logical Element object with Name=&quot;Cool&quot; in the relational database named LastWeeksData to &quot;1.4.0&quot;. </P>
2375           <P>The contents of a MOF file are loaded into a namespace that provides a domain (in other words, a container), in which the instances of the classes are guaranteed to be unique per the KEY qualifier definitions.  The term namespace is used to refer to an implementation that provides such a domain.</P>
2376           <P>Namespaces can be used to:</P></DIR>
2377           </DIR>
2378           
2379           
2380           <UL>
2381           
2382           <UL>
2383           <LI>Define chunks of management information (objects and associations) to limit implementation resource requirements, such as database size.</LI>
2384           <LI>Define views on the model for applications managing only specific objects, such as hubs.</LI>
2385           <LI>Pre-structure groups of objects for optimized query speed.</LI></UL>
2386           </UL>
2387           <DIR>
2388           <DIR>
2389           
2390           <P>Another viable operation is exporting from a particular management platform. Essentially, this operation creates a MOF file for all or some portion of the information content of a platform. </P></DIR>
2391           </DIR>
2392           
2393           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image8.gif" WIDTH=501 HEIGHT=669></P><DIR>
2394           <DIR>
2395 karl  1.1 
2396           <I><P ALIGN="CENTER"><A NAME="_Toc453585044">Figure -2 Exporting to MOF</A></P>
2397           </I></FONT><FONT SIZE=3><P>For example, information is exchanged when the source system is of type Mgmt_X and its name is EastCoast. The export produces a MOF file with the circle and triangle definitions and instances 1, 3, 5 of the circle class and instances 2, 4 of the triangle class. This MOF file is then compiled and imported into the management platform of type Mgmt_ABC with the name AllCoasts.</P></DIR>
2398           </DIR>
2399           
2400           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image9.gif" WIDTH=479 HEIGHT=359></P><DIR>
2401           <DIR>
2402           
2403           <I><P ALIGN="CENTER"><A NAME="_Toc453585045">Figure -3 Information Exchange</A></P>
2404           </I></FONT><FONT SIZE=3><P>The import operation involves storing the information in a local or native format of  Mgmt_ABC so its native operations can be used to manipulate the instances. The transformation to a native format is shown in the figure by wrapping the five instances in hexagons. The transformation process must maintain the original keys. </P></DIR>
2405           </DIR>
2406           
2407           <OL>
2408           <OL>
2409           <OL>
2410           
2411           <LI><A NAME="_Toc397084531"><A NAME="_Toc401008282"><A NAME="_Toc404410910"><A NAME="_Toc453585007"></FONT><B><I>Management Tool Responsibility for an Export Operation</A></A></A></A></LI>
2412           </B></I><FONT SIZE=3><P>The management tool must be able to create unique key values for each distinct object it places in the MOF file.</P>
2413           <P>For each instance placed in the MOF file, the management tool must maintain a mapping from the MOF file keys to the native key mechanism.</P>
2414           <LI><A NAME="_Toc397084532"><A NAME="_Toc401008283"><A NAME="_Toc404410911"><A NAME="_Toc453585008"></FONT><B><I>Management Tool Responsibility for an Import Operation</A></A></A></A></LI></OL>
2415           </OL>
2416 karl  1.1 </OL>
2417           <DIR>
2418           <DIR>
2419           
2420           </B></I><FONT SIZE=3><P>The management tool must be able to map the unique keys found in the MOF file to a set of locally-understood keys.</P></DIR>
2421           </DIR>
2422           
2423           <OL>
2424           <OL>
2425           
2426           <LI><A NAME="_Ref397917127"><A NAME="_Toc401008284"><A NAME="_Toc404410912"><A NAME="_Toc453585009"></FONT><B><FONT SIZE=4>Weak Associations: Supporting Key Propagation</A></A></A></A></LI>
2427           </B></FONT><FONT SIZE=3><P>CIM provides a mechanism to name instances within the context of other object instances. For example, if a management tool is handling a local system, then it can refer to the C drive or the D drive. However, if a management tool is handling multiple machines, it must refer to the C drive on machine X and the C drive on machine Y. In other words, the name of the drive must include the name of the hosting machine. CIM supports the notion of weak associations to specify this type of key propagation. </P>
2428           <P>A weak association is defined using a qualifier.  For example:</P>
2429           </FONT><FONT FACE="Courier New" SIZE=1><P>Qualifier Weak: boolean = false, Scope(reference), Flavor(DisableOverride);</P>
2430           </FONT><FONT SIZE=3><P>The key(s) of the referenced class includes the key(s) of the other participants in the WEAK association. This situation occurs when the referenced class identity depends on the identity of other participants in the association.</P>
2431           <P>Usage Rule: This qualifier can only be specified on one of the references defined for an association.  The Weak referenced object is the one that depends on the other object for identity.</P>
2432           <P>This figure shows an example. There are three classes: ComputerSystem, OperatingSystem and Local User. The Operating System class is weak with respect to the Computer System class, since the runs association is marked weak. Similarly, the Local User class is weak with respect to the Operating System class, since the association is marked weak.</P>
2433           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image10.gif" WIDTH=478 HEIGHT=359></P>
2434           <I><P ALIGN="CENTER"><A NAME="_Toc453585046">Figure -1 Example of Weak Association</A></P>
2435           </I></FONT><FONT SIZE=3><P>In the context of a weak association definition, the Computer System class is a scoping class for the Operating System class, since its keys are propagated to the Operating System class. The Computer System and the Operating System classes are both scoping classes for the Local User class, since the Local User class gets keys from both. Finally, the Computer System is referred to as a Top Level Object  (TLO) because it is not weak with respect to any other class. The fact that a particular class is a top-level object is inferred because no references to that class are marked with the WEAK qualifier. In addition, Top Level Objects must have the possibility of an enterprise-wide, unique key. An example may be a computer’s IP address in a company’s enterprise-wide IP network. The goal of the TLO concept is to achieve uniqueness of keys in the model path portion of the object name. In order to come as close as possible to this goal, TLO must have relevance in an enterprise context. </P>
2436           <P>Objects in the scope of another object can in turn be a scope for other objects; hence, all model object instances are arranged in directed graphs with the Top Level Object’s (TLO’s) as peer roots. The structure of this graph – in other words, which classes are in the scope of another given class – is defined as part of CIM by means of associations qualified with the WEAK qualifier. </P>
2437 karl  1.1 <OL>
2438           
2439           <LI><A NAME="_Toc401008286"><A NAME="_Toc404410914"><A NAME="_Toc453585010"></FONT><B><I>Referencing Weak Objects</A></A></A></LI></OL>
2440           
2441           </B></I><FONT SIZE=3><P>A reference to an instance of an association includes the propagated keys. The properties must have the propagated qualifier that identifies which class the property originates in and what the name of the property is in that class – for example</P>
2442           </FONT><FONT FACE="Courier New" SIZE=1><P>instance of Acme_has<BR>
2443           {<BR>
2444               anOS = "Acme_OS.Name=\"acmeunit\",SystemName=\"UnixHost\"";<BR>
2445               aUser = "Acme_User.uid=33,OSName=\"acmeunit\",SystemName=\"UnixHost\"";<BR>
2446           };</P>
2447           <P>&nbsp;</P>
2448           </FONT><FONT SIZE=3><P>The operating system being weak to system would be declared as:</P>
2449           </FONT><FONT FACE="Courier New" SIZE=1><P>Class Acme_OS<BR>
2450           {<BR>
2451                   [key]<BR>
2452               String Name;<BR>
2453                   [key, Propagated("CIM_System.Name")]<BR>
2454               String SystemName;<BR>
2455           };</P>
2456           </FONT><FONT SIZE=3><P>The user class being weak to operating system would be declared as:</P>
2457           </FONT><FONT FACE="Courier New" SIZE=1><P>Class Acme_User<BR>
2458 karl  1.1 {<BR>
2459                   [key]<BR>
2460               String uid;<BR>
2461                   [key, Propagated("Acme_OS.Name")]<BR>
2462               String OSName;<BR>
2463                   [key, Propagated("Acme_OS.SystemName")]<BR>
2464               String SystemName;<BR>
2465           };</P>
2466           <LI><A NAME="_Toc401008287"><A NAME="_Toc404410915"><A NAME="_Toc453585011"></FONT><B><FONT SIZE=4>Naming CIM Objects</A></A></A></LI>
2467           </B></FONT><FONT SIZE=3><P>Since CIM allows for multiple implementations, it is not sufficient to think of the name of an object as just the combination of properties that have the KEY qualifier. The name must also identify the implementation that actually hosts the objects. The object name consists of the Namespace Path, which provides access to a CIM implementation, plus the Model Path, which provides full navigation within the CIM schema. The namespace path is used to locate a particular name space. The details of the namespace path are dependent on a particular implementation. The model path is the concatenation of the properties of a class that are qualified with the KEY qualifier. When the class is weak with respect to another class, the model path includes all key properties from the scoping objects. The following figure shows the various components of an object name. These are described in more details in the following sections.</P>
2468           <P ALIGN="CENTER"><IMG SRC="Image11.gif" WIDTH=432 HEIGHT=216></P>
2469           </FONT><I><FONT SIZE=2><P ALIGN="CENTER"><A NAME="_Toc453585047">Figure -1 Object Naming</A></P>
2470           <OL>
2471           
2472           <LI><A NAME="_Toc401008288"><A NAME="_Toc404410916"><A NAME="_Toc453585012"></FONT><B>Namespace Path</A></A></A></LI>
2473           </B></I><FONT SIZE=3><P>A Namespace path references a namespace within an implementation that is capable of hosting CIM objects. </P>
2474           <P>A Namespace path resolves to a namespace hosted by a CIM-Capable implementation (in other words, a CIM Object Manager). Unlike the Model Path, the details of the Namespace path are implementation-specific. Therefore, the Namespace path provides two pieces of information: it identifies the type of implementation or namespace type, and it provides a handle that references a particular implementation or namespace handle. </P>
2475           <OL>
2476           
2477           <LI><A NAME="_Toc401008289"></FONT><B>Namespace Type</A></LI>
2478           </B><FONT SIZE=3><P>The namespace type classifies or identifies the type of implementation. The provider of such an implementation is responsible for describing the access protocol for that implementation. This is analogous to specifying http or ftp in a browser. </P>
2479 karl  1.1 <P>Fundamentally, a namespace type implies an access protocol or API set that can be used to manipulate objects. These APIs would typically support:  (1) generating a MOF file for a particular scope of classes and associations,  (2) importing a MOF file and (3) manipulating instances. A particular management platform may have a variety of ways to access management information. Each of these ways must have a namespace type definition. Given this type, there would be an assumed set of mechanisms for exporting, importing and updating instances. </P>
2480           <LI><A NAME="_Toc401008290"><A NAME="_Ref413577842"></FONT><B>Namespace Handle</A></A></LI></OL>
2481           </OL>
2482           </OL>
2483           </OL>
2484           <DIR>
2485           <DIR>
2486           
2487           </B><FONT SIZE=3><P>The Namespace handle identifies a particular instance of the type of implementation. This handle must resolve to a namespace within an implementation.</P>
2488           <P>The details of the handle are implementation-specific. It might be a simple string for an implementation that supports one namespace, or it might be a hierarchical structure if an implementation supports multiple namespaces. Either way, it resolves to a namespace. </P>
2489           <P>It is important to note that some implementations can support multiple namespaces. In this case, the implementation-specific reference must resolve to a particular namespace within that implementation.</P></DIR>
2490           </DIR>
2491           
2492           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image12.gif" WIDTH=478 HEIGHT=359></P><DIR>
2493           <DIR>
2494           
2495           <I><P ALIGN="CENTER"><A NAME="_Toc453585048">Figure -1 Namespaces</A></P>
2496           </I></FONT><FONT SIZE=3><P>There are two important observations to make:</P></DIR>
2497           </DIR>
2498           
2499           <OL>
2500 karl  1.1 
2501           <OL>
2502           
2503           <LI>Namespaces can overlap with respect to their contents.</LI>
2504           <LI>An object in one name space, which has the same model path as an object in another name, space does not guarantee that the objects are representing the same reality.</LI></OL>
2505           </OL>
2506           
2507           <OL>
2508           <OL>
2509           <OL>
2510           
2511           <LI><A NAME="_Toc401008291"><A NAME="_Toc404410917"><A NAME="_Toc453585013"></FONT><B><I>Model Path</A></A></A></LI>
2512           </B></I><FONT SIZE=3><P>The object name constructed as a scoping path through the CIM schema is referred to as a Model Path.A model path is a combination of the key properties values qualified by the class name. It is solely described by CIM elements and is absolutely implementation-independent. It is used to describe the path to a particular object or to identify a particular object within a namespace. The name of any object is a concatenation of named key property values, including all key values of its scoping objects.. When the class is weak with respect to another class, the model path includes all key properties from the scoping objects.&nbsp;</P>
2513           <P>The syntax of Model Path is:</P>
2514           <P>&lt;Qualifyingclass&gt;.&lt;key1&gt;=&lt;value1&gt;[,&lt;keyx&gt;=&lt;valuex&gt;]*</P>
2515           <LI><A NAME="_Toc453585014"></FONT><B><I>Specifying the Object Name</A></LI></OL>
2516           </OL>
2517           </OL>
2518           <DIR>
2519           <DIR>
2520           
2521 karl  1.1 </B></I><FONT SIZE=3><P>There are various mechanisms for specifying the object name details for any class instance or any association reference in a MOF file.</P>
2522           <P>The model path is specified for object and association differently. For objects (instances of classes), the model path is the combination of property value pairs that are marked with the KEY qualifier. So the model path for the following is: "ex_sampleClass.label1=9921,label2=8821". Since the order of the key properties is not significant, the model path could also be: "ex_sampleClass.label2=8821,label1=9921".</P><DIR>
2523           
2524           </FONT><FONT FACE="Courier New" SIZE=1><P>Class ex_sampleClass<BR>
2525           {<BR>
2526                   [key]<BR>
2527               uint32 labe11;<BR>
2528                   [key]<BR>
2529               uint32 label2;<BR>
2530               uint32 size;<BR>
2531               uint32 weight;<BR>
2532           };</P>
2533           <P>instance of ex_sampleClass<BR>
2534           {<BR>
2535               label1 = 9921;<BR>
2536               label2 = 8821;<BR>
2537               size = 80;<BR>
2538               weight = 45<BR>
2539           };</P></DIR>
2540           
2541           </FONT><FONT SIZE=3><P>For associations, a model path is used to specify the value of a reference in an INSTANCE OF statement for an association. In the following composedof-association example, the model path "ex_sampleClass.label1=9921,label2=8821" is used to reference an instance of the ex_sampleClass that is playing the role of a composer.</P><DIR>
2542 karl  1.1 
2543           </FONT><FONT FACE="Courier New" SIZE=1><P>    [Association ]<BR>
2544           Class ex_composedof<BR>
2545           {<BR>
2546               composer REF ex_sampleClass;<BR>
2547               component REF ex_sampleClass;<BR>
2548           };</P>
2549           
2550           <P>instance of ex_composedof<BR>
2551           {<BR>
2552               composer = "ex_sampleClass.label1=9921,label2=8821";<BR>
2553               . . .<BR>
2554           }</P></DIR>
2555           
2556           </FONT><FONT SIZE=3><P>A namespace path can be specified for all the INSTANCE OF statements in a file with one of several pragmas or it can be specified on each INSTANCE OF statement using one of several qualifiers. It is also possible to use a combination of pragmas and qualifiers. If qualifiers are used with a pragma, the qualifier overrides the details specified by the pragma.</P>
2557           <P>There are two reasons there are several pragma or qualifiers for specifying a namespace path. First, the namespace path information can be about the implementation hosting the CIM information (SOURCE qualifier or pragma) or it can be about another implementation (NONLOCAL qualifier or pragma). Second, for association references, the namespace type and namespace handle can be specified together (using the SOURCE or NONLOCAL qualifier/pragma) or separately (using the SOURCETYPE or NONLOCALTYPE qualifier/pragma). When the namespace handle is separated from the namespace type, it is specified as a part of the string for the reference value using the following syntax:</P><DIR>
2558           
2559           </FONT><FONT FACE="Courier New" SIZE=1><P>&lt;namespacehandle&gt;:&lt;modelpath&gt;</P></DIR>
2560           
2561           </FONT><FONT SIZE=3><P>The following table summarizes these situations.</P></DIR>
2562           </DIR>
2563 karl  1.1 </FONT>
2564           <P ALIGN="CENTER"><CENTER><TABLE BORDER CELLSPACING=1 CELLPADDING=7 WIDTH=619>
2565           <TR><TD WIDTH="43%" VALIGN="TOP">
2566           <B><FONT SIZE=3><P>Qualifier / Pragma</B></FONT></TD>
2567           <TD WIDTH="17%" VALIGN="TOP">
2568           <B><FONT SIZE=3><P>Class Instance</B></FONT></TD>
2569           <TD WIDTH="40%" VALIGN="TOP">
2570           <B><FONT SIZE=3><P>Association Instance</B></FONT></TD>
2571           </TR>
2572           <TR><TD WIDTH="43%" VALIGN="TOP">
2573           <FONT SIZE=3><P>Source(<BR>
2574           &lt;namespacetype&gt;://&lt;namespace_handle&gt;)NonLocal(<BR>
2575           &lt;namespacetype&gt;://&lt;namespace_handle&gt;)</FONT></TD>
2576           <TD WIDTH="17%" VALIGN="TOP">
2577           <FONT SIZE=3><P>Allowed.</FONT></TD>
2578           <TD WIDTH="40%" VALIGN="TOP">
2579           <FONT SIZE=3><P>When this is used, the string value for the references contains the model path.&nbsp;&nbsp;The complete object name is calculated by concatenating the string specified with the Source qualifier with ":" followed by the value of the model path specified by the reference.</FONT></TD>
2580           </TR>
2581           <TR><TD WIDTH="43%" VALIGN="TOP">
2582           <FONT SIZE=3><P>SourceType(&lt;namespacetype&gt;)&nbsp;NonLocalType(&lt;namespacetype&gt;)</FONT></TD>
2583           <TD WIDTH="17%" VALIGN="TOP">
2584 karl  1.1 <FONT SIZE=3><P>Not Permitted. However, when specified as a pragma, any INSTANCE OF statements for classes must have a Source or NonLocal qualifier.&nbsp;</FONT></TD>
2585           <TD WIDTH="40%" VALIGN="TOP">
2586           <FONT SIZE=3><P>When SourceType or NonLocalType are used, the string value for a reference is to have the form &lt;namespace_handle&gt;":"&lt;modelpath&gt;</FONT></TD>
2587           </TR>
2588           </TABLE>
2589           </CENTER></P>
2590           
2591           <FONT SIZE=3><P>&nbsp;</P>
2592           <OL>
2593           <OL>
2594           
2595           <LI><A NAME="_Toc453585015"></FONT><B><FONT SIZE=4>Specifying Object Names in MOF Files</A></LI>
2596           </B></FONT><FONT SIZE=3><P>The object name can be used as the value for object references and for object queries. </P>
2597           <OL>
2598           
2599           <LI><A NAME="_Toc401008293"><A NAME="_Toc404410919"><A NAME="_Toc453585016"></FONT><B><I>Synchronizing Namespaces</A></A></A></LI>
2600           </B></I><FONT SIZE=3><P>When a MOF is loaded into a system that is able to access and manipulate the source implementation, a higher level of integration is possible between two CIM-based implementations. In particular, the receiving implementation can synchronize changes with the sending implementation. This situation is shown in this figure and requires a way to record information about the namespace path of the source in the MOF. The arrow labeled "Dynamic Access to Loaded Information" implies that Mgmt_ABC has the capability to access information about an instance of Mgmt_X because it understands Mgmt_X's access protocol. All it must know is the handle (namespace path) for the source.</P>
2601           <P>The following figure is a sample MOF file for the situation illustrated in the previous figure. Notice the various uses of the SOURCE pragma and the SOURCE qualifier.</P>
2602           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image13.gif" WIDTH=479 HEIGHT=359></P>
2603           <I><P ALIGN="CENTER"><A NAME="_Toc453585049">Figure -1 Namespace Path</A></P>
2604           </I></FONT><FONT SIZE=3><P> The namespace path can be provided in one of two ways: 1) a qualifier on each object and association or 2) a pragma. The value for the pragma and the qualifier is exactly the same:</P>
2605 karl  1.1 </FONT><FONT FACE="Courier New" SIZE=1><P>Source(&lt;namespacetype&gt;:\\&lt;namespace_handle&gt;)</P>
2606           </FONT><FONT SIZE=3><P>When the information is provided as a pragma, it is assumed to be the same for all instances in the MOF file. This pragma is shown in this figure for the circle and triangle example:</P></FONT>
2607           <TABLE CELLSPACING=0 BORDER=0 CELLPADDING=7 WIDTH=636>
2608           <TR><TD WIDTH="40%" VALIGN="TOP" HEIGHT=60>
2609           <FONT FACE="Courier New" SIZE=1><P>#pragma source("Mgmt_X://EastCoast")</P>
2610           
2611           <P>class Figs_Circle</P>
2612           <P>{<BR>
2613                   [key]<BR>
2614               uint32 Name;<BR>
2615               string Color;<BR>
2616           };</P>
2617           
2618           <P>class Figs_Triangle<BR>
2619           {<BR>
2620                   [key]<BR>
2621               uint32 Label;<BR>
2622               string Color;<BR>
2623               uint32 Area;<BR>
2624           };</P>
2625           
2626 karl  1.1 <P>    [Association]<BR>
2627           class Figs_CircleToTriangle<BR>
2628           {<BR>
2629               Figs_Circle REF ACircle;<BR>
2630               Figs_Triangle REF ATriangle;<BR>
2631           };</P>
2632           
2633           <P>    [Association]<BR>
2634           class Figs_Covers<BR>
2635           {<BR>
2636               Figs_Triangle REF Over;<BR>
2637               Figs_Triangle REF Under;<BR>
2638           };</FONT></TD>
2639           <TD WIDTH="60%" VALIGN="TOP" HEIGHT=60>
2640           <FONT FACE="Courier New" SIZE=1><P>instance of Figs_Triangle {Label=2;Color="Blue";Area=12};<BR>
2641           instance of Figs_Triangle {Label=4;Color="Blue";Area=12};<BR>
2642           instance of Figs_Circle {Name=1;Color="Blue"};<BR>
2643           instance of Figs_Circle {Name=3;Color="Blue"};<BR>
2644           instance of Figs_Circle {Name=5;Color="Blue"};</P>
2645           
2646           <P>instance of Figs_CircleToTriangle<BR>
2647 karl  1.1 {<BR>
2648               ACircle="Figs_Circle.Name=1";<BR>
2649               ATriangle="Figs_Triangle.Label=2";<BR>
2650           };</P>
2651           
2652           <P>instance of Figs_CircleToTriangle<BR>
2653           {<BR>
2654               ACircle="Figs_Circle.Name=5";<BR>
2655               ATriangle="Figs_Triangle.Label=2";<BR>
2656           };</P>
2657           
2658           <P>    [SourceType("Mgmt_X") ]<BR>
2659           instance of Figs_CircleToTriangle<BR>
2660           {<BR>
2661               ACircle="EastCoast:Figs_Circle.Name=5";<BR>
2662               ATriangle="EastCoast:Figs_Triangle.Label=4";<BR>
2663           };</P>
2664           
2665           <P>instance of Figs_Covers<BR>
2666           {<BR>
2667                   [SourceType("Mgmt_X") ]<BR>
2668 karl  1.1     Over="EastCoast:Figs_Triangle.Label=2";<BR>
2669               Under="Figs_Triangle.Label=4";<BR>
2670           };</FONT></TD>
2671           </TR>
2672           </TABLE>
2673           
2674           <I><FONT SIZE=2><P ALIGN="CENTER"><A NAME="_Toc453585050">Figure -2 Pragma Example</A></P>
2675           </I></FONT><FONT SIZE=3><P>The import operation must preserve namespace path information so if either this platform or another platform understands how to manipulate an implementation of type &lt;namespacetype&gt; and has access to the &lt;namespace_handle&gt;, it can manipulate one or more of the instances in the source. </P>
2676           <P>The namespace path can also be specified using the instance-based Source qualifier. This qualifier marks a particular object or an association. <A NAME="_Toc394472005"><A NAME="_Toc397084534">This is illustrated in Figure 5-3. Note: When a pragma is specified and a qualifier is specified, the qualifier overrides the pragma. </P></FONT>
2677           <TABLE CELLSPACING=0 BORDER=0 CELLPADDING=7 WIDTH=618>
2678           <TR><TD WIDTH="37%" VALIGN="TOP" HEIGHT=60>
2679           <FONT FACE="Courier New" SIZE=1><P>Class Figs_Circle<BR>
2680           {<BR>
2681                   [key]<BR>
2682               uint32 Name;<BR>
2683               string Color;<BR>
2684           };</P>
2685           
2686           <P>class Figs_Triangle<BR>
2687           {<BR>
2688                   [key]<BR>
2689 karl  1.1     uint32 Label;<BR>
2690               string Color;<BR>
2691               uint32 Area;<BR>
2692           };</P>
2693           
2694           <P>    [Association]<BR>
2695           class Figs_CircleToTriangle<BR>
2696           {<BR>
2697               Figs_Circle REF ACircle;<BR>
2698               Figs_Triangle REF ATriangle;<BR>
2699           };</P>
2700           
2701           <P>    [Association]<BR>
2702           class Figs_Covers<BR>
2703           {<BR>
2704               Figs_Triangle REF Over;<BR>
2705               Figs_Triangle REF Under;<BR>
2706           };</FONT></TD>
2707           <TD WIDTH="63%" VALIGN="TOP" HEIGHT=60>
2708           <FONT FACE="Courier New" SIZE=1><P>    [source("Mgmt_X://EastCoast")]<BR>
2709           instance of Figs_Triangle {Label=2;Color="Blue";Area=12};</P>
2710 karl  1.1 
2711           <P>    [source("Mgmt_X://EastCoast")]<BR>
2712           instance of Figs_Triangle {Label=4;Color="Blue";Area=12};</P>
2713           
2714           <P>    [source("Mgmt_X://EastCoast")]<BR>
2715           instance of Figs_Circle {Name=1;Color="Blue"};</P>
2716           
2717           <P>    [source("Mgmt_X://EastCoast")]<BR>
2718           instance of Figs_Circle {Name=3;Color="Blue"};</P>
2719           
2720           <P>    [source("Mgmt_X://EastCoast")]<BR>
2721           instance of Figs_Circle {Name=5;Color="Blue"};</P>
2722           
2723           <P>    [source("Mgmt_X://EastCoast")]<BR>
2724           instance of Figs_CircleToTriangle<BR>
2725           {<BR>
2726               ACircle="Figs_Circle.Name=1";<BR>
2727               ATriangle="Figs_Triangle.Label=2";<BR>
2728           };</P>
2729           
2730           <P>    [source("Mgmt_X://EastCoast")]<BR>
2731 karl  1.1 instance of Figs_CircleToTriangle<BR>
2732           {<BR>
2733               ACircle="Figs_Circle.Name=5";<BR>
2734               ATriangle="Figs_Triangle.Label=2";<BR>
2735           };</P>
2736           
2737           <P>    [source("Mgmt_X://EastCoast")]<BR>
2738           instance of Figs_CircleToTriangle<BR>
2739           {<BR>
2740               ACircle="Figs_Circle.Name=5";<BR>
2741               ATriangle="Figs_Triangle.Label=4";<BR>
2742           };</P>
2743           
2744           <P>    [source("Mgmt_X://EastCoast")]<BR>
2745           instance of Figs_Covers<BR>
2746           {<BR>
2747                   [nonlocal("Mgmt_X://EastCoast")]<BR>
2748               Over="Figs_Triangle.Label=2";<BR>
2749               Under="Figs_Triangle.Label=4";<BR>
2750           };&nbsp;</FONT></TD>
2751           </TR>
2752 karl  1.1 </TABLE>
2753           
2754           <I><FONT SIZE=2><P ALIGN="CENTER"><A NAME="_Ref413143363"><A NAME="_Toc453585051">Figure -3</A> Namespace Path Example</A></P>
2755           <LI><A NAME="_Toc401008294"><A NAME="_Toc404410920"><A NAME="_Toc453585017"></A></FONT><B>Building References Between Management Systems</A></A></A></A></LI></OL>
2756           </OL>
2757           </OL>
2758           <DIR>
2759           <DIR>
2760           
2761           </B></I><FONT SIZE=3><P>The Nonlocal instance qualifier for references allows a targeted management system to selectively import instances in a MOF file. This is used when a targeted management system knows how to access a source management platform (in other words, it has verified, using the source pragma or qualifer, that it knows how to access the source platform) and it does not want to store some class instances locally. Using the circle and triangle MOF as an example, the target management system, Mgmt_ABC, only wants to store circle information locally. When a Mgmt_ABC user requests information about a triangle, the Mgmt_ABC implementation contacts the source platform Mgmt_X to get the instance information:</P></DIR>
2762           </DIR>
2763           
2764           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image14.gif" WIDTH=478 HEIGHT=359></P><DIR>
2765           <DIR>
2766           
2767           <I><P ALIGN="CENTER"><A NAME="_Toc453585052">Figure -1 References Between Management Systems</A></P>
2768           </I></FONT><FONT SIZE=3><P>The Nonlocal qualifier is similar to the Source qualifier since its value is a       </P><DIR>
2769           
2770           </FONT><FONT FACE="Courier New" SIZE=1><P>&lt;namespacetype&gt;:\\&lt;namespacehandle&gt;  </P></DIR>
2771           
2772           </FONT><FONT SIZE=3><P>string. The content of Mgmt_ABC after importing only circle information looks like this:</P></DIR>
2773 karl  1.1 </DIR>
2774           </FONT>
2775           <TABLE CELLSPACING=0 BORDER=0 CELLPADDING=7 WIDTH=624>
2776           <TR><TD WIDTH="37%" VALIGN="TOP" HEIGHT=322>
2777           <FONT FACE="Courier New" SIZE=1><P>Class Figs_Circle<BR>
2778           {<BR>
2779                   [key]<BR>
2780               uint32 Name;<BR>
2781               string Color;<BR>
2782           };</P>
2783           
2784           <P>class Figs_Triangle<BR>
2785           {<BR>
2786                   [key]<BR>
2787               uint32 Label;<BR>
2788               string Color;<BR>
2789               uint32 Area;<BR>
2790           };</P>
2791           
2792           <P>    [Association]<BR>
2793           class Figs_CircleToTriangle<BR>
2794 karl  1.1 {<BR>
2795               Figs_Circle REF ACircle;<BR>
2796               Figs_Triangle REF ATriangle;<BR>
2797           };</P>
2798           
2799           <P>    [Association]<BR>
2800           class Figs_Covers<BR>
2801           {<BR>
2802               Figs_Triangle REF Over;<BR>
2803               Figs_Triangle REF Under;<BR>
2804           };</FONT></TD>
2805           <TD WIDTH="63%" VALIGN="TOP" HEIGHT=322>
2806           <FONT FACE="Courier New" SIZE=1><P>instance of Figs_Circle {Name=1; Color="Blue"};<BR>
2807           instance of Figs_Circle {Name=3; Color="Blue"};<BR>
2808           instance of Figs_Circle {Name=5; Color="Blue"};</P>
2809           
2810           <P>instance of Figs_CircleToTriangle<BR>
2811           {<BR>
2812               ACircle="Figs_Circle.Name=1";<BR>
2813                   [nonlocal("Mgmt_X://EastCoast")]<BR>
2814               ATriangle="Figs_Triangle.Label=2";<BR>
2815 karl  1.1 };</P>
2816           
2817           <P>instance of Figs_CircleToTriangle<BR>
2818           {<BR>
2819               ACircle="Figs_Circle.Name=5";<BR>
2820                   [nonlocal("Mgmt_X://EastCoast")]<BR>
2821               ATriangle="Figs_Triangle.Label=2";<BR>
2822           };</P>
2823           
2824           <P>instance of Figs_CircleToTriangle<BR>
2825           {<BR>
2826               ACircle="Figs_Circle.Name=5";<BR>
2827                   [nonlocaltype("Mgmt_X")]<BR>
2828               ATriangle="EastCoast:Triangle.Label=4";<BR>
2829           };</P>
2830           
2831           <P>    [nonlocal("Mgmt_X://EastCoast")]<BR>
2832           Instance of Figs_Covers<BR>
2833           {<BR>
2834                   [nonlocal("Mgmt_X://EastCoast")]<BR>
2835               Over="Figs_Triangle.Label=2";</P>
2836 karl  1.1 <P>        [nonlocal("Mgmt_X://EastCoast")]<BR>
2837               Under="Figs_Triangle.Label=4";<BR>
2838           };</FONT></TD>
2839           </TR>
2840           </TABLE>
2841           <DIR>
2842           <DIR>
2843           
2844           <I><FONT SIZE=2><P ALIGN="CENTER"><A NAME="_Toc453585053">Figure -2 Example of Nonlocal Qualifier</A></P>
2845           </I></FONT><FONT SIZE=3><P>In particular, the two instances of triangle are not imported, and the references to triangle in the associations are also marked with the nonlocal qualifier.</P>
2846           <P>The above schema also allows intelligent import operations to avoid importing all the objects if there are associations between the objects. </P></DIR>
2847           </DIR>
2848           
2849           <OL>
2850           
2851           <LI><A NAME="_Ref406248626"><A NAME="_Toc406249731"></LI>
2852           </FONT><B><FONT SIZE=5><LI><A NAME="_Ref412223830"><A NAME="_Ref412223851"><A NAME="_Ref412223880"><A NAME="_Toc453585018">Mapping Existing Models Into CIM</A></A></A></A></A></A></LI>
2853           </B></FONT><FONT SIZE=3><P>Existing models have their own meta model and model. There are three types of mapping that can occur between meta schemas: technique, recast and domain. Each of these mappings can be applied when converting from MIF syntax to MOF syntax.</P>
2854           <OL>
2855           
2856           <LI><A NAME="_Toc406249732"><A NAME="_Toc453585019"></FONT><B><FONT SIZE=4>Technique Mapping</A></A></LI>
2857 karl  1.1 </B></FONT><FONT SIZE=3><P>A technique mapping provides a mapping that uses the CIM meta-model constructs to describe the source modeling technique’s meta constructs (for example, MIF, GDMO and SMI). Essentially, the CIM meta model is a meta meta-model for the source technique. </P>
2858           </FONT><FONT SIZE=2>
2859           <P ALIGN="CENTER"><IMG SRC="Image15.gif" WIDTH=272 HEIGHT=143></P>
2860           <I><P ALIGN="CENTER"><A NAME="_Toc453585054">Figure -1 Technique Mapping Example</A></P>
2861           </I></FONT><FONT SIZE=3><P>The DMTF uses the management information format (MIF) as the meta model to describe distributed management information in a common way. Therefore, it is meaningful to describe a technique mapping in which the CIM meta model is used to describe the MIF syntax. </P>
2862           <P>The mapping presented here takes the important types that can appear in a MIF file and then creates classes for them. Thus, component, group, attribute, table and enum are expressed in the CIM meta model as classes. In addition, associations are defined to document how these are combined.  Figure 6-2 illustrates the results:</P>
2863           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image16.gif" WIDTH=476 HEIGHT=357></P>
2864           <I><P ALIGN="CENTER"><A NAME="_Ref412653304"><A NAME="_Toc453585055">Figure -2</A> MIF Technique Mapping Example</A></P>
2865           <LI><A NAME="_Toc406249733"><A NAME="_Toc453585020"></I></FONT><B><FONT SIZE=4>Recast Mapping</A></A></LI>
2866           </B></FONT><FONT SIZE=3><P>A<B> </B>recast<B> </B>mapping provides a mapping of the sources’ meta constructs into the targeted meta constructs, so that a model expressed in the source can be translated into the target. The major design work is to develop a mapping between the sources’ meta model and the CIM meta model. Once this is done, the source expressions are recast.</P>
2867           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image17.gif" WIDTH=435 HEIGHT=222></P>
2868           <I><P ALIGN="CENTER"><A NAME="_Toc453585056">Figure -1 Recast mapping</A></P>
2869           </I></FONT><FONT SIZE=3><P>This is an example of a recast mapping for MIF, assuming: </P>
2870           </FONT><FONT FACE="Courier New" SIZE=1><P>DMI attributes -&gt; CIM properties</P>
2871           <P>DMI key attributes -&gt; CIM key properties</P>
2872           <P>DMI groups -&gt; CIM classes </P>
2873           <P>DMI components -&gt; CIM classes</P>
2874           </FONT><FONT SIZE=3><P>The standard DMI ComponentID group might be recast into a corresponding CIM class:</P>
2875           </FONT><FONT FACE="Courier New" SIZE=1><P>Start Group<BR>
2876           Name = "ComponentID"<BR>
2877           Class = "DMTF|ComponentID|001"<BR>
2878 karl  1.1 ID = 1<BR>
2879           Description = "This group defines the attributes common to all "<BR>
2880           &#9;      "components.  This group is required."<BR>
2881           Start Attribute<BR>
2882           &#9;Name = "Manufacturer"<BR>
2883           &#9;ID = 1<BR>
2884           &#9;Description = "Manufacturer of this system."<BR>
2885           &#9;Access = Read-Only<BR>
2886           &#9;Storage = Common<BR>
2887           &#9;Type = DisplayString(64)<BR>
2888           &#9;Value = ""<BR>
2889           End Attribute<BR>
2890           Start Attribute<BR>
2891           &#9;Name = "Product"<BR>
2892           &#9;ID = 2<BR>
2893           &#9;Description = "Product name for this system."<BR>
2894           &#9;Access = Read-Only<BR>
2895           &#9;Storage = Common<BR>
2896           &#9;Type = DisplayString(64)<BR>
2897           &#9;Value = ""<BR>
2898           End Attribute<BR>
2899 karl  1.1 Start Attribute<BR>
2900           &#9;Name = "Version"<BR>
2901           &#9;ID = 3<BR>
2902           &#9;Description = "Version number of this system."<BR>
2903           &#9;Access = Read-Only<BR>
2904           &#9;Storage = Specific<BR>
2905           &#9;Type = DisplayString(64)<BR>
2906           &#9;Value = ""<BR>
2907           End Attribute<BR>
2908           Start Attribute<BR>
2909           &#9;Name = "Serial Number"<BR>
2910           &#9;ID = 4<BR>
2911           &#9;Description = "Serial number for this system."<BR>
2912           &#9;Access = Read-Only<BR>
2913           &#9;Storage = Specific<BR>
2914           &#9;Type = DisplayString(64)<BR>
2915           &#9;Value = ""<BR>
2916           End Attribute<BR>
2917           Start Attribute<BR>
2918           &#9;Name = "Installation"<BR>
2919           &#9;ID = 5<BR>
2920 karl  1.1 &#9;Description = "Component installation time and date."<BR>
2921           &#9;Access = Read-Only<BR>
2922           &#9;Storage = Specific<BR>
2923           &#9;Type = Date<BR>
2924           &#9;Value = ""<BR>
2925           End Attribute<BR>
2926           Start Attribute<BR>
2927           &#9;Name = "Verify"<BR>
2928           &#9;ID = 6<BR>
2929           &#9;Description = "A code that provides a level of verification that the "<BR>
2930            &#9;&#9;       "component is still installed and working."<BR>
2931           &#9;Access = Read-Only<BR>
2932           &#9;Storage = Common<BR>
2933           &#9;Type = Start ENUM<BR>
2934           &#9;&#9;0 = "An error occurred; check status code."<BR>
2935           &#9;&#9;1 = "This component does not exist."<BR>
2936           &#9;&#9;2 = "Verification is not supported."<BR>
2937           &#9;&#9;3 = "Reserved."<BR>
2938           &#9;&#9;4 = "This component exists, but the functionality is untested."<BR>
2939           &#9;&#9;5 = "This component exists, but the functionality is unknown."<BR>
2940           &#9;&#9;6 = "This component exists, and is not functioning correctly."<BR>
2941 karl  1.1 &#9;&#9;7 = "This component exists, and is functioning correctly."<BR>
2942           &#9;End ENUM<BR>
2943           &#9;Value = 1<BR>
2944           End Attribute<BR>
2945           End Group</P>
2946           </FONT><FONT SIZE=3><P>A corresponding CIM class might be the following.  Note that properties in the example include an ID qualifier to represent the corresponding DMI attribute’s ID.  Here, a user-defined qualifier may be necessary.</P>
2947           </FONT><FONT FACE="Courier New" SIZE=1><P>[Name ("ComponentID"), ID (1), Description (<BR>
2948               "This group defines the attributes common to all components.  "</P>
2949           <P>    "This group is required.")]</P>
2950           <P><BR>
2951           class DMTF|ComponentID|001 {</P>
2952           <P>    [ID (1), Description ("Manufacturer of this system."), maxlen (64)] <BR>
2953               string Manufacturer;<BR>
2954               [ID (2), Description ("Product name for this system."), maxlen (64)] <BR>
2955               string Product;<BR>
2956               [ID (3), Description ("Version number of this system."), maxlen (64)] <BR>
2957               string Version;<BR>
2958               [ID (4), Description ("Serial number for this system."), maxlen (64)] <BR>
2959               string Serial_Number;<BR>
2960               [ID (5), Description("Component installation time and date.")]<BR>
2961               datetime Installation;<BR>
2962 karl  1.1     [ID (6), Description("A code that provides a level of verification "<BR>
2963                        "that the component is still installed and working."),</P>
2964           <P>             Value (1)] <BR>
2965               string Verify;<BR>
2966           };</P>
2967           <LI><A NAME="_Toc406249734"><A NAME="_Toc453585021"></FONT><B><FONT SIZE=4>Domain Mapping</A></A></LI>
2968           </B></FONT><FONT SIZE=3><P>A domain mapping takes a source expressed in a particular technique and maps its content into either the core or common models, or extension sub-schemas of the CIM. This mapping does not rely heavily on a meta-to-meta mapping; it is primarily a content-to-content mapping. In one case, the mapping is actually a re-expression of content in a more common way using a more expressive technique.</P>
2969           <P>This is an example of how CIM properties can be supplied by DMI, using information from the DMI disks group ("DMTF|Disks|002"). For a hypothetical CIM disk class, the CIM properties are expressed as:</P></FONT>
2970           <P ALIGN="RIGHT"><TABLE BORDER CELLSPACING=1 BORDERCOLOR="#000000" CELLPADDING=7 WIDTH=518>
2971           <TR><TD WIDTH="40%" VALIGN="TOP">
2972           <FONT FACE="Courier New" SIZE=1><P>CIM "Disk" property</FONT></TD>
2973           <TD WIDTH="60%" VALIGN="TOP">
2974           <FONT FACE="Courier New" SIZE=1><P>Can be sourced from DMI group/attribute</FONT></TD>
2975           </TR>
2976           <TR><TD WIDTH="40%" VALIGN="TOP">
2977           <FONT FACE="Courier New" SIZE=1><P>StorageType             </P>
2978           <P>StorageInterface        </P>
2979           <P>RemovableDrive          </P>
2980           <P>RemovableMedia          </P>
2981           <P>DiskSize                </FONT></TD>
2982           <TD WIDTH="60%" VALIGN="TOP">
2983 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>"MIF.DMTF|Disks|002.1"</P>
2984           <P>"MIF.DMTF|Disks|002.3"</P>
2985           <P>"MIF.DMTF|Disks|002.6"</P>
2986           <P>"MIF.DMTF|Disks|002.7"</P>
2987           <P>"MIF.DMTF|Disks|002.16"</FONT></TD>
2988           </TR>
2989           </TABLE>
2990           </P>
2991           
2992           <FONT FACE="Courier" SIZE=1><P>&nbsp;</P>
2993           <LI><A NAME="_Ref406248815"><A NAME="_Toc406249735"><A NAME="_Toc453585022"></FONT><B><FONT SIZE=4>Mapping Scratch Pads</A></A></A></LI></OL>
2994           
2995           </B></FONT><FONT SIZE=3><P>In general, when the content of models are mapped between different meta schemas, information gets lost or is missing. To fill this gap, &quot;scratch pads&quot; are expressed in the CIM meta model using qualifiers, which are actually extensions to the meta model (for example, see section 2.5.5 Mapping MIF Attributes and section 2.5.6 Mapping Generic Data to CIM Properties). These scratch pads are critical to the exchange of core, common and extension model content with the various technologies used to build management applications.</P>
2996           </FONT><B><FONT SIZE=5><LI></LI>
2997           <LI><A NAME="_Ref406249436"><A NAME="_Ref406249455"><A NAME="_Toc406249736"><A NAME="_Toc453585023">Repository Perspective</A></A></A></A></LI></OL>
2998           <DIR>
2999           <DIR>
3000           
3001           </B></FONT><FONT SIZE=3><P>This section provides a basic description of a repository and a complete picture of the potential exploitation of it. A repository stores definitional and/or structural information, and includes the capability to extract the definitions in a form that is useful to application developers. Some repositories allow the definitions to be imported into and exported from the repository in multiple forms. The notions of importing and exporting definition can be refined so that they distinguish between three types of mappings.</P>
3002           <P>Using the mapping definitions in Section 6, the repository can be organized into the four partitions (meta, technique, recast and domain). </P></DIR>
3003           </DIR>
3004 karl  1.1 
3005           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image18.gif" WIDTH=624 HEIGHT=466></P><DIR>
3006           <DIR>
3007           
3008           <I><P ALIGN="CENTER"><A NAME="_Toc453585057">Figure -1 Repository Partitions</A></P>
3009           </I></FONT><FONT SIZE=3><P>The repository partitions have the following characteristics:</P></DIR>
3010           </DIR>
3011           
3012           
3013           <UL>
3014           
3015           <UL>
3016           <LI>Each partition is discrete. The meta partition refers to the definitions of the CIM meta model. The technique partition refers to definitions that are loaded using technique mappings. The recast partition refers to definitions that are loaded using recast mappings. The domain partition refers to the definitions that are associated with the core and common models, and Extension schemas.</LI>
3017           <LI>The technique and recast partitions can be organized into multiple sub-partitions in order to capture each source uniquely. For example, there would be a technique sub-partition for each unique meta language encountered (that is, one for MIF, GDMO, SMI, and so on). In the re-cast partition, there would be a sub-partition for each meta language. </LI>
3018           <LI>The act of importing the content of an existing source can result in entries in the recast or domain partition. </LI></UL>
3019           </UL>
3020           
3021           <OL>
3022           <OL>
3023           
3024           <LI><A NAME="_Toc406249737"><A NAME="_Toc453585024"></FONT><B><FONT SIZE=4>DMTF MIF Mapping Strategies</A></A></LI></OL>
3025 karl  1.1 </OL>
3026           <DIR>
3027           <DIR>
3028           
3029           </B></FONT><FONT SIZE=3><P>Assume the meta-model definition and the baseline for the CIM schema are complete.  The next step is to map another source of management information (such as standard groups) into the repository.  The primary objective is to do the work required to import one or more of the standard group(s).</P>
3030           <P>The possible import scenarios for a DMTF standard group are:</P></DIR>
3031           </DIR>
3032           
3033           <OL>
3034           
3035           <OL>
3036           
3037           <I><LI>To Technique Partition</I>: Create a technique mapping for the MIF syntax. This mapping would be the same for all standard groups and would only need to be updated if the MIF syntax changed.<I> </LI>
3038           <LI>To Recast Partition</I>: Create a recast mapping from a particular standard group into a sub-partition of the recast partition. This mapping would allow the entire contents of the selected group to be loaded into a sub-partition of the recast partition. The same algorithm can be used to map additional standard groups into that same sub-partition.</LI>
3039           <I><LI>To Domain Partition</I>: Create a Domain Mapping for the content of a particular standard group that overlaps with the content of the CIM schema.</LI>
3040           <I><LI>To Domain Partition</I>: Create a Domain Mapping for the content of a particular standard group that does not overlap with CIM’s schema into an extension sub-schema.</LI>
3041           <I><LI>To Domain Partition</I>: Propose extensions to the content of the CIM schema and then perform Steps 3 and/or 4.</LI></OL>
3042           </OL>
3043           <DIR>
3044           <DIR>
3045           
3046 karl  1.1 <P>Any combination of these five scenarios can be initiated by a team that is responsible for mapping an existing source into the CIM repository. There are many other details that must be addressed as the content of any of the sources changes and/or when the core or common model changes.</P>
3047           <P>Assuming numerous existing sources have been imported using all the import scenarios, now look at the export side. Ignoring the technique partition, the possible scenarios are:</P></DIR>
3048           </DIR>
3049           
3050           <OL>
3051           
3052           <OL>
3053           
3054           <I><LI>From Recast Partition</I>: Create a recast mapping for a sub-partition in the recast partition to a standard group (that is, inverse of import 2). The desired method would be to use the recast mapping to translate a standard group into a GDMO definition. </LI>
3055           <I><LI>From Recast Partition</I>: Create a Domain Mapping for one of the recast sub-partitions to a known management model that was not the original source for the content that overlaps. </LI>
3056           <I><LI>From Domain Partition</I>: Create a recast mapping for the complete content of the CIM to a selected technique (for MIF, this results in a non-standard group).</LI>
3057           <I><LI>From Domain Partition</I>: Create a Domain Mapping for the content of the CIM schema that overlaps with the content of an existing management model</LI>
3058           <I><LI>From Domain Partition</I>: Create a Domain Mapping for the entire content of the CIM schema to an existing management model with the necessary extensions.</LI></OL>
3059           </OL>
3060           
3061           <OL>
3062           <OL>
3063           
3064           <LI><A NAME="_Toc406249738"><A NAME="_Toc453585025"></FONT><B><FONT SIZE=4>Recording Mapping Decisions</A></A></LI></OL>
3065           </OL>
3066           <DIR>
3067 karl  1.1 <DIR>
3068           
3069           </B></FONT><FONT SIZE=3><P>In order to understand the role of the scratch pad (see Section 6.4) in the repository, it is necessary to look at the import and export scenarios for the different partitions in the repository (technique, recast and application). These mappings can be organized into two categories: homogeneous and heterogeneous. The homogeneous category includes the mapping where the imported syntax and expressions are the same as the exported (for example, software MIF in and software MIF out). The heterogeneous category addresses the mappings where the imported syntax and expressions are different from the exported (for example, MIF in and GDMO out). For the homogenous category, the information can be recorded by creating qualifiers during an import operation so the content can be exported properly. For the heterogeneous category, the qualifiers must be added after the content is loaded into a partition of the repository. Figure 7-1, shows the X schema imported into the Y schema, and then being homogeneously exported into X or heterogeneously exported into Z. Each of the export arrows works with a different scratch pad.</P>
3070           <P><IMG SRC="Image19.gif" WIDTH=478 HEIGHT=276></P>
3071           </FONT><I><FONT SIZE=2><P ALIGN="CENTER"><A NAME="_Ref412656412"><A NAME="_Toc453585058">Figure -1</A> Homogeneous and Heterogeneous Export</A></P>
3072           </I></FONT><FONT SIZE=3><P>The definition of the heterogeneous category is actually based on knowing how a schema was loaded into the repository. A more general way of looking at this is to think of the export process using one of multiple scratch pads. One of the scratch pads was created when the schema was loaded, and the others were added to handle mappings to schema techniques other than the import source (Figure 7-3).</P>
3073           <P><IMG SRC="Image20.gif" WIDTH=478 HEIGHT=323></P>
3074           </FONT><I><FONT SIZE=2><P ALIGN="CENTER"><A NAME="_Ref412886522"><A NAME="_Toc453585059">Figure -3</A> Scratch Pads and Mapping</A></P>
3075           </I></FONT><FONT SIZE=3><P>Figure 7-3 shows how the scratch pads of qualifiers are used without factoring in the unique aspects of each of the partitions (technique, recast, applications) within the CIM repository. The next step is to put this discussion in the context of these partitions.</P>
3076           <P>For the technique partition, there is no need for a scratch pad since the CIM meta model is used to describe the constructs used in the source meta schema. Therefore, by definition, there is one homogeneous mapping for each meta schema covered by the technique partition. These mappings create CIM objects for the syntactical constructs of the schema and create associations for the ways they can be combined (for example, MIF groups include attributes).</P>
3077           <P>For the recast partition, there are multiple scratch pads for each of the sub-partitions, since one is required for each export target and there can be multiple mapping algorithms for each target. The latter occurs because part of creating a recast mapping involves mapping the constructs of the source into CIM meta-model constructs. Therefore, for the MIF syntax, a mapping must be created for component, group, attribute, and so on, into appropriate CIM meta-model constructs like object, association, property, and so on.  These mappings can be arbitrary. As a specific example, one of the decisions that must be made is whether a group or a component maps into an object. It would be possible to have two different recast mapping algorithms, one that mapped groups into objects with qualifiers that preserved the component, and one that mapped components into objects with qualifiers that preserved the group name for the properties. Therefore, the scratch pads in the recast partition are organized by target technique and employed algorithm.</P>
3078           <P>For the domain partitions, there are two types of mappings. The first is similar to the recast partition in that some portion of the domain partition is mapped into the syntax of another meta schema. These mappings can use the same qualifier scratch pads and associated algorithms that are developed for the recast partition. The second type of mapping facilitates documenting the content overlap between the domain partition and some other model (for example, software groups). These mappings cannot be determined in a generic way at import time; therefore, it is best to consider them in the context of exporting. The mapping uses filters to determine the overlaps and then performs the necessary conversions. The filtering can be done using qualifiers that indicate a particular set of domain partition constructs map into some combination of constructs in the target/source model. The conversions would be documented in the repository using a complex set of qualifiers that capture how to write or insert the overlapped content into the target model. The mapping qualifiers for the domain partition would be organized like the recasting partition for the syntax conversions, and there would be scratch pads for each of the models for documenting overlapping content.</P>
3079           <P>In summary, pick the partition, develop a mapping, and identify the qualifiers necessary to capture potentially lost information when developing mapping details for a particular source.  On the export side, the mapping algorithm checks to see if the content to be exported includes the necessary qualifiers for the logic to work.</P></DIR>
3080           </DIR>
3081           
3082           <OL TYPE="A">
3083           
3084           <LI><A NAME="_Ref374849108"><A NAME="_Ref374862443"><A NAME="_Toc381332570"><A NAME="_Toc382055203"><A NAME="_Toc404410921"><A NAME="_Toc453585026"></FONT><B><FONT SIZE=5>MOF Syntax Grammar Description</A></A></A></A></A></A></LI></OL>
3085           <DIR>
3086           <DIR>
3087           
3088 karl  1.1 </B></FONT><FONT SIZE=3><P>This section contains the grammar for MOF syntax. The grammar is described in the notation defined in [7], with this deviation:  each token may be separated by an arbitrary number of white space characters, except where stated otherwise (at least one tab, carriage return, line feed, form feed or space).</P>
3089           <P>However, while this notation is convenient for describing the MOF syntax clearly, it should be noted that the MOF syntax has been defined to be expressible in an LL(1)-parseable grammar. This has been done to allow low-footprint implementations of MOF compilers.</P>
3090           <P>In addition, note these points:</P></DIR>
3091           </DIR>
3092           
3093           <OL>
3094           
3095           <OL>
3096           
3097           <LI>An empty property list is equivalent to "*".</LI>
3098           <LI>All keywords are case-insensitive.</LI>
3099           <LI>The IDENTIFIER type is used for names of classes, properties, qualifiers, methods and namespaces; the rules governing the naming of classes and properties are to be found in section 1 of Appendix F.</LI>
3100           <LI>A string Value may contain quote (") characters, provided that each is immediately preceded by a backslash (\) character.</LI></OL>
3101           </OL>
3102           
3103           </FONT>
3104           <TABLE CELLSPACING=0 BORDER=0 CELLPADDING=7 WIDTH=612>
3105           <TR><TD WIDTH="26%" VALIGN="TOP">
3106           <FONT FACE="Courier New" SIZE=1><P>mofSpecification</FONT></TD>
3107           <TD WIDTH="4%" VALIGN="TOP">
3108           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3109 karl  1.1 <TD WIDTH="70%" VALIGN="TOP">
3110           <FONT FACE="Courier New" SIZE=1><P>*mofProduction</FONT></TD>
3111           </TR>
3112           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3113           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3114           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3115           </TR>
3116           <TR><TD WIDTH="26%" VALIGN="TOP">
3117           <FONT FACE="Courier New" SIZE=1><P>mofProduction</FONT></TD>
3118           <TD WIDTH="4%" VALIGN="TOP">
3119           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3120           <TD WIDTH="70%" VALIGN="TOP">
3121           <FONT FACE="Courier New" SIZE=1><P>compilerDirective    |</FONT></TD>
3122           </TR>
3123           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3124           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3125           <TD WIDTH="70%" VALIGN="TOP">
3126           <FONT FACE="Courier New" SIZE=1><P>classDeclaration     |</FONT></TD>
3127           </TR>
3128           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3129           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3130 karl  1.1 <TD WIDTH="70%" VALIGN="TOP">
3131           <FONT FACE="Courier New" SIZE=1><P>assocDeclaration     |</FONT></TD>
3132           </TR>
3133           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3134           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3135           <TD WIDTH="70%" VALIGN="TOP">
3136           <FONT FACE="Courier New" SIZE=1><P>indicDeclaration     |</FONT></TD>
3137           </TR>
3138           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3139           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3140           <TD WIDTH="70%" VALIGN="TOP">
3141           <FONT FACE="Courier New" SIZE=1><P>qualifierDeclaration |</FONT></TD>
3142           </TR>
3143           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3144           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3145           <TD WIDTH="70%" VALIGN="TOP">
3146           <FONT FACE="Courier New" SIZE=1><P>instanceDeclaration</FONT></TD>
3147           </TR>
3148           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3149           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3150           <TD WIDTH="70%" VALIGN="TOP">
3151 karl  1.1 <FONT FACE="Courier New" SIZE=1><P> </FONT></TD>
3152           </TR>
3153           <TR><TD WIDTH="26%" VALIGN="TOP">
3154           <FONT FACE="Courier New" SIZE=1><P>compilerDirective</FONT></TD>
3155           <TD WIDTH="4%" VALIGN="TOP">
3156           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3157           <TD WIDTH="70%" VALIGN="TOP">
3158           <FONT FACE="Courier New" SIZE=1><P>PRAGMA pragmaName  "(" pragmaParameter ")"</FONT></TD>
3159           </TR>
3160           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3161           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3162           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3163           </TR>
3164           <TR><TD WIDTH="26%" VALIGN="TOP">
3165           <FONT FACE="Courier New" SIZE=1><P>pragmaName</FONT></TD>
3166           <TD WIDTH="4%" VALIGN="TOP">
3167           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3168           <TD WIDTH="70%" VALIGN="TOP">
3169           <FONT FACE="Courier New" SIZE=1><P>IDENTIFIER</FONT></TD>
3170           </TR>
3171           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3172 karl  1.1 <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3173           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3174           </TR>
3175           <TR><TD WIDTH="26%" VALIGN="TOP">
3176           <FONT FACE="Courier New" SIZE=1><P>pragmaParameter</FONT></TD>
3177           <TD WIDTH="4%" VALIGN="TOP">
3178           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3179           <TD WIDTH="70%" VALIGN="TOP">
3180           <FONT FACE="Courier New" SIZE=1><P>stringValue</FONT></TD>
3181           </TR>
3182           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3183           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3184           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3185           </TR>
3186           <TR><TD WIDTH="26%" VALIGN="TOP">
3187           <FONT FACE="Courier New" SIZE=1><P>classDeclaration</FONT></TD>
3188           <TD WIDTH="4%" VALIGN="TOP">
3189           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3190           <TD WIDTH="70%" VALIGN="TOP">
3191           <FONT FACE="Courier New" SIZE=1><P>[ qualifierList ]</FONT></TD>
3192           </TR>
3193 karl  1.1 <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3194           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3195           <TD WIDTH="70%" VALIGN="TOP">
3196           <FONT FACE="Courier New" SIZE=1><P>CLASS className [ alias ] [ superClass ]</FONT></TD>
3197           </TR>
3198           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3199           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3200           <TD WIDTH="70%" VALIGN="TOP">
3201           <FONT FACE="Courier New" SIZE=1><P>"{" *classFeature "}" ";"</FONT></TD>
3202           </TR>
3203           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3204           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3205           <TD WIDTH="70%" VALIGN="TOP">
3206           <FONT FACE="Courier New" SIZE=1><P>    </FONT></TD>
3207           </TR>
3208           <TR><TD WIDTH="26%" VALIGN="TOP">
3209           <FONT FACE="Courier New" SIZE=1><P>assocDeclaration</FONT></TD>
3210           <TD WIDTH="4%" VALIGN="TOP">
3211           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3212           <TD WIDTH="70%" VALIGN="TOP">
3213           <FONT FACE="Courier New" SIZE=1><P>"[" ASSOCIATION *( "," qualifier ) "]"</FONT></TD>
3214 karl  1.1 </TR>
3215           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3216           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3217           <TD WIDTH="70%" VALIGN="TOP">
3218           <FONT FACE="Courier New" SIZE=1><P>CLASS className [ alias ] [ superClass ]</FONT></TD>
3219           </TR>
3220           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3221           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3222           <TD WIDTH="70%" VALIGN="TOP">
3223           <FONT FACE="Courier New" SIZE=1><P>"{" *associationFeature "}" ";"</FONT></TD>
3224           </TR>
3225           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3226           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3227           <TD WIDTH="70%" VALIGN="TOP">
3228           <FONT FACE="Courier New" SIZE=1><P>        </FONT></TD>
3229           </TR>
3230           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3231           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3232           <TD WIDTH="70%" VALIGN="TOP">
3233           <FONT FACE="Courier New" SIZE=1><P>// Context:</FONT></TD>
3234           </TR>
3235 karl  1.1 <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3236           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3237           <TD WIDTH="70%" VALIGN="TOP">
3238           <FONT FACE="Courier New" SIZE=1><P>// The remaining qualifier list must not include</P>
3239           <P>// the ASSOCIATION qualifier again. If the</P>
3240           <P>// association has no super association, then at</P>
3241           <P>// least two references must be specified! The</P>
3242           <P>// ASSOCIATION qualifier may be omitted in</P>
3243           <P>// sub associations.</FONT></TD>
3244           </TR>
3245           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3246           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3247           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3248           </TR>
3249           <TR><TD WIDTH="26%" VALIGN="TOP">
3250           <FONT FACE="Courier New" SIZE=1><P>indicDeclaration</FONT></TD>
3251           <TD WIDTH="4%" VALIGN="TOP">
3252           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3253           <TD WIDTH="70%" VALIGN="TOP">
3254           <FONT FACE="Courier New" SIZE=1><P>"[" INDICATION *( "," qualifier ) "]"</FONT></TD>
3255           </TR>
3256 karl  1.1 <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3257           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3258           <TD WIDTH="70%" VALIGN="TOP">
3259           <FONT FACE="Courier New" SIZE=1><P>CLASS className [ alias ] [ superClass ]</FONT></TD>
3260           </TR>
3261           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3262           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3263           <TD WIDTH="70%" VALIGN="TOP">
3264           <FONT FACE="Courier New" SIZE=1><P>"{" *classFeature "}" ";"</FONT></TD>
3265           </TR>
3266           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3267           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3268           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3269           </TR>
3270           <TR><TD WIDTH="26%" VALIGN="TOP">
3271           <FONT FACE="Courier New" SIZE=1><P>className</FONT></TD>
3272           <TD WIDTH="4%" VALIGN="TOP">
3273           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3274           <TD WIDTH="70%" VALIGN="TOP">
3275           <FONT FACE="Courier New" SIZE=1><P>schemaName "_" IDENTIFIER   // NO whitespace !</FONT></TD>
3276           </TR>
3277 karl  1.1 <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3278           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3279           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3280           </TR>
3281           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3282           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3283           <TD WIDTH="70%" VALIGN="TOP">
3284           <FONT FACE="Courier New" SIZE=1><P>// Context:</FONT></TD>
3285           </TR>
3286           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3287           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3288           <TD WIDTH="70%" VALIGN="TOP">
3289           <FONT FACE="Courier New" SIZE=1><P>// Schema name must not include "_" !</FONT></TD>
3290           </TR>
3291           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3292           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3293           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3294           </TR>
3295           <TR><TD WIDTH="26%" VALIGN="TOP">
3296           <FONT FACE="Courier New" SIZE=1><P>alias</FONT></TD>
3297           <TD WIDTH="4%" VALIGN="TOP">
3298 karl  1.1 <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3299           <TD WIDTH="70%" VALIGN="TOP">
3300           <FONT FACE="Courier New" SIZE=1><P>AS aliasIdentifer</FONT></TD>
3301           </TR>
3302           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3303           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3304           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3305           </TR>
3306           <TR><TD WIDTH="26%" VALIGN="TOP">
3307           <FONT FACE="Courier New" SIZE=1><P>aliasIdentifer</FONT></TD>
3308           <TD WIDTH="4%" VALIGN="TOP">
3309           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3310           <TD WIDTH="70%" VALIGN="TOP">
3311           <FONT FACE="Courier New" SIZE=1><P>"$" IDENTIFIER   // NO whitespace !</FONT></TD>
3312           </TR>
3313           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3314           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3315           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3316           </TR>
3317           <TR><TD WIDTH="26%" VALIGN="TOP">
3318           <FONT FACE="Courier New" SIZE=1><P>superClass</FONT></TD>
3319 karl  1.1 <TD WIDTH="4%" VALIGN="TOP">
3320           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3321           <TD WIDTH="70%" VALIGN="TOP">
3322           <FONT FACE="Courier New" SIZE=1><P>":" className</FONT></TD>
3323           </TR>
3324           <TR><TD WIDTH="26%" VALIGN="TOP">
3325           <FONT FACE="Courier New" SIZE=1><P>             </FONT></TD>
3326           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3327           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3328           </TR>
3329           <TR><TD WIDTH="26%" VALIGN="TOP">
3330           <FONT FACE="Courier New" SIZE=1><P>classFeature</FONT></TD>
3331           <TD WIDTH="4%" VALIGN="TOP">
3332           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3333           <TD WIDTH="70%" VALIGN="TOP">
3334           <FONT FACE="Courier New" SIZE=1><P>propertyDeclaration | methodDeclaration</FONT></TD>
3335           </TR>
3336           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3337           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3338           <TD WIDTH="70%" VALIGN="TOP">
3339           <FONT FACE="Courier New" SIZE=1><P>        </FONT></TD>
3340 karl  1.1 </TR>
3341           <TR><TD WIDTH="26%" VALIGN="TOP">
3342           <FONT FACE="Courier New" SIZE=1><P>associationFeature</FONT></TD>
3343           <TD WIDTH="4%" VALIGN="TOP">
3344           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3345           <TD WIDTH="70%" VALIGN="TOP">
3346           <FONT FACE="Courier New" SIZE=1><P>classFeature | referenceDeclaration</FONT></TD>
3347           </TR>
3348           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3349           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3350           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3351           </TR>
3352           <TR><TD WIDTH="26%" VALIGN="TOP">
3353           <FONT FACE="Courier New" SIZE=1><P>qualifierList</FONT></TD>
3354           <TD WIDTH="4%" VALIGN="TOP">
3355           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3356           <TD WIDTH="70%" VALIGN="TOP">
3357           <FONT FACE="Courier New" SIZE=1><P>"[" qualifier *( "," qualifier ) "]"</FONT></TD>
3358           </TR>
3359           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3360           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3361 karl  1.1 <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3362           </TR>
3363           <TR><TD WIDTH="26%" VALIGN="TOP">
3364           <FONT FACE="Courier New" SIZE=1><P>qualifier</FONT></TD>
3365           <TD WIDTH="4%" VALIGN="TOP">
3366           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3367           <TD WIDTH="70%" VALIGN="TOP">
3368           <FONT FACE="Courier New" SIZE=1><P>qualifierName [ qualifierParameter ] [ ":" 1*flavor ]</FONT></TD>
3369           </TR>
3370           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3371           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3372           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3373           </TR>
3374           <TR><TD WIDTH="26%" VALIGN="TOP">
3375           <FONT FACE="Courier New" SIZE=1><P>qualifierParameter</FONT></TD>
3376           <TD WIDTH="4%" VALIGN="TOP">
3377           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3378           <TD WIDTH="70%" VALIGN="TOP">
3379           <FONT FACE="Courier New" SIZE=1><P>"(" constantValue ")" | arrayInitializer</FONT></TD>
3380           </TR>
3381           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3382 karl  1.1 <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3383           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3384           </TR>
3385           <TR><TD WIDTH="26%" VALIGN="TOP">
3386           <FONT FACE="Courier New" SIZE=1><P>flavor</FONT></TD>
3387           <TD WIDTH="4%" VALIGN="TOP">
3388           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3389           <TD WIDTH="70%" VALIGN="TOP">
3390           <FONT FACE="Courier New" SIZE=1><P>ENABLEOVERRIDE | DISABLEOVERRIDE | RESTRICTED | </FONT></TD>
3391           </TR>
3392           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3393           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3394           <TD WIDTH="70%" VALIGN="TOP">
3395           <FONT FACE="Courier New" SIZE=1><P>TOSUBCLASS | TRANSLATABLE</FONT></TD>
3396           </TR>
3397           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3398           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3399           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3400           </TR>
3401           <TR><TD WIDTH="26%" VALIGN="TOP">
3402           <FONT FACE="Courier New" SIZE=1><P>propertyDeclaration</FONT></TD>
3403 karl  1.1 <TD WIDTH="4%" VALIGN="TOP">
3404           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3405           <TD WIDTH="70%" VALIGN="TOP">
3406           <FONT FACE="Courier New" SIZE=1><P>[ qualifierList ] dataType propertyName</FONT></TD>
3407           </TR>
3408           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3409           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3410           <TD WIDTH="70%" VALIGN="TOP">
3411           <FONT FACE="Courier New" SIZE=1><P>[ array ] [ defaultValue ] ";"</FONT></TD>
3412           </TR>
3413           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3414           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3415           <TD WIDTH="70%" VALIGN="TOP">
3416           <FONT FACE="Courier New" SIZE=1><P>        </FONT></TD>
3417           </TR>
3418           <TR><TD WIDTH="26%" VALIGN="TOP">
3419           <FONT FACE="Courier New" SIZE=1><P>referenceDeclaration</FONT></TD>
3420           <TD WIDTH="4%" VALIGN="TOP">
3421           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3422           <TD WIDTH="70%" VALIGN="TOP">
3423           <FONT FACE="Courier New" SIZE=1><P>[ qualifierList ] objectRef referenceName</FONT></TD>
3424 karl  1.1 </TR>
3425           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3426           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3427           <TD WIDTH="70%" VALIGN="TOP">
3428           <FONT FACE="Courier New" SIZE=1><P>[ defaultValue ] ";"</FONT></TD>
3429           </TR>
3430           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3431           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3432           <TD WIDTH="70%" VALIGN="TOP"><DIR>
3433           <DIR>
3434           <DIR>
3435           
3436           <FONT FACE="Courier New" SIZE=1><P>        </DIR>
3437           </DIR>
3438           </DIR>
3439           </FONT></TD>
3440           </TR>
3441           <TR><TD WIDTH="26%" VALIGN="TOP">
3442           <FONT FACE="Courier New" SIZE=1><P>methodDeclaration</FONT></TD>
3443           <TD WIDTH="4%" VALIGN="TOP">
3444           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3445 karl  1.1 <TD WIDTH="70%" VALIGN="TOP">
3446           <FONT FACE="Courier New" SIZE=1><P>[ qualifierList ] dataType methodName</FONT></TD>
3447           </TR>
3448           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3449           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3450           <TD WIDTH="70%" VALIGN="TOP">
3451           <FONT FACE="Courier New" SIZE=1><P>"(" [ parameterList ] ")" ";"</FONT></TD>
3452           </TR>
3453           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3454           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3455           <TD WIDTH="70%" VALIGN="TOP">
3456           <FONT FACE="Courier New" SIZE=1><P>        </FONT></TD>
3457           </TR>
3458           <TR><TD WIDTH="26%" VALIGN="TOP">
3459           <FONT FACE="Courier New" SIZE=1><P>propertyName</FONT></TD>
3460           <TD WIDTH="4%" VALIGN="TOP">
3461           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3462           <TD WIDTH="70%" VALIGN="TOP">
3463           <FONT FACE="Courier New" SIZE=1><P>IDENTIFIER</FONT></TD>
3464           </TR>
3465           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3466 karl  1.1 <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3467           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3468           </TR>
3469           <TR><TD WIDTH="26%" VALIGN="TOP">
3470           <FONT FACE="Courier New" SIZE=1><P>referenceName</FONT></TD>
3471           <TD WIDTH="4%" VALIGN="TOP">
3472           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3473           <TD WIDTH="70%" VALIGN="TOP">
3474           <FONT FACE="Courier New" SIZE=1><P>IDENTIFIER</FONT></TD>
3475           </TR>
3476           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3477           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3478           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3479           </TR>
3480           <TR><TD WIDTH="26%" VALIGN="TOP">
3481           <FONT FACE="Courier New" SIZE=1><P>methodName</FONT></TD>
3482           <TD WIDTH="4%" VALIGN="TOP">
3483           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3484           <TD WIDTH="70%" VALIGN="TOP">
3485           <FONT FACE="Courier New" SIZE=1><P>IDENTIFIER</FONT></TD>
3486           </TR>
3487 karl  1.1 <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3488           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3489           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3490           </TR>
3491           <TR><TD WIDTH="26%" VALIGN="TOP">
3492           <FONT FACE="Courier New" SIZE=1><P>dataType</FONT></TD>
3493           <TD WIDTH="4%" VALIGN="TOP">
3494           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3495           <TD WIDTH="70%" VALIGN="TOP">
3496           <FONT FACE="Courier New" SIZE=1><P>DT_UINT8 | DT_SINT8 | DT_UINT16 | DT_SINT16 |</FONT></TD>
3497           </TR>
3498           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3499           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3500           <TD WIDTH="70%" VALIGN="TOP">
3501           <FONT FACE="Courier New" SIZE=1><P>DT_UINT32 | DT_SINT32 | DT_UINT64 | DT_SINT64 |</FONT></TD>
3502           </TR>
3503           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3504           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3505           <TD WIDTH="70%" VALIGN="TOP">
3506           <FONT FACE="Courier New" SIZE=1><P>DT_REAL32 | DT_REAL64 | DT_CHAR16 |</FONT></TD>
3507           </TR>
3508 karl  1.1 <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3509           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3510           <TD WIDTH="70%" VALIGN="TOP">
3511           <FONT FACE="Courier New" SIZE=1><P>DT_STR | DT_BOOL | DT_DATETIME</FONT></TD>
3512           </TR>
3513           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3514           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3515           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3516           </TR>
3517           <TR><TD WIDTH="26%" VALIGN="TOP">
3518           <FONT FACE="Courier New" SIZE=1><P>objectRef</FONT></TD>
3519           <TD WIDTH="4%" VALIGN="TOP">
3520           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3521           <TD WIDTH="70%" VALIGN="TOP">
3522           <FONT FACE="Courier New" SIZE=1><P>className REF</FONT></TD>
3523           </TR>
3524           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3525           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3526           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3527           </TR>
3528           <TR><TD WIDTH="26%" VALIGN="TOP">
3529 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>parameterList</FONT></TD>
3530           <TD WIDTH="4%" VALIGN="TOP">
3531           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3532           <TD WIDTH="70%" VALIGN="TOP">
3533           <FONT FACE="Courier New" SIZE=1><P>parameter *( "," parameter )</FONT></TD>
3534           </TR>
3535           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3536           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3537           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3538           </TR>
3539           <TR><TD WIDTH="26%" VALIGN="TOP">
3540           <FONT FACE="Courier New" SIZE=1><P>parameter</FONT></TD>
3541           <TD WIDTH="4%" VALIGN="TOP">
3542           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3543           <TD WIDTH="70%" VALIGN="TOP">
3544           <FONT FACE="Courier New" SIZE=1><P>[ qualifierList ] (dataType|objectRef) parameterName </P>
3545           <P>[ array ]</FONT></TD>
3546           </TR>
3547           <TR><TD WIDTH="26%" VALIGN="TOP">
3548           <FONT FACE="Courier New" SIZE=1><P>parameterName</FONT></TD>
3549           <TD WIDTH="4%" VALIGN="TOP">
3550 karl  1.1 <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3551           <TD WIDTH="70%" VALIGN="TOP">
3552           <FONT FACE="Courier New" SIZE=1><P>IDENTIFIER</FONT></TD>
3553           </TR>
3554           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3555           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3556           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3557           </TR>
3558           <TR><TD WIDTH="26%" VALIGN="TOP">
3559           <FONT FACE="Courier New" SIZE=1><P>array</FONT></TD>
3560           <TD WIDTH="4%" VALIGN="TOP">
3561           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3562           <TD WIDTH="70%" VALIGN="TOP">
3563           <FONT FACE="Courier New" SIZE=1><P>"[" [positiveDecimalValue] "]"</FONT></TD>
3564           </TR>
3565           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3566           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3567           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3568           </TR>
3569           <TR><TD WIDTH="26%" VALIGN="TOP">
3570           <FONT FACE="Courier New" SIZE=1><P>positiveDecimalValue</FONT></TD>
3571 karl  1.1 <TD WIDTH="4%" VALIGN="TOP">
3572           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3573           <TD WIDTH="70%" VALIGN="TOP">
3574           <FONT FACE="Courier New" SIZE=1><P>positiveDecimalDigit *decimalDigit</FONT></TD>
3575           </TR>
3576           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3577           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3578           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3579           </TR>
3580           <TR><TD WIDTH="26%" VALIGN="TOP">
3581           <FONT FACE="Courier New" SIZE=1><P>defaultValue</FONT></TD>
3582           <TD WIDTH="4%" VALIGN="TOP">
3583           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3584           <TD WIDTH="70%" VALIGN="TOP">
3585           <FONT FACE="Courier New" SIZE=1><P>"=" initializer</FONT></TD>
3586           </TR>
3587           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3588           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3589           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3590           </TR>
3591           <TR><TD WIDTH="26%" VALIGN="TOP">
3592 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>initializer</FONT></TD>
3593           <TD WIDTH="4%" VALIGN="TOP">
3594           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3595           <TD WIDTH="70%" VALIGN="TOP">
3596           <FONT FACE="Courier New" SIZE=1><P>ConstantValue | arrayInitializer | referenceInitializer</FONT></TD>
3597           </TR>
3598           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3599           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3600           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3601           </TR>
3602           <TR><TD WIDTH="26%" VALIGN="TOP">
3603           <FONT FACE="Courier New" SIZE=1><P>arrayInitializer</FONT></TD>
3604           <TD WIDTH="4%" VALIGN="TOP">
3605           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3606           <TD WIDTH="70%" VALIGN="TOP">
3607           <FONT FACE="Courier New" SIZE=1><P>"{" constantValue*( "," constantValue)"}"</FONT></TD>
3608           </TR>
3609           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3610           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3611           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3612           </TR>
3613 karl  1.1 <TR><TD WIDTH="26%" VALIGN="TOP">
3614           <FONT FACE="Courier New" SIZE=1><P>constantValue</FONT></TD>
3615           <TD WIDTH="4%" VALIGN="TOP">
3616           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3617           <TD WIDTH="70%" VALIGN="TOP">
3618           <FONT FACE="Courier New" SIZE=1><P>integerValue | realValue | charValue | stringValue |</FONT></TD>
3619           </TR>
3620           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3621           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3622           <TD WIDTH="70%" VALIGN="TOP">
3623           <FONT FACE="Courier New" SIZE=1><P>booleanValue | nullValue</FONT></TD>
3624           </TR>
3625           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3626           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3627           <TD WIDTH="70%" VALIGN="TOP">
3628           <FONT FACE="Courier New" SIZE=1><P>        </FONT></TD>
3629           </TR>
3630           <TR><TD WIDTH="26%" VALIGN="TOP">
3631           <FONT FACE="Courier New" SIZE=1><P>integerValue</FONT></TD>
3632           <TD WIDTH="4%" VALIGN="TOP">
3633           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3634 karl  1.1 <TD WIDTH="70%" VALIGN="TOP">
3635           <FONT FACE="Courier New" SIZE=1><P>binaryValue | octalValue | decimalValue | hexValue</FONT></TD>
3636           </TR>
3637           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3638           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3639           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3640           </TR>
3641           <TR><TD WIDTH="26%" VALIGN="TOP">
3642           <FONT FACE="Courier New" SIZE=1><P>referenceInitializer</FONT></TD>
3643           <TD WIDTH="4%" VALIGN="TOP">
3644           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3645           <TD WIDTH="70%" VALIGN="TOP">
3646           <FONT FACE="Courier New" SIZE=1><P>objectHandle | aliasIdentifier</FONT></TD>
3647           </TR>
3648           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3649           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3650           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3651           </TR>
3652           <TR><TD WIDTH="26%" VALIGN="TOP">
3653           <FONT FACE="Courier New" SIZE=1><P>objectHandle</FONT></TD>
3654           <TD WIDTH="4%" VALIGN="TOP">
3655 karl  1.1 <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3656           <TD WIDTH="70%" VALIGN="TOP">
3657           <FONT FACE="Courier New" SIZE=1><P>""" [ namespaceHandle ":" ] modelPath """</FONT></TD>
3658           </TR>
3659           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3660           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3661           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3662           </TR>
3663           <TR><TD WIDTH="26%" VALIGN="TOP">
3664           <FONT FACE="Courier New" SIZE=1><P>namespaceHandle</FONT></TD>
3665           <TD WIDTH="4%" VALIGN="TOP">
3666           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3667           <TD WIDTH="70%" VALIGN="TOP">
3668           <FONT FACE="Courier New" SIZE=1><P>*ucs2Character <BR>
3669           // Note: structure depends on type of namespace</FONT></TD>
3670           </TR>
3671           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3672           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3673           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3674           </TR>
3675           <TR><TD WIDTH="26%" VALIGN="TOP">
3676 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>modelPath&nbsp;</FONT></TD>
3677           <TD WIDTH="4%" VALIGN="TOP">
3678           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3679           <TD WIDTH="70%" VALIGN="TOP">
3680           <FONT FACE="Courier New" SIZE=1><P>className "." keyValuePairList</FONT></TD>
3681           </TR>
3682           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3683           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3684           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3685           </TR>
3686           <TR><TD WIDTH="26%" VALIGN="TOP">
3687           <FONT FACE="Courier New" SIZE=1><P>keyValuePairList</FONT></TD>
3688           <TD WIDTH="4%" VALIGN="TOP">
3689           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3690           <TD WIDTH="70%" VALIGN="TOP">
3691           <FONT FACE="Courier New" SIZE=1><P>keyValuePair *( "," keyValuePair )</FONT></TD>
3692           </TR>
3693           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3694           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3695           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3696           </TR>
3697 karl  1.1 <TR><TD WIDTH="26%" VALIGN="TOP">
3698           <FONT FACE="Courier New" SIZE=1><P>keyValuePair</FONT></TD>
3699           <TD WIDTH="4%" VALIGN="TOP">
3700           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3701           <TD WIDTH="70%" VALIGN="TOP">
3702           <FONT FACE="Courier New" SIZE=1><P>( propertyname | referenceName ) "=" initializer</FONT></TD>
3703           </TR>
3704           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3705           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3706           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3707           </TR>
3708           <TR><TD WIDTH="26%" VALIGN="TOP">
3709           <FONT FACE="Courier New" SIZE=1><P>qualifierDeclaration</FONT></TD>
3710           <TD WIDTH="4%" VALIGN="TOP">
3711           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3712           <TD WIDTH="70%" VALIGN="TOP">
3713           <FONT FACE="Courier New" SIZE=1><P>QUALIFIER qualifierName qualifierType scope</FONT></TD>
3714           </TR>
3715           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3716           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3717           <TD WIDTH="70%" VALIGN="TOP">
3718 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>[ defaultFlavor ] ";"</FONT></TD>
3719           </TR>
3720           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3721           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3722           <TD WIDTH="70%" VALIGN="TOP">
3723           <FONT FACE="Courier New" SIZE=1><P>        </FONT></TD>
3724           </TR>
3725           <TR><TD WIDTH="26%" VALIGN="TOP">
3726           <FONT FACE="Courier New" SIZE=1><P>qualifierName</FONT></TD>
3727           <TD WIDTH="4%" VALIGN="TOP">
3728           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3729           <TD WIDTH="70%" VALIGN="TOP">
3730           <FONT FACE="Courier New" SIZE=1><P>IDENTIFIER</FONT></TD>
3731           </TR>
3732           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3733           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3734           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3735           </TR>
3736           <TR><TD WIDTH="26%" VALIGN="TOP">
3737           <FONT FACE="Courier New" SIZE=1><P>qualifierType</FONT></TD>
3738           <TD WIDTH="4%" VALIGN="TOP">
3739 karl  1.1 <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3740           <TD WIDTH="70%" VALIGN="TOP">
3741           <FONT FACE="Courier New" SIZE=1><P>":" dataType [ array ] [ defaultValue ]</FONT></TD>
3742           </TR>
3743           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3744           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3745           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3746           </TR>
3747           <TR><TD WIDTH="26%" VALIGN="TOP">
3748           <FONT FACE="Courier New" SIZE=1><P>scope</FONT></TD>
3749           <TD WIDTH="4%" VALIGN="TOP">
3750           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3751           <TD WIDTH="70%" VALIGN="TOP">
3752           <FONT FACE="Courier New" SIZE=1><P>"," SCOPE "(" metaElement *( "," metaElement ) ")"</FONT></TD>
3753           </TR>
3754           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3755           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3756           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3757           </TR>
3758           <TR><TD WIDTH="26%" VALIGN="TOP">
3759           <FONT FACE="Courier New" SIZE=1><P>metaElement</FONT></TD>
3760 karl  1.1 <TD WIDTH="4%" VALIGN="TOP">
3761           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3762           <TD WIDTH="70%" VALIGN="TOP">
3763           <FONT FACE="Courier New" SIZE=1><P>SCHEMA | CLASS | ASSOCIATION | INDICATION | QUALIFIER</FONT></TD>
3764           </TR>
3765           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3766           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3767           <TD WIDTH="70%" VALIGN="TOP">
3768           <FONT FACE="Courier New" SIZE=1><P>PROPERTY | REFERENCE | METHOD | PARAMETER | ANY</FONT></TD>
3769           </TR>
3770           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3771           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3772           <TD WIDTH="70%" VALIGN="TOP">
3773           <FONT FACE="Courier New" SIZE=1><P>        </FONT></TD>
3774           </TR>
3775           <TR><TD WIDTH="26%" VALIGN="TOP">
3776           <FONT FACE="Courier New" SIZE=1><P>defaultFlavor</FONT></TD>
3777           <TD WIDTH="4%" VALIGN="TOP">
3778           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3779           <TD WIDTH="70%" VALIGN="TOP">
3780           <FONT FACE="Courier New" SIZE=1><P>"," FLAVOR "(" flavor *( "," flavor ) ")"</FONT></TD>
3781 karl  1.1 </TR>
3782           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3783           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3784           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3785           </TR>
3786           <TR><TD WIDTH="26%" VALIGN="TOP">
3787           <FONT FACE="Courier New" SIZE=1><P>instanceDeclaration</FONT></TD>
3788           <TD WIDTH="4%" VALIGN="TOP">
3789           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3790           <TD WIDTH="70%" VALIGN="TOP">
3791           <FONT FACE="Courier New" SIZE=1><P>[ qualifierList ] INSTANCE OF className [ alias ]</FONT></TD>
3792           </TR>
3793           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3794           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3795           <TD WIDTH="70%" VALIGN="TOP">
3796           <FONT FACE="Courier New" SIZE=1><P>"{" 1*valueInitializer "}" ";"</FONT></TD>
3797           </TR>
3798           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3799           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3800           <TD WIDTH="70%" VALIGN="TOP">
3801           <FONT FACE="Courier New" SIZE=1><P>        </FONT></TD>
3802 karl  1.1 </TR>
3803           <TR><TD WIDTH="26%" VALIGN="TOP">
3804           <FONT FACE="Courier New" SIZE=1><P>valueInitializer</FONT></TD>
3805           <TD WIDTH="4%" VALIGN="TOP">
3806           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3807           <TD WIDTH="70%" VALIGN="TOP">
3808           <FONT FACE="Courier New" SIZE=1><P>[ qualifierList ] </FONT></TD>
3809           </TR>
3810           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3811           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3812           <TD WIDTH="70%" VALIGN="TOP">
3813           <FONT FACE="Courier New" SIZE=1><P>( propertyName | referenceName ) "=" initializer ";"</FONT></TD>
3814           </TR>
3815           </TABLE>
3816           <DIR>
3817           <DIR>
3818           
3819           <FONT SIZE=3><P>These productions do not allow whitespace between the terms:</P></DIR>
3820           </DIR>
3821           </FONT>
3822           <TABLE CELLSPACING=0 BORDER=0 CELLPADDING=7 WIDTH=624>
3823 karl  1.1 <TR><TD WIDTH="26%" VALIGN="TOP">
3824           <FONT FACE="Courier New" SIZE=1><P>schemaName</FONT></TD>
3825           <TD WIDTH="4%" VALIGN="TOP">
3826           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3827           <TD WIDTH="70%" VALIGN="TOP">
3828           <FONT FACE="Courier New" SIZE=1><P>IDENTIFIER</FONT></TD>
3829           </TR>
3830           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3831           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3832           <TD WIDTH="70%" VALIGN="TOP">
3833           <FONT FACE="Courier New" SIZE=1><P>// Context:</FONT></TD>
3834           </TR>
3835           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3836           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3837           <TD WIDTH="70%" VALIGN="TOP">
3838           <FONT FACE="Courier New" SIZE=1><P>// Schema name must not include "_" !</FONT></TD>
3839           </TR>
3840           <TR><TD WIDTH="26%" VALIGN="TOP">
3841           <FONT FACE="Courier New" SIZE=1><P>fileName</FONT></TD>
3842           <TD WIDTH="4%" VALIGN="TOP">
3843           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3844 karl  1.1 <TD WIDTH="70%" VALIGN="TOP">
3845           <FONT FACE="Courier New" SIZE=1><P>stringValue</FONT></TD>
3846           </TR>
3847           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3848           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3849           <TD WIDTH="70%" VALIGN="TOP">
3850           <FONT FACE="Courier New" SIZE=1><P>                      </FONT></TD>
3851           </TR>
3852           <TR><TD WIDTH="26%" VALIGN="TOP">
3853           <FONT FACE="Courier New" SIZE=1><P>binaryValue</FONT></TD>
3854           <TD WIDTH="4%" VALIGN="TOP">
3855           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3856           <TD WIDTH="70%" VALIGN="TOP">
3857           <FONT FACE="Courier New" SIZE=1><P>[ "+" | "-" ] 1*binaryDigit ( "b" | "B" )</FONT></TD>
3858           </TR>
3859           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3860           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3861           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3862           </TR>
3863           <TR><TD WIDTH="26%" VALIGN="TOP">
3864           <FONT FACE="Courier New" SIZE=1><P>binaryDigit</FONT></TD>
3865 karl  1.1 <TD WIDTH="4%" VALIGN="TOP">
3866           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3867           <TD WIDTH="70%" VALIGN="TOP">
3868           <FONT FACE="Courier New" SIZE=1><P>"0" | "1"</FONT></TD>
3869           </TR>
3870           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3871           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3872           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3873           </TR>
3874           <TR><TD WIDTH="26%" VALIGN="TOP">
3875           <FONT FACE="Courier New" SIZE=1><P>octalValue</FONT></TD>
3876           <TD WIDTH="4%" VALIGN="TOP">
3877           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3878           <TD WIDTH="70%" VALIGN="TOP">
3879           <FONT FACE="Courier New" SIZE=1><P>[ "+" | "-" ] "0" 1*octalDigit</FONT></TD>
3880           </TR>
3881           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3882           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3883           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3884           </TR>
3885           <TR><TD WIDTH="26%" VALIGN="TOP">
3886 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>octalDigit</FONT></TD>
3887           <TD WIDTH="4%" VALIGN="TOP">
3888           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3889           <TD WIDTH="70%" VALIGN="TOP">
3890           <FONT FACE="Courier New" SIZE=1><P>"0" | "1" | "2" | "3" | "4" | "5" | "6" | "7"</FONT></TD>
3891           </TR>
3892           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3893           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3894           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3895           </TR>
3896           <TR><TD WIDTH="26%" VALIGN="TOP">
3897           <FONT FACE="Courier New" SIZE=1><P>decimalValue</FONT></TD>
3898           <TD WIDTH="4%" VALIGN="TOP">
3899           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3900           <TD WIDTH="70%" VALIGN="TOP">
3901           <FONT FACE="Courier New" SIZE=1><P>[ "+" | "-" ] ( positiveDecimalDigit *decimalDigit | "0" )</FONT></TD>
3902           </TR>
3903           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3904           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3905           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3906           </TR>
3907 karl  1.1 <TR><TD WIDTH="26%" VALIGN="TOP">
3908           <FONT FACE="Courier New" SIZE=1><P>decimalDigit</FONT></TD>
3909           <TD WIDTH="4%" VALIGN="TOP">
3910           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3911           <TD WIDTH="70%" VALIGN="TOP">
3912           <FONT FACE="Courier New" SIZE=1><P>"0" | positiveDecimalDigit</FONT></TD>
3913           </TR>
3914           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3915           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3916           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3917           </TR>
3918           <TR><TD WIDTH="26%" VALIGN="TOP">
3919           <FONT FACE="Courier New" SIZE=1><P>positiveDecimalDigit</FONT></TD>
3920           <TD WIDTH="4%" VALIGN="TOP">
3921           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3922           <TD WIDTH="70%" VALIGN="TOP">
3923           <FONT FACE="Courier New" SIZE=1><P>"1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"</FONT></TD>
3924           </TR>
3925           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3926           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3927           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3928 karl  1.1 </TR>
3929           <TR><TD WIDTH="26%" VALIGN="TOP">
3930           <FONT FACE="Courier New" SIZE=1><P>hexValue</FONT></TD>
3931           <TD WIDTH="4%" VALIGN="TOP">
3932           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3933           <TD WIDTH="70%" VALIGN="TOP">
3934           <FONT FACE="Courier New" SIZE=1><P>[ "+" | "-" ] ( "0x" | "0X" ) 1*hexDigit</FONT></TD>
3935           </TR>
3936           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3937           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3938           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3939           </TR>
3940           <TR><TD WIDTH="26%" VALIGN="TOP">
3941           <FONT FACE="Courier New" SIZE=1><P>hexDigit</FONT></TD>
3942           <TD WIDTH="4%" VALIGN="TOP">
3943           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3944           <TD WIDTH="70%" VALIGN="TOP">
3945           <FONT FACE="Courier New" SIZE=1><P>decimalDigit | "a" | "A" | "b" | "B" | "c" | "C" |</FONT></TD>
3946           </TR>
3947           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3948           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3949 karl  1.1 <TD WIDTH="70%" VALIGN="TOP">
3950           <FONT FACE="Courier New" SIZE=1><P>"d" | "D" | "e" | "E" | "f" | "F"</FONT></TD>
3951           </TR>
3952           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3953           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3954           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3955           </TR>
3956           <TR><TD WIDTH="26%" VALIGN="TOP">
3957           <FONT FACE="Courier New" SIZE=1><P>realValue</FONT></TD>
3958           <TD WIDTH="4%" VALIGN="TOP">
3959           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3960           <TD WIDTH="70%" VALIGN="TOP">
3961           <FONT FACE="Courier New" SIZE=1><P>[ "+" | "-" ] *decimalDigit "." 1*decimalDigit</FONT></TD>
3962           </TR>
3963           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3964           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3965           <TD WIDTH="70%" VALIGN="TOP">
3966           <FONT FACE="Courier New" SIZE=1><P>[ ( "e" | "E" ) [ "+" | "-" ] 1*decimalDigit ]</FONT></TD>
3967           </TR>
3968           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3969           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3970 karl  1.1 <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3971           </TR>
3972           <TR><TD WIDTH="26%" VALIGN="TOP">
3973           <FONT FACE="Courier New" SIZE=1><P>charValue</FONT></TD>
3974           <TD WIDTH="4%" VALIGN="TOP">
3975           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3976           <TD WIDTH="70%" VALIGN="TOP">
3977           <FONT FACE="Courier New" SIZE=1><P>// any single-quoted Unicode-character, except</P>
3978           <P>// single quotes</FONT></TD>
3979           </TR>
3980           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3981           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3982           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3983           </TR>
3984           <TR><TD WIDTH="26%" VALIGN="TOP">
3985           <FONT FACE="Courier New" SIZE=1><P>stringValue</FONT></TD>
3986           <TD WIDTH="4%" VALIGN="TOP">
3987           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3988           <TD WIDTH="70%" VALIGN="TOP">
3989           <FONT FACE="Courier New" SIZE=1><P>1*( """ *ucs2Character """ )</FONT></TD>
3990           </TR>
3991 karl  1.1 <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
3992           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
3993           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
3994           </TR>
3995           <TR><TD WIDTH="26%" VALIGN="TOP">
3996           <FONT FACE="Courier New" SIZE=1><P>ucs2Character</FONT></TD>
3997           <TD WIDTH="4%" VALIGN="TOP">
3998           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
3999           <TD WIDTH="70%" VALIGN="TOP">
4000           <FONT FACE="Courier New" SIZE=1><P>// any valid UCS-2-character</FONT></TD>
4001           </TR>
4002           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
4003           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
4004           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
4005           </TR>
4006           <TR><TD WIDTH="26%" VALIGN="TOP">
4007           <FONT FACE="Courier New" SIZE=1><P>booleanValue</FONT></TD>
4008           <TD WIDTH="4%" VALIGN="TOP">
4009           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4010           <TD WIDTH="70%" VALIGN="TOP">
4011           <FONT FACE="Courier New" SIZE=1><P>TRUE | FALSE</FONT></TD>
4012 karl  1.1 </TR>
4013           <TR><TD WIDTH="26%" VALIGN="TOP">&nbsp;</TD>
4014           <TD WIDTH="4%" VALIGN="TOP">&nbsp;</TD>
4015           <TD WIDTH="70%" VALIGN="TOP">&nbsp;</TD>
4016           </TR>
4017           <TR><TD WIDTH="26%" VALIGN="TOP">
4018           <FONT FACE="Courier New" SIZE=1><P>nullValue</FONT></TD>
4019           <TD WIDTH="4%" VALIGN="TOP">
4020           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4021           <TD WIDTH="70%" VALIGN="TOP">
4022           <FONT FACE="Courier New" SIZE=1><P>NULL</FONT></TD>
4023           </TR>
4024           </TABLE>
4025           <DIR>
4026           <DIR>
4027           
4028           <FONT SIZE=3><P>The remaining productions are case-insensitive keywords:</P></DIR>
4029           </DIR>
4030           </FONT>
4031           <TABLE CELLSPACING=0 BORDER=0 CELLPADDING=7 WIDTH=624>
4032           <TR><TD WIDTH="26%" VALIGN="TOP">
4033 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>ANY</FONT></TD>
4034           <TD WIDTH="4%" VALIGN="TOP">
4035           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4036           <TD WIDTH="70%" VALIGN="TOP">
4037           <FONT FACE="Courier New" SIZE=1><P>"any"</FONT></TD>
4038           </TR>
4039           <TR><TD WIDTH="26%" VALIGN="TOP">
4040           <FONT FACE="Courier New" SIZE=1><P>AS</FONT></TD>
4041           <TD WIDTH="4%" VALIGN="TOP">
4042           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4043           <TD WIDTH="70%" VALIGN="TOP">
4044           <FONT FACE="Courier New" SIZE=1><P>"as"</FONT></TD>
4045           </TR>
4046           <TR><TD WIDTH="26%" VALIGN="TOP">
4047           <FONT FACE="Courier New" SIZE=1><P>ASSOCIATION</FONT></TD>
4048           <TD WIDTH="4%" VALIGN="TOP">
4049           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4050           <TD WIDTH="70%" VALIGN="TOP">
4051           <FONT FACE="Courier New" SIZE=1><P>"association"</FONT></TD>
4052           </TR>
4053           <TR><TD WIDTH="26%" VALIGN="TOP">
4054 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>CLASS</FONT></TD>
4055           <TD WIDTH="4%" VALIGN="TOP">
4056           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4057           <TD WIDTH="70%" VALIGN="TOP">
4058           <FONT FACE="Courier New" SIZE=1><P>"class"</FONT></TD>
4059           </TR>
4060           <TR><TD WIDTH="26%" VALIGN="TOP">
4061           <FONT FACE="Courier New" SIZE=1><P>DISABLEOVERRIDE</FONT></TD>
4062           <TD WIDTH="4%" VALIGN="TOP">
4063           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4064           <TD WIDTH="70%" VALIGN="TOP">
4065           <FONT FACE="Courier New" SIZE=1><P>"disableOverride"</FONT></TD>
4066           </TR>
4067           <TR><TD WIDTH="26%" VALIGN="TOP">
4068           <FONT FACE="Courier New" SIZE=1><P>DT_BOOL</FONT></TD>
4069           <TD WIDTH="4%" VALIGN="TOP">
4070           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4071           <TD WIDTH="70%" VALIGN="TOP">
4072           <FONT FACE="Courier New" SIZE=1><P>"boolean"</FONT></TD>
4073           </TR>
4074           <TR><TD WIDTH="26%" VALIGN="TOP">
4075 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>DT_CHAR16</FONT></TD>
4076           <TD WIDTH="4%" VALIGN="TOP">
4077           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4078           <TD WIDTH="70%" VALIGN="TOP">
4079           <FONT FACE="Courier New" SIZE=1><P>"char16"</FONT></TD>
4080           </TR>
4081           <TR><TD WIDTH="26%" VALIGN="TOP">
4082           <FONT FACE="Courier New" SIZE=1><P>DT_DATETIME</FONT></TD>
4083           <TD WIDTH="4%" VALIGN="TOP">
4084           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4085           <TD WIDTH="70%" VALIGN="TOP">
4086           <FONT FACE="Courier New" SIZE=1><P>"datetime"</FONT></TD>
4087           </TR>
4088           <TR><TD WIDTH="26%" VALIGN="TOP">
4089           <FONT FACE="Courier New" SIZE=1><P>DT_REAL32</FONT></TD>
4090           <TD WIDTH="4%" VALIGN="TOP">
4091           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4092           <TD WIDTH="70%" VALIGN="TOP">
4093           <FONT FACE="Courier New" SIZE=1><P>"real32"</FONT></TD>
4094           </TR>
4095           <TR><TD WIDTH="26%" VALIGN="TOP">
4096 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>DT_REAL64</FONT></TD>
4097           <TD WIDTH="4%" VALIGN="TOP">
4098           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4099           <TD WIDTH="70%" VALIGN="TOP">
4100           <FONT FACE="Courier New" SIZE=1><P>"real64"</FONT></TD>
4101           </TR>
4102           <TR><TD WIDTH="26%" VALIGN="TOP">
4103           <FONT FACE="Courier New" SIZE=1><P>DT_SINT16</FONT></TD>
4104           <TD WIDTH="4%" VALIGN="TOP">
4105           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4106           <TD WIDTH="70%" VALIGN="TOP">
4107           <FONT FACE="Courier New" SIZE=1><P>"sint16"</FONT></TD>
4108           </TR>
4109           <TR><TD WIDTH="26%" VALIGN="TOP">
4110           <FONT FACE="Courier New" SIZE=1><P>DT_SINT32</FONT></TD>
4111           <TD WIDTH="4%" VALIGN="TOP">
4112           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4113           <TD WIDTH="70%" VALIGN="TOP">
4114           <FONT FACE="Courier New" SIZE=1><P>"sint32"</FONT></TD>
4115           </TR>
4116           <TR><TD WIDTH="26%" VALIGN="TOP">
4117 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>DT_SINT64</FONT></TD>
4118           <TD WIDTH="4%" VALIGN="TOP">
4119           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4120           <TD WIDTH="70%" VALIGN="TOP">
4121           <FONT FACE="Courier New" SIZE=1><P>"sint64"</FONT></TD>
4122           </TR>
4123           <TR><TD WIDTH="26%" VALIGN="TOP">
4124           <FONT FACE="Courier New" SIZE=1><P>DT_SINT8</FONT></TD>
4125           <TD WIDTH="4%" VALIGN="TOP">
4126           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4127           <TD WIDTH="70%" VALIGN="TOP">
4128           <FONT FACE="Courier New" SIZE=1><P>"sint8"</FONT></TD>
4129           </TR>
4130           <TR><TD WIDTH="26%" VALIGN="TOP">
4131           <FONT FACE="Courier New" SIZE=1><P>DT_STR</FONT></TD>
4132           <TD WIDTH="4%" VALIGN="TOP">
4133           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4134           <TD WIDTH="70%" VALIGN="TOP">
4135           <FONT FACE="Courier New" SIZE=1><P>"string"</FONT></TD>
4136           </TR>
4137           <TR><TD WIDTH="26%" VALIGN="TOP">
4138 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>DT_UINT16</FONT></TD>
4139           <TD WIDTH="4%" VALIGN="TOP">
4140           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4141           <TD WIDTH="70%" VALIGN="TOP">
4142           <FONT FACE="Courier New" SIZE=1><P>"uint16"</FONT></TD>
4143           </TR>
4144           <TR><TD WIDTH="26%" VALIGN="TOP">
4145           <FONT FACE="Courier New" SIZE=1><P>DT_UINT32</FONT></TD>
4146           <TD WIDTH="4%" VALIGN="TOP">
4147           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4148           <TD WIDTH="70%" VALIGN="TOP">
4149           <FONT FACE="Courier New" SIZE=1><P>"uint32"</FONT></TD>
4150           </TR>
4151           <TR><TD WIDTH="26%" VALIGN="TOP">
4152           <FONT FACE="Courier New" SIZE=1><P>DT_UINT64</FONT></TD>
4153           <TD WIDTH="4%" VALIGN="TOP">
4154           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4155           <TD WIDTH="70%" VALIGN="TOP">
4156           <FONT FACE="Courier New" SIZE=1><P>"uint64"</FONT></TD>
4157           </TR>
4158           <TR><TD WIDTH="26%" VALIGN="TOP">
4159 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>DT_UINT8</FONT></TD>
4160           <TD WIDTH="4%" VALIGN="TOP">
4161           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4162           <TD WIDTH="70%" VALIGN="TOP">
4163           <FONT FACE="Courier New" SIZE=1><P>"uint8"</FONT></TD>
4164           </TR>
4165           <TR><TD WIDTH="26%" VALIGN="TOP">
4166           <FONT FACE="Courier New" SIZE=1><P>ENABLEOVERRIDE</FONT></TD>
4167           <TD WIDTH="4%" VALIGN="TOP">
4168           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4169           <TD WIDTH="70%" VALIGN="TOP">
4170           <FONT FACE="Courier New" SIZE=1><P>"enableoverride"</FONT></TD>
4171           </TR>
4172           <TR><TD WIDTH="26%" VALIGN="TOP">
4173           <FONT FACE="Courier New" SIZE=1><P>FALSE</FONT></TD>
4174           <TD WIDTH="4%" VALIGN="TOP">
4175           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4176           <TD WIDTH="70%" VALIGN="TOP">
4177           <FONT FACE="Courier New" SIZE=1><P>"false"</FONT></TD>
4178           </TR>
4179           <TR><TD WIDTH="26%" VALIGN="TOP">
4180 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>FLAVOR</FONT></TD>
4181           <TD WIDTH="4%" VALIGN="TOP">
4182           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4183           <TD WIDTH="70%" VALIGN="TOP">
4184           <FONT FACE="Courier New" SIZE=1><P>"flavor"</FONT></TD>
4185           </TR>
4186           <TR><TD WIDTH="26%" VALIGN="TOP">
4187           <FONT FACE="Courier New" SIZE=1><P>INDICATION</FONT></TD>
4188           <TD WIDTH="4%" VALIGN="TOP">
4189           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4190           <TD WIDTH="70%" VALIGN="TOP">
4191           <FONT FACE="Courier New" SIZE=1><P>"indication"</FONT></TD>
4192           </TR>
4193           <TR><TD WIDTH="26%" VALIGN="TOP">
4194           <FONT FACE="Courier New" SIZE=1><P>INSTANCE</FONT></TD>
4195           <TD WIDTH="4%" VALIGN="TOP">
4196           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4197           <TD WIDTH="70%" VALIGN="TOP">
4198           <FONT FACE="Courier New" SIZE=1><P>"instance"</FONT></TD>
4199           </TR>
4200           <TR><TD WIDTH="26%" VALIGN="TOP">
4201 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>METHOD</FONT></TD>
4202           <TD WIDTH="4%" VALIGN="TOP">
4203           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4204           <TD WIDTH="70%" VALIGN="TOP">
4205           <FONT FACE="Courier New" SIZE=1><P>"method"</FONT></TD>
4206           </TR>
4207           <TR><TD WIDTH="26%" VALIGN="TOP">
4208           <FONT FACE="Courier New" SIZE=1><P>NULL</FONT></TD>
4209           <TD WIDTH="4%" VALIGN="TOP">
4210           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4211           <TD WIDTH="70%" VALIGN="TOP">
4212           <FONT FACE="Courier New" SIZE=1><P>"null"</FONT></TD>
4213           </TR>
4214           <TR><TD WIDTH="26%" VALIGN="TOP">
4215           <FONT FACE="Courier New" SIZE=1><P>OF</FONT></TD>
4216           <TD WIDTH="4%" VALIGN="TOP">
4217           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4218           <TD WIDTH="70%" VALIGN="TOP">
4219           <FONT FACE="Courier New" SIZE=1><P>"of"</FONT></TD>
4220           </TR>
4221           <TR><TD WIDTH="26%" VALIGN="TOP">
4222 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>PARAMETER</FONT></TD>
4223           <TD WIDTH="4%" VALIGN="TOP">
4224           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4225           <TD WIDTH="70%" VALIGN="TOP">
4226           <FONT FACE="Courier New" SIZE=1><P>"parameter"</FONT></TD>
4227           </TR>
4228           <TR><TD WIDTH="26%" VALIGN="TOP">
4229           <FONT FACE="Courier New" SIZE=1><P>PRAGMA</FONT></TD>
4230           <TD WIDTH="4%" VALIGN="TOP">
4231           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4232           <TD WIDTH="70%" VALIGN="TOP">
4233           <FONT FACE="Courier New" SIZE=1><P>"#pragma"</FONT></TD>
4234           </TR>
4235           <TR><TD WIDTH="26%" VALIGN="TOP">
4236           <FONT FACE="Courier New" SIZE=1><P>PROPERTY</FONT></TD>
4237           <TD WIDTH="4%" VALIGN="TOP">
4238           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4239           <TD WIDTH="70%" VALIGN="TOP">
4240           <FONT FACE="Courier New" SIZE=1><P>"property"</FONT></TD>
4241           </TR>
4242           <TR><TD WIDTH="26%" VALIGN="TOP">
4243 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>QUALIFIER</FONT></TD>
4244           <TD WIDTH="4%" VALIGN="TOP">
4245           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4246           <TD WIDTH="70%" VALIGN="TOP">
4247           <FONT FACE="Courier New" SIZE=1><P>"qualifier"</FONT></TD>
4248           </TR>
4249           <TR><TD WIDTH="26%" VALIGN="TOP">
4250           <FONT FACE="Courier New" SIZE=1><P>REF</FONT></TD>
4251           <TD WIDTH="4%" VALIGN="TOP">
4252           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4253           <TD WIDTH="70%" VALIGN="TOP">
4254           <FONT FACE="Courier New" SIZE=1><P>"ref"</FONT></TD>
4255           </TR>
4256           <TR><TD WIDTH="26%" VALIGN="TOP">
4257           <FONT FACE="Courier New" SIZE=1><P>REFERENCE</FONT></TD>
4258           <TD WIDTH="4%" VALIGN="TOP">
4259           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4260           <TD WIDTH="70%" VALIGN="TOP">
4261           <FONT FACE="Courier New" SIZE=1><P>"reference"</FONT></TD>
4262           </TR>
4263           <TR><TD WIDTH="26%" VALIGN="TOP">
4264 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>RESTRICTED</FONT></TD>
4265           <TD WIDTH="4%" VALIGN="TOP">
4266           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4267           <TD WIDTH="70%" VALIGN="TOP">
4268           <FONT FACE="Courier New" SIZE=1><P>"restricted"</FONT></TD>
4269           </TR>
4270           <TR><TD WIDTH="26%" VALIGN="TOP">
4271           <FONT FACE="Courier New" SIZE=1><P>SCHEMA</FONT></TD>
4272           <TD WIDTH="4%" VALIGN="TOP">
4273           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4274           <TD WIDTH="70%" VALIGN="TOP">
4275           <FONT FACE="Courier New" SIZE=1><P>"schema"</FONT></TD>
4276           </TR>
4277           <TR><TD WIDTH="26%" VALIGN="TOP">
4278           <FONT FACE="Courier New" SIZE=1><P>SCOPE</FONT></TD>
4279           <TD WIDTH="4%" VALIGN="TOP">
4280           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4281           <TD WIDTH="70%" VALIGN="TOP">
4282           <FONT FACE="Courier New" SIZE=1><P>"scope"</FONT></TD>
4283           </TR>
4284           <TR><TD WIDTH="26%" VALIGN="TOP">
4285 karl  1.1 <FONT FACE="Courier New" SIZE=1><P>TOSUBCLASS</FONT></TD>
4286           <TD WIDTH="4%" VALIGN="TOP">
4287           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4288           <TD WIDTH="70%" VALIGN="TOP">
4289           <FONT FACE="Courier New" SIZE=1><P>"tosubclass"</FONT></TD>
4290           </TR>
4291           <TR><TD WIDTH="26%" VALIGN="TOP">
4292           <FONT FACE="Courier New" SIZE=1><P>TRANSLATABLE</FONT></TD>
4293           <TD WIDTH="4%" VALIGN="TOP">
4294           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4295           <TD WIDTH="70%" VALIGN="TOP">
4296           <FONT FACE="Courier New" SIZE=1><P>"translatable"</FONT></TD>
4297           </TR>
4298           <TR><TD WIDTH="26%" VALIGN="TOP">
4299           <FONT FACE="Courier New" SIZE=1><P>TRUE</FONT></TD>
4300           <TD WIDTH="4%" VALIGN="TOP">
4301           <FONT FACE="Courier New" SIZE=1><P ALIGN="CENTER">=</FONT></TD>
4302           <TD WIDTH="70%" VALIGN="TOP">
4303           <FONT FACE="Courier New" SIZE=1><P>"true"</FONT></TD>
4304           </TR>
4305           </TABLE>
4306 karl  1.1 
4307           <OL TYPE="A">
4308           
4309           <FONT SIZE=2><LI><A NAME="_Ref394208783"><A NAME="_Toc404410922"><A NAME="_Toc453585027"></FONT><B><FONT SIZE=5>CIM META SCHEMA</A></A></A></LI>
4310           </B></FONT><FONT FACE="Courier New" SIZE=1><P>// version 2.2</P>
4311           
4312           <P>Qualifier Abstract : boolean = false, Scope(class, association, indication),<BR>
4313                                Flavor(disableoverride, restricted);</P>
4314           
4315           <P>Qualifier Aggregate : boolean = false, Scope(reference),<BR>
4316                                 Flavor(disableoverride, tosubclass);</P>
4317           <P>Qualifier Aggregation : boolean = false, Scope(association),<BR>
4318                                   Flavor(disableoverride, tosubclass);</P>
4319           <P>Qualifier Alias : string = null, Scope(property, reference, method),<BR>
4320                             Flavor(translatable);</P>
4321           
4322           <P>Qualifier ArrayType : string = "Bag", Scope(property, parameter);</P>
4323           
4324           <P>Qualifier Association : boolean = false, Scope(class, association),<BR>
4325                                   Flavor(disableoverride);</P>
4326           
4327 karl  1.1 <P>Qualifier BitMap : string[], Scope(property, method, parameter);</P>
4328           
4329           <P>Qualifier BitValues : string[], Scope(property, method, parameter),<BR>
4330                                 Flavor(Translatable);</P>
4331           
4332           <P>Qualifier Counter : boolean = false, Scope(property, method, parameter);</P>
4333           <P>Qualifier Delete : boolean = false, Scope(association, reference);</P>
4334           
4335           <P>Qualifier Description : string = null, Scope(any), Flavor(translatable);</P>
4336           
4337           <P>Qualifier DisplayName : string = null, Scope(any), Flavor(translatable);</P>
4338           
4339           <P>Qualifier Expensive : boolean = false,<BR>
4340                                 Scope(property, reference, method, class, association);</P>
4341           <P>Qualifier Gauge : boolean = false, Scope(property, method, parameter);</P>
4342           <P>Qualifier Ifdeleted : boolean = false, Scope(association, reference);</P>
4343           
4344           <P>Qualifier In : boolean = true, Scope(parameter), Flavor(disableoverride);</P>
4345           
4346           <P>Qualifier Indication : boolean = false, Scope(class, indication),<BR>
4347                                  Flavor(disableoverride);</P>
4348 karl  1.1 
4349           <P>Qualifier Invisible : boolean = false,<BR>
4350                                 Scope(reference, association, class,property, method);</P>
4351           
4352           <P>Qualifier Key : boolean = false, Scope(property, reference),<BR>
4353                           Flavor(disableoverride);</P>
4354           
4355           <P>Qualifier Large : boolean = false, Scope(property, class);</P>
4356           
4357           <P>Qualifier MappingStrings : string[],<BR>
4358                                      Scope(class, property, association, indication, reference);</P>
4359           
4360           <P>Qualifier Max : uint32 = null, Scope(reference);</P>
4361           
4362           <P>Qualifier MaxLen : uint32 = null, Scope(property, method, parameter);</P>
4363           
4364           <P>Qualifier MaxValue : sint64 = null, Scope(property, method, parameter);</P>
4365           
4366           <P>Qualifier Min : uint32 = 0, Scope(reference);</P>
4367           
4368           <P>Qualifier MinValue : sint64 = null, Scope(property, method, parameter);</P>
4369 karl  1.1 
4370           <P>Qualifier ModelCorrespondence : string[], Scope(property);</P>
4371           
4372           <P>Qualifier NonLocal : string = null, Scope(reference);</P>
4373           
4374           <P>Qualifier NonLocalType : string = null, Scope(reference);</P>
4375           
4376           <P>Qualifier NullValue : string = null, Scope(property),<BR>
4377                                 Flavor(tosubclass, disableoverride);</P>
4378           
4379           <P>Qualifier Out : boolean = false, Scope(parameter), Flavor(disableoverride);</P>
4380           
4381           <P>Qualifier Override : string = null, Scope(property, method, reference),<BR>
4382                                Flavor(disableoverride);</P>
4383           
4384           <P>Qualifier Propagated : string = null, Scope(property, reference),<BR>
4385                                  Flavor(disableoverride);</P>
4386           
4387           <P>Qualifier Provider : string = null, Scope(any);</P>
4388           
4389           <P>Qualifier Read : boolean = true, Scope(property);</P>
4390 karl  1.1 
4391           <P>Qualifier Required : boolean = false, Scope(property);</P>
4392           
4393           <P>Qualifier Revision : string = null, Scope(schema, class, association, indication),<BR>
4394                                Flavor(translatable);</P>
4395           
4396           <P>Qualifier Schema : string = null, Scope(property, method),<BR>
4397                              Flavor(disableoverride, translatable);</P>
4398           
4399           <P>Qualifier Source : string = null, Scope(class, association, indication);</P>
4400           
4401           <P>Qualifier SourceType : string = null, <BR>
4402                                  Scope(class, association, indication,reference);</P>
4403           
4404           <P>Qualifier Static : boolean = false, Scope(property, method), Flavor(disableoverride);</P>
4405           
4406           <P>Qualifier Syntax : string = null, Scope(property, reference, method, parameter);</P>
4407           
4408           <P>Qualifier SyntaxType : string = null, Scope(property, reference, method, parameter);</P>
4409           
4410           <P>Qualifier Terminal : boolean = false, Scope(class);</P>
4411 karl  1.1 
4412           <P>Qualifier TriggerType : string = null,<BR>
4413                             Scope(class, property, reference, method, association, indication);</P>
4414           
4415           <P>Qualifier Units : string = null, Scope(property, method, parameter),<BR>
4416                             Flavor(translatable);</P>
4417           
4418           <P>Qualifier UnknownValues : string[], Scope(property),<BR>
4419                                     Flavor(disableoverride, tosubclass);</P>
4420           
4421           <P>Qualifier UnsupportedValues : string[], Scope(property),<BR>
4422                                         Flavor(disableoverride, tosubclass);</P>
4423           
4424           <P>Qualifier ValueMap : string[], Scope(property, method, parameter);</P>
4425           
4426           <P>Qualifier Values : string[], Scope(property, method, parameter),<BR>
4427                              Flavor(translatable);</P>
4428           
4429           <P>Qualifier Version : string = null,<BR>
4430                               Scope(schema, class, association, indication),<BR>
4431                               Flavor(translatable);Qualifier Weak : boolean = false, Scope(reference),<BR>
4432 karl  1.1                  Flavor(disableoverride, tosubclass);</P>
4433           
4434           <P>Qualifier Write : boolean = false, Scope(property);</P>
4435           <P> </P>
4436           <P>// ==================================================================<BR>
4437           //    NamedElement<BR>
4438           // ==================================================================<BR>
4439                   [Version( "2" ), Revision( "2" ), Description(<BR>
4440                   "The Meta_NamedElement class represents the root class for the "<BR>
4441                   "Metaschema. It has one property: Name, which is inherited by all the "<BR>
4442                   "non-association classes in the Metaschema. Every metaconstruct is "<BR>
4443                   "expressed as a descendent of the class Meta_Named Element.") ] <BR>
4444           class Meta_NamedElement<BR>
4445           {<BR>
4446                   [Description (<BR>
4447                   "The Name property indicates the name of the current Metaschema element. "<BR>
4448                   "The following rules apply to the Name property, depending on the "<BR>
4449                   "creation type of the object:&lt;UL&gt;&lt;LI&gt;Fully-qualified class names, such "<BR>
4450                   "as those prefixed by the schema name, are unique within the schema."<BR>
4451                   "&lt;LI&gt;Fully-qualified association and indication names are unique within "<BR>
4452                   "the schema (implied by the fact that association and indication classes "<BR>
4453 karl  1.1         "are subtypes of Meta_Class).&lt;LI&gt;Implicitly-defined qualifier names are "<BR>
4454                   "unique within the scope of the characterized object; that is, a named "<BR>
4455                   "element may not have two characteristics with the same name."<BR>
4456                   "&lt;LI&gt;Explicitly-defined qualifier names are unique within the defining "<BR>
4457                   "schema. An implicitly-defined qualifier must agree in type, scope and "<BR>
4458                   "flavor with any explicitly-defined qualifier of the same name."<BR>
4459                   "&lt;LI&gt;Trigger names must be unique within the property, class or method "<BR>
4460                   "to which the trigger applies.&lt;LI&gt;Method and property names must be "<BR>
4461                   "unique within the domain class. A class can inherit more than one "<BR>
4462                   "property or method with the same name. Property and method names can be "<BR>
4463                   "qualified using the name of the declaring class.&lt;LI&gt;Reference names "<BR>
4464                   "must be unique within the scope of their defining association class. "<BR>
4465                   "Reference names obey the same rules as property names.&lt;/UL&gt;&lt;B&gt;Note:&lt;/B&gt; "<BR>
4466                   "Reference names are not required to be unique within the scope of the "<BR>
4467                   "related class. Within such a scope, the reference provides the name of "<BR>
4468                   "the class within the context defined by the association.") ] <BR>
4469               string Name;<BR>
4470           };</P>
4471           <P>     </P>
4472           <P>// ==================================================================<BR>
4473           //    QualifierFlavor<BR>
4474 karl  1.1 // ==================================================================<BR>
4475                   [Version( "2" ), Revision( "2" ), Description (<BR>
4476                   "The Meta_QualifierFlavor class encapsulates extra semantics attached "<BR>
4477                   "to a qualifier such as the rules for transmission from superClass "<BR>
4478                   "to subClass and whether or not the qualifier value may be translated "<BR>
4479                   "into other languages") ] <BR>
4480           class Meta_QualifierFlavor:Meta_NamedElement<BR>
4481           {<BR>
4482           };</P>
4483           <P>     </P>
4484           <P>// ==================================================================<BR>
4485           //    Schema<BR>
4486           // ==================================================================<BR>
4487                   [Version( "2" ), Revision( "2" ), Description (<BR>
4488                   "The Meta_Schema class represents a group of classes with a single owner."<BR>
4489                   " Schemas are used for administration and class naming. Class names must "<BR>
4490                   "be unique within their owning schemas.") ] <BR>
4491           class Meta_Schema:Meta_NamedElement<BR>
4492           {<BR>
4493           };</P>
4494           <P>     </P>
4495 karl  1.1 <P>// ==================================================================<BR>
4496           //    Trigger<BR>
4497           // ==================================================================<BR>
4498                   [Version( "2" ), Revision( "2" ), Description (<BR>
4499                   "A Trigger is a recognition of a state change (such as create, delete, "<BR>
4500                   "update, or access) of a Class instance, and update or access of a "<BR>
4501                   "Property.") ] <BR>
4502           class Meta_Trigger:Meta_NamedElement<BR>
4503           {<BR>
4504           };</P>
4505           <P> </P>
4506           <P>// ==================================================================<BR>
4507           //    Qualifier<BR>
4508           // ==================================================================<BR>
4509                   [Version( "2" ), Revision( "2" ), Description (<BR>
4510                   "The Meta_Qualifier class represents characteristics of named elements. "<BR>
4511                   "For example, there are qualifiers that define the characteristics of a "<BR>
4512                   "property or the key of a class. Qualifiers provide a mechanism that "<BR>
4513                   "makes the Metaschema extensible in a limited and controlled fashion."<BR>
4514                   "&lt;P&gt;It is possible to add new types of qualifiers by the introduction of "<BR>
4515                   "a new qualifier name, thereby providing new types of metadata to "<BR>
4516 karl  1.1         "processes that manage and manipulate classes, properties, and other "<BR>
4517                   "elements of the Metaschema.") ] <BR>
4518           class Meta_Qualifier:Meta_NamedElement<BR>
4519           {<BR>
4520                   [Description ("The Value property indicates the value of the qualifier.")] <BR>
4521               string Value;<BR>
4522           };</P>
4523           <P>     </P>
4524           <P>// ==================================================================<BR>
4525           //    Method<BR>
4526           // ==================================================================<BR>
4527                   [Version( "2" ), Revision( "2" ), Description (<BR>
4528                   "The Meta_Method class represents a declaration of a signature; that is, "<BR>
4529                   "the method name, return type and parameters, and (in the case of a "<BR>
4530                   "concrete class) may imply an implementation.") ] <BR>
4531           class Meta_Method:Meta_NamedElement<BR>
4532           {<BR>
4533           };</P>
4534           <P>     </P>
4535           <P>// ==================================================================<BR>
4536           //    Property<BR>
4537 karl  1.1 // ==================================================================<BR>
4538                   [Version( "2" ), Revision( "2" ), Description (<BR>
4539                   "The Meta_Property class represents a value used to characterize "<BR>
4540                   "instances of a class. A property can be thought of as a pair of Get and "<BR>
4541                   "Set functions that, when applied to an object,  return state and set "<BR>
4542                   "state, respectively.") ] <BR>
4543           class Meta_Property:Meta_NamedElement<BR>
4544           {<BR>
4545           };</P>
4546           <P>     </P>
4547           <P>// ==================================================================<BR>
4548           //    Reference<BR>
4549           // ==================================================================<BR>
4550                   [Version( "2" ), Revision( "2" ), Description (<BR>
4551                   "The Meta_Reference class represents (and defines) the role each object "<BR>
4552                   "plays in an association. The reference represents the role name of a "<BR>
4553                   "class in the context of an association, which supports the provision of "<BR>
4554                   "multiple relationship instances for a given object. For example, a "<BR>
4555                   "system can be related to many system components.") ] <BR>
4556           class Meta_Reference:Meta_Property<BR>
4557           {<BR>
4558 karl  1.1 };</P>
4559           <P>     </P>
4560           <P>// ==================================================================<BR>
4561           //    Class<BR>
4562           // ==================================================================<BR>
4563                   [Version( "2" ), Revision( "2" ), Description (<BR>
4564                   "The Meta_Class class is a collection of instances that support the same "<BR>
4565                   "type; that is, the same properties and methods. Classes can be arranged "<BR>
4566                   "in a generalization hierarchy that represents subtype relationships "<BR>
4567                   "between classes.&lt;P&gt;The generalization hierarchy is a rooted, directed "<BR>
4568                   "graph and does not support multiple inheritance. Classes can have "<BR>
4569                   "methods, which represent the behavior relevant for that class. A Class "<BR>
4570                   "may participate in associations by being the target of one of the "<BR>
4571                   "references owned by the association.") ] <BR>
4572           class Meta_Class:Meta_NamedElement<BR>
4573           {<BR>
4574           };</P>
4575           <P>     </P>
4576           <P>// ==================================================================<BR>
4577           //    Indication<BR>
4578           // ==================================================================<BR>
4579 karl  1.1         [Version( "2" ), Revision( "2" ), Description (<BR>
4580                   "The Meta_Indication class represents an object created as a result of a "<BR>
4581                   "trigger. Because Indications are subtypes of Meta_Class, they can have "<BR>
4582                   "properties and methods, and be arranged in a type hierarchy. ") ] <BR>
4583           class Meta_Indication:Meta_Class<BR>
4584           {<BR>
4585           };</P>
4586           <P>     </P>
4587           <P>// ==================================================================<BR>
4588           //    Association<BR>
4589           // ==================================================================<BR>
4590                   [Version( "2" ), Revision( "2" ), Description (<BR>
4591                   "The Meta_Association class represents a class that contains two or more "<BR>
4592                   "references and represents a relationship between two or more objects. "<BR>
4593                   "Because of how associations are defined, it is possible to establish a "<BR>
4594                   "relationship between classes without affecting any of the related "<BR>
4595                   "classes.&lt;P&gt;For example, the addition of an association does not affect "<BR>
4596                   "the interface of the related classes; associations have no other "<BR>
4597                   "significance. Only associations can have references. Associations can "<BR>
4598                   "be a subclass of a non-association class . Any subclass of "<BR>
4599                   "Meta_Association is an association.") ] <BR>
4600 karl  1.1 class Meta_Association:Meta_Class<BR>
4601           {<BR>
4602           };</P>
4603           <P>     </P>
4604           <P>// ==================================================================<BR>
4605           //    Characteristics<BR>
4606           // ==================================================================<BR>
4607                   [Association, Version( "2" ), Revision( "2" ), Aggregation, Description (<BR>
4608                   "The Meta_Characteristics class relates a Meta_NamedElement to a "<BR>
4609                   "qualifier that characterizes the named element. Meta_NamedElement may "<BR>
4610                   "have zero or more characteristics.") ] <BR>
4611           class Meta_Characteristics<BR>
4612           {<BR>
4613                   [Description (<BR>
4614                   "The Characteristic reference represents the qualifier that "<BR>
4615                   "characterizes the named element.") ] <BR>
4616               Meta_Qualifier REF Characteristic;<BR>
4617                   [Aggregate, Description (<BR>
4618                   "The Characterized reference represents the named element that is being "<BR>
4619                   "characterized.") ] <BR>
4620               Meta_NamedElement REF Characterized;<BR>
4621 karl  1.1 };</P>
4622           <P>     </P>
4623           <P>// ==================================================================<BR>
4624           //    PropertyDomain<BR>
4625           // ==================================================================<BR>
4626                   [Association, Version( "2" ), Revision( "2" ), Aggregation, Description (<BR>
4627                   "The Meta_PropertyDomain class represents an association between a class "<BR>
4628                   "and a property.&lt;P&gt;A property  has only one domain: the class that owns "<BR>
4629                   "the property. A property can have an override relationship with another "<BR>
4630                   "property from a different class. The domain of the overridden property "<BR>
4631                   "must be a supertype of the domain of the overriding property.  The "<BR>
4632                   "domain of a reference must be an association.") ] <BR>
4633           class Meta_PropertyDomain<BR>
4634           {<BR>
4635                   [Description (<BR>
4636                   "The Property reference represents the property that is owned by the "<BR>
4637                   "class referenced by Domain.") ] <BR>
4638               Meta_Property REF Property;<BR>
4639                   [Aggregate, Description (<BR>
4640                   "The Domain reference represents the class that owns the property "<BR>
4641                   "referenced by Property.") ] <BR>
4642 karl  1.1     Meta_Class REF Domain;<BR>
4643           };</P>
4644           <P>     </P>
4645           <P>// ==================================================================<BR>
4646           //    MethodDomain<BR>
4647           // ==================================================================<BR>
4648                   [Association, Version( "2" ), Revision( "2" ), Aggregation, Description (<BR>
4649                   "The Meta_MethodDomain class represents an association between a class "<BR>
4650                   "and a method.&lt;P&gt;A method has only one domain: the class that owns the "<BR>
4651                   "method, which can have an override relationship with another method "<BR>
4652                   "from a different class. The domain of the overridden method must be a "<BR>
4653                   "supertype of the domain of the overriding method. The signature of the "<BR>
4654                   "method (that is, the name, parameters and return type) must be "<BR>
4655                   "identical.") ] <BR>
4656           class Meta_MethodDomain<BR>
4657           {<BR>
4658                   [Description (<BR>
4659                   "The Method reference represents the method that is owned by the class "<BR>
4660                   "referenced by Domain.") ] <BR>
4661               Meta_Method REF Method;<BR>
4662                   [Aggregate, Description (<BR>
4663 karl  1.1         "The Domain reference represents the class that owns the method "<BR>
4664                   "referenced by Method.") ] <BR>
4665               Meta_Class REF Domain;<BR>
4666           };</P>
4667           <P>     </P>
4668           <P>// ==================================================================<BR>
4669           //    ReferenceRange<BR>
4670           // ==================================================================<BR>
4671                   [Association, Version( "2" ), Revision( "2" ), Description (<BR>
4672                   "The Meta_ReferenceRange class defines the type of the reference.") ] <BR>
4673           class Meta_ReferenceRange<BR>
4674           {<BR>
4675                   [Description (<BR>
4676                   "The Reference reference represents the reference whose type is defined "<BR>
4677                   "by Range.") ] <BR>
4678               Meta_Reference REF Reference;<BR>
4679                   [Description (<BR>
4680                   "The Range reference represents the class that defines the type of "<BR>
4681                   "reference.") ] <BR>
4682               Meta_Class REF Range;<BR>
4683           };</P>
4684 karl  1.1 <P>     </P>
4685           <P>// ==================================================================<BR>
4686           //    QualifiersFlavor<BR>
4687           // ==================================================================<BR>
4688                   [Association, Version( "2" ), Revision( "2" ), Aggregation, Description (<BR>
4689                   "The Meta_QualifiersFlavor class represents an association between a "<BR>
4690                   "flavor and a qualifier.") ] <BR>
4691           class Meta_QualifiersFlavor<BR>
4692           {<BR>
4693                   [Description (<BR>
4694                   "The Flavor reference represents the qualifier flavor to "<BR>
4695                   "be applied to Qualifier.") ] <BR>
4696               Meta_QualifierFlavor REF Flavor;<BR>
4697                   [Aggregate, Description (<BR>
4698                   "The Qualifier reference represents the qualifier to which "<BR>
4699                   "Flavor applies.") ] <BR>
4700               Meta_Qualifier REF Qualifier;<BR>
4701           };</P>
4702           <P>     </P>
4703           <P>// ==================================================================<BR>
4704           //    SubtypeSupertype<BR>
4705 karl  1.1 // ==================================================================<BR>
4706                   [Association, Version( "2" ), Revision( "2" ), Description (<BR>
4707                   "The Meta_SubtypeSupertype class represents subtype/supertype "<BR>
4708                   "relationships between classes arranged in a generalization hierarchy. "<BR>
4709                   "This generalization hierarchy is a rooted, directed graph and does not "<BR>
4710                   "support multiple inheritance.") ] <BR>
4711           class Meta_SubtypeSupertype<BR>
4712           {<BR>
4713                   [Description (<BR>
4714                   "The SuperClass reference represents the class that is hierarchically "<BR>
4715                   "immediately above the class referenced by SubClass.") ] <BR>
4716               Meta_Class REF SuperClass;<BR>
4717                   [Description (<BR>
4718                   "The SubClass reference represents the class that is the immediate "<BR>
4719                   "descendent of the class referenced by SuperClass.") ] <BR>
4720               Meta_Class REF SubClass;<BR>
4721           };</P>
4722           <P>     </P>
4723           <P>// ==================================================================<BR>
4724           //    PropertyOverride<BR>
4725           // ==================================================================<BR>
4726 karl  1.1         [Association, Version( "2" ), Revision( "2" ), Description (<BR>
4727                   "The Meta_PropertyOverride class represents an association between two "<BR>
4728                   "properties where one overrides the other.&lt;P&gt;Properties have reflexive "<BR>
4729                   "associations that represent property overriding. A property can "<BR>
4730                   "override an inherited property, which implies that any access to the "<BR>
4731                   "inherited property will result in the invocation of the implementation "<BR>
4732                   "of the overriding property. A Property can have an override "<BR>
4733                   "relationship with another property from a different class.&lt;P&gt;The domain "<BR>
4734                   "of the overridden property must be a supertype of the domain of the "<BR>
4735                   "overriding property. The class referenced by the Meta_ReferenceRange "<BR>
4736                   "association of an overriding reference must be the same as, or a "<BR>
4737                   "subtype of, the class referenced by the Meta_ReferenceRange "<BR>
4738                   "associations of the reference being overridden.") ] <BR>
4739           class Meta_PropertyOverride<BR>
4740           {<BR>
4741                   [Description (<BR>
4742                   "The OverridingProperty reference represents the property that overrides "<BR>
4743                   "the property referenced by OverriddenProperty.") ] <BR>
4744               Meta_Property REF OverridingProperty;<BR>
4745                   [Description (<BR>
4746                   "The OverriddenProperty reference represents the property that is "<BR>
4747 karl  1.1         "overridden by the property reference by OverridingProperty.") ] <BR>
4748               Meta_Property REF OverriddenProperty;<BR>
4749           };</P>
4750           <P>     </P>
4751           <P>// ==================================================================<BR>
4752           //    MethodOverride<BR>
4753           // ==================================================================<BR>
4754                   [Association, Version( "2" ), Revision( "2" ), Description (<BR>
4755                   "The Meta_MethodOverride class represents an association between two "<BR>
4756                   "methods, where one overrides the other. Methods have reflexive "<BR>
4757                   "associations that represent method overriding. A method can override an "<BR>
4758                   "inherited method, which implies that any access to the inherited method "<BR>
4759                   "will result in the invocation of the implementation of the overriding "<BR>
4760                   "method.") ] <BR>
4761           class Meta_MethodOverride<BR>
4762           {<BR>
4763                   [Description (<BR>
4764                   "The OverridingMethod reference represents the method that overrides the "<BR>
4765                   "method referenced by OverriddenMethod.") ] <BR>
4766               Meta_Method REF OverridingMethod;<BR>
4767                   [Description (<BR>
4768 karl  1.1         "The OverriddenMethod reference represents the method that is overridden "<BR>
4769                   "by the method reference by OverridingMethod.") ] <BR>
4770               Meta_Method REF OverriddenMethod;<BR>
4771           };</P>
4772           <P>     </P>
4773           <P>// ==================================================================<BR>
4774           //    ElementSchema<BR>
4775           // ==================================================================<BR>
4776                   [Association, Version( "2" ), Revision( "2" ), Aggregation, Description (<BR>
4777                   "The Meta_ElementSchema class represents the elements (typically classes "<BR>
4778                   "and qualifiers) that make up a schema.") ] <BR>
4779           class Meta_ElementSchema<BR>
4780           {<BR>
4781                   [Description (<BR>
4782                   "The Element reference represents the named element that belongs to the "<BR>
4783                   "schema referenced by Schema.") ] <BR>
4784               Meta_NamedElement REF Element;<BR>
4785                   [Aggregate, Description (<BR>
4786                   "The Schema reference represents the schema to which the named element "<BR>
4787                   "referenced by Element belongs.") ] <BR>
4788               Meta_Schema REF Schema;<BR>
4789 karl  1.1 };     </P>
4790           <LI><A NAME="_Toc404410923"><A NAME="_Ref412178790"><A NAME="_Toc453585028"></FONT><B><FONT SIZE=5>Values for UNITS Qualifier</A></A></LI></OL>
4791           <DIR>
4792           <DIR>
4793           
4794           </B></FONT><FONT SIZE=3><P>The UNITS qualifier specifies the unit of measure in which the associated property is expressed. For example, a Size property might have Units ("bytes"). Currently recognized values are:</P></DIR>
4795           </DIR>
4796           
4797           
4798           <UL>
4799           
4800           <UL>
4801           <LI>Bits, KiloBits, MegaBits, GigaBits</LI>
4802           <LI>Bits per Second</LI>
4803           <LI>Bytes, KiloBytes, MegaBytes, GigaBytes, Words, DoubleWords, QuadWords</LI>
4804           <LI>Degrees C, Tenths of Degrees C, Hundredths of Degrees C, Degrees F, Tenths of Degrees F, Hundredths of Degrees F, Degrees K, Tenths of Degrees K, Hundredths of Degrees K, Color Temperature</LI>
4805           <LI>Volts, MilliVolts, Tenths of MilliVolts, Amps, MilliAmps, Tenths of MilliAmps, Watts, MilliWattHours</LI>
4806           <LI>Joules, Coulombs, Newtons</LI>
4807           <LI>Lumen, Lux, Candelas</LI>
4808           <LI>Pounds, Pounds per Square Inch</LI>
4809           <LI>Cycles, Revolutions, Revolutions per Minute, Revolutions per Second</LI>
4810 karl  1.1 <LI>Minutes, Seconds, Tenths of Seconds, Hundredths of Seconds, MicroSeconds, MilliSeconds, NanoSeconds</LI>
4811           <LI>Hours, Days, Weeks</LI>
4812           <LI>Hertz, MegaHertz</LI>
4813           <LI>Pixels, Pixels per Inch</LI>
4814           <LI>Counts per Inch</LI>
4815           <LI>Percent, Tenths of Percent, Hundredths of Percent</LI>
4816           <LI>Meters, Centimeters, Millimeters, Cubic Meters, Cubic Centimeters, Cubic Millimeters</LI>
4817           <LI>Inches, Feet, Cubic Inches, Cubic Feet Ounces, Liters, Fluid Ounces</LI>
4818           <LI>Radians, Steradians, Degrees</LI>
4819           <LI>Gravities, Pounds, Foot-Pounds</LI>
4820           <LI>Gauss, Gilberts, Henrys, MilliHenrys, Farads, MilliFarads, MicroFarads, PicoFarads</LI>
4821           <LI>Ohms, Siemens</LI>
4822           <LI>Moles, Becquerels, Parts per Million</LI>
4823           <LI>Decibels, Tenths of Decibels</LI>
4824           <LI>Grays, Sieverts</LI></UL>
4825           </UL>
4826           
4827           <OL TYPE="A">
4828           
4829           <LI><A NAME="_Toc453585029"></FONT><B><FONT SIZE=5>UML Notation</A></A></LI>
4830           </B></FONT><FONT SIZE=3><P>The CIM meta-schema notation is based directly on the notation used in Unified Modeling Language (UML). There are distinct symbols for all of the major constructs in the schema, with the exception of qualifiers (as opposed to properties, which are directly represented in the diagrams). </P>
4831 karl  1.1 <P>In UML, a class is represented by a rectangle. The class name either stands alone in the rectangle or is in the uppermost segment of the rectangle. If present, the segment below the segment containing the name contains the properties of the class. If present, a third region indicates the presence of methods. </P>
4832           <P>A line decorated with a triangle indicates an inheritance relationship; the lower rectangle represents a subtype of the upper rectangle. The triangle points to the superclass. </P>
4833           <P>Other solid lines represent relationships. The cardinality of the references on either side of the relationship is indicated by a decoration on either end. The following character combinations are commonly used:</P>
4834           <P>&quot;1&quot;&#9; indicates a single-valued, required reference</P>
4835           <P>&quot;0…1&quot; &#9;indicates an optional single-valued reference</P>
4836           <P>&quot;*&quot;&#9; indicates an optional many-valued reference (as does &quot;0..*&quot;)</P>
4837           <P>&quot;1..*&quot;&#9; indicates a required many-valued reference</P>
4838           <P>A line connected to a rectangle by a dotted line represents a subclass relationship between two associations. </P>
4839           <P>The diagramming notation and its interpretation are summarized in this table: </P></FONT>
4840           <P ALIGN="CENTER"><CENTER><TABLE BORDER CELLSPACING=1 BORDERCOLOR="#000000" CELLPADDING=9 WIDTH=558>
4841           <TR><TD WIDTH="24%" VALIGN="TOP">
4842           <B><FONT SIZE=1><P>Meta element</B></FONT></TD>
4843           <TD WIDTH="37%" VALIGN="TOP">
4844           <B><FONT SIZE=1><P>Interpretation</B></FONT></TD>
4845           <TD WIDTH="40%" VALIGN="TOP">
4846           <B><FONT SIZE=1><P>Diagramming Notation</B></FONT></TD>
4847           </TR>
4848           <TR><TD WIDTH="24%" VALIGN="TOP">
4849           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4850           <P ALIGN="CENTER">&nbsp;</P>
4851           <P ALIGN="CENTER">Object</FONT></TD>
4852 karl  1.1 <TD WIDTH="37%" VALIGN="TOP">&nbsp;</TD>
4853           <TD WIDTH="40%" VALIGN="TOP">
4854           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4855           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image21.gif" WIDTH=101 HEIGHT=98></P>
4856           </FONT><FONT SIZE=1><P ALIGN="CENTER"></FONT></TD>
4857           </TR>
4858           <TR><TD WIDTH="24%" VALIGN="TOP">
4859           <FONT SIZE=1><P ALIGN="CENTER">Primitive type</FONT></TD>
4860           <TD WIDTH="37%" VALIGN="TOP">
4861           <FONT SIZE=1><P ALIGN="CENTER">Text to the right of the colon in the center portion of the class icon </FONT></TD>
4862           <TD WIDTH="40%" VALIGN="TOP">
4863           <FONT SIZE=1><P ALIGN="CENTER"><BR>
4864           </FONT></TD>
4865           </TR>
4866           <TR><TD WIDTH="24%" VALIGN="TOP">
4867           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4868           <P ALIGN="CENTER">&nbsp;</P>
4869           <P ALIGN="CENTER">Class</FONT></TD>
4870           <TD WIDTH="37%" VALIGN="TOP">&nbsp;</TD>
4871           <TD WIDTH="40%" VALIGN="TOP">
4872           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4873 karl  1.1 </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image22.gif" WIDTH=99 HEIGHT=99></P>
4874           </FONT><FONT SIZE=1><P ALIGN="CENTER"></FONT></TD>
4875           </TR>
4876           <TR><TD WIDTH="24%" VALIGN="TOP">
4877           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4878           <P ALIGN="CENTER">&nbsp;</P>
4879           <P ALIGN="CENTER">Subclass</FONT></TD>
4880           <TD WIDTH="37%" VALIGN="TOP">&nbsp;</TD>
4881           <TD WIDTH="40%" VALIGN="TOP">
4882           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4883           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image23.gif" WIDTH=95 HEIGHT=72></P>
4884           </FONT><FONT SIZE=1><P ALIGN="CENTER"></FONT></TD>
4885           </TR>
4886           <TR><TD WIDTH="24%" VALIGN="TOP">
4887           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4888           <P ALIGN="CENTER">&nbsp;</P>
4889           <P ALIGN="CENTER">Association</FONT></TD>
4890           <TD WIDTH="37%" VALIGN="TOP">
4891           <FONT SIZE=1><P ALIGN="CENTER"><BR>
4892           1:1 </P>
4893           <P ALIGN="CENTER">1:Many</P>
4894 karl  1.1 <P ALIGN="CENTER">1:zero or 1 </P>
4895           <P ALIGN="CENTER">Aggregation</FONT></TD>
4896           <TD WIDTH="40%" VALIGN="TOP">
4897           <FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image24.gif" WIDTH=108 HEIGHT=129></FONT></TD>
4898           </TR>
4899           <TR><TD WIDTH="24%" VALIGN="TOP">
4900           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4901           <P ALIGN="CENTER">&nbsp;</P>
4902           <P ALIGN="CENTER">Association with properties</FONT></TD>
4903           <TD WIDTH="37%" VALIGN="TOP">
4904           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4905           <P ALIGN="CENTER">&nbsp;</P>
4906           <P ALIGN="CENTER"> link-class with the link-class having the same name as the association, and using normal conventions for representing properties and methods.</FONT></TD>
4907           <TD WIDTH="40%" VALIGN="TOP">
4908           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4909           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image25.gif" WIDTH=221 HEIGHT=145></FONT></TD>
4910           </TR>
4911           <TR><TD WIDTH="24%" VALIGN="TOP">
4912           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4913           <P ALIGN="CENTER">Association with subclass</FONT></TD>
4914           <TD WIDTH="37%" VALIGN="TOP">
4915 karl  1.1 <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4916           <P ALIGN="CENTER">A dashed line running from the sub association to the super class.</FONT></TD>
4917           <TD WIDTH="40%" VALIGN="TOP">
4918           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4919           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image26.gif" WIDTH=171 HEIGHT=60></FONT></TD>
4920           </TR>
4921           <TR><TD WIDTH="24%" VALIGN="TOP">
4922           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4923           <P ALIGN="CENTER">&nbsp;</P>
4924           <P ALIGN="CENTER">Property</FONT></TD>
4925           <TD WIDTH="37%" VALIGN="TOP">
4926           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4927           <P ALIGN="CENTER">&nbsp;</P>
4928           <P ALIGN="CENTER">Middle section of the class icon is a list of the properties of the class.</FONT></TD>
4929           <TD WIDTH="40%" VALIGN="TOP">
4930           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4931           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image27.gif" WIDTH=99 HEIGHT=99></P>
4932           </FONT><FONT SIZE=1><P ALIGN="CENTER"></FONT></TD>
4933           </TR>
4934           <TR><TD WIDTH="24%" VALIGN="TOP">
4935           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4936 karl  1.1 <P ALIGN="CENTER">Reference</FONT></TD>
4937           <TD WIDTH="37%" VALIGN="TOP">
4938           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4939           <P ALIGN="CENTER">One end of the association line labeled with the name of the reference.</FONT></TD>
4940           <TD WIDTH="40%" VALIGN="TOP">
4941           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4942           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image28.gif" WIDTH=110 HEIGHT=52></P>
4943           </FONT><FONT SIZE=1><P ALIGN="CENTER"></FONT></TD>
4944           </TR>
4945           <TR><TD WIDTH="24%" VALIGN="TOP">
4946           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4947           <P ALIGN="CENTER">&nbsp;</P>
4948           <P ALIGN="CENTER">Method</FONT></TD>
4949           <TD WIDTH="37%" VALIGN="TOP">
4950           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4951           <P ALIGN="CENTER">&nbsp;</P>
4952           <P ALIGN="CENTER">Lower section of the class icon is a list of the methods of the class.</FONT></TD>
4953           <TD WIDTH="40%" VALIGN="TOP">
4954           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4955           </FONT><FONT SIZE=2><P ALIGN="CENTER"><IMG SRC="Image29.gif" WIDTH=99 HEIGHT=99></P>
4956           </FONT><FONT SIZE=1><P ALIGN="CENTER"></FONT></TD>
4957 karl  1.1 </TR>
4958           <TR><TD WIDTH="24%" VALIGN="TOP">
4959           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4960           <P ALIGN="CENTER">Overriding</FONT></TD>
4961           <TD WIDTH="37%" VALIGN="TOP">
4962           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4963           <P ALIGN="CENTER">No direct equivalent.</P>
4964           <B><P ALIGN="CENTER">Note:</B> Use of the same name does not imply overriding.</FONT></TD>
4965           <TD WIDTH="40%" VALIGN="TOP">
4966           <FONT SIZE=1><P ALIGN="CENTER"><BR>
4967           </FONT></TD>
4968           </TR>
4969           <TR><TD WIDTH="24%" VALIGN="TOP">
4970           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4971           <P ALIGN="CENTER">Indication</FONT></TD>
4972           <TD WIDTH="37%" VALIGN="TOP">
4973           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4974           <P ALIGN="CENTER">Message trace diagram in which vertical bars represent objects and horizontal lines represent messages.</FONT></TD>
4975           <TD WIDTH="40%" VALIGN="TOP">&nbsp;</TD>
4976           </TR>
4977           <TR><TD WIDTH="24%" VALIGN="TOP">
4978 karl  1.1 <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4979           <P ALIGN="CENTER">Trigger</FONT></TD>
4980           <TD WIDTH="37%" VALIGN="TOP">
4981           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4982           <P ALIGN="CENTER">State transition diagrams.</FONT></TD>
4983           <TD WIDTH="40%" VALIGN="TOP">
4984           <FONT SIZE=1><P ALIGN="CENTER"><BR>
4985           </FONT></TD>
4986           </TR>
4987           <TR><TD WIDTH="24%" VALIGN="TOP">
4988           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4989           <P ALIGN="CENTER">Qualifier</FONT></TD>
4990           <TD WIDTH="37%" VALIGN="TOP">
4991           <FONT SIZE=1><P ALIGN="CENTER">&nbsp;</P>
4992           <P ALIGN="CENTER">No direct equivalent.</FONT></TD>
4993           <TD WIDTH="40%" VALIGN="TOP">
4994           <FONT SIZE=1><P ALIGN="CENTER"><BR>
4995           </FONT></TD>
4996           </TR>
4997           </TABLE>
4998           </CENTER></P>
4999 karl  1.1 
5000           <FONT SIZE=3><P>&nbsp;</P>
5001           <LI><A NAME="_Toc373214132"><A NAME="_Toc404410924"><A NAME="_Toc453585030"></FONT><B><FONT SIZE=5>Glossary</A></A></A></LI>
5002           </B></FONT><FONT SIZE=3></FONT>
5003           <TABLE BORDER CELLSPACING=1 BORDERCOLOR="#000000" CELLPADDING=9>
5004           <TR><TD WIDTH=450 VALIGN="TOP" COLSPAN=2></TD>
5005           <TD></TD>
5006           </TR>
5007           <TR><TD WIDTH=162 VALIGN="TOP">
5008           <B><FONT SIZE=2><P>AggregationAssociation</B></FONT></TD>
5009           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5010           <FONT SIZE=1><P>A <I>class</I> that expresses the relationship between two other <I>classes</I>. The relationship is established by the presence of two or more <I>references</I> in the <I>association class</I> pointing to the related <I>classes</I>. </FONT></TD>
5011           </TR>
5012           <TR><TD WIDTH=162 VALIGN="TOP">
5013           <B><FONT SIZE=2><P>Cardinality</B></FONT></TD>
5014           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5015           <FONT SIZE=1><P>A relationship between two classes that allows more than one <I>object</I> to be related to a single <I>object</I>. For example, Microsoft Office* is made up of the software elements Word, Excel, Access and PowerPoint. </FONT></TD>
5016           </TR>
5017           <TR><TD WIDTH=162 VALIGN="TOP">
5018           <B><FONT SIZE=2><P>CIM</B></FONT></TD>
5019           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5020 karl  1.1 <FONT SIZE=1><P>Common Information Model is the schema of the overall managed environment. It is divided into a <I>Core model</I>, <I>Common model</I> and <I>extended schemas</I>. </FONT></TD>
5021           </TR>
5022           <TR><TD WIDTH=162 VALIGN="TOP">
5023           <B><FONT SIZE=2><P>CIM Schema</B></FONT></TD>
5024           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5025           <FONT SIZE=1><P>The schema representing the <I>Core</I> and <I>Common</I> <I>models</I>. Versions of this schema will be released by the DMTF over time as the schema evolves.</FONT></TD>
5026           </TR>
5027           <TR><TD WIDTH=162 VALIGN="TOP">
5028           <B><FONT SIZE=2><P>Class</B></FONT></TD>
5029           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5030           <FONT SIZE=1><P>A collection of instances, all of which support a common type; that is, a set of <I>properties</I> and <I>methods</I>. The common <I>properties</I> and <I>methods</I> are defined as <I>features</I> of the <I>class</I>. For example, the <I>class</I> called Modem represents all the modems present in a system. </FONT></TD>
5031           </TR>
5032           <TR><TD WIDTH=162 VALIGN="TOP">
5033           <B><FONT SIZE=2><P>Common model</B></FONT></TD>
5034           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5035           <FONT SIZE=1><P>A collection of <I>models</I> specific to a particular area, derived from the <I>Core model</I>. Included are the system <I>model</I>, the application <I>model</I>, the network <I>model</I> and the device <I>model</I>. </FONT></TD>
5036           </TR>
5037           <TR><TD WIDTH=162 VALIGN="TOP">
5038           <B><FONT SIZE=2><P>Core model</B></FONT></TD>
5039           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5040           <FONT SIZE=1><P>A subset of <I>CIM</I>, not specific to any platform. The <I>Core model</I> is set of <I>classes</I> and <I>associations</I> that establish a conceptual framework for the <I>schema</I> of the rest of the managed environment. Systems, applications, networks and related information are modeled as extensions to the <I>Core model</I>. </FONT></TD>
5041 karl  1.1 </TR>
5042           <TR><TD WIDTH=162 VALIGN="TOP">
5043           <B><FONT SIZE=2><P>Domain</B></FONT></TD>
5044           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5045           <FONT SIZE=1><P>A virtual room for object names that establishes the range in which the names of objects are unique.</FONT></TD>
5046           </TR>
5047           <TR><TD WIDTH=162 VALIGN="TOP">
5048           <B><FONT SIZE=2><P>Explicit Qualifier</B></FONT></TD>
5049           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5050           <FONT SIZE=1><P>A <I>qualifier</I> defined separately from the definition of a <I>class</I>, <I>property</I> or other schema element (see i<I>mplicit qualifier</I>). <I>Explicit qualifier</I> names must be unique across the entire <I>schema</I>. <I>Implicit qualifier</I> names must be unique within the defining schema element; that is, a given schema element may not have two <I>qualifiers</I> with the same name.</FONT></TD>
5051           </TR>
5052           <TR><TD WIDTH=162 VALIGN="TOP">
5053           <B><FONT SIZE=2><P>Extended schema</B></FONT></TD>
5054           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5055           <FONT SIZE=1><P>A platform specific <I>schema</I> derived from the Common model. An example is the Win32 <I>schema</I>. </FONT></TD>
5056           </TR>
5057           <TR><TD WIDTH=162 VALIGN="TOP">
5058           <B><FONT SIZE=2><P>Feature</B></FONT></TD>
5059           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5060           <FONT SIZE=1><P>A <I>property</I> or <I>method</I> belonging to a <I>class</I>. </FONT></TD>
5061           </TR>
5062 karl  1.1 <TR><TD WIDTH=162 VALIGN="TOP">
5063           <B><FONT SIZE=2><P>Flavor</B></FONT></TD>
5064           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5065           <FONT SIZE=1><P>Part of a <I>qualifier</I> spcification indicating overriding and <I>inheritance </I>rules. For example, the <I>qualifier</I> KEY has Flavor(DisableOverride ToSubclass), meaning that every subclass must inherit it and cannot override it.</FONT></TD>
5066           </TR>
5067           <TR><TD WIDTH=162 VALIGN="TOP">
5068           <B><FONT SIZE=2><P>Implicit Qualifier</B></FONT></TD>
5069           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5070           <FONT SIZE=1><P>A <I>qualifier</I> defined as a part of the definition of a <I>class</I>, <I>property</I> or other schema element (see <I>explicit qualifier</I>). </FONT></TD>
5071           </TR>
5072           <TR><TD WIDTH=162 VALIGN="TOP">
5073           <B><FONT SIZE=2><P>Indication</B></FONT></TD>
5074           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5075           <FONT SIZE=1><P>A type of <I>class</I> usually created as a result of the occurrence of a <I>trigger</I>. </FONT></TD>
5076           </TR>
5077           <TR><TD WIDTH=162 VALIGN="TOP">
5078           <B><FONT SIZE=2><P>Inheritance</B></FONT></TD>
5079           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5080           <FONT SIZE=1><P>A relationship between two <I>classes</I> in which all the members of the <I>subclass</I> are required to be members of the <I>superclass</I>.  Any member of the <I>subclass</I> must also support any <I>method</I> or <I>property</I> supported by the <I>superclass</I>. For example, Modem is a <I>subclass</I> of Device. </FONT></TD>
5081           </TR>
5082           <TR><TD WIDTH=162 VALIGN="TOP">
5083 karl  1.1 <B><FONT SIZE=2><P>Instance</B></FONT></TD>
5084           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5085           <FONT SIZE=1><P>A unit of data. An <I>instance</I> is a set of <I>property</I> values that can be uniquely identified by a <I>key</I>.</FONT></TD>
5086           </TR>
5087           <TR><TD WIDTH=162 VALIGN="TOP">
5088           <B><FONT SIZE=2><P>Key</B></FONT></TD>
5089           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5090           <FONT SIZE=1><P>One or more qualified class properties that can be used to construct a name.</P>
5091           <P>One or more qualified object properties which uniquely identify instances of this object in a namespace.</FONT></TD>
5092           </TR>
5093           <TR><TD WIDTH=162 VALIGN="TOP">
5094           <B><FONT SIZE=2><P>Managed Object</B></FONT></TD>
5095           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5096           <FONT SIZE=1><P>The actual item in the system environment that is accessed by the <I>provider</I>. For example, a Network Interface Card. </FONT></TD>
5097           </TR>
5098           <TR><TD WIDTH=162 VALIGN="TOP">
5099           <B><FONT SIZE=2><P>Meta model</B></FONT></TD>
5100           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5101           <FONT SIZE=1><P>A set of <I>classes</I>, <I>associations</I> and <I>properties</I> that expresses the types of things that can be defined in a <I>Schema</I>. For example, the <I>meta model</I> includes a <I>class</I> called property which defines the <I>properties</I> known to the system, a <I>class</I> called method which defines the <I>methods</I> known to the system, and a <I>class</I> called class which defines the <I>classes</I> known to the system. </FONT></TD>
5102           </TR>
5103           <TR><TD WIDTH=162 VALIGN="TOP">
5104 karl  1.1 <B><FONT SIZE=2><P>Meta schema</B></FONT></TD>
5105           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5106           <FONT SIZE=1><P>The schema of the meta model. </FONT></TD>
5107           </TR>
5108           <TR><TD WIDTH=162 VALIGN="TOP">
5109           <B><FONT SIZE=2><P>Method</B></FONT></TD>
5110           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5111           <FONT SIZE=1><P>A declaration of a signature; that is, the method name, return type and parameters, and, in the case of a concrete class, may imply an implementation.</FONT></TD>
5112           </TR>
5113           <TR><TD WIDTH=162 VALIGN="TOP">
5114           <B><FONT SIZE=2><P>Model</B></FONT></TD>
5115           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5116           <FONT SIZE=1><P>A set of <I>classes</I>, <I>properties</I> and <I>associations</I> that allows the expression of information about a specific domain. For example, a Network may consist of Network Devices and Logical Networks. The Network Devices may have attachment <I>associations</I> to each other, and may have member <I>associations</I> to Logical Networks. </FONT></TD>
5117           </TR>
5118           <TR><TD WIDTH=162 VALIGN="TOP">
5119           <B><FONT SIZE=2><P>Model Path</B></FONT></TD>
5120           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5121           <FONT SIZE=1><P>A reference to an object within a namespace.</FONT></TD>
5122           </TR>
5123           <TR><TD WIDTH=162 VALIGN="TOP">
5124           <B><FONT SIZE=2><P>Namespace</B></FONT></TD>
5125 karl  1.1 <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5126           <FONT SIZE=1><P>An <I>object</I> that defines a scope within which object keys must be unique. </FONT></TD>
5127           </TR>
5128           <TR><TD WIDTH=162 VALIGN="TOP">
5129           <B><FONT SIZE=2><P>Namespath Path</B></FONT></TD>
5130           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5131           <FONT SIZE=1><P>A reference to a namespace within an implementation that is capable of hosting CIM objects.</FONT></TD>
5132           </TR>
5133           <TR><TD WIDTH=162 VALIGN="TOP">
5134           <B><FONT SIZE=2><P>Name</B></FONT></TD>
5135           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5136           <FONT SIZE=1><P>Combination of a Namespace path and a Model path that identifies a unique object. </FONT></TD>
5137           </TR>
5138           <TR><TD WIDTH=162 VALIGN="TOP">
5139           <B><FONT SIZE=2><P>Trigger</B></FONT></TD>
5140           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5141           <FONT SIZE=1><P>The occurrence of some action such as the creation, modification or deletion of an <I>object</I>, access to an <I>object,</I> or modification or access to a <I>property</I>. <I>Triggers</I> may also be fired as a result of the passage of a specified period of time. A <I>trigger</I> typically results in an <I>Indication</I>. </FONT></TD>
5142           </TR>
5143           <TR><TD WIDTH=162 VALIGN="TOP">
5144           <B><FONT SIZE=2><P>Polymorphism</B></FONT></TD>
5145           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5146 karl  1.1 <FONT SIZE=1><P>A <I>subclass</I> may redefine the implementation of a <I>method</I> or <I>property</I> inherited from its <I>superclass</I>. The <I>property</I> or <I>method</I> is thereby redefined, even if the <I>superclass</I> is used to access the object. For example, Device may define availability as a string, and may return the values &quot;powersave&quot;, "on" or "off." The Modem <I>subclass</I> of Device may redefine (override) availability by returning "on," "off," but not "powersave". If all Devices are enumerated, any Device that happens to be a modem will not return the value "powersave" for the availability <I>property</I>. </FONT></TD>
5147           </TR>
5148           <TR><TD WIDTH=162 VALIGN="TOP">
5149           <B><FONT SIZE=2><P>Property</B></FONT></TD>
5150           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5151           <FONT SIZE=1><P>A value used to characterize an instance of a <I>class</I>. For example, a Device may have a <I>property</I> called status. </FONT></TD>
5152           </TR>
5153           <TR><TD WIDTH=162 VALIGN="TOP">
5154           <B><FONT SIZE=2><P>Provider</B></FONT></TD>
5155           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5156           <FONT SIZE=1><P>An executable that can return or set information about a given <I>managed object</I>. </FONT></TD>
5157           </TR>
5158           <TR><TD WIDTH=162 VALIGN="TOP">
5159           <B><FONT SIZE=2><P>Qualifier</B></FONT></TD>
5160           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5161           <FONT SIZE=1><P>A value used to characterize a <I>method</I>, <I>property</I>, or <I>class</I> in the <I>meta schema</I>. For example, if a property has the qualifier KEY with the value TRUE, the property is a key for the class. </FONT></TD>
5162           </TR>
5163           <TR><TD WIDTH=162 VALIGN="TOP">
5164           <B><FONT SIZE=2><P>Reference</B></FONT></TD>
5165           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5166           <FONT SIZE=1><P>Special<I> </I> <I>property</I> <I>types</I> that are references or "pointers" to other instances. </FONT></TD>
5167 karl  1.1 </TR>
5168           <TR><TD WIDTH=162 VALIGN="TOP">
5169           <B><FONT SIZE=2><P>Schema</B></FONT></TD>
5170           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5171           <FONT SIZE=1><P>A namespace and unit of ownership for a set of classes. <I>Schemas</I> may come in forms such as a text file, information in a repository, or diagrams in a CASE tool. </FONT></TD>
5172           </TR>
5173           <TR><TD WIDTH=162 VALIGN="TOP">
5174           <B><FONT SIZE=2><P>Scope</B></FONT></TD>
5175           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5176           <FONT SIZE=1><P>Part of a <I>Qualifier</I> specification indicating with which meta constructs the <I>Qualifier</I> can be used. For example, the <I>Qualifier</I> ABSTRACT has Scope(Class Association Indication), meaning that it can only be used with <I>Classes</I>, <I>Associations</I> and <I>Indications</I>. </FONT></TD>
5177           </TR>
5178           <TR><TD WIDTH=162 VALIGN="TOP">
5179           <B><FONT SIZE=2><P>Scoping Object</B></FONT></TD>
5180           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5181           <FONT SIZE=1><P>Objects which represent a real-world managed element, which in turn propagate keys to other objects.</FONT></TD>
5182           </TR>
5183           <TR><TD WIDTH=162 VALIGN="TOP">
5184           <B><FONT SIZE=2><P>Signature</B></FONT></TD>
5185           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5186           <FONT SIZE=1><P>The return type and parameters supported by a <I>method</I>. </FONT></TD>
5187           </TR>
5188 karl  1.1 <TR><TD WIDTH=162 VALIGN="TOP">
5189           <B><FONT SIZE=2><P>Subclass</B></FONT></TD>
5190           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5191           <FONT SIZE=1><P>See <I>Inheritance</I>. </FONT></TD>
5192           </TR>
5193           <TR><TD WIDTH=162 VALIGN="TOP">
5194           <B><FONT SIZE=2><P>Superclass</B></FONT></TD>
5195           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2>
5196           <FONT SIZE=1><P>See <I>Inheritance</I>. </FONT></TD>
5197           </TR>
5198           <TR><TD WIDTH=162 VALIGN="TOP" HEIGHT=22>
5199           <B><FONT SIZE=2><P>Top Level Object</B></FONT></TD>
5200           <TD WIDTH=738 VALIGN="TOP" COLSPAN=2 HEIGHT=22>
5201           <FONT SIZE=1><P>A class or object that has no scoping object. </FONT></TD>
5202           </TR>
5203           </TABLE>
5204           
5205           <FONT SIZE=2><LI><A NAME="_Ref385244809"><A NAME="_Toc404410925"><A NAME="_Toc453585031"></FONT><B><FONT SIZE=5>Unicode Usage</A></A></A> </LI></OL>
5206           <DIR>
5207           <DIR>
5208           
5209 karl  1.1 </B></FONT><FONT SIZE=3><P>All punctuation symbols associated with object path or MOF Syntax occur within the Basic Latin<I> </I>range U+0000 to U+007F. These include normal punctuators, such as slashes, colons, commas, and so on. No important syntactic punctuation character occurs outside of this range. </P>
5210           <P>All characters above U+007F are treated as parts of names, even though there are several reserved characters such as U+2028 and U+2029 which are logically whitespace.</P>
5211           <P>Therefore, all namespace, class and property names are identifiers composed as follows:</P></DIR>
5212           </DIR>
5213           
5214           <OL>
5215           
5216           <OL>
5217           
5218           <LI>Initial identifier characters must be in set S1, where S1 = {U+005F, U+0041...U+005A, U+0061...U+007A, U+0080...U+FFEF) [This is alphabetic, plus underscore]</LI>
5219           <LI>All following characters must be in set S2 where S2 = S1 union {U+0030...U+0039} [This is alphabetic, underscore, plus Arabic numerals 0 through 9.]</LI></OL>
5220           </OL>
5221           <DIR>
5222           <DIR>
5223           
5224           <P>Note that the Unicode specials range (U+FFF0...U+FFFF) are not legal for identifiers. While the above sub-range of U+0080...U+FFEF includes many diacritical characters which would not be useful in an identifier, as well as the Unicode reserved sub-range which has not been allocated, it seems advisable for simplicity of parsers to simply treat this entire sub-range as 'legal' for identifiers.</P>
5225           <P>Refer to RFC2279, published by the Internet Engineering Task Force (IETF), as an example of a Universal Transformation Format that has specific characteristics for dealing with multi-octet characters on an application-specific basis.</P></DIR>
5226           </DIR>
5227           
5228           <OL>
5229           <OL>
5230 karl  1.1 
5231           <LI><A NAME="_Ref385241589"><A NAME="_Toc404410926"><A NAME="_Toc453585032"></FONT><B><FONT SIZE=4>MOF Text</A></A></A></LI>
5232           </B></FONT><FONT SIZE=3><P>MOF files using Unicode must contain a signature as the first two bytes of the text file, either U+FFFE or U+FEFF, depending on the byte ordering of the text file (as suggested in Section 2.4 of the Unicode specification).</P>
5233           <P>U+FFFE is little endian.</P>
5234           <P>All MOF keywords and punctuation symbols are as described in the MOF Syntax document and are not locale-specific. They are composed of characters falling in the range U+0000...U+007F, regardless of the locale of origin for the MOF or its identifiers.</P>
5235           <LI><A NAME="_Toc404410927"><A NAME="_Toc453585033"></FONT><B><FONT SIZE=4>Quoted Strings</A></A></LI></OL>
5236           </OL>
5237           <DIR>
5238           <DIR>
5239           
5240           </B></FONT><FONT SIZE=3><P>In all cases where non-identifier string values are required, delimiters must surround them. </P>
5241           <P>The supported delimiter for strings is U+0027. Once a quoted string is started using the delimiter, the same delimiter, U+0027, is used to terminate it. </P>
5242           <P>In addition, the digraph U+005C ("\") followed by U+0027 """ constitutes an embedded quotation mark, not a termination of the quoted string.</P>
5243           <P>The characters permitted within the quotation mark delimiters just described may fall within the range U+0001 through U+FFEF.</P></DIR>
5244           </DIR>
5245           
5246           <OL TYPE="A">
5247           
5248           <LI><A NAME="_Toc404410928"><A NAME="_Toc453585034"></FONT><B><FONT SIZE=5>Guidelines</A></A></LI></OL>
5249           <DIR>
5250           <DIR>
5251 karl  1.1 
5252           </B></FONT><FONT SIZE=3><P>Method descriptions are recommended and must, at a minimum, indicate that method’s side-effects (pre- and post-conditions).</P>
5253           <P>Associations must not be declared as subtypes of classes that are not associations. </P>
5254           <P>Leading underscores in identifiers are to be discouraged and not be used at all in the standard schemas.</P>
5255           <P>As a general rule, it is recommended that class names not be reused as part of property or method names.  Property and method names are already unique within their defining class.</P>
5256           <P>To enable information sharing between different CIM implementations, the MAXLEN qualifier should be used to specify the maximum length of string properties.  This qualifier must <B>always</B> be present for string properties used as keys.</P>
5257           <P>A class that has no ABSTRACT qualifier must define, or inherit, key properties.</P></DIR>
5258           </DIR>
5259           
5260           <OL>
5261           <OL>
5262           
5263           <LI><A NAME="_Toc453585035"></FONT><B><FONT SIZE=4>Mapping of Octet Strings</A></LI>
5264           </B></FONT><FONT SIZE=3><P>Most management models, including SNMP and DMI, support octet strings as data types. The octet string data type represents arbitrary numeric or textual data. This data is stored as an indexed byte array of unlimited, but fixed size.  Typically, the first N bytes indicate the actual string length.  Since some environments only reserve the first byte, they do not support octet strings larger than 255 bytes.</P>
5265           <P>In the current release, CIM does not support octet strings as a separate data type. To map octet strings, it is recommended that the equivalent CIM property be defined as an array of unsigned 8-bit integers (uint8).  The first four bytes of the array contain the length of the octet data: byte 0 is the most significant byte of the length; byte 3 is the least significant byte of the length.  The octet data starts at byte 4.</P>
5266           <LI><A NAME="_Toc453585036"></FONT><B><FONT SIZE=4>SQL Reserved Words</A></LI></OL>
5267           </OL>
5268           <DIR>
5269           <DIR>
5270           
5271           </B></FONT><FONT SIZE=3><P>It is recommended that SQL reserved words be avoided in the selection of class and property names. This particularly applies to property names, since class names are prefixed by the schema name, making a clash with a reserved word unlikely. The current set of SQL reserved words are:</P>
5272 karl  1.1 </FONT><B><P>From sql1992.txt:</P></DIR>
5273           </DIR>
5274           </B>
5275           <P ALIGN="RIGHT"><TABLE CELLSPACING=0 BORDER=0 CELLPADDING=7 WIDTH=564>
5276           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5277           <FONT SIZE=1><P>AFTER</FONT></TD>
5278           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5279           <FONT SIZE=1><P>ALIAS</FONT></TD>
5280           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5281           <FONT SIZE=1><P>ASYNC</FONT></TD>
5282           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5283           <FONT SIZE=1><P>BEFORE</FONT></TD>
5284           </TR>
5285           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5286           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
5287           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5288           <FONT SIZE=1><P>BREADTH</FONT></TD>
5289           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5290           <FONT SIZE=1><P>COMPLETION</FONT></TD>
5291           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5292           <FONT SIZE=1><P>CALL</FONT></TD>
5293 karl  1.1 </TR>
5294           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5295           <FONT SIZE=1><P>CYCLE</FONT></TD>
5296           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5297           <FONT SIZE=1><P>DATA</FONT></TD>
5298           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5299           <FONT SIZE=1><P>DEPTH</FONT></TD>
5300           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5301           <FONT SIZE=1><P>DICTIONARY</FONT></TD>
5302           </TR>
5303           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5304           <FONT SIZE=1><P>EACH</FONT></TD>
5305           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5306           <FONT SIZE=1><P>ELSEIF</FONT></TD>
5307           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5308           <FONT SIZE=1><P>EQUALS</FONT></TD>
5309           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5310           <FONT SIZE=1><P>GENERAL</FONT></TD>
5311           </TR>
5312           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5313           <FONT SIZE=1><P>IF</FONT></TD>
5314 karl  1.1 <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5315           <FONT SIZE=1><P>IGNORE</FONT></TD>
5316           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5317           <FONT SIZE=1><P>LEAVE</FONT></TD>
5318           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5319           <FONT SIZE=1><P>LESS</FONT></TD>
5320           </TR>
5321           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5322           <FONT SIZE=1><P>LIMIT</FONT></TD>
5323           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5324           <FONT SIZE=1><P>LOOP</FONT></TD>
5325           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5326           <FONT SIZE=1><P>MODIFY</FONT></TD>
5327           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5328           <FONT SIZE=1><P>NEW</FONT></TD>
5329           </TR>
5330           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5331           <FONT SIZE=1><P>NONE</FONT></TD>
5332           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5333           <FONT SIZE=1><P>OBJECT</FONT></TD>
5334           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5335 karl  1.1 <FONT SIZE=1><P>OFF</FONT></TD>
5336           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5337           <FONT SIZE=1><P>OID</FONT></TD>
5338           </TR>
5339           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5340           <FONT SIZE=1><P>OLD</FONT></TD>
5341           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5342           <FONT SIZE=1><P>OPERATION</FONT></TD>
5343           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5344           <FONT SIZE=1><P>OPERATORS</FONT></TD>
5345           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5346           <FONT SIZE=1><P>OTHERS</FONT></TD>
5347           </TR>
5348           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5349           <FONT SIZE=1><P>PARAMETERS</FONT></TD>
5350           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5351           <FONT SIZE=1><P>PENDANT</FONT></TD>
5352           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5353           <FONT SIZE=1><P>PREORDER</FONT></TD>
5354           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5355           <FONT SIZE=1><P>PRIVATE</FONT></TD>
5356 karl  1.1 </TR>
5357           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5358           <FONT SIZE=1><P>PROTECTED</FONT></TD>
5359           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5360           <FONT SIZE=1><P>RECURSIVE</FONT></TD>
5361           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5362           <FONT SIZE=1><P>REF</FONT></TD>
5363           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5364           <FONT SIZE=1><P>REFERENCING</FONT></TD>
5365           </TR>
5366           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5367           <FONT SIZE=1><P>REPLACE</FONT></TD>
5368           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5369           <FONT SIZE=1><P>RESIGNAL</FONT></TD>
5370           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5371           <FONT SIZE=1><P>RETURN</FONT></TD>
5372           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5373           <FONT SIZE=1><P>RETURNS</FONT></TD>
5374           </TR>
5375           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5376           <FONT SIZE=1><P>ROLE</FONT></TD>
5377 karl  1.1 <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5378           <FONT SIZE=1><P>ROUTINE</FONT></TD>
5379           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5380           <FONT SIZE=1><P>ROW</FONT></TD>
5381           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5382           <FONT SIZE=1><P>SAVEPOINT</FONT></TD>
5383           </TR>
5384           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5385           <FONT SIZE=1><P>SEARCH</FONT></TD>
5386           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5387           <FONT SIZE=1><P>SENSITIVE</FONT></TD>
5388           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5389           <FONT SIZE=1><P>SEQUENCE</FONT></TD>
5390           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5391           <FONT SIZE=1><P>SIGNAL</FONT></TD>
5392           </TR>
5393           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5394           <FONT SIZE=1><P>SIMILAR</FONT></TD>
5395           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5396           <FONT SIZE=1><P>SQLEXCEPTION</FONT></TD>
5397           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5398 karl  1.1 <FONT SIZE=1><P>SQLWARNING</FONT></TD>
5399           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5400           <FONT SIZE=1><P>STRUCTURE</FONT></TD>
5401           </TR>
5402           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5403           <FONT SIZE=1><P>TEST</FONT></TD>
5404           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5405           <FONT SIZE=1><P>THERE</FONT></TD>
5406           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5407           <FONT SIZE=1><P>TRIGGER</FONT></TD>
5408           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5409           <FONT SIZE=1><P>TYPE</FONT></TD>
5410           </TR>
5411           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5412           <FONT SIZE=1><P>UNDER</FONT></TD>
5413           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5414           <FONT SIZE=1><P>VARIABLE</FONT></TD>
5415           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5416           <FONT SIZE=1><P>VIRTUAL</FONT></TD>
5417           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5418           <FONT SIZE=1><P>VISIBLE</FONT></TD>
5419 karl  1.1 </TR>
5420           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5421           <FONT SIZE=1><P>WAIT</FONT></TD>
5422           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5423           <FONT SIZE=1><P>WHILE</FONT></TD>
5424           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5425           <FONT SIZE=1><P>WITHOUT</FONT></TD>
5426           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20><P></P></TD>
5427           </TR>
5428           </TABLE>
5429           </P>
5430           <DIR>
5431           <DIR>
5432           
5433           <B><P>From sql1992.txt (Annex E):</P></DIR>
5434           </DIR>
5435           </B>
5436           <P ALIGN="RIGHT"><TABLE CELLSPACING=0 BORDER=0 CELLPADDING=7 WIDTH=564>
5437           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5438           <FONT SIZE=1><P>ABSOLUTE</FONT></TD>
5439           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5440 karl  1.1 <FONT SIZE=1><P>ACTION</FONT></TD>
5441           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5442           <FONT SIZE=1><P>ADD</FONT></TD>
5443           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5444           <FONT SIZE=1><P>ALLOCATE</FONT></TD>
5445           </TR>
5446           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5447           <FONT SIZE=1><P>ALTER</FONT></TD>
5448           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5449           <FONT SIZE=1><P>ARE</FONT></TD>
5450           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5451           <FONT SIZE=1><P>ASSERTION</FONT></TD>
5452           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5453           <FONT SIZE=1><P>AT</FONT></TD>
5454           </TR>
5455           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5456           <FONT SIZE=1><P>BETWEEN</FONT></TD>
5457           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5458           <FONT SIZE=1><P>BIT</FONT></TD>
5459           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5460           <FONT SIZE=1><P>BIT_LENGTH</FONT></TD>
5461 karl  1.1 <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5462           <FONT SIZE=1><P>BOTH</FONT></TD>
5463           </TR>
5464           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5465           <FONT SIZE=1><P>CASCADE</FONT></TD>
5466           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5467           <FONT SIZE=1><P>CASCADED</FONT></TD>
5468           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5469           <FONT SIZE=1><P>CASE</FONT></TD>
5470           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5471           <FONT SIZE=1><P>CAST</FONT></TD>
5472           </TR>
5473           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5474           <FONT SIZE=1><P>CATALOG</FONT></TD>
5475           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5476           <FONT SIZE=1><P>CHAR_LENGTH</FONT></TD>
5477           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5478           <FONT SIZE=1><P>CHARACTER_LENGTH</FONT></TD>
5479           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5480           <FONT SIZE=1><P>COALESCE</FONT></TD>
5481           </TR>
5482 karl  1.1 <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5483           <FONT SIZE=1><P>COLLATE</FONT></TD>
5484           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5485           <FONT SIZE=1><P>COLLATION</FONT></TD>
5486           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5487           <FONT SIZE=1><P>COLUMN</FONT></TD>
5488           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5489           <FONT SIZE=1><P>CONNECT</FONT></TD>
5490           </TR>
5491           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5492           <FONT SIZE=1><P>CONNECTION</FONT></TD>
5493           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5494           <FONT SIZE=1><P>CONSTRAINT</FONT></TD>
5495           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5496           <FONT SIZE=1><P>CONSTRAINTS</FONT></TD>
5497           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5498           <FONT SIZE=1><P>CONVERT</FONT></TD>
5499           </TR>
5500           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5501           <FONT SIZE=1><P>CORRESPONDING</FONT></TD>
5502           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5503 karl  1.1 <FONT SIZE=1><P>CROSS</FONT></TD>
5504           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5505           <FONT SIZE=1><P>CURRENT_DATE</FONT></TD>
5506           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5507           <FONT SIZE=1><P>CURRENT_TIME</FONT></TD>
5508           </TR>
5509           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5510           <FONT SIZE=1><P>CURRENT_TIMESTAMP</FONT></TD>
5511           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5512           <FONT SIZE=1><P>CURRENT_USER</FONT></TD>
5513           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5514           <FONT SIZE=1><P>DATE</FONT></TD>
5515           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5516           <FONT SIZE=1><P>DAY</FONT></TD>
5517           </TR>
5518           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5519           <FONT SIZE=1><P>DEALLOCATE</FONT></TD>
5520           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5521           <FONT SIZE=1><P>DEFERRABLE</FONT></TD>
5522           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5523           <FONT SIZE=1><P>DEFERRED</FONT></TD>
5524 karl  1.1 <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5525           <FONT SIZE=1><P>DESCRIBE</FONT></TD>
5526           </TR>
5527           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5528           <FONT SIZE=1><P>DESCRIPTOR</FONT></TD>
5529           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5530           <FONT SIZE=1><P>DIAGNOSTICS</FONT></TD>
5531           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5532           <FONT SIZE=1><P>DISCONNECT</FONT></TD>
5533           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5534           <FONT SIZE=1><P>DOMAIN</FONT></TD>
5535           </TR>
5536           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5537           <FONT SIZE=1><P>DROP</FONT></TD>
5538           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5539           <FONT SIZE=1><P>ELSE</FONT></TD>
5540           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5541           <FONT SIZE=1><P>END-EXEC</FONT></TD>
5542           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5543           <FONT SIZE=1><P>EXCEPT</FONT></TD>
5544           </TR>
5545 karl  1.1 <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5546           <FONT SIZE=1><P>EXCEPTION</FONT></TD>
5547           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5548           <FONT SIZE=1><P>EXECUTE</FONT></TD>
5549           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5550           <FONT SIZE=1><P>EXTERNAL</FONT></TD>
5551           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5552           <FONT SIZE=1><P>EXTRACT</FONT></TD>
5553           </TR>
5554           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5555           <FONT SIZE=1><P>FALSE</FONT></TD>
5556           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5557           <FONT SIZE=1><P>FIRST</FONT></TD>
5558           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5559           <FONT SIZE=1><P>FULL</FONT></TD>
5560           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5561           <FONT SIZE=1><P>GET</FONT></TD>
5562           </TR>
5563           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5564           <FONT SIZE=1><P>GLOBAL</FONT></TD>
5565           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5566 karl  1.1 <FONT SIZE=1><P>HOUR</FONT></TD>
5567           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5568           <FONT SIZE=1><P>IDENTITY</FONT></TD>
5569           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5570           <FONT SIZE=1><P>IMMEDIATE</FONT></TD>
5571           </TR>
5572           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5573           <FONT SIZE=1><P>INITIALLY</FONT></TD>
5574           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5575           <FONT SIZE=1><P>INNER</FONT></TD>
5576           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5577           <FONT SIZE=1><P>INPUT</FONT></TD>
5578           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5579           <FONT SIZE=1><P>INSENSITIVE</FONT></TD>
5580           </TR>
5581           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5582           <FONT SIZE=1><P>INTERSECT</FONT></TD>
5583           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5584           <FONT SIZE=1><P>INTERVAL</FONT></TD>
5585           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5586           <FONT SIZE=1><P>ISOLATION</FONT></TD>
5587 karl  1.1 <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5588           <FONT SIZE=1><P>JOIN</FONT></TD>
5589           </TR>
5590           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5591           <FONT SIZE=1><P>LAST</FONT></TD>
5592           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5593           <FONT SIZE=1><P>LEADING</FONT></TD>
5594           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5595           <FONT SIZE=1><P>LEFT</FONT></TD>
5596           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5597           <FONT SIZE=1><P>LEVEL</FONT></TD>
5598           </TR>
5599           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5600           <FONT SIZE=1><P>LOCAL</FONT></TD>
5601           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5602           <FONT SIZE=1><P>LOWER</FONT></TD>
5603           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5604           <FONT SIZE=1><P>MATCH</FONT></TD>
5605           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5606           <FONT SIZE=1><P>MINUTE</FONT></TD>
5607           </TR>
5608 karl  1.1 <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5609           <FONT SIZE=1><P>MONTH</FONT></TD>
5610           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5611           <FONT SIZE=1><P>NAMES</FONT></TD>
5612           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5613           <FONT SIZE=1><P>NATIONAL</FONT></TD>
5614           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5615           <FONT SIZE=1><P>NATURAL</FONT></TD>
5616           </TR>
5617           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5618           <FONT SIZE=1><P>NCHAR</FONT></TD>
5619           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5620           <FONT SIZE=1><P>NEXT</FONT></TD>
5621           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5622           <FONT SIZE=1><P>NO</FONT></TD>
5623           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5624           <FONT SIZE=1><P>NULLIF</FONT></TD>
5625           </TR>
5626           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5627           <FONT SIZE=1><P>OCTET_LENGTH</FONT></TD>
5628           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5629 karl  1.1 <FONT SIZE=1><P>ONLY</FONT></TD>
5630           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5631           <FONT SIZE=1><P>OUTER</FONT></TD>
5632           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5633           <FONT SIZE=1><P>OUTPUT</FONT></TD>
5634           </TR>
5635           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5636           <FONT SIZE=1><P>OVERLAPS</FONT></TD>
5637           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5638           <FONT SIZE=1><P>PAD</FONT></TD>
5639           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5640           <FONT SIZE=1><P>PARTIAL</FONT></TD>
5641           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5642           <FONT SIZE=1><P>POSITION</FONT></TD>
5643           </TR>
5644           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5645           <FONT SIZE=1><P>PREPARE</FONT></TD>
5646           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5647           <FONT SIZE=1><P>PRESERVE</FONT></TD>
5648           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5649           <FONT SIZE=1><P>PRIOR</FONT></TD>
5650 karl  1.1 <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5651           <FONT SIZE=1><P>READ</FONT></TD>
5652           </TR>
5653           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5654           <FONT SIZE=1><P>RELATIVE</FONT></TD>
5655           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5656           <FONT SIZE=1><P>RESTRICT</FONT></TD>
5657           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5658           <FONT SIZE=1><P>REVOKE</FONT></TD>
5659           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5660           <FONT SIZE=1><P>RIGHT</FONT></TD>
5661           </TR>
5662           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5663           <FONT SIZE=1><P>ROWS</FONT></TD>
5664           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5665           <FONT SIZE=1><P>SCROLL</FONT></TD>
5666           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5667           <FONT SIZE=1><P>SECOND</FONT></TD>
5668           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5669           <FONT SIZE=1><P>SESSION</FONT></TD>
5670           </TR>
5671 karl  1.1 <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5672           <FONT SIZE=1><P>SESSION_USER</FONT></TD>
5673           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5674           <FONT SIZE=1><P>SIZE</FONT></TD>
5675           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5676           <FONT SIZE=1><P>SPACE</FONT></TD>
5677           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5678           <FONT SIZE=1><P>SQLSTATE</FONT></TD>
5679           </TR>
5680           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5681           <FONT SIZE=1><P>SUBSTRING</FONT></TD>
5682           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5683           <FONT SIZE=1><P>SYSTEM_USER</FONT></TD>
5684           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5685           <FONT SIZE=1><P>TEMPORARY</FONT></TD>
5686           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5687           <FONT SIZE=1><P>THEN</FONT></TD>
5688           </TR>
5689           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5690           <FONT SIZE=1><P>TIME</FONT></TD>
5691           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5692 karl  1.1 <FONT SIZE=1><P>TIMESTAMP</FONT></TD>
5693           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5694           <FONT SIZE=1><P>TIMEZONE_HOUR</FONT></TD>
5695           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5696           <FONT SIZE=1><P>TIMEZONE_MINUTE</FONT></TD>
5697           </TR>
5698           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5699           <FONT SIZE=1><P>TRAILING</FONT></TD>
5700           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5701           <FONT SIZE=1><P>TRANSACTION</FONT></TD>
5702           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5703           <FONT SIZE=1><P>TRANSLATE</FONT></TD>
5704           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5705           <FONT SIZE=1><P>TRANSLATION</FONT></TD>
5706           </TR>
5707           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5708           <FONT SIZE=1><P>TRIM</FONT></TD>
5709           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5710           <FONT SIZE=1><P>TRUE</FONT></TD>
5711           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5712           <FONT SIZE=1><P>UNKNOWN</FONT></TD>
5713 karl  1.1 <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5714           <FONT SIZE=1><P>UPPER</FONT></TD>
5715           </TR>
5716           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5717           <FONT SIZE=1><P>USAGE</FONT></TD>
5718           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5719           <FONT SIZE=1><P>USING</FONT></TD>
5720           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5721           <FONT SIZE=1><P>VALUE</FONT></TD>
5722           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5723           <FONT SIZE=1><P>VARCHAR</FONT></TD>
5724           </TR>
5725           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5726           <FONT SIZE=1><P>VARYING</FONT></TD>
5727           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5728           <FONT SIZE=1><P>WHEN</FONT></TD>
5729           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5730           <FONT SIZE=1><P>WRITE</FONT></TD>
5731           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5732           <FONT SIZE=1><P>YEAR</FONT></TD>
5733           </TR>
5734 karl  1.1 <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5735           <FONT SIZE=1><P>ZONE</FONT></TD>
5736           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20><P></P></TD>
5737           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20><P></P></TD>
5738           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20><P></P></TD>
5739           </TR>
5740           </TABLE>
5741           </P>
5742           <DIR>
5743           <DIR>
5744           
5745           <B><P>From sql3part2.txt (Annex E):</P></DIR>
5746           </DIR>
5747           </B>
5748           <P ALIGN="RIGHT"><TABLE CELLSPACING=0 BORDER=0 CELLPADDING=7 WIDTH=564>
5749           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5750           <FONT SIZE=1><P>ACTION</FONT></TD>
5751           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5752           <FONT SIZE=1><P>ACTOR</FONT></TD>
5753           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5754           <FONT SIZE=1><P>AFTER</FONT></TD>
5755 karl  1.1 <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5756           <FONT SIZE=1><P>ALIAS</FONT></TD>
5757           </TR>
5758           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5759           <FONT SIZE=1><P>ASYNC</FONT></TD>
5760           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5761           <FONT SIZE=1><P>ATTRIBUTES</FONT></TD>
5762           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5763           <FONT SIZE=1><P>BEFORE</FONT></TD>
5764           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5765           <FONT SIZE=1><P>BOOLEAN</FONT></TD>
5766           </TR>
5767           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5768           <FONT SIZE=1><P>BREADTH</FONT></TD>
5769           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5770           <FONT SIZE=1><P>COMPLETION</FONT></TD>
5771           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5772           <FONT SIZE=1><P>CURRENT_PATH</FONT></TD>
5773           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5774           <FONT SIZE=1><P>CYCLE</FONT></TD>
5775           </TR>
5776 karl  1.1 <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5777           <FONT SIZE=1><P>DATA</FONT></TD>
5778           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5779           <FONT SIZE=1><P>DEPTH</FONT></TD>
5780           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5781           <FONT SIZE=1><P>DESTROY</FONT></TD>
5782           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5783           <FONT SIZE=1><P>DICTIONARY</FONT></TD>
5784           </TR>
5785           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5786           <FONT SIZE=1><P>EACH</FONT></TD>
5787           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5788           <FONT SIZE=1><P>ELEMENT</FONT></TD>
5789           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5790           <FONT SIZE=1><P>ELSEIF</FONT></TD>
5791           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5792           <FONT SIZE=1><P>EQUALS</FONT></TD>
5793           </TR>
5794           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5795           <FONT SIZE=1><P>FACTOR</FONT></TD>
5796           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5797 karl  1.1 <FONT SIZE=1><P>GENERAL</FONT></TD>
5798           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5799           <FONT SIZE=1><P>HOLD</FONT></TD>
5800           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5801           <FONT SIZE=1><P>IGNORE</FONT></TD>
5802           </TR>
5803           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5804           <FONT SIZE=1><P>INSTEAD</FONT></TD>
5805           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5806           <FONT SIZE=1><P>LESS</FONT></TD>
5807           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5808           <FONT SIZE=1><P>LIMIT</FONT></TD>
5809           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5810           <FONT SIZE=1><P>LIST</FONT></TD>
5811           </TR>
5812           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5813           <FONT SIZE=1><P>MODIFY</FONT></TD>
5814           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5815           <FONT SIZE=1><P>NEW</FONT></TD>
5816           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5817           <FONT SIZE=1><P>NEW_TABLE</FONT></TD>
5818 karl  1.1 <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5819           <FONT SIZE=1><P>NO</FONT></TD>
5820           </TR>
5821           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5822           <FONT SIZE=1><P>NONE</FONT></TD>
5823           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5824           <FONT SIZE=1><P>OFF</FONT></TD>
5825           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5826           <FONT SIZE=1><P>OID</FONT></TD>
5827           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5828           <FONT SIZE=1><P>OLD</FONT></TD>
5829           </TR>
5830           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5831           <FONT SIZE=1><P>OLD_TABLE</FONT></TD>
5832           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5833           <FONT SIZE=1><P>OPERATION</FONT></TD>
5834           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5835           <FONT SIZE=1><P>OPERATOR</FONT></TD>
5836           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5837           <FONT SIZE=1><P>OPERATORS</FONT></TD>
5838           </TR>
5839 karl  1.1 <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5840           <FONT SIZE=1><P>PARAMETERS</FONT></TD>
5841           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5842           <FONT SIZE=1><P>PATH</FONT></TD>
5843           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5844           <FONT SIZE=1><P>PENDANT</FONT></TD>
5845           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5846           <FONT SIZE=1><P>POSTFIX</FONT></TD>
5847           </TR>
5848           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5849           <FONT SIZE=1><P>PREFIX</FONT></TD>
5850           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5851           <FONT SIZE=1><P>PREORDER</FONT></TD>
5852           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5853           <FONT SIZE=1><P>PRIVATE</FONT></TD>
5854           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5855           <FONT SIZE=1><P>PROTECTED</FONT></TD>
5856           </TR>
5857           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5858           <FONT SIZE=1><P>RECURSIVE</FONT></TD>
5859           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5860 karl  1.1 <FONT SIZE=1><P>REFERENCING</FONT></TD>
5861           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5862           <FONT SIZE=1><P>REPLACE</FONT></TD>
5863           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5864           <FONT SIZE=1><P>ROLE</FONT></TD>
5865           </TR>
5866           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5867           <FONT SIZE=1><P>ROUTINE</FONT></TD>
5868           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5869           <FONT SIZE=1><P>ROW</FONT></TD>
5870           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5871           <FONT SIZE=1><P>SAVEPOINT</FONT></TD>
5872           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5873           <FONT SIZE=1><P>SEARCH</FONT></TD>
5874           </TR>
5875           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5876           <FONT SIZE=1><P>SENSITIVE</FONT></TD>
5877           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5878           <FONT SIZE=1><P>SEQUENCE</FONT></TD>
5879           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5880           <FONT SIZE=1><P>SESSION</FONT></TD>
5881 karl  1.1 <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5882           <FONT SIZE=1><P>SIMILAR</FONT></TD>
5883           </TR>
5884           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5885           <FONT SIZE=1><P>SPACE</FONT></TD>
5886           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5887           <FONT SIZE=1><P>SQLEXCEPTION</FONT></TD>
5888           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5889           <FONT SIZE=1><P>SQLWARNING</FONT></TD>
5890           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5891           <FONT SIZE=1><P>START</FONT></TD>
5892           </TR>
5893           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5894           <FONT SIZE=1><P>STATE</FONT></TD>
5895           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5896           <FONT SIZE=1><P>STRUCTURE</FONT></TD>
5897           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5898           <FONT SIZE=1><P>SYMBOL</FONT></TD>
5899           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5900           <FONT SIZE=1><P>TERM</FONT></TD>
5901           </TR>
5902 karl  1.1 <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5903           <FONT SIZE=1><P>TEST</FONT></TD>
5904           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5905           <FONT SIZE=1><P>THERE</FONT></TD>
5906           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5907           <FONT SIZE=1><P>TRIGGER</FONT></TD>
5908           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5909           <FONT SIZE=1><P>TYPE</FONT></TD>
5910           </TR>
5911           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5912           <FONT SIZE=1><P>UNDER</FONT></TD>
5913           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5914           <FONT SIZE=1><P>VARIABLE</FONT></TD>
5915           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5916           <FONT SIZE=1><P>VIRTUAL</FONT></TD>
5917           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5918           <FONT SIZE=1><P>VISIBLE</FONT></TD>
5919           </TR>
5920           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5921           <FONT SIZE=1><P>WAIT</FONT></TD>
5922           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5923 karl  1.1 <FONT SIZE=1><P>WITHOUT</FONT></TD>
5924           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20><P></P></TD>
5925           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20><P></P></TD>
5926           </TR>
5927           </TABLE>
5928           </P>
5929           <DIR>
5930           <DIR>
5931           
5932           <B><P>sql3part4.txt (ANNEX E):</P></DIR>
5933           </DIR>
5934           </B>
5935           <P ALIGN="RIGHT"><TABLE CELLSPACING=0 BORDER=0 CELLPADDING=7 WIDTH=564>
5936           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5937           <FONT SIZE=1><P>CALL</FONT></TD>
5938           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5939           <FONT SIZE=1><P>DO</FONT></TD>
5940           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5941           <FONT SIZE=1><P>ELSEIF</FONT></TD>
5942           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5943           <FONT SIZE=1><P>EXCEPTION</FONT></TD>
5944 karl  1.1 </TR>
5945           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5946           <FONT SIZE=1><P>IF</FONT></TD>
5947           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5948           <FONT SIZE=1><P>LEAVE</FONT></TD>
5949           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5950           <FONT SIZE=1><P>LOOP</FONT></TD>
5951           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5952           <FONT SIZE=1><P>OTHERS</FONT></TD>
5953           </TR>
5954           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5955           <FONT SIZE=1><P>RESIGNAL</FONT></TD>
5956           <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5957           <FONT SIZE=1><P>RETURN</FONT></TD>
5958           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20>
5959           <FONT SIZE=1><P>RETURNS</FONT></TD>
5960           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20>
5961           <FONT SIZE=1><P>SIGNAL</FONT></TD>
5962           </TR>
5963           <TR><TD WIDTH="28%" VALIGN="TOP" HEIGHT=20>
5964           <FONT SIZE=1><P>TUPLE</FONT></TD>
5965 karl  1.1 <TD WIDTH="22%" VALIGN="TOP" HEIGHT=20>
5966           <FONT SIZE=1><P>WHILE</FONT></TD>
5967           <TD WIDTH="26%" VALIGN="TOP" HEIGHT=20><P></P></TD>
5968           <TD WIDTH="24%" VALIGN="TOP" HEIGHT=20><P></P></TD>
5969           </TR>
5970           </TABLE>
5971           </P>
5972           
5973           <FONT SIZE=2><P>&nbsp;</P>
5974           <OL TYPE="A">
5975           
5976           <LI><A NAME="_Toc404410929"><A NAME="_Toc453585037"></FONT><B><FONT SIZE=5>References</A></A></LI></OL>
5977           <DIR>
5978           <DIR>
5979           <DIR>
5980           
5981           </B></FONT><FONT SIZE=3><P>[1]&#9;Grady Booch and James Rumbaugh, <I>Unified Method for Object-Oriented Development Document Set</I>, Rational Software Corporation, 1996, <U>http://www.rational.com/uml</P>
5982           </U><P>[2]&#9;HyperMedia Management Protocol, Protocol Encoding, draft-hmmp-encoding-03.txt, February, 1997</P>
5983           <P>[3]&#9;<I>Interface Definition Language</I>, DCE/RPC, The Open Group.</P>
5984           <P>[4]&#9;Georges Gardarin and Patrick Valduriez, <I>Relational Databases and Knowledge Bases</I>, Addison Wesley, 1989 </P>
5985           <P>[5]&#9;Coplein, James O., Schmidt, Douglas C (eds). <I>Pattern Languages of Program Design</I>, Addison-Wesley, Reading Mass., 1995</P>
5986 karl  1.1 <P>[6]&#9;IEEE Standard for Binary Floating-Point Arithmetic, <I>ANSI/IEEE Standard 754-1985</I>, Institute of Electrical and Electronics Engineers, August 1985.</P>
5987           <P>[7]&#9;Augmented BNF for Syntax Specifications: ABNF, RFC 2234, Nov 1997</P>
5988           <P>[8]&#9;G. Weinberger, <I>General Systems Theory</P>
5989           </I><P>[9]&#9;<I>The Unicode Standard</I>, Version 2.0, by The Unicode Consortium, Addison-Wesley, 1996.</P>
5990           <P>[10]&#9;Universal Multiple-Octet Coded Character Set, ISO/IEC 10646</P>
5991           <P>[11]&#9;UCS Transformation Format 8 (UTF-8), ISO/IEC 10646-1:1993 Amendment 2 (1996)</P>
5992           <P>[12]&#9;Code for the Representation of Names of Languages, ISO/IEC 639:1988 (E/F)</P>
5993           <P>[13]&#9;Code for the Representation of Names of Territory, ISO/IEC 3166:1988 (E/F)</P>
5994           </FONT><FONT SIZE=2></DIR>
5995           </DIR>
5996           </DIR>
5997           </FONT></BODY>
5998           </HTML>

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2