[Cache version from http://www.dmtf.org/standards/documents/WBEM/DSP0201.zip; use this canonical/official version if possible.]

Specification for the
                      Representation of CIM in XML

DSP0201                                                                                        Status: Final
Version 2.1, January

Copyright © 2000-2003 Distributed Management Task Force, Inc. (DMTF). All rights reserved.

DMTF is a not-for-profit association of industry members dedicated to promoting enterprise and systems management and interoperability. Members and non-members may reproduce DMTF specifications and documents for uses consistent with this purpose, provided that correct attribution is given.  As DMTF specifications may be revised from time to time, the particular version and release date should always be noted.
Implementation of certain elements of this standard or proposed standard may be subject to third party patent rights, including provisional patent rights (herein "patent rights"). DMTF makes no representations to users of the standard as to the existence of such rights, and is not responsible to recognize, disclose, or identify any or all such third party patent right, owners or claimants, nor for any incomplete or inaccurate identification or disclosure of such rights, owners or claimants. DMTF shall have no liability to any party, in any manner or circumstance, under any legal theory whatsoever, for failure to recognize, disclose, or identify any such third party patent rights, or for such party’s reliance on the standard or incorporation thereof in its product, protocols or testing procedures. DMTF shall have no liability to any party implementing such standard, whether such implementation is foreseeable or not, nor to any patent owner or claimant, and shall have no liability or responsibility for costs or losses incurred if a standard is withdrawn or modified after publication, and shall be indemnified and held harmless by any party implementing the standard from any and all claims of infringement by a patent owner for such implementations.

For information about patents held by third-parties which have notified the DMTF that, in their opinion, such patent may relate to or impact implementations of DMTF standards, visit http://www.dmtf.org/about/policies/disclosures.php.

Contents

Abstract
1. Introduction
1.1. A Note on Rendering to MOF
1.2. Terminology
1.3. Style
2. A Note On Mapping Choices
2.1. CIM Terminology
3. The CIM XML Schema Reference
3.1. Entity Descriptions
3.1.1. CIMName
3.1.2. CIMType
3.1.3. QualifierFlavor
3.1.4. ClassOrigin
3.1.5. Propagated
3.1.6. ArraySize
3.1.7. SuperClass
3.1.8. ClassName
3.1.9. ReferenceClass
3.2. Element Descriptions
3.2.1. Top Level Elements
3.2.1.1. CIM
3.2.2. Declaration Elements
3.2.2.1. DECLARATION
3.2.2.2. DECLGROUP
3.2.2.3. DECLGROUP.WITHNAME
3.2.2.4. DECLGROUP.WITHPATH
3.2.2.5. QUALIFIER.DECLARATION
3.2.2.6. SCOPE
3.2.3. Value Elements
3.2.3.1. VALUE
3.2.3.2. VALUE.ARRAY
3.2.3.3. VALUE.REFERENCE
3.2.3.4. VALUE.REFARRAY
3.2.3.5. VALUE.OBJECT
3.2.3.6. VALUE.NAMEDINSTANCE
3.2.3.7. VALUE.NAMEDOBJECT
3.2.3.8. VALUE.OBJECTWITHPATH
3.2.3.9. VALUE.OBJECTWITHLOCALPATH
3.2.4. Naming and Location Elements
3.2.4.1. NAMESPACEPATH
3.2.4.2. LOCALNAMESPACEPATH
3.2.4.3. HOST
3.2.4.4. NAMESPACE
3.2.4.5. CLASSPATH
3.2.4.6. LOCALCLASSPATH
3.2.4.7. CLASSNAME
3.2.4.8. INSTANCEPATH
3.2.4.9. LOCALINSTANCEPATH
3.2.4.10. INSTANCENAME
3.2.4.11. OBJECTPATH
3.2.4.12. KEYBINDING
3.2.4.13. KEYVALUE
3.2.5. Object Definition Elements
3.2.5.1. CLASS
3.2.5.2. INSTANCE
3.2.5.3. QUALIFIER
3.2.5.4. PROPERTY
3.2.5.5. PROPERTY.ARRAY
3.2.5.6. PROPERTY.REFERENCE
3.2.5.7. METHOD
3.2.5.8. PARAMETER
3.2.5.9. PARAMETER.REFERENCE
3.2.5.10. PARAMETER.ARRAY
3.2.5.11. PARAMETER.REFARRAY
3.2.6. Message Elements
3.2.6.1. MESSAGE
3.2.6.2. MULTIREQ
3.2.6.3. SIMPLEREQ
3.2.6.4. METHODCALL
3.2.6.5. PARAMVALUE
3.2.6.6. IMETHODCALL
3.2.6.7. IPARAMVALUE
3.2.6.8. MULTIRSP
3.2.6.9. SIMPLERSP
3.2.6.10. METHODRESPONSE
3.2.6.11. IMETHODRESPONSE
3.2.6.12. ERROR
3.2.6.13. RETURNVALUE
3.2.6.14. IRETURNVALUE
3.2.6.15 MULTIEXPREQ
3.2.6.16 SIMPLEEXPREQ
3.2.6.17 EXPMETHODCALL
3.2.6.18 MULTIEXPRSP
3.2.6.19 SIMPLEEXPRSP
3.2.6.20 EXPMETHODRESPONSE
4. References
Appendix A: Change History

Abstract

The Extensible Markup Language (XML) is a simplified subset of SGML that offers powerful and extensible data modeling capabilities. An XML Document is a collection of data represented in XML. An XML Schema is a grammar that describes the format of an XML Document. An XML Document is described as valid if it has an associated XML Schema to which it conforms.

The Common Information Model (CIM) is an object-oriented information model defined by the Distributed Management Task Force (DMTF) which provides a conceptual framework for describing management data.

This document defines a standard for the representation of Common Information Model (CIM) elements and messages in XML.

Back to contents

1. Introduction

This document defines an XML grammar, written in DTD (Document Type Definition), which can be used both to represent CIM declarations (Classes, Instances and Qualifiers) and CIM Messages for use by the CIM mapping onto HTTP [9].

For convenience the complete unannotated DTD is available as a separate document [11].

There are potentially many different ways in which CIM information could be represented within XML. In the interests of interoperability between different implementations of CIM there is an obvious requirement for standardization of this representation. The following criteria have been applied in the design of the representation presented here:

Whilst this document makes no restrictions on the use of this mapping, it is recognized that a number of possible usage scenarios exist for which the mapping should cater:
  1. XML documents conforming to this mapping that express CIM declarations should be capable of being rendered or transformed using standard techniques into other formats.  In particular the mapping should contain sufficient information to be rendered into MOF (Managed Object Format) syntax [1].
  2. The mapping should be applicable to the wire-level representation of CIM Messages defined by the CIM mapping onto HTTP [9].
Back to contents

1.1. A Note On Rendering to MOF

The subset of the DTD for CIM presented in this specification concerned with object declarations (identified by the element DECLARATION ) is intended to allow expression of CIM objects in XML sufficient for rendering into a number of formats, of which MOF is one.

The semantic content of a MOF file is fully captured by the DTD presented herein, so that it is possible to express any MOF conformant to [1] in an equivalent XML representation using this DTD. This includes the ability to express any of the standard MOF pragmas defined in [1], with the exception of the locale and instancelocale pragmas (which is a subject for further study in the context of localization support within CIM).

Note that the Processing Instruction (PI) mechanism defined by XML is the means by which bespoke pragmas may be added to an XML document in an analagous manner to the #pragma extension mechanism defined for MOF. The format of such PIs is necessarily outside the scope of this document.

Back to contents

1.2. Terminology

The key phrases and words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY and OPTIONAL in this document are to be interpreted as described in RFC 2119 [10].

Back to contents

1.3. Style

This document uses a number of stylistic conventions to highlight examples and definitions.

Examples are displayed in this fashion:
 
This is an example

Definitions are illustrated thusly:
 
This is a definition

Back to contents

2. A Note on Mapping Choices

There are two fundamentally different models for mapping CIM in XML: Although there are obvious benefits to employing a schema mapping (more validation power, and a slightly more intuitive representation of CIM in XML), the metaschema mapping is adopted here for the following reasons: Back to contents

2.1. CIM Terminology

Throught this document the term CIM Element is used to describe one of the following components of the CIM meta-model: Namespace, Class, Property, Method or Qualifier.

The term XML Element is used to describe a component of XML defined using the ELEMENT construct in DTD.

Back to contents

3. The CIM XML Schema Reference

3.1. Entity Descriptions

This section describes each of the parameter entities used in the CIM XML Schema vocabulary. The use of Parameter Entities has been adopted to highlight common features of the DTD.

Back to contents

3.1.1. CIMName

The CIMName entity describes the name of a CIM Element (Class, Instance, Method, Property,Qualifier or Parameter). The value MUST be a legal CIM element name [1].
 
<!ENTITY % CIMName "NAME   CDATA   #REQUIRED">

Back to contents

3.1.2. CIMType

The CIMType entity describes the allowed type descriptions for a non-reference CIM Property, CIM Qualifier or non-reference CIM Method Parameter.
 
<!ENTITY % CIMType "TYPE 
        (boolean | string | char16 | uint8 | sint8 | uint16 | sint16 | uint32 | 
         sint32 | uint64 | sint64 | datetime | real32 | real64)">

Back to contents

3.1.3. QualifierFlavor

The QualifierFlavor entity describes the flavor settings for a CIM Qualifier, modeled as XML attributes.
 
<!ENTITY % QualifierFlavor "OVERRIDABLE  (true|false)   'true'
                            TOSUBCLASS   (true|false)   'true'
                            TOINSTANCE   (true|false)   'false'
                            TRANSLATABLE (true|false)   'false'">

Back to contents

3.1.4. ClassOrigin

The ClassOrigin entity describes the originating Class of a CIM Property or Method.

The CLASSORIGIN attribute defines the name of the originating class (the Class in which the Property or Method was first defined) of the CIM element represented by the XML element to which the attribute is attached.
 
<!ENTITY % ClassOrigin     "CLASSORIGIN CDATA #IMPLIED">

Back to contents

3.1.5. Propagated

The Propagated entity is a convenient shorthand for the PROPAGATED attribute, which may apply to a CIM Property, Method or Qualifier.

This attribute indicates whether the definition of the CIM Property, Qualifier or Method is local to the CIM Class (respectively, Instance) in which it appears, or was propagated without modification from the underlying Subclass (respectively, Class), as defined by [1].
 
<!ENTITY % Propagated        "PROPAGATED (true|false) 'false'">

Uses of the PROPAGATED attribute include:

Back to contents

3.1.6. ArraySize

The ArraySize entity is a convenient shorthand for the ARRAYSIZE attribute, which may apply to a PROPERTY.ARRAY, PARAMETER.ARRAY or PARAMETER.REFARRAY element.
 
<!ENTITY % ArraySize       "ARRAYSIZE CDATA  #IMPLIED">

The ARRAYSIZE attribute defines the size of the array in the case that it is constrained to a fixed number of elements. The value of this attribute (if it is present) must be a positive integer.

Back to contents

3.1.7. SuperClass

The SuperClass entity is a convenient shorthand for the SUPERCLASS attribute.
 
<!ENTITY % SuperClass      "SUPERCLASS CDATA  #IMPLIED">

This attribute defines the name of the superclass.  Where it is omitted, it MUST be inferred that the owning element has no superclass.

Back to contents

3.1.8. ClassName

The ClassName entity is a convenient shorthand for the CLASSNAME attribute. The value MUST be a legal CIM Class name [1].
 
<!ENTITY % ClassName       "CLASSNAME  CDATA  #REQUIRED">

Back to contents

3.1.9. ReferenceClass

The ReferenceClass entity is a convenient shorthand for the REFERENCECLASS attribute. If present, the value MUST be a legal CIM Class name [1].
 
<!ENTITY % ReferenceClass  "REFERENCECLASS  CDATA  #IMPLIED">

The value defines the strong type of a CIM reference type. If absent, it MUST be inferred that the owning element is not a strong reference type.

Back to contents
 

3.1.10. ParamType

The ParamType entity describes the allowed type descriptions for parameter values or return values.
 
<!ENTITY % ParamType "PARAMTYPE 
      (boolean | string | char16 | uint8 | sint8 | uint16 | sint16 | uint32 | sint32| 
       uint64 | sint64 |datetime | real32 | real64 | reference)">

The value defines the strong type of a CIM reference type. If absent, it MUST be inferred that the owning element is not a strong reference type.

Back to contents
 
 

3.2. Element Descriptions

This section describes each of the elements in the CIM XML Schema.

3.2.1. Top Level Elements

This section defines the root element of the XML Schema for CIM.

Back to contents

3.2.1.1. CIM

The CIM element is the root element of every XML Document that is valid with respect to this schema.

Each document takes one of two forms; it either contains a single MESSAGE element defining a CIM message (to be used in the HTTP mapping defined in [9]), or it contains a DECLARATION element used to declare a set of CIM objects.
 
<!ELEMENT CIM (MESSAGE|DECLARATION)>
<!ATTLIST CIM
         CIMVERSION CDATA #REQUIRED 
         DTDVERSION CDATA #REQUIRED>

The CIMVERSION attribute defines the earliest version of the CIM Specification to which the XML Document conforms. It MUST be in the form of  "M.N". Where M is the Major Version of the specification in numeric form and N is the minor version of the specification in numeric form.  For example, "2.0", "2.1".

The DTDVERSION attribute defines the version of the CIM XML Mapping to which the XML Document conforms. It MUST be in the form of  "M.N". Where M is the Major Version of the specification in numeric form and N is the minor version of the specification in numeric form.  For example, "2.0", "2.1".

Back to contents

3.2.2. Declaration Elements

This section defines those elements of the Schema that are concerned with expressing the declaration of CIM objects.

Back to contents

3.2.2.1. DECLARATION

The DECLARATION element defines a set of one or more declarations of CIM objects.  These are partitioned into logical declaration subsets.
 
<!ELEMENT DECLARATION  (DECLGROUP|DECLGROUP.WITHNAME|DECLGROUP.WITHPATH)+>

Back to contents

3.2.2.2. DECLGROUP

The DECLGROUP element defines a logical set of CIM Class, Instance and Qualifier declarations.  It MAY optionally include a NAMESPACEPATH or LOCALNAMESPACEPATH element which, if present, defines the common namespace in which all objects within the group are declared.

The objects within the group are CIM Classes, Instances and Qualifiers. Object declarations must be ordered correctly with respect to the target implementation state. If the DECLGROUP references a class without defining it first, the server must reject it as invalid if it does not already have a definition of that class.
 
<!ELEMENT DECLGROUP  ((LOCALNAMESPACEPATH|NAMESPACEPATH)?,QUALIFIER.DECLARATION*,VALUE.OBJECT*)>

Back to contents

3.2.2.3. DECLGROUP.WITHNAME

The DECLGROUP.WITHNAME element defines a logical set of CIM Class, Instance and Qualifier declarations.  It MAY optionally include a NAMESPACEPATH or LOCALNAMESPACEPATH element which, if present, defines the common namespace in which all objects within the group are declared.

The objects within the group are CIM Classes, Instances and Qualifiers. Object declarations must be ordered correctly with respect to the target implementation state. If the DECLGROUP.WITHNAME references a class without defining it first, the server must reject it as invalid if it does not already have a definition of that class.

This element extends the DECLGROUP element in the sense that any Instance declaration contains an explicit Instance Name (i.e. a Model Path in the terms of the CIM specification [1]).
 
<!ELEMENT DECLGROUP.WITHNAME  ((LOCALNAMESPACEPATH|NAMESPACEPATH)?,QUALIFIER.DECLARATION*,VALUE.NAMEDOBJECT*)>

Back to contents

3.2.2.4. DECLGROUP.WITHPATH

The DECLGROUP.WITHPATH element defines a logical set of CIM Class and Instance declarations.  Each object is declared with its own independent naming and location information.  Object declarations must be ordered correctly with respect to the target implementation state. If the DECLGROUP.WITHPATH references a class without defining it first, the server must reject it as invalid if it does not already have a definition of that class.
 
<!ELEMENT DECLGROUP.WITHPATH  (VALUE.OBJECTWITHPATH|VALUE.OBJECTWITHLOCALPATH)*>

Back to contents

3.2.2.5. QUALIFIER.DECLARATION

The QUALIFIER.DECLARATION element defines a single CIM Qualifier declaration.

The declaration MAY include a default value.  If the Qualifier has a non-array type, it contains a single VALUE element representing the value of the Qualifier. If the Qualifier has an array type, it contains a single VALUE.ARRAY element to represent the value.

The SCOPE subelement, if present, defines the valid set of scopes for this Qualifier.  If absent it implies that there is no restriction on the scope at which the Qualifier may be applied (so that it has 'any' scope in the terminology of CIM [1]).
 
<!ELEMENT QUALIFIER.DECLARATION (SCOPE?,(VALUE|VALUE.ARRAY)?)>
<!ATTLIST QUALIFIER.DECLARATION 
     %CIMName;
     %CIMType;                       #REQUIRED 
     ISARRAY        (true|false)     #IMPLIED
     %ArraySize;
     %QualifierFlavor;>

The NAME attribute defines the name of the Qualifier, and the TYPE and ISARRAY attributes together define the CIM Type. The ISARRAY attribute MUST be present if the Qualifier declares no default value, in order to infer whether the Qualifier has an array type or not.  The ISARRAY attribute SHOULD be absent if the Qualifier declares a default value, as in this case whether the Qualifier has an array type can be deduced from whether a VALUE or VALUE.ARRAY element is used to declare that default; if present its value MUST be consistent with the declared Qualifier default value.

The ARRAYSIZE attribute MUST NOT be present if the value of the ISARRAY attribute is true. If the ARRAYSIZE attribute is present, this indicates that the values taken by this Qualifier MUST be of the size specified by the value of this attribute.

The flavor attributes declared using the QualifierFlavor entity define the propogation and override semantics for the Qualifier.

Back to contents

3.2.2.6. SCOPE

The SCOPE element defines the scope of a QUALIFIER.DECLARATION in the case that there are restrictions on the scope of the Qualifier declaration.
 
<!ELEMENT SCOPE EMPTY>
<!ATTLIST SCOPE 
         CLASS        (true|false)      'false'
         ASSOCIATION  (true|false)      'false'
        REFERENCE    (true|false)      'false'
         PROPERTY     (true|false)      'false'
         METHOD       (true|false)      'false'
         PARAMETER    (true|false)      'false'
         INDICATION   (true|false)      'false'>

The attributes define which scopes are valid.  A SCOPE element MUST declare at least one attribute with a true value (otherwise the Qualifier would have no applicable scope).

Back to contents

3.2.3. Value Elements

This section defines those elements of the Schema that are concerned with expressing the value of CIM objects.

Back to contents

3.2.3.1. VALUE

The VALUE element is used to define a single (non-array and non-reference) CIM Property value, CIM Qualifier value, or a CIM Method Parameter value.
 
<!ELEMENT VALUE (#PCDATA)>

Values are not type-validatable using DTD, so each value appears in PCDATA format irrespective of the type. The TYPE attribute of the parent element will determine the (CIM) type of the value. The format of the PCDATA content depends on the CIM type, and is described in what follows.

String Values
If the CIM type is string, then the PCDATA value MUST be a sequence of zero or more UCS-2 characters. The value MUST NOT be surrounded by string delimiter characters (such as double-quote or single-quote). The actual representation of characters depends on the encoding attribute defined for the <?xml> processing instruction.

If this value contains reserved XML characters, then it MUST be escaped using standard XML character escaping mechanisms.

Character Values
If the CIM type is char, then the PCDATA value MUST be a single UCS-2 character.  The value MUST NOT be surrounded by single-quote characters. If this value is a reserved XML character, then it MUST be escaped using standard XML character escaping mechanisms. The actual representation of the character depends on the encoding attribute defined for the <?xml> processing instruction.
Real Values
If the CIM type is real32 or real64, then the PCDATA value MUST conform to the following syntax:

 [ "+" | "-" ] *decimalDigit "." 1*decimalDigit [ ( "e" | "E" ) [ "+" | "-" ] 1*decimalDigit ]

where decimalDigit is any character from the set {0, 1, 2, 3, 4, 5, 6,7, 8, 9}.

Boolean Values
If the CIM type is boolean, then the PCDATA value MUST be either TRUE or FALSE. These values MUST be treated as case-insensitive.
Integer Values
If the CIM type belongs to the set {uint8, uint16, uint32, uint64} then the PCDATA value MUST be a valid unsigned decimal or hexadecimal value.

If the CIM type belongs to the set {sint8, sint16, sint32, sint64} then the PCDATA value MUST be a valid signed decimal or hexadecimal value.

Decimal values have the format:

 [ "+" | "-" ] ( positiveDecimalDigit *decimalDigit | "0" )

Where decimalDigit is as defined above and positiveDecimalDigit is any decimal digit other than 0. The leading sign character MUST NOT be used when the CIM type is unsigned.

Hexadecimal values have the format:

 [ "+" | "-" ] ( "0x" | "0X" ) 1*hexDigit

Where hexDigit is either a decimalDigit or a character from the set {a, A, b, B, c, C, d, D, e, E, f, F}. The leading sign character MUST NOT be used when the CIM type is unsigned.

Datetime Values
If the CIM type is datetime then the PCDATA value MUST be a valid datetime value as defined in detail by the CIM specification [1]. (For interval values the format is ddddddddhhmmss.mmmmmm:000, and for absolute values the format is yyyymmddhhmmss.mmmmmmsutc).

The value MUST NOT be surrounded by string delimiter characters (such as double-quote or single-quote).

Back to contents

3.2.3.2. VALUE.ARRAY

The VALUE.ARRAY element is used to represent the value of a CIM Property or Qualifier that has an array type.

CIM arrays are classified as "Bag", "Ordered" or "Indexed" [1] using the ARRAYTYPE Qualifier. If the array is Ordered or Indexed then the constituent VALUE elements MUST appear in the correct order.
 
<!ELEMENT VALUE.ARRAY (VALUE*)>

Back to contents

3.2.3.3. VALUE.REFERENCE

The VALUE.REFERENCE element is used to define a single CIM reference Property value.

If a LOCALCLASSPATH or LOCALINSTANCEPATH subelement is used, the target object is assumed to be on the same host.  If a CLASSNAME or INSTANCENAME is used, the target object is assumed to be in the same Namespace.
 
<!ELEMENT VALUE.REFERENCE (CLASSPATH|LOCALCLASSPATH|CLASSNAME|INSTANCEPATH|LOCALINSTANCEPATH|INSTANCENAME)>

Back to contents

3.2.3.4. VALUE.REFARRAY

The VALUE.REFARRAY element is used to represent the value of an array of CIM references.

CIM arrays are classified as "Bag", "Ordered" or "Indexed" [1] using the ARRAYTYPE Qualifier. If the array is Ordered or Indexed then the constituent VALUE.REFERENCE elements MUST appear in the correct order.
 
<!ELEMENT VALUE.REFARRAY (VALUE.REFERENCE*)>

Back to contents

3.2.3.5. VALUE.OBJECT

The VALUE.OBJECT element is used to define a value which is comprised of a single CIM Class or Instance definition.
 
<!ELEMENT VALUE.OBJECT (CLASS|INSTANCE)>

Back to contents

3.2.3.6. VALUE.NAMEDINSTANCE

The VALUE.NAMEDINSTANCE element is used to define a value which is comprised of a single named CIM Instance definition.
 
<!ELEMENT VALUE.NAMEDINSTANCE (INSTANCENAME,INSTANCE)>

Back to contents

3.2.3.7. VALUE.NAMEDOBJECT

The VALUE.NAMEDOBJECT element is used to define a value which is comprised of a single named CIM Class or Instance definition.
 
<!ELEMENT VALUE.NAMEDOBJECT (CLASS|(INSTANCENAME,INSTANCE))>

Back to contents

3.2.3.8. VALUE.OBJECTWITHPATH

The VALUE.OBJECTWITHPATH element is used to define a value which is comprised of a single CIM Object (Class or Instance) definition with additional information that defines the absolute path to that Object.
 
<!ELEMENT VALUE.OBJECTWITHPATH ((CLASSPATH,CLASS)|(INSTANCEPATH,INSTANCE))>

Back to contents

3.2.3.9. VALUE.OBJECTWITHLOCALPATH

The VALUE.OBJECTWITHLOCALPATH element is used to define a value which is comprised of a single CIM Object (Class or Instance) definition with additional information that defines the local path to that Object.
 
<!ELEMENT VALUE.OBJECTWITHLOCALPATH ((LOCALCLASSPATH,CLASS)|(LOCALINSTANCEPATH,INSTANCE))>

Back to contents

3.2.4. Naming and Location Elements

This section defines those elements of the Schema that are concerned with expressing the name and location of CIM objects.

Back to contents

3.2.4.1. NAMESPACEPATH

The NAMESPACEPATH element is used to define a Namespace Path. It consists of a HOST element and a LOCALNAMESPACE element.

The NAMESPACE elements MUST appear in heirarchy order, with the root Namespace appearing first.
 
<!ELEMENT NAMESPACEPATH (HOST,LOCALNAMESPACEPATH)> 

Back to contents

3.2.4.2. LOCALNAMESPACEPATH

The LOCALNAMESPACEPATH element is used to define a local Namespace path (one without a Host component). It consists of one or more NAMESPACE elements (one for each namespace in the path).
 
<!ELEMENT LOCALNAMESPACEPATH (NAMESPACE+)> 

Back to contents

3.2.4.3. HOST

The HOST element is used to define a single Host. The element content MUST specify a legal value for a hostname in accordance with the CIM specification [1].
 
<!ELEMENT HOST (#PCDATA)> 

Back to contents

3.2.4.4. NAMESPACE

The NAMESPACE element is used to define a single Namespace component of a Namespace path.
 
<!ELEMENT NAMESPACE EMPTY> 
<!ATTLIST NAMESPACE
    %CIMName;

The NAME attribute defines the name of the Namespace.

Back to contents

3.2.4.5. CLASSPATH

The CLASSPATH element defines the absolute path to a CIM Class. It is formed from a namespace path and Class name.
 
<!ELEMENT CLASSPATH (NAMESPACEPATH,CLASSNAME)>

Back to contents

3.2.4.6. LOCALCLASSPATH

The LOCALCLASSPATH element defines the a local path to a CIM Class. It is formed from a local namespace path and Class name.
 
<!ELEMENT LOCALCLASSPATH (LOCALNAMESPACEPATH, CLASSNAME)>

Back to contents

3.2.4.7. CLASSNAME

The CLASSNAME element defines the qualifying name of a CIM Class.
 
<!ELEMENT CLASSNAME EMPTY>
<!ATTLIST CLASSNAME
    %CIMName;>

The NAME attribute defines the name of the class.

Back to contents

3.2.4.8. INSTANCEPATH

The INSTANCEPATH element defines the absolute path to a CIM Instance. It is comprised of a Namespace path and an Instance Name (model path).
 
<!ELEMENT INSTANCEPATH (NAMESPACEPATH,INSTANCENAME)>

Back to contents

3.2.4.9. LOCALINSTANCEPATH

The LOCALINSTANCEPATH element defines the local path to a CIM Instance. It is comprised of a local Namespace path and an Instance Name (model path).
 
<!ELEMENT LOCALINSTANCEPATH (LOCALNAMESPACEPATH,INSTANCENAME)>

Back to contents

3.2.4.10. INSTANCENAME

The INSTANCENAME element defines the location of a CIM Instance within a Namespace (it is referred to in the CIM Specification [1] as a Model Path). It is comprised of a class name and a key binding information.

If the Class has a single key property, then a single KEYVALUE or VALUE.REFERENCE subelement may be used to describe the (necessarily) unique key value without a key name. Alternatively a single KEYBINDING sublement may be used instead.

If the Class has more than one key property, then a KEYBINDING subelement MUST appear for each key.

If there are no key-bindings specified, the instance is assumed to be a singleton instance of a keyless Class.
 
<!ELEMENT INSTANCENAME (KEYBINDING*|KEYVALUE?|VALUE.REFERENCE?)>
<!ATTLIST INSTANCENAME
    %ClassName;>

The CLASSNAME attribute defines the name of the class for this path.

Back to contents

3.2.4.11. OBJECTPATH

The OBJECTPATH element is used to define a full path to a single CIM Object (Class or Instance).
 
<!ELEMENT OBJECTPATH (INSTANCEPATH|CLASSPATH)>

Back to contents

3.2.4.12. KEYBINDING

The KEYBINDING element defines a single key property value binding.
 
<!ELEMENT KEYBINDING (KEYVALUE|VALUE.REFERENCE)>
<!ATTLIST KEYBINDING
    %CIMName;>

The NAME attribute indicates the name of the key property.

Back to contents

3.2.4.13. KEYVALUE

The KEYVALUE element defines a single property key value when the key property is a non-reference type.
 
<!ELEMENT KEYVALUE (#PCDATA)>
<!ATTLIST KEYVALUE
         VALUETYPE    (string|boolean|numeric)  'string'>

Values are not type-validatable using DTD, so each value appears in PCDATA format irrespective of the type. The CIM Type of the underlying key property determines the format of the PCDATA value.  The rules for how the content of this element is formatted depending on that CIM type are exactly the same as for the VALUE element.

The VALUETYPE attribute provides necessary and sufficient information regarding the CIM type to allow the transformation of the key value to and from its' textual equivalent (as part of a text-based CIM object path, as defined in [1]).  The value of this attribute MUST conform to the following rules:

Back to contents

3.2.5. Object Definition Elements

This section defines those elements of the Schema that are concerned with expressing the definition of CIM objects (Classes, Instances, Properties, Methods and Qualifiers).

Back to contents

3.2.5.1. CLASS

The CLASS element defines a single CIM Class.
 
<!ELEMENT CLASS (QUALIFIER*,(PROPERTY|PROPERTY.ARRAY|PROPERTY.REFERENCE)*,METHOD*)>
<!ATTLIST CLASS 
    %CIMName;
    %SuperClass;>

The NAME attribute defines the name of the Class.

The SUPERCLASS attribute, if present, defines the name of the superclass of this class. If absent, it should be inferred that the class in question has no superclass.

Back to contents

3.2.5.2. INSTANCE

The INSTANCE element defines a single CIM Instance of a CIM Class.
 
<!ELEMENT INSTANCE (QUALIFIER*,(PROPERTY|PROPERTY.ARRAY|PROPERTY.REFERENCE)*)>
<!ATTLIST INSTANCE
         %ClassName;>

The CLASSNAME attribute defines the name of the CIM Class of which this is an Instance.

Back to contents

3.2.5.3. QUALIFIER

The QUALIFIER element defines a single CIM Qualifier. If the Qualifier has a non-array type, it contains a single VALUE element representing the value of the Qualifier. If the Qualifier has an array type, it contains a single VALUE.ARRAY element to represent the value.

If the Qualifier has no assigned value then the VALUE element MUST be absent.
 
<!ELEMENT QUALIFIER (VALUE|VALUE.ARRAY)>
<!ATTLIST QUALIFIER 
     %CIMName;
     %CIMType;               #REQUIRED 
     %Propagated;
     %QualifierFlavor;>

The NAME attribute defines the name of the Qualifier, and the TYPE defines the CIM Type.

Back to contents

3.2.5.4. PROPERTY

The PROPERTY element defines a single (non-array) CIM Property that is not a reference. It contains a single VALUE element  representing the value of the Property.

If the Property has no assigned value then the VALUE element MUST be absent.

CIM Reference Properties are described using the PROPERTY.REFERENCE element.
 
<!ELEMENT PROPERTY (QUALIFIER*,VALUE?)>
<!ATTLIST PROPERTY 
     %CIMName;
     %CIMType;           #REQUIRED 
     %ClassOrigin;
     %Propagated;>

The NAME attribute defines the name of the Property, and the TYPE defines the CIM Type.

Back to contents

3.2.5.5. PROPERTY.ARRAY

The PROPERTY.ARRAY element defines a single CIM Property with an array type. It contains a single VALUE.ARRAY element  representing the value of the Property.

If the Property has no assigned value then the VALUE.ARRAY element MUST be absent.

There is no element to model a Property that contains an array of references as this is not a valid Property type according to CIM [1].
 
<!ELEMENT PROPERTY.ARRAY (QUALIFIER*,VALUE.ARRAY?)>
<!ATTLIST PROPERTY.ARRAY 
    %CIMName;
    %CIMType;           #REQUIRED 
    %ArraySize;
    %ClassOrigin;
    %Propagated;>

The NAME attribute defines the name of the Property, and the TYPE defines the CIM Type.

If the ARRAYSIZE attribute is not present on a PROPERTY.ARRAY element within a containing CLASS or ASSOCIATION.CLASS element, this indicates that the array is of variable size.

Presence or otherwise of the ARRAYSIZE attribute on a PROPERTY.ARRAY element within a containing INSTANCE element MUST NOT be taken to imply that the Property type is or is not a fixed-size array (i.e. the CLASS definition is always authoritative in this respect).

Back to contents

3.2.5.6. PROPERTY.REFERENCE

The PROPERTY.REFERENCE element models a single CIM Property with reference semantics. In future the features of XML Linking [4] may be used to identify linking elements within the XML Document; as XML Linking is currently only at Working Draft status no explicit dependencies have been made at this point.
 
<!ELEMENT PROPERTY.REFERENCE (QUALIFIER*,VALUE.REFERENCE?)>
<!ATTLIST PROPERTY.REFERENCE
     %CIMName;
     %ReferenceClass;
     %ClassOrigin;
     %Propagated;>

The NAME attribute defines the name of the Property.

The REFERENCECLASS attribute, if present, defines the strong type of the reference.  If not present it indicates that this reference is not strongly typed.

The ClassOrigin and Propagated entities are used in the same manner as for other CIM Properties.

Back to contents

3.2.5.7. METHOD

The METHOD element defines a single CIM Method. It may have Qualifiers, and zero or more parameters.

The order of the PARAMETER, PARAMETER.REFERENCE, PARAMETER.ARRAY and PARAMETER.REFARRAY subelements is not significant.
 
<!ELEMENT METHOD (QUALIFIER*,(PARAMETER|PARAMETER.REFERENCE|PARAMETER.ARRAY|PARAMETER.REFARRAY)*)>
<!ATTLIST METHOD 
     %CIMName;
     %CIMType;          #IMPLIED 
     %ClassOrigin;
     %Propagated;>

The NAME attribute defines the name of the Method.

The TYPE attribute defines the method return type, if the method returns a value.  If this attribute is absent then the method MUST  return no value (i.e. it has the special return type void).

Back to contents

3.2.5.8. PARAMETER

The PARAMETER element defines a single (non-array, non-reference) Parameter to a CIM Method. The parameter MAY have zero or more Qualifiers.
 
<!ELEMENT PARAMETER (QUALIFIER*)>
<!ATTLIST PARAMETER 
     %CIMName;
     %CIMType;      #REQUIRED>

The NAME attribute defines the name of the Parameter. The TYPE attribute defines the CIM type of the parameter.

Back to contents

3.2.5.9. PARAMETER.REFERENCE

The PARAMETER.REFERENCE element defines a single reference Parameter to a CIM Method. The parameter MAY have zero or more Qualifiers.
 
<!ELEMENT PARAMETER.REFERENCE (QUALIFIER*)>
<!ATTLIST PARAMETER.REFERENCE
     %CIMName;
     %ReferenceClass;>

The NAME attribute defines the name of the Parameter.

The REFERENCECLASS attribute, if present, defines the strong type of the reference.  If absent the parameter is assumed to a reference that is not strongly typed.

Back to contents

3.2.5.10. PARAMETER.ARRAY

The PARAMETER.ARRAY element defines a single Parameter to a CIM Method that has an array type. The parameter MAY have zero or more Qualifiers.
 
<!ELEMENT PARAMETER.ARRAY (QUALIFIER*)>
<!ATTLIST PARAMETER.ARRAY
     %CIMName;
     %CIMType;           #REQUIRED
     %ArraySize;>

The NAME attribute defines the name of the Parameter. The TYPE attribute defines the CIM type of the parameter.

The ARRAYSIZE attribute is present if and only if the array is constrained to a fixed number of elements. If it has empty content this indicates that the array is of variable size.

Back to contents

3.2.5.11. PARAMETER.REFARRAY

The PARAMETER.REFARRAY element defines a single Parameter to a CIM Method that has an array of references type. The parameter MAY have zero or more Qualifiers.
 
<!ELEMENT PARAMETER.REFARRAY (QUALIFIER*)>
<!ATTLIST PARAMETER.REFARRAY
     %CIMName;
     %ReferenceClass;
     %ArraySize;>

The NAME attribute defines the name of the Parameter.

The REFERENCECLASS attribute defines the strong type of a reference.  If absent, it is assumed that the parameter is not a strongly typed reference.

The ARRAYSIZE attribute is present if and only if the array is constrained to a fixed number of elements. If absent this indicates that the array is of variable size.

Back to contents

3.2.6. Message Elements

This section defines those elements of the Schema that are concerned with expressing the definition of CIM Messages for the CIM Mapping onto HTTP [9].

Back to contents

3.2.6.1. MESSAGE

The MESSAGE element models a single CIM message.  This element is used as the basis for CIM Operation Messages and CIM Export Messages [9].
 
<!ELEMENT MESSAGE (SIMPLEREQ|MULTIREQ|SIMPLERSP|MULTIRSP|
         SIMPLEEXPREQ|MULTIEXPREQ|SIMPLEEXPRSP|MULTIEXPRSP)>
<!ATTLIST MESSAGE
         ID             CDATA     #REQUIRED
         PROTOCOLVERSION CDATA     #REQUIRED>

The ID attribute defines an identifier for the MESSAGE.  The content of the value is not constrained by this specification, but the intention is this be used as a correlation mechanism between two CIM  entities.

The PROTOCOLVERSION attribute defines the version of the CIM Mapping to which this message conforms.

The HTTP mapping specification [9] provides more details on the values that these attributes may take.

Back to contents

3.2.6.2. MULTIREQ

The MULTIREQ element defines a Multiple CIM Operation request.  It contains two or more subelements defining the SIMPLEREQ elements that make up this multiple request.
 
<!ELEMENT MULTIREQ (SIMPLEREQ,SIMPLEREQ+)>

Back to contents

3.2.6.3. SIMPLEREQ

The SIMPLEREQ element defines a Simple CIM Operation request.  It contains either a METHODCALL (extrinsic method) element or an IMETHODCALL (intrinsic method) element.
 
<!ELEMENT SIMPLEREQ (METHODCALL|IMETHODCALL)>

Back to contents

3.2.6.4. METHODCALL

The METHODCALL element defines a single method invocation on a Class or Instance.  It specifies the local path of the target Class or Instance, followed by zero or more PARAMVALUE subelements as the parameter values to be passed to the method.
 
<!ELEMENT METHODCALL ((LOCALCLASSPATH|LOCALINSTANCEPATH),PARAMVALUE*)>
<!ATTLIST METHODCALL
     %CIMName;>

The NAME attribute defines the name of the method to be invoked.

Back to contents

3.2.6.5. PARAMVALUE

The PARAMVALUE element defines a single extrinsic method named parameter value. If no subelement is present this indicates that no value has been supplied for this parameter.
 
<!ELEMENT PARAMVALUE (VALUE|VALUE.REFERENCE|VALUE.ARRAY|VALUE.REFARRAY)?>
<!ATTLIST PARAMVALUE
     %CIMName;
     %ParamType;>

The NAME attribute defines the name of the parameter. The PARAMTYPE attribute defines the type of the parameter.

Back to contents

3.2.6.6. IMETHODCALL

The IMETHODCALL element defines a single intrinsic method invocation.  It specifies the target local namespace, followed by zero or more IPARAMVALUE subelements as the parameter values to be passed to the method.
 
<!ELEMENT IMETHODCALL (LOCALNAMESPACEPATH,IPARAMVALUE*)>
<!ATTLIST IMETHODCALL
     %CIMName;>

The NAME attribute defines the name of the method to be invoked.

Back to contents

3.2.6.7. IPARAMVALUE

The IPARAMVALUE element defines a single intrinsic method named parameter value. If no subelement is present this indicates that no value has been supplied for this parameter.
 
<!ELEMENT IPARAMVALUE (VALUE|VALUE.ARRAY|VALUE.REFERENCE|CLASSNAME|INSTANCENAME|QUALIFIER.DECLARATION|
             CLASS|INSTANCE|VALUE.NAMEDINSTANCE)?>
<!ATTLIST IPARAMVALUE
     %CIMName;>

The NAME attribute defines the name of the parameter.

Back to contents

3.2.6.8. MULTIRSP

The MULTIRSP element defines a Multiple CIM Operation response.  It contains two or more subelements defining the SIMPLERSP elements that make up this multiple response.
 
<!ELEMENT MULTIRSP (SIMPLERSP,SIMPLERSP+)>

Back to contents

3.2.6.9. SIMPLERSP

The SIMPLERSP element defines a Simple CIM Operation response.  It contains either a METHODRESPONSE (for extrinsic methods) or IMETHODRESPONSE (for intrinsic methods) subelement.
 
<!ELEMENT SIMPLERSP (METHODRESPONSE|IMETHODRESPONSE)>

Back to contents

3.2.6.10. METHODRESPONSE

The METHODRESPONSE defines the response to a single CIM extrinsic method invocation.  It contains either an ERROR subelement (to report a fundamental error which prevented the method from executing), or a combination of an optional return value and zero or more out parameter values.
 
<!ELEMENT METHODRESPONSE (ERROR|(RETURNVALUE?,PARAMVALUE*))>
<!ATTLIST METHODRESPONSE
           %CIMName;>

The NAME attribute defines the name of the method that was invoked.

Back to contents

3.2.6.11. IMETHODRESPONSE

The IMETHODRESPONSE defines the response to a single intrinsic CIM method invocation.  It contains either an ERROR subelement (to report a fundamental error which prevented the method from executing), or an optional return value.
 
<!ELEMENT IMETHODRESPONSE (ERROR|IRETURNVALUE?)>
<!ATTLIST IMETHODRESPONSE
           %CIMName;>

The NAME attribute defines the name of the method that was invoked.

Back to contents

3.2.6.12. ERROR

The ERROR element is used to define a fundamental error which prevented a method from executing normally.
 
<!ELEMENT ERROR EMPTY>
<!ATTLIST ERROR
              CODE        CDATA   #REQUIRED
              DESCRIPTION CDATA   #IMPLIED>

The CODE attribute contains a numerical status code indicating the nature of the error.  The valid status codes are defined in [9].  The DESCRIPTION attribute, if present, provides a human-readable description of the error.

Back to contents

3.2.6.13. RETURNVALUE

The RETURNVALUE element specifies the value returned from an extrinsic method call.
 
<!ELEMENT RETURNVALUE (VALUE|VALUE.REFERENCE)>
<!ATTLIST RETURNVALUE
     %ParamType;>

The PARAMTYPE attribute defines the type of the return value.

Back to contents

3.2.6.14. IRETURNVALUE

The IRETURNVALUE element specifies the value returned from an intrinsic method call.
 
<!ELEMENT IRETURNVALUE (CLASSNAME*|INSTANCENAME*|VALUE*|VALUE.OBJECTWITHPATH*|VALUE.OBJECTWITHLOCALPATH*
              VALUE.OBJECT*|OBJECTPATH*|QUALIFIER.DECLARATION*|VALUE.ARRAY?|VALUE.REFERENCE?|
              CLASS*|INSTANCE*|VALUE.NAMEDINSTANCE*)>

Back to contents
 

3.2.6.15. MULTIEXPREQ

The MULTIEXPREQ element defines a Multiple CIM Export request.  It contains two or more subelements defining the SIMPLEEXPREQ elements that make up this multiple request.
<!ELEMENT MULTIEXPREQ (SIMPLEEXPREQ,SIMPLEEXPREQ+)>

Back to contents

3.2.6.16. SIMPLEEXPREQ

The SIMPLEEXPREQ element defines a Simple CIM Export request.  It contains an EXPMETHODCALL (export method).
<!ELEMENT SIMPLEEXPREQ (EXPMETHODCALL)>

Back to contents

3.2.6.17. EXPMETHODCALL

The EXPMETHODCALL element defines a single export method invocation.  It specifies zero or more  <EXPPARAMVALUE> subelements as the parameter values to be passed to the method.
<!ELEMENT EXPMETHODCALL (EXPPARAMVALUE*)>
<!ATTLIST EXPMETHODCALL 
    %CIMName;>

The NAME attribute defines the name of the export method to be invoked.

Back to contents

3.2.6.18. MULTIEXPRSP

The MULTIEXPRSP element defines a Multiple CIM Export response.  It contains two or more subelements defining the SIMPLEEXPRSP elements that make up this multiple response.
<!ELEMENT MULTIEXPRSP (SIMPLEEXPRSP,SIMPLEEXPRSP+)>

Back to contents

3.2.6.19. SIMPLEEXPRSP

The SIMPLEEXPRSP element defines a Simple CIM Export response.  It contains either a EXPMETHODRESPONSE (for export methods) subelement.
<!ELEMENT SIMPLEEXPRSP (EXPMETHODRESPONSE)>

Back to contents

3.2.6.20. EXPMETHODRESPONSE

The EXPMETHODRESPONSE defines the response to a single export method invocation.  It contains either an ERROR subelement (to report a fundamental error which prevented the method from executing), or an optional return value.
<!ELEMENT EXPMETHODRESPONSE (ERROR|IRETURNVALUE?)>
<!ATTLIST EXPMETHODRESPONSE
     %CIMName;>

The NAME attribute defines the name of the export method that was invoked.

Back to contents
 

3.2.6.21. EXPPARAMVALUE

The EXPPARAMVALUE element defines a single export method named parameter value.  If no subelement is present this indicates that no value has been supplied for this parameter.
 
<!ELEMENT EXPPARAMVALUE (INSTANCE)>
<!ATTLIST EXPPARAMVALUE 
    %CIMName;>

The NAME attribute defines the name of the parameter.

Back to contents

4. References

  1. "Common Information Model (CIM) Specification", Version 2.0, DMTF, 3rd March 1998 (http://www.dmtf.org/standards/standard_cim.php)
  2. "Extensible Markup Language (XML)", Version 1.0, W3C Recommendation (http://www.w3.org/TR/REC-xml)
  3. "Namespaces in XML", 14th January 1999, W3C Recommendation (http://www.w3.org/TR/REC-xml-names)
  4. "XML Linking Language (XLink)", 3rd March 1998, W3C Working Draft (http://www.w3.org/TR/WD-xlink
  5. "XML as a Representation for Management Information - A White Paper", Version 1.0, DMTF, September 15th 1998 (http://www.dmtf.org/standards/xmlw.php)
  6. "Cascading Style Sheets, Level 1", W3C Recommendation 17th December 1996 (http://www.w3.org/TR/REC-CSS1)
  7. "Cascading Style Sheets, Level 2", W3C Recommendation, 12th May 1998 (http://www.w3.org/TR/REC-CSS2)
  8. "XSL Transformations (XSLT)", Version 1.0, W3C Working Draft, 21st April 1999 (http://www.w3.org/TR/WD-xsltl)
  9. "Specification for CIM Operations over HTTP", Version 1.0, DMTF, 20th July 1999 (http://www.dmtf.org/download/spec/xmls/CIM_HTTP_Mapping10.php)
  10. "Key words for use in RFCs to Indicate Requirement Levels", IETF RFC 2119, March 1997 (http://www.ietf.org/rfc/rfc2119.txt)
  11. "CIM XML DTD", Version 2.0, DMTF, 20th July 1999 (http://www.dmtf.org/download/spec/xmls/CIM_DTD_V20.txt)
Back to contents
 
 

Appendix A: Change History

 
Version 1.0a Tuesday, July 14th, 1998 First Draft Release
Version 1.0b Friday August 7th, 1998 Draft Release
Version 1.0c Friday August 28th, 1998 Updated Version during Company review
Version 1.0 Tuesday, September 15th, 1998 Final version
Version 1.0.1 Friday, January 22nd, 1999 METHOD subelement removed from ASSOCIATION.INSTANCE
Version 1.1a Wednesday, April 28th, 1999 Changes for support of HTTP protocol
Version 2.0b May 7th, 1999 Updates after first Working Group Review
Version 2.0c May 11th, 1999 DTD Corrections, changes to DECLGROUP and removal of IMPLICITKEY element
Version 2.0d May 20th, 1999 Corrected error in definition of LOCALINSTANCEPATH
Version 2.0e May 25th, 1999 Corrected LOCALNAMESPACEPATH definition 
Corrected CIMName entity definition 
Changed LOCAL to PROPAGATED 
Added VALUETYPE attribute to KEYVALUE 
Added explanatory text concerning pragmas
Version 2.0f May 28th, 1999 Corrected VALUE.REFERENCE, KEYVALUE.REFERENCE and PARAMVALUE.REFERENCE so that they could contain relative and absolute paths
Version 2.0 June 2nd, 1999 Updated document references 
Removed references to CIM_Object
July 6th, 1999 Remove INSTANCE attribute from SCOPE element 
Simplify method parameter declaration elements 
Replace KEYVALUE.REFERENCE by VALUE.REFERENCE 
Add ARRAYSIZE attribute to QUALIFIER.DECLARATION 
Remove ASSOCIATION elements
July 20th, 1999 Updated IPARAMVALUE and IRETURNVALUE elements 
Added VALUE.NAMEDINSTANCE element
Version 2.1a November 23, 2001 CR605: CIM-XML Indication Delivery Support 
CR626: Correct wording in regards to order of parameters for methods (3.2.5.7)
Version 2.1b January 16, 2002 Incorporate Errata 01
CR668: Move Change Histroy to Appendix A 
CR710: Add type information to return value and parameter values of METHODCALL. 
CR711: Modify definition of EXPMETHODCALL to be more extensible.
CR732: 3.2.6.13. RETURNVALUE contains illegal return values
Version 2.1c April 24, 2002 CR738: Add ‘sint8’ to list of allowable CIMType and ParamType types.
CR739: Remove outdated paragraphs in section 1.1
CR740: Remove references to version 2.0 in the specification.
CR812: Add syntax to XML to set a Qualifier value to NULL.
Version 2.1d May 02, 2002 Add DMTF Copyright
Version 2.1 January 03, 2003 Final Version - Update Copyright, Date, Status