DSP0201
Status: Final
Version 2.2, January 09, 2007
Copyright © 2000-2007 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.
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.
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:
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 analogous manner to the #pragma extension mechanism defined for MOF. The format of such PIs is necessarily outside the scope of this document.
Examples are displayed in this fashion:
This is an example |
Definitions are illustrated thusly:
This is a definition |
The term XML Element is used to describe a component of XML defined using the ELEMENT construct in DTD.
<!ENTITY % CIMName "NAME CDATA #REQUIRED"> |
<!ENTITY
% CIMType "TYPE (boolean | string | char16 | uint8 | sint8 | uint16 | sint16 | uint32 | sint32 | uint64 | sint64 | datetime | real32 | real64)"> |
<!ENTITY
% QualifierFlavor "OVERRIDABLE (true|false) 'true'
TOSUBCLASS (true|false) 'true' TOINSTANCE (true|false) 'false' TRANSLATABLE (true|false) 'false'"> |
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"> |
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:
<!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.
<!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.
<!ENTITY % ClassName "CLASSNAME CDATA #REQUIRED"> |
<!ENTITY % ReferenceClass "REFERENCECLASS CDATA #IMPLIED"> |
The value defines the class name for the reference and the requirement for the existence of this attribute is dependent on the entity in which it is used. The expected behavior is that the REFERENCECLASS attribute MUST exist for Classes and SHOULD NOT exist for instances.
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 EmbeddedObject entity
defines an embedded object or an embedded instance. This may be
applied only to entities that have the Type string.
<!ENTITY
% EmbeddedObject
"(object | instance) #IMPLIED"> |
This attribute is to be used to
represent the existence of an EMBEDDEDINSTANCE or EMBEDDEDOBJECT
qualifier on the corresponding meta data (method, parameter, or
property).
If the qualifier EMBEDDEDOBJECT is defined for the method, parameter, or property, the EmbeddedObject attribute MUST BE attached to the corresponding property in any instance, PARAMVALUE, or RETURNVALUE with the value "object".
If the qualifier EMBEDDEDINSTANCE exists for the method, parameter, or property, the EmbeddedObject attribute MUST BE attached to the corresponding property in any instance, PARAMVALUE, or RETURNVALUE with the value "instance".
Back to contentsEach document takes one of two forms; it either contains a single MESSAGE
element defining a CIM message (to be used in the CIM Operations over
HTTP 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 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". Implementations must only validate the major
version as all minor versions are backward compatible. Implementations
may look at the minor version to determine additional capabilites.
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". Implementations must only validate the major version as all minor versions are backward compatible. Implementations may look at the minor version to determine additional capabilites.
<!ELEMENT DECLARATION (DECLGROUP|DECLGROUP.WITHNAME|DECLGROUP.WITHPATH)+> |
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*)> |
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*)> |
<!ELEMENT DECLGROUP.WITHPATH (VALUE.OBJECTWITHPATH|VALUE.OBJECTWITHLOCALPATH)*> |
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 propagation and override semantics for the Qualifier.
<!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).
<!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 ValuesBack to contentsIf 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.Character ValuesIf this value contains reserved XML characters, then it MUST be escaped using standard XML character escaping mechanisms.
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 ValuesIf the CIM type is real32 or real64, then the PCDATA value MUST conform to the following syntax:Boolean Values[ "+" | "-" ] *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}.
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 ValuesIf the CIM type belongs to the set {uint8, uint16, uint32, uint64} then the PCDATA value MUST be a valid unsigned decimal or hexadecimal value.Datetime ValuesIf 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.
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).
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*)> |
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)> |
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*)> |
<!ELEMENT VALUE.OBJECT (CLASS|INSTANCE)> |
<!ELEMENT VALUE.NAMEDINSTANCE (INSTANCENAME,INSTANCE)> |
<!ELEMENT VALUE.NAMEDOBJECT (CLASS|(INSTANCENAME,INSTANCE))> |
<!ELEMENT VALUE.OBJECTWITHPATH ((CLASSPATH,CLASS)|(INSTANCEPATH,INSTANCE))> |
<!ELEMENT VALUE.OBJECTWITHLOCALPATH ((LOCALCLASSPATH,CLASS)|(LOCALINSTANCEPATH,INSTANCE))> |
The VALUE.NULL element is used to represent a TABLECELL that has no assigned value.
<!ELEMENT VALUE.NULL EMPTY> |
The NAMESPACE elements MUST appear in
hierarchy
order, with the root Namespace appearing first.
<!ELEMENT NAMESPACEPATH (HOST,LOCALNAMESPACEPATH)> |
<!ELEMENT LOCALNAMESPACEPATH (NAMESPACE+)> |
<!ELEMENT HOST (#PCDATA)> |
<!ELEMENT
NAMESPACE EMPTY> <!ATTLIST NAMESPACE %CIMName;> |
The NAME attribute defines the name of the Namespace.
<!ELEMENT CLASSPATH (NAMESPACEPATH,CLASSNAME)> |
<!ELEMENT LOCALCLASSPATH (LOCALNAMESPACEPATH, CLASSNAME)> |
<!ELEMENT
CLASSNAME EMPTY> <!ATTLIST CLASSNAME %CIMName;> |
The NAME attribute defines the name of the class.
<!ELEMENT INSTANCEPATH (NAMESPACEPATH,INSTANCENAME)> |
<!ELEMENT LOCALINSTANCEPATH (LOCALNAMESPACEPATH,INSTANCENAME)> |
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 subelement 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.
<!ELEMENT OBJECTPATH (INSTANCEPATH|CLASSPATH)> |
<!ELEMENT
KEYBINDING (KEYVALUE|VALUE.REFERENCE)> <!ATTLIST KEYBINDING %CIMName;> |
The NAME attribute indicates the name of the key property.
<!ELEMENT KEYVALUE
(#PCDATA)> <!ATTLIST KEYVALUE VALUETYPE (string|boolean|numeric) "string" %CIMType; #IMPLIED> |
Values are not type-validatable using DTD, so each value appears in PCDATA format irrespective of the type. The data 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 data type are exactly the same as for the VALUE element.
The VALUETYPE provides information regarding the data 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:
The CIMType attribute is optional and, when provided, can be used to improve performance. If specified, the CIMType attribute MUST be the data type of the underlying key property.
Back to contents<!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.
<!ELEMENT INSTANCE (QUALIFIER*,(PROPERTY|PROPERTY.ARRAY|PROPERTY.REFERENCE)*)> <!ATTLIST INSTANCE %ClassName; xml:lang NMTOKEN #IMPLIED> |
The CLASSNAME attribute defines the name of the CIM Class of which this is an Instance.
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; xml:lang NMTOKEN #IMPLIED> |
The NAME attribute defines the name of the Qualifier, and the TYPE defines the CIM Type.
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; %EmbeddedObject; xml:lang NMTOKEN #IMPLIED> |
The NAME attribute defines the
name
of the Property, and the TYPE defines the CIM Type.
If the Class definition for the property includes the qualifiers EMBEDDEDOBJECT or EMBEDDEDINSTANCE, the corresponding EmbeddedObject attribute and EmbeddedClassName attributes MUST BE included for properties in instances elements of that class. These attributes MUST NOT be attached to class elements.
1. A property that is defined in MOF as an embeddedObject with the inclusion of the EmbeddedObject qualifier on the property MUST be represented using the attribute EmbeddedObject with the value "object". The value MUST be a valid INSTANCE element, defining a single CIM Instance of a CIM Class or a valid CLASS element`.
2. A property that is defined in MOF as an embedded instance with the inclusion of the EmbeddedInstance qualifier on a property MUST be represented using the attribute EmbeddedObject with the value "instance". The VALUE MUST be a valid INSTANCE element, defining a single CIM Instance.
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; %EmbeddedObject; xml:lang NMTOKEN #IMPLIED> |
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).
If the Class definition for the property includes the qualifiers EMBEDDEDOBJECT or EMBEDDEDINSTANCE, the corresponding EmbeddedObject attribute MUST BE included.
1. A property that is defined in MOF as an embeddedObject with the inclusion of the EmbeddedObject qualifier on the property MUST be defined using the type "object". The value MUST be a valid INSTANCE element, defining a single CIM Instance of a CIM Class or a valid CLASS element.
2. A property that is defined in MOF as an embedded instance with the inclusion of the EmbeddedInstance qualifier on a property MUST be defined as the type "instance". The VALUE MUST be a valid INSTANCE element, defining a single CIM Instance.
<!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 expected behavior is that the REFERENCECLASS attribute MUST
exist for PROPERTY.REFERENCE usage in class entities and SHOULD NOT exist for instance entities since the reference class name should be defined in the property value.
The ClassOrigin and Propagated entities are used in the same manner as for other CIM Properties.
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).
<!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.
<!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.
The expected behavior is that the REFERENCECLASS attribute MUST exist for PARAMETER.REFERENCE entities.
<!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.
<!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 expected behavior is that the REFERENCECLASS attribute MUST exist for PARAMETER.REFARRAY entities.
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.
<!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 Operations to which this message 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, "1.0", "1.1". Implementations must only validate the major version as all minor versions are backward compatible. Implementations may look at the minor version to determine additional capabilites.
The HTTP mapping specification [9] provides more details on the values that these attributes may take.
<!ELEMENT MULTIREQ (SIMPLEREQ,SIMPLEREQ+)> |
<!ELEMENT SIMPLEREQ (METHODCALL|IMETHODCALL)> |
<!ELEMENT
METHODCALL ((LOCALCLASSPATH|LOCALINSTANCEPATH),PARAMVALUE*)> <!ATTLIST METHODCALL %CIMName;> |
The NAME attribute defines the name of the method to be invoked.
<!ELEMENT
PARAMVALUE (VALUE|VALUE.REFERENCE|VALUE.ARRAY|VALUE.REFARRAY)?>
<!ATTLIST PARAMVALUE %CIMName; %ParamType; #IMPLIED %EmbeddedObject;> |
The NAME attribute defines the name
of the parameter. The PARAMTYPE attribute defines the type of the
parameter.
The EmbeddedObject attribute defines that this PARAMVALUE represents a CIM Embedded Object. This attribute may only be applied to string Types and represents a parameter that has the qualifier EMBEDDEDOBJECT or EMBEDDEDINSTANCE attached.
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.
<!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.
<!ELEMENT MULTIRSP (SIMPLERSP,SIMPLERSP+)> |
<!ELEMENT SIMPLERSP (METHODRESPONSE|IMETHODRESPONSE)> |
<!ELEMENT
METHODRESPONSE (ERROR|(RETURNVALUE?,PARAMVALUE*))> <!ATTLIST METHODRESPONSE %CIMName;> |
The NAME attribute defines the name of the method that was invoked.
<!ELEMENT
IMETHODRESPONSE (ERROR|IRETURNVALUE?)> <!ATTLIST IMETHODRESPONSE %CIMName;> |
The NAME attribute defines the name of the method that was invoked.
The ERROR element is used to define a fundamental error which prevented a method from executing normally. It consists of a status code, an optional description and zero or more instances containing detailed information about the error.
<!ELEMENT ERROR (INSTANCE*) <!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.
<!ELEMENT
RETURNVALUE (VALUE|VALUE.REFERENCE)>
<!ATTLIST RETURNVALUE %EmbeddedObject; %ParamType; #IMPLIED> |
The PARAMTYPE attribute defines the type of the return value.
The EmbeddedObject attribute defines that this RETURNVALUE represents a CIM Embedded Object. This attribute may only be applied to string Types and represents a parameter that has the qualifier EMBEDDEDOBJECT or EMBEDDEDINSTANCE attached.
<!ELEMENT
IRETURNVALUE (CLASSNAME*|INSTANCENAME*|VALUE*|VALUE.OBJECTWITHPATH*|VALUE.OBJECTWITHLOCALPATH*
VALUE.OBJECT*|OBJECTPATH*|QUALIFIER.DECLARATION*|VALUE.ARRAY?|VALUE.REFERENCE?| CLASS*|INSTANCE*|VALUE.NAMEDINSTANCE*)> |
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+)>
|
The SIMPLEEXPREQ element defines a Simple CIM Export request. It contains an EXPMETHODCALL (export method).
<!ELEMENT
SIMPLEEXPREQ (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.
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+)>
|
The SIMPLEEXPRSP element defines a Simple CIM Export response. It contains either a EXPMETHODRESPONSE (for export methods) subelement.
<!ELEMENT
SIMPLEEXPRSP (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.
<!ELEMENT
EXPPARAMVALUE
(INSTANCE?)> <!ATTLIST EXPPARAMVALUE %CIMName;> |
The NAME attribute defines the name of the parameter.
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.2a | March 09, 2004 | Changed Version to 2.2a and Date to March 9, 2004. Changed Status from Preliminary to Draft. Changed copyright from 2000-2002 to 2000-2004. CR0812: Corrected partial merge of CR812 changes in 2.1c. CR0871: Add support for asynchronous operations. CR0908: Error handling changes to support chunking. CR0913: CR1251: Allow return of detailed error information. CR1275: Add optional CIMType attribute to KEYVALUE. CR1276: Modify XML to allow EXPPARAMVALUE to be NULL. |
Version 2.2b | April 05, 2004 | Changed Version to 2.2b and Date to April 5, 2004. CR1374: Withdraw CR908. CR1311: Minor changes to align specification with DTD. CR1383: Remove extra sentence in definition of ParamType. |
Version 2.2c | April 27, 2004 | Changed Version to 2.2c and Date to April 27, 2004. Updated Table of Contents. |
Version 2.2d | June 05, 2004 | Changed Version to 2.2d and Date to June 5, 2004. CR1382: Modify CIM-XML to allow use of "xml:lang". CR1411: Add missing #IMPLIED keyword to ParamType CR1412: Deprecate TOINSTANCE Qualifier flavor CR1408: Clarify use of REFERENCECLASS attribute. |
Version 2.2e | June 09, 2004 | Changed Version to 2.2e and Date to June 9, 2004. Additional CR1412 changes based on TC review. Approved for Company Review |
Version 2.2f | November 25, 2004 | Changed status to Preliminary. Changed version to 2.2f and date to November 25, 2004 CR1535: DTD Extensions to support CQL. |
Version 2.2g |
January 11, 2007 |
Changed Date (Jan 9, 2007),
staus to Final and copyright end year (2007) Remove application of CR0871 Remove application of CR1535 WIPCR0239 fix dtd link in section 4 WIPCR0217 |