(file) Return to CIM_HTTP_Mapping11Preliminary.htm CVS log (file) (dir) Up to [Pegasus] / dmtfdocs

File: [Pegasus] / dmtfdocs / CIM_HTTP_Mapping11Preliminary.htm (download) / (as text)
Revision: 1.1, Wed Sep 5 23:30:17 2001 UTC (22 years, 8 months ago) by karl
Branch: MAIN
CVS Tags: HEAD
import

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<META NAME="Generator" CONTENT="Microsoft Word 97">
<TITLE>Specification for CIM Operations over HTTP</TITLE>
<META NAME="Template" CONTENT="Normal.dot">
</HEAD>
<BODY LINK="#0000ff" VLINK="#800080">
<DIR>
<DIR>

<P ALIGN="CENTER">Distributed Management Task Force, Inc.</P>
<B><FONT SIZE=5><P ALIGN="CENTER">Specification for&nbsp;CIM Operations over HTTP</P>
</FONT><P ALIGN="CENTER">Version 1.1</P>
</B><P ALIGN="CENTER">July 26, 2001</P>
<P>Technical inquiries and editorial comments should be directed in writing to:</P>
<P ALIGN="CENTER">Distributed Management Task Force, Inc. (DMTF)</P>
<P ALIGN="CENTER">c/o <A HREF="http://www.mkinc.com/">MacKenzie Kesselring, Inc.</A> <BR>
200 SW Market Street, Suite 450, <BR>
Portland, OR 97201 <BR>
(503) 225-0725 <BR>
(503) 225-0765 (fax) <BR>
email: <A HREF="mailto://dmtf-info@dmtf.org">mailto://dmtf-info@dmtf.org</A> </P>
<P ALIGN="CENTER">&nbsp;</P>
<P ALIGN="CENTER">&nbsp;</P>
<B><FONT SIZE=4><P><A NAME="_Toc520755791">Change History</A></P></DIR>
</DIR>
</B></FONT>
<P ALIGN="CENTER"><CENTER><TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=536>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<P>Version 1.0a</TD>
<TD WIDTH="30%" VALIGN="MIDDLE">
<P>May 1st, 1999</TD>
<TD WIDTH="52%" VALIGN="MIDDLE">
<P>First Draft Release</TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<P>Version 1.0b</TD>
<TD WIDTH="30%" VALIGN="MIDDLE">
<P>May 7th, 1999</TD>
<TD WIDTH="52%" VALIGN="MIDDLE">
<P>Updates after first Working Group Review</TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<P>Version 1.0c</TD>
<TD WIDTH="30%" VALIGN="MIDDLE">
<P>May 11th, 1999</TD>
<TD WIDTH="52%" VALIGN="MIDDLE">
<P>Further updates</TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<P>Version 1.0d</TD>
<TD WIDTH="30%" VALIGN="MIDDLE">
<P>May 25th, 1999</TD>
<TD WIDTH="52%" VALIGN="MIDDLE">
<P>Changed LOCAL to PROPAGATED<BR>
Added VALUETYPE&nbsp;attribute to KEYVALUE</TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<P>Version 1.0e</TD>
<TD WIDTH="30%" VALIGN="MIDDLE">
<P>May 28th, 1999</TD>
<TD WIDTH="52%" VALIGN="MIDDLE">
<P>AssociationTraversal dependent on BasicRead. not BasicWrite<BR>
<BR>
CIMFunctionalGroups OPTIONS header renamed to CIMSupportedFunctionalGroups<BR>
<BR>
501 returned by server if it does not support multiple requests and receives such a request<BR>
<BR>
Added some operation parameters and allowed them to take default values</TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<P>Version 1.0</TD>
<TD WIDTH="30%" VALIGN="MIDDLE">
<P>June&nbsp;2nd, 1999</TD>
<TD WIDTH="52%" VALIGN="MIDDLE">
<P>Clarified meaning of default intrinsic parameter value<BR>
Resolved ambiguity over server response to protocol version that is not supported<BR>
Clarified use of property list in Associators and References intrinsic methods</TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">&nbsp;</TD>
<TD WIDTH="30%" VALIGN="MIDDLE">
<P>July&nbsp;6th, 1999</TD>
<TD WIDTH="52%" VALIGN="MIDDLE">
<P>Updated examples to reflect DTD changes<BR>
QueryExecution based on BasicRead, not BasicWrite</TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">&nbsp;</TD>
<TD WIDTH="30%" VALIGN="MIDDLE">
<P>July&nbsp;20th, 1999</TD>
<TD WIDTH="52%" VALIGN="MIDDLE">
<P>Remove IncludeClassOrigin and IncludeQualifiers parameters from ExecQuery.<BR>
Parameters to Associators, AssocitorNames, References and ReferenceNames which express class names are modelled as &lt;className&gt; rather than string.<BR>
NewValue parameter to SetProperty is now OPTIONAL<BR>
Clarified semantics of optional parameters, and the distinction between a default parameter value and a NULL parameter value.<BR>
Clarified Create and Modify operational semantics.<BR>
Clarified validation requirements and introduced CIMValidation header for OPTIONS response.<BR>
Introduced CIMError response header to disambiguate fundamental CIM-specific errors that map to the same HTTP status code.</TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<P>Version 1.1B</TD>
<TD WIDTH="30%" VALIGN="MIDDLE">
<P>April 28, 2001</TD>
<TD WIDTH="52%" VALIGN="MIDDLE">
<P>Update specification to include new CIM Message type, Export Message.  Define ExportIndication as an export method that supports Indication Delivery.  Introduce the concept of a CIM Listener as the recipient of an Export Message. </TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<P>Version 1.1C</TD>
<TD WIDTH="30%" VALIGN="MIDDLE">
<P>May 9, 2001</TD>
<TD WIDTH="52%" VALIGN="MIDDLE">
<P>Fixed broken links. Added section 3.3.9. defining CIMExportMethod HTTP extension header. Updated definition of CIM Product to be consistent with DSP0113.</TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<P>Version 1.1</TD>
<TD WIDTH="30%" VALIGN="MIDDLE">
<P>July 26, 2001</TD>
<TD WIDTH="52%" VALIGN="MIDDLE">
<P>4.8 – Recommended Ports (CR604A)</P>
<P>4.5 – Determining Capability through CIM Classes (CR611)</P>
<P>incorporate Errata 01</P>
<P>Remove list of participants, as this was outdated. This document comes from the DMTF Interoperability WG. Many companies have contributed.</TD>
</TR>
</TABLE>
</CENTER></P>
<DIR>
<DIR>

<B><FONT SIZE=4><P><A NAME="top"><A NAME="_Toc520755792">Contents</A></A></P></DIR>
</DIR>

</B></FONT><P>Change History&#9;<A HREF="#_Toc520755791">*</A><DIR>

<P>Contents&#9;<A HREF="#_Toc520755792">*</A></P></DIR>

<P>Abstract&#9;<A HREF="#_Toc520755793">*</A></P>
<P>1. Introduction&#9;<A HREF="#_Toc520755794">*</A></P><DIR>

<P>1.1. Requirements&#9;<A HREF="#_Toc520755795">*</A></P>
<P>1.2. Terminology&#9;<A HREF="#_Toc520755796">*</A></P>
<P>1.3. Style&#9;<A HREF="#_Toc520755797">*</A></P></DIR>

<P>2. CIM Message Syntax and Semantics&#9;<A HREF="#_Toc520755798">*</A></P><DIR>

<P>2.1. Overview&#9;<A HREF="#_Toc520755799">*</A></P>
<P>2.1.1. Well-Formed, Valid and Loosely Valid&#9;<A HREF="#_Toc520755800">*</A></P>
<P>2.2. Operational Semantics&#9;<A HREF="#_Toc520755801">*</A></P>
<P>2.3 CIM Operation Syntax and Semantics&#9;<A HREF="#_Toc520755802">*</A></P>
<P>2.3.1. Method Invocations&#9;<A HREF="#_Toc520755803">*</A></P><DIR>

<P>2.3.1.1. Simple Operations&#9;<A HREF="#_Toc520755804">*</A></P>
<P>2.3.1.2. Multiple Operations&#9;<A HREF="#_Toc520755805">*</A></P>
<P>2.3.1.3. Status Codes&#9;<A HREF="#_Toc520755806">*</A></P></DIR>

<P>2.3.2. Intrinsic Methods&#9;<A HREF="#_Toc520755807">*</A></P><DIR>

<P>2.3.2.1. GetClass&#9;<A HREF="#_Toc520755808">*</A></P>
<P>2.3.2.2. GetInstance&#9;<A HREF="#_Toc520755809">*</A></P>
<P>2.3.2.3. DeleteClass&#9;<A HREF="#_Toc520755810">*</A></P>
<P>2.3.2.4. DeleteInstance&#9;<A HREF="#_Toc520755811">*</A></P>
<P>2.3.2.5. CreateClass&#9;<A HREF="#_Toc520755812">*</A></P>
<P>2.3.2.6. CreateInstance&#9;<A HREF="#_Toc520755813">*</A></P>
<P>2.3.2.7. ModifyClass&#9;<A HREF="#_Toc520755814">*</A></P>
<P>2.3.2.8. ModifyInstance&#9;<A HREF="#_Toc520755815">*</A></P>
<P>2.3.2.9. EnumerateClasses&#9;<A HREF="#_Toc520755816">*</A></P>
<P>2.3.2.10. EnumerateClassNames&#9;<A HREF="#_Toc520755817">*</A></P>
<P>2.3.2.11. EnumerateInstances&#9;<A HREF="#_Toc520755818">*</A></P>
<P>2.3.2.12. EnumerateInstanceNames&#9;<A HREF="#_Toc520755819">*</A></P>
<P>2.3.2.13. ExecQuery&#9;<A HREF="#_Toc520755820">*</A></P>
<P>2.3.2.14. Associators&#9;<A HREF="#_Toc520755821">*</A></P>
<P>2.3.2.15. AssociatorNames&#9;<A HREF="#_Toc520755822">*</A></P>
<P>2.3.2.16. References&#9;<A HREF="#_Toc520755823">*</A></P>
<P>2.3.2.17. ReferenceNames&#9;<A HREF="#_Toc520755824">*</A></P>
<P>2.3.2.18. GetProperty&#9;<A HREF="#_Toc520755825">*</A></P>
<P>2.3.2.19. SetProperty&#9;<A HREF="#_Toc520755826">*</A></P>
<P>2.3.2.20. GetQualifier&#9;<A HREF="#_Toc520755827">*</A></P>
<P>2.3.2.21. SetQualifier&#9;<A HREF="#_Toc520755828">*</A></P>
<P>2.3.2.22. DeleteQualifier&#9;<A HREF="#_Toc520755829">*</A></P>
<P>2.3.2.23. EnumerateQualifiers&#9;<A HREF="#_Toc520755830">*</A></P></DIR>

<P>2.3.3. Namespace Manipulation&#9;<A HREF="#_Toc520755831">*</A></P>
<P>2.3.4. Functional Profiles&#9;<A HREF="#_Toc520755832">*</A></P>
<P>2.3.5. Extrinsic Method Invocation&#9;<A HREF="#_Toc520755833">*</A></P>
<P>2.4 CIM Export Syntax and Semantics&#9;<A HREF="#_Toc520755834">*</A></P>
<P>2.4.1. Export Method Invocations&#9;<A HREF="#_Toc520755835">*</A></P><DIR>

<P>2.4.1.1. Simple Export&#9;<A HREF="#_Toc520755836">*</A></P>
<P>2.4.1.2. Multiple Export&#9;<A HREF="#_Toc520755837">*</A></P>
<P>2.4.1.3. Status Codes&#9;<A HREF="#_Toc520755838">*</A></P></DIR>

<P>2.4.2. Export Methods&#9;<A HREF="#_Toc520755839">*</A></P><DIR>

<P>2.4.2.1. ExportIndication&#9;<A HREF="#_Toc520755840">*</A></P></DIR>

<P>2.4.3. Functional Profiles&#9;<A HREF="#_Toc520755841">*</A></P></DIR>

<P>3. Encapsulation of CIM  Messages&#9;<A HREF="#_Toc520755842">*</A></P><DIR>

<P>3.1. CIM Clients, CIM Servers and CIM Listeners&#9;<A HREF="#_Toc520755843">*</A></P>
<P>3.2. Use of M-POST and POST&#9;<A HREF="#_Toc520755844">*</A></P>
<P>3.2.1. Use of the Ext Header&#9;<A HREF="#_Toc520755845">*</A></P>
<P>3.3. Extension Headers Defined for CIM Message Requests and Responses&#9;<A HREF="#_Toc520755846">*</A></P>
<P>3.3.1. Naming of Extension Headers&#9;<A HREF="#_Toc520755847">*</A></P>
<P>3.3.2. Encoding of CIM Element Names within HTTP Headers&#9;<A HREF="#_Toc520755848">*</A></P>
<P>3.3.3. Encoding of CIM Object Paths within HTTP Headers&#9;<A HREF="#_Toc520755849">*</A></P>
<P>3.3.4. CIMOperation&#9;<A HREF="#_Toc520755850">*</A></P>
<P>3.3.5. CIMExport&#9;<A HREF="#_Toc520755851">*</A></P>
<P>3.3.6. CIMProtocolVersion&#9;<A HREF="#_Toc520755852">*</A></P>
<P>3.3.7. CIMMethod&#9;<A HREF="#_Toc520755853">*</A></P>
<P>3.3.8. CIMObject&#9;<A HREF="#_Toc520755854">*</A></P>
<P>3.3.9. CIMExportMethod&#9;<A HREF="#_Toc520755855">*</A></P>
<P>3.3.10. CIMBatch&#9;<A HREF="#_Toc520755856">*</A></P>
<P>3.3.11. CIMExportBatch&#9;<A HREF="#_Toc520755857">*</A></P>
<P>3.3.12. CIMError&#9;<A HREF="#_Toc520755858">*</A></P></DIR>

<P>4. HTTP Requirements &amp; Usage&#9;<A HREF="#_Toc520755859">*</A></P><DIR>

<P>4.1. HTTP Support&#9;<A HREF="#_Toc520755860">*</A></P>
<P>4.2. Use of Standard Headers&#9;<A HREF="#_Toc520755861">*</A></P>
<P>4.2.1. Accept&#9;<A HREF="#_Toc520755862">*</A></P>
<P>4.2.2. Accept-Charset&#9;<A HREF="#_Toc520755863">*</A></P>
<P>4.2.3. Accept-Encoding&#9;<A HREF="#_Toc520755864">*</A></P>
<P>4.2.4. Accept-Language&#9;<A HREF="#_Toc520755865">*</A></P>
<P>4.2.5. Accept-Ranges&#9;<A HREF="#_Toc520755866">*</A></P>
<P>4.2.6. Allow&#9;<A HREF="#_Toc520755867">*</A></P>
<P>4.2.7. Authorization&#9;<A HREF="#_Toc520755868">*</A></P>
<P>4.2.8. Cache-Control&#9;<A HREF="#_Toc520755869">*</A></P>
<P>4.2.9. Connection&#9;<A HREF="#_Toc520755870">*</A></P>
<P>4.2.10. Content-Encoding&#9;<A HREF="#_Toc520755871">*</A></P>
<P>4.2.11. Content-Language&#9;<A HREF="#_Toc520755872">*</A></P>
<P>4.2.12. Content-Range&#9;<A HREF="#_Toc520755873">*</A></P>
<P>4.2.13. Content-Type&#9;<A HREF="#_Toc520755874">*</A></P>
<P>4.2.14. Expires&#9;<A HREF="#_Toc520755875">*</A></P>
<P>4.2.15. If-Range&#9;<A HREF="#_Toc520755876">*</A></P>
<P>4.2.16. Proxy-Authenticate&#9;<A HREF="#_Toc520755877">*</A></P>
<P>4.2.17. Range&#9;<A HREF="#_Toc520755878">*</A></P>
<P>4.2.18. WWW-Authenticate&#9;<A HREF="#_Toc520755879">*</A></P>
<P>4.3. Errors and Status Codes&#9;<A HREF="#_Toc520755880">*</A></P>
<P>4.4. Security Considerations&#9;<A HREF="#_Toc520755881">*</A></P>
<P>4.5.&nbsp;Determining CIM Server Capabilities&#9;<A HREF="#_Toc520755882">*</A></P>
<P>4.5.1&nbsp;Determining CIM Server Capabilities through CIM Classes&#9;<A HREF="#_Toc520755883">*</A></P>
<P>4.5.2&nbsp;Determining CIM Server Capabilities through HTTP Options&#9;<A HREF="#_Toc520755884">*</A></P><DIR>

<P>4.5.2.1. CIMSupportedFunctionalGroups&#9;<A HREF="#_Toc520755885">*</A></P>
<P>4.5.2.2. CIMSupportsMultipleOperations&#9;<A HREF="#_Toc520755886">*</A></P>
<P>4.5.2.3. CIMSupportedQueryLanguages&#9;<A HREF="#_Toc520755887">*</A></P>
<P>4.5.2.4. CIMValidation&#9;<A HREF="#_Toc520755888">*</A></P></DIR>

<P>4.6.&nbsp;Determining CIM Listener Capabilities&#9;<A HREF="#_Toc520755889">*</A></P>
<P>4.6.1. CIMSupportedExportGroups&#9;<A HREF="#_Toc520755890">*</A></P>
<P>4.6.2. CIMSupportsMultipleExports&#9;<A HREF="#_Toc520755891">*</A></P>
<P>4.6.3. CIMValidation&#9;<A HREF="#_Toc520755892">*</A></P>
<P>4.7. Other HTTP Methods&#9;<A HREF="#_Toc520755893">*</A></P>
<P>4.8. CIM Server Discovery and Addressing&#9;<A HREF="#_Toc520755894">*</A></P>
<P>4.9. Internationalization Considerations&#9;<A HREF="#_Toc520755895">*</A></P></DIR>

<P>5. References&#9;<A HREF="#_Toc520755896">*</A></P>
<P>Appendix A - Examples of Message Exchanges&#9;<A HREF="#_Toc520755897">*</A></P><DIR>

<P>A.1. Retrieval of a Single Class Definition&#9;<A HREF="#_Toc520755898">*</A></P>
<P>A.2. Retrieval of a Single&nbsp;Instance Definition&#9;<A HREF="#_Toc520755899">*</A></P>
<P>A.3.&nbsp;Deletion of a Single Class Definition&#9;<A HREF="#_Toc520755900">*</A></P>
<P>A.4.&nbsp;Deletion of a Single&nbsp;Instance Definition&#9;<A HREF="#_Toc520755901">*</A></P>
<P>A.5.&nbsp;Creation of a Single Class Definition&#9;<A HREF="#_Toc520755902">*</A></P>
<P>A.6.&nbsp;Creation of a Single&nbsp;Instance Definition&#9;<A HREF="#_Toc520755903">*</A></P>
<P>A.7.&nbsp;Enumeration of Class Names&#9;<A HREF="#_Toc520755904">*</A></P>
<P>A.8.&nbsp;Enumeration of Instances&#9;<A HREF="#_Toc520755905">*</A></P>
<P>A.9.&nbsp;Retrieval of a Single Property&#9;<A HREF="#_Toc520755906">*</A></P>
<P>A.10.&nbsp;Execution of an Extrinsic Method&#9;<A HREF="#_Toc520755907">*</A></P>
</DIR>
</P>
<B><FONT SIZE=6><P><A NAME="SecAbstract"><A NAME="_Toc520755793"></A>Abstract</A></P>
</B></FONT><P>The <A HREF="http://dmtf.org/spec/cims.html">Common Information Model</A> (CIM) [1] is an object-oriented information model defined by the Distributed Management Task Force (DMTF) which provides a conceptual framework for describing management data.</P>
<P>The <A HREF="http://www.ietf.org/rfc/rfc2068.txt">Hypertext Transfer Protocol</A> (HTTP) [6,7,10] is an application-level protocol for distributed, collaborative, hypermedia information systems.&nbsp; It is a generic stateless protocol which can be used for many tasks through extension&nbsp; of its request methods, error codes and headers.</P>
<P>The <A HREF="http://www.w3.org/TR/REC-xml">Extensible Markup Language</A> (XML) [3] is a simplified subset of SGML that offers powerful and extensible data modeling capabilities. An <I>XML Document</I> is a collection of data represented in XML. An <I>XML Schema</I> is a grammar that describes the&nbsp;structure of an XML Document. </P>
<P>This document defines a mapping of CIM  Messages onto HTTP that allows implementations of CIM to interoperate in an open, standardized manner.&nbsp; It utilizes the CIM XML DTD [2,11] that defines the XML Schema for CIM objects and messages.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=6><P><A NAME="intro"><A NAME="_Toc520755794"></A>1. <A NAME="SecIntroduction"></A>Introduction</A></P>
</B></FONT><P>This document defines a mapping of CIM  Messages onto HTTP that allows implementations of CIM to operate in an open, standardized manner. It also defines the notion of <EM>conformance</EM> in the context of this mapping, and describes what behavior an implementation of CIM must exhibit in order to be described as a conforming CIM implementation.</P>
<P>The remainder of this document is structured as follows.</P>

<UL>
<LI><A HREF="#_2._CIM_Message">Section 2</A> describes the <A HREF="#DefCIMMessage">CIM Messages</A> that  form the HTTP payload, using XML. It specifies the syntax and semantics of the  message requests and their corresponding responses. </LI>
<LI><A HREF="#SecEncapsulationOfCIMOperations">Section 3</A> describes the encapsulation of these messages in HTTP request and response messages, with examples of each. It describes the extension headers used to convey additional CIM-specific semantics in the HTTP Header. </LI>
<LI><A HREF="#SecHTTPRequirementsAndUsage">Section 4</A> describes in more detail other aspects of the encapsulation: </LI>

<UL>
<LI>HTTP Version Support </LI>
<LI>The use of standard HTTP Headers </LI>
<LI>HTTP Error codes </LI>
<LI>Security Considerations </LI></UL>
</UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="SecRequirements"><A NAME="_Toc520755795">1.1. Requirements</A></A></P>
</B></FONT><P>There are potentially many different ways in which <A HREF="#DefCIMMessage">CIM Messages</A> could be represented within XML, and those messages encapsulated&nbsp;within HTTP messages. In the interests of interoperability between different implementations of CIM there is an obvious requirement for standardization of both the XML representation and the HTTP encapsulation. The XML representation is defined in [2,11].&nbsp; This document utilizes that representation to defines the HTTP encapsulation. </P>
<P>The following criteria have been applied to the representation&nbsp;of CIM  Messages in XML [2,11]: </P>

<UL>
<LI>Each CIM  Message is described completely in XML; completeness is favored over conciseness.&nbsp; </LI>
<LI>The set of CIM  Messages provide sufficient functionality to enable implementations of CIM to communicate effectively for the purposes of management. It is not a goal of  this release of the&nbsp;mapping to provide a <U>complete</U> set of functionality. It is a goal to define the&nbsp;mapping so as to admit straightfoward extension (addition of further features) in future versions. </LI>
<LI>The set of CIM &nbsp;Messages are classified into functional profiles so that a range of implementations (varying from complete support of all  messages to support of a minimal subset) is allowed. The number of functional profiles is kept as small as possible to encourage interoperability, and&nbsp;mechanisms provided by which CIM implementations can declare their level of support.</LI></UL>

<P>The following criteria have been applied to the&nbsp;HTTP encapsulation of CIM  Messages herein: </P>

<UL>
<LI>In recognition of the large installed base of HTTP/1.0 systems, the encapsulation is designed to support both HTTP/1.0 and HTTP/1.1 </LI>
<LI>The encapsulation does not introduce any requirements which are in conflict with those stated in HTTP/1.0 or HTTP/1.1 </LI>
<LI>The encapsulation should be straightforwardly usable over the current base HTTP infrastructures. Some features are intended to anticipate and exploit enhancements to this base, but no aspects of the encapsulation require any such enhancements as mandatory. </LI>
<LI>The encapsulation avoids the use of pure HTTP Tunnelling or URL munging (e.g. the use of the "?" character) in favor of a mechanism which allows existing HTTP infrastructures to safely control content. </LI>
<LI>The encapsulation exposes key CIM  Message information in Headers to allow efficient firewall/proxy handling.&nbsp; The information is limited to that which is considered essential, in order not to have significant impact on the size of the Header. No CIM-specific information appears in a Header that does not also appear within the CIM  Message. </LI>
<LI>There is a clear and unambiguous encapsulation of the CIM  Message payload within the HTTP Message. Conciseness of the encapsulation is of secondary importance. </LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="SecTerminology"><A NAME="_Toc520755796">1.2. Terminology</A></A></P>
</B></FONT><P>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 [8].</P>
<P>This specification uses the same notational conventions and basic parsing constructs as defined in&nbsp;[7]. </P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="SecStyle"><A NAME="_Toc520755797">1.3. Style</A></A></P>
</B></FONT><P>This document uses a number of stylistic conventions to highlight examples and definitions.</P>
<P>Examples are displayed in this fashion:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=128>
<TR><TD VALIGN="MIDDLE">
<P>This is an example</TD>
</TR>
</TABLE>

<P>Definitions are illustrated thusly:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=128>
<TR><TD VALIGN="MIDDLE">
<P>This is a definition</TD>
</TR>
</TABLE>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=6><P><A NAME="_2._CIM_Message"><A NAME="_Toc520755798"></A>2. <A NAME="SecCIMOperationMessageFormat">CIM Message Syntax and Semantics</A></A></P>
</FONT><FONT SIZE=5><P><A NAME="_Toc520755799">2.1. Overview</A></P>
</B></FONT><P>This specification defines all interactions between <A HREF="#DefCIMApplication">CIM Products</A> as messages. A <A NAME="DefCIMMessage"><I>CIM Message</A></I> is a well-defined request or response data packet used to exchange information between <A HREF="#DefCIMApplication">CIM Products</A>.  There are currently two types of CIM Messages, CIM Operation Messages and CIM Export Messages. </P>

<UL>

<UL>
<LI>A <A NAME="DefCIMOperationMessage"><I>CIM Operation Messag</A>e</I> is a <A HREF="#DefCIMMessage">CIM Message</A> used to invoke an operation on the target CIM namespace.</LI>
<LI>A <A NAME="DefCIMExportMessage"><I>CIM Export Message</I> </A>is a <A HREF="#DefCIMMessage">CIM Message</A> used to communicate information about a CIM namespace or element that is foreign to the target.  A CIM Export Message is informational only and does not define an operation on the target CIM namespace or even imply the existence of a target namespace.</LI></UL>
</UL>

<P>This section describes the syntax and semantics of <A HREF="#DefCIMMessage">CIM Messages</A> in a manner independent of the encapsulation of such operations within a particular protocol (such as HTTP).</P>
<P>XML is used as the basis for this description, and in particular the CIM XML DTD [2,11].</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="SecWellFormed"><A NAME="_Toc520755800">2.1.1. </A>Well-Formed, Valid and Loosely Valid</A></P>
</B></FONT><P>Where this document makes reference&nbsp;to the concept of a Well-formed or Valid XML documents,&nbsp;the meaning intended is the standard one&nbsp;defined in [3].</P>
<P><A NAME="DefLooselyValid">XML DTDs </A>are restricted to these terms to describe XML documents, but this document requires a further classification&nbsp;of an XML document with respect to a DTD.&nbsp;Henceforth the term <EM>loosely valid</EM> is defined to&nbsp;apply to an XML Document with the following characteristics:</P>

<UL>
<LI>If any attributes or elements in the XML document which do not appear in the CIM XML DTD are removed, then the resulting document is valid with respect to the CIM XML DTD.</LI></UL>

<P>In effect, a loosely valid document is one which is valid with respect to the CIM XML DTD apart from having&nbsp;additional attributes or elements&nbsp;not defined by that DTD. The&nbsp;concept is very similar to that of an <EM>open content model</EM> as defined by the working draft on XML Schemas [21], expressed within the more limited scope of DTDs. One corollary of this definition is that any XML document that is valid with respect to the CIM XML DTD is also loosely valid.</P>
<P>The motivation for introducing this class of XML Documents is to relax the restrictions on a <A HREF="#DefCIMClient">CIM Client</A>, <A HREF="#DefCIMServer">CIM Server</A> or <A HREF="#DefCIMListener">CIM Listener</A> when parsing received XML documents defined within the scope of this mapping. It is recognized that not all CIM Clients (respectively,&nbsp;CIM Servers or CIM Listeners) should be required to validate&nbsp;each received CIM Message response (respectively,&nbsp; CIM Message request ) as this would place too great a processing burden on the validating entity at the expense of footprint and performance, most notably in communication between robust and conformant implementations of this mapping.</P>
<P>Instead the following requirements are made by this specification:</P>

<UL>
<LI>A CIM Client (respectively, CIM Server or CIM Listener) MAY include a DOCTYPE element in a&nbsp; CIM Message request (respectively CIM Message response). If so, an External declaration SHOULD be used (in-lining of the complete DTD within a message is discouraged). </LI>
<LI>A CIM Client (respectively, CIM Server or CIM Listener) MAY elect to validate a received&nbsp;CIM Message response (respectively, CIM Message request).&nbsp; </LI>
<LI>If a CIM Client (respectively, CIM Server or CIM Listener) elects not to validate a received CIM Message response (respectively, CIM Message request), then loose validation MUST be enforced.</LI></UL>

<P>The behavior of a CIM Server or CIM Listener with respect to a received CIM Message request is covered in detail in the section on <A HREF="#SecErrors">Errors and Status Codes</A>.</P>
<B><FONT SIZE=5><P><A NAME="_Toc520755801">2.2. <A NAME="SecOperationalSemantics"></A>Operational Semantics</A> </P>
</B></FONT><P>The CIM XML DTD [2,11] defines a subelement under the root &lt;CIM&gt; element called &lt;MESSAGE&gt;, which&nbsp;contains one of the following subelements:</P><DIR>

<P>CIM Operation Message Subelement</P></DIR>


<UL>

<UL>
<LI>&lt;SIMPLEREQ&gt; </LI>
<LI>&lt;SIMPLERSP&gt; </LI>
<LI>&lt;MULTIREQ&gt; </LI>
<LI>&lt;MULTIRSP&gt;</LI></UL>
</UL>
<DIR>

<P>CIM Export Message Subelement</P></DIR>


<UL>

<UL>
<LI>&lt;SIMPLEEXPREQ&gt; </LI>
<LI>&lt;SIMPLEEXPRSP&gt; </LI>
<LI>&lt;MULTIEXPREQ&gt; </LI>
<LI>&lt;MULTIEXPRSP&gt;</LI></UL>
</UL>

<P>In the remainder of this document:</P>

<UL>
<LI><A NAME="DefOperationRequestMessage"></A>The term <EM>Operation Request Message&nbsp;</EM>denotes an XML document that is <A HREF="#DefLooselyValid">loosely valid</A> with respect to the CIM XML DTD,&nbsp;which contains under the root &lt;CIM&gt; node a&nbsp;&lt;MESSAGE&gt; subelement, under which there is a&nbsp;&lt;MULTIREQ&gt; or &lt;SIMPLEREQ&gt; subelement, and; </LI>
<LI><A NAME="DefOperationResponseMessage"></A>The term <EM>Operation Response Message </EM>denotes an XML document that is loosely valid with respect to the CIM XML DTD,&nbsp;which contains under the root &lt;CIM&gt; node a &lt;MESSAGE&gt; subelement,&nbsp;under which&nbsp;there is a &lt;MULTIRSP&gt; or &lt;SIMPLERSP&gt; subelement.</LI>
<LI><A NAME="DefExportRequestMessage"></A>The term <EM>Export Request Message&nbsp;</EM>denotes an XML document that is <A HREF="#DefLooselyValid">loosely valid</A> with respect to the CIM XML DTD,&nbsp;which contains under the root &lt;CIM&gt; node a&nbsp;&lt;MESSAGE&gt; subelement, under which there is a&nbsp;&lt;MULTIEXPREQ&gt; or &lt;SIMPLEEXPREQ&gt; subelement, and; </LI>
<LI><A NAME="DefExportResponseMessage"></A>The term <EM>Export Response Message </EM>denotes an XML document that is loosely valid with respect to the CIM XML DTD,&nbsp;which contains under the root &lt;CIM&gt; node a &lt;MESSAGE&gt; subelement,&nbsp;under which&nbsp;there is a &lt;MULTIEXPRSP&gt; or &lt;SIMPLEEXPRSP&gt; subelement.</LI>
<LI><A NAME="DefCIMMessagerequest"></A>The phrase <EM>CIM Message</EM> <I>request</I> will be used to refer to either an <A HREF="#DefOperationRequestMessage">Operation Request Message</A><EM> </EM>or an <A HREF="#DefExportRequestMessage">Export Request Message</A>.</LI>
<LI><A NAME="DefCIMMessageresponse"></A>The phrase <EM>CIM Message</EM> <I>response</I> will be used to refer to either an <A HREF="#DefOperationResponseMessage">Operation Response Message</A><I> </I>or an <A HREF="#DefExportResponseMessage">Export Response Message</A><I>.</LI></UL>

</I><P>A <A HREF="#DefCIMMessagerequest">CIM Message request</A> MUST contain a non-empty value for the <FONT FACE="Courier New">ID</FONT> attribute of the &lt;MESSAGE&gt; element.&nbsp; The corresponding <A HREF="#DefCIMMessageresponse">CIM Message response</A> MUST supply the same value for that attribute.&nbsp; Clients SHOULD employ a message ID scheme that&nbsp;minimizes the chance of receiving a stale CIM Message response.</P>
<P>Any <A HREF="#DefCIMMessage">CIM Message</A> conforming to this specification MUST specify a value of "1.0" for the <FONT FACE="Courier New">PROTOCOLVERSION</FONT> attribute of the &lt;MESSAGE&gt; element</P>
<P>An&nbsp;<A HREF="#DefOperationResponseMessage">Operation Response Message</A> sent in response to an <A HREF="#DefOperationRequestMessage">Operation Request Message</A> MUST:</P>

<UL>
<LI>specify the same value for the <FONT FACE="Courier New">ID</FONT> &nbsp;attribute of the &lt;MESSAGE&gt; element as appeared in the Operation Request Message, and </LI>

<UL>
<LI>contain a&nbsp;&lt;MULTIRSP&gt; subelement if the Operation Request Message contained a &lt;MULTIREQ&gt; subelement, or </LI>
<LI>contain&nbsp;a &lt;SIMPLERSP&gt; subelement if the Operation Request Message contained a &lt;SIMPLEREQ&gt; subelement.</LI></UL>
</UL>

<P>A <A NAME="DefSimpleOperationRequest"><EM>Simple Operation Request</A></EM> is an Operation Request Message that contains a &lt;SIMPLEREQ&gt; subelement.&nbsp; A <A NAME="DefSimpleOperationResponse"><EM>Simple Operation Response</A></EM> is an Operation Response Message that contains a &lt;SIMPLERSP&gt; subelement.</P>
<P>A <A NAME="DefMultipleOperationRequest"><EM>Multiple Operation Request</A></EM> is an Operation Request Message that contains a &lt;MULTIREQ&gt; subelement.&nbsp; A <A NAME="DefMultipleOperationResponse"><EM>Multiple Operation Response</A></EM> is an Operation Response Message that contains a &lt;MULTIRSP&gt; subelement.</P>
<P>An&nbsp;Export Response Message sent in response to an Export Request Message MUST:</P>

<UL>
<LI>specify the same value for the <FONT FACE="Courier New">ID</FONT> &nbsp;attribute of the &lt;MESSAGE&gt; element as appeared in the Export Request Message, and </LI>

<UL>
<LI>contain a&nbsp;&lt;MULTIEXPRSP&gt; subelement if the Export Request Message contained a &lt;MULTIEXPREQ&gt; subelement, or </LI>
<LI>contain&nbsp;a &lt;SIMPLEEXPRSP&gt; subelement if the Export Request Message contained a &lt;SIMPLEEXPREQ&gt; subelement.</LI></UL>
</UL>

<P>A <EM>Simple Export Request</EM> is an Export Request Message that contains a &lt;SIMPLEEXPREQ&gt; subelement.&nbsp; A <EM>Simple Export Response</EM> is an Export Response Message that contains a &lt;SIMPLEEXPRSP&gt; subelement.</P>
<P>A <EM>Multiple Export Request</EM> is an Export Request Message that contains a &lt;MULTIEXPREQ&gt; subelement.&nbsp; A <EM>Multiple Export Response</EM> is an Export Response Message that contains a &lt;MULTIEXPRSP&gt; subelement.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="_Toc520755802">2.3 CIM Operation Syntax and Semantics</A></P>
</FONT><FONT SIZE=4><P><A NAME="_Toc520755803">2.3.1. Method Invocations</A></P>
</B></FONT><P>All CIM Operation requests defined for this&nbsp;mapping are defined as invocations of one or more methods.&nbsp; A method may be either:</P>

<UL>
<LI><A NAME="DefIntrinsic"><EM>Intrinsic</A></EM>, which means that it is defined by this specification for the purposes of modeling a CIM operation, or; </LI>
<LI><A NAME="DefExtrinsic"><EM>Extrinsic</A></EM>, which means that it is defined as a method on a CIM Class in some Schema.</LI></UL>

<P>Intrinsic&nbsp;methods are further characterized by the fact that they are made against a CIM Namespace.&nbsp; Extrinsic&nbsp;methods are&nbsp;invoked&nbsp;on a CIM Class (if static) or Instance (otherwise). Intrinsic methods are defined in the section <A HREF="#SecIntrinsicMethods">Intrinsic Methods</A></P>
<P>An extrinsic method call is represented in XML&nbsp;by the &lt;METHODCALL&gt; element, and the response to that call represented by the &lt;METHODRESPONSE&gt; element.&nbsp; </P>
<P>An intrinsic method call is represented in XML by the &lt;IMETHODCALL&gt; element, and the response to that call represented by the &lt;IMETHODRESPONSE&gt; element.</P>
<P>An Input parameter is one with an IN Qualifier (with value <FONT FACE="Courier New">true</FONT>) in the Method definition.&nbsp; An Output parameter is one with an OUT Qualifier (with value true) in the Method definition.&nbsp; An Optional parameter is one with an OPTIONAL Qualifier in the Method definition. A parameter may be both an Input and Output parameter.</P>
<P>The &lt;METHODCALL&gt; or &lt;IMETHODCALL&gt; element&nbsp;serves to name the method to be invoked and supply any Input parameters to the method call.&nbsp;Note that:</P>

<UL>
<LI>Each Input parameter MUST be named using the name assigned in the method definition. </LI>
<LI>The Input parameters MAY be supplied in any order. </LI>
<LI>Each&nbsp;Input parameter&nbsp;of the method, and no others, MUST be present in the call, unless it was defined as Optional.</LI></UL>

<P>The &lt;METHODRESPONSE&gt; or &lt;IMETHODRESPONSE&gt; element defines&nbsp;either an &lt;ERROR&gt; or a (possibly optional) return value and output parameters (i.e. one decorated with the OUT Qualifier in the method definition).&nbsp;&nbsp;In the latter case:</P>

<UL>
<LI>Each Output parameter MUST be named using the name assigned in the method definition. </LI>
<LI>The Output parameters MAY be supplied in any order. </LI>
<LI>Each Output parameter&nbsp;of the method, and no others, MUST be present in the response, unless it was defined as Optional.</LI></UL>

<P>The method invocation process may be thought of as:</P>

<UL>
<LI>The binding of the&nbsp;input parameter values specified as subelements of&nbsp;the &lt;METHODCALL&gt; or &lt;IMETHODCALL&gt; element to the input parameters of the Method, followed by; </LI>
<LI>The attempted execution of the method using the bound input parameters, and; </LI>

<UL>
<LI>If attempt to call the method is successful, the binding of the return value and output parameters to the subelements of the &lt;METHODRESPONSE&gt; or &lt;IMETHODRESPONSE&gt; element, or; </LI>
<LI>If the attempt to call the method is unsuccessful, the binding of an error code and (optional) human-readable description of that code to the &lt;METHODRESPONSE&gt; or &lt;IMETHODRESPONSE&gt; element.</LI></UL>
</UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755804">2.3.1.1. Simple Operations</A></P>
</B></FONT><P>A simple operation is defined as&nbsp;one&nbsp;that requires the invocation of a single method.&nbsp; A simple operation request&nbsp;is represented by a &lt;SIMPLEREQ&gt; element, and a simple operation response by a &lt;SIMPLERSP&gt; element.</P>
<P>If the method is <A HREF="#DefIntrinsic">intrinsic</A> then the &lt;SIMPLEREQ&gt; MUST contain a &lt;IMETHODCALL&gt; element, which in turn contains a &lt;LOCALNAMESPACEPATH&gt; subelement identifying the local CIM Namespace against which the method is to be executed.&nbsp; If the method is <A HREF="#DefExtrinsic">extrinsic</A> then the &lt;SIMPLEREQ&gt; element MUST contain a &lt;METHODCALL&gt; element which in turn contains either:</P>

<UL>
<LI>A &lt;LOCALCLASSPATH&gt; subelement identifying the CIM Class&nbsp;on which the method is to be invoked, in the case that the method is static, or; </LI>
<LI>An &lt;LOCALINSTANCEPATH&gt; subelement identifying the CIM Instance on which the method is to be invoked, otherwise.</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755805">2.3.1.2. <A NAME="SecMultipleOperations">Multiple Operations</A></A></P>
</B></FONT><P>A multiple operation is defined as one&nbsp;that requires the invocation of more than one method.&nbsp; A multiple operation request is represented by a &lt;MULTIREQ&gt; element, and a multiple operation response by a &lt;MULTIRSP&gt; element.</P>
<P>A&nbsp;&lt;MULTIREQ&gt; (respectively, &lt;MULTIRSP&gt;) element is a sequence of two or more &lt;SIMPLEREQ&gt; (respectively, &lt;SIMPLERSP&gt;) elements.&nbsp;</P>
<P>A&nbsp;&lt;MULTIRSP&gt; element&nbsp;MUST contain a &lt;SIMPLERSP&gt; element for every &lt;SIMPLEREQ&gt; element in the corresponding Multiple Operation Response, and these &lt;SIMPLERSP&gt; elements MUST be in the same order as their &lt;SIMPLEREQ&gt; counterparts (so the first &lt;SIMPLERSP&gt; in the response corresponds to the first &lt;SIMPLEREQ&gt; in the request, and so forth). </P>
<P>Multiple Operations provide a convenient mechanism whereby multiple method invocations may be batched into a single HTTP Message, thereby reducing the number of roundtrips between a <A HREF="#DefCIMClient">CIM Client</A> and a <A HREF="#DefCIMServer">CIM Server</A> and allowing the&nbsp;CIM Server to make certain internal optimizations should it choose so to do.&nbsp; Note that Multiple Operations do not confer any transactional capabilities in the processing of the request (for example, there is no requirement that the&nbsp;CIM Server guarantee that the constituent method calls either all failed or all succeeded, only that the entity make a "best effort" to process the operation). However, servers MUST process each operation in a batched peration to completion before executing the next operation in the batch. Clients MUST recognize that the order of operations within a batched operation is significant in the manner described in the last sentence<FONT FACE="Arial">.</P>
</FONT><P>Not all CIM Servers support Multiple Operations; the means by which they declare support for this feature is defined in the section on <A HREF="#SecDeterminingCIMServerCapabilities">Determining CIM Server Capabilities</A>.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755806">2.3.1.3. Status Codes</A></P>
</B></FONT><P>This section defines the status codes that may be returned by a conforming CIM Server application as the value of the <FONT FACE="Courier New">CODE</FONT> attribute of an &lt;ERROR&gt; subelement within a &lt;METHODRESPONSE&gt; or &lt;IMETHODRESPONSE&gt; element.</P>
<P>The symbolic names defined in the table below do not appear on the wire.&nbsp; They are used here solely as a convenient way to refer to an error in other parts of this specification.</P>
<P>Not all methods would be expected to return all the status codes listed below.&nbsp; For <A HREF="#DefIntrinsic">intrinsic</A> methods, the relevant section on each method in this specification defines the expected error codes to be returned.&nbsp; For extrinsic methods the specification of which of the following codes can be used is described in the section on <A HREF="#SecExtrinsicMethodInvocation">Extrinsic Method Invocation</A>.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#008080" CELLPADDING=5 WIDTH=589>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">Symbolic Name</STRONG></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">CODE</STRONG></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">Definition</STRONG> </TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefCimErrFailed">CIM_ERR_FAILED</A></FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>1</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>A general error occurred that is not covered by a more specific error code</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefCimErrAccessDenied">CIM_ERR_ACCESS_DENIED</A></FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>2</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>Access to a CIM resource was not available to the client</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefCimErrInvalidNamespace">CIM_ERR_INVALID_NAMESPACE</A></FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>3</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>The target namespace does not exist</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefCimErrInvalidParameter">CIM_ERR_INVALID_PARAMETER</A></FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>4</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>One or more parameter values passed to the method were invalid</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefCimErrInvalidClass">CIM_ERR_INVALID_CLASS</A></FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>5</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>The specified Class does not exist</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefCimErrNotFound">CIM_ERR_NOT_FOUND</A></FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>6</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>The requested object could not be found</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefCimErrNotSupported">CIM_ERR_NOT_SUPPORTED</A></FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>7</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>The requested operation is not supported</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefCimErrClassHasChildren">CIM_ERR_CLASS_HAS_CHILDREN</A></FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>8</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>Operation cannot be carried out on this class since it has subclasses</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefCimErrClassHasInstances">CIM_ERR_CLASS_HAS_INSTANCES</A></FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>9</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>Operation cannot be carried out on this class since it has instances</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefCimErrInvalidSuperclass">CIM_ERR_INVALID_SUPERCLASS</A></FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>10</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>Operation cannot be carried out since the specified superclass does not exist</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefCimErrAlreadyExists">CIM_ERR_ALREADY_EXISTS</A></FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>11</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>Operation cannot be carried out because an object already exists</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefCimErrNoSuchProperty">CIM_ERR_NO_SUCH_PROPERTY</A></FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>12</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>The specified Property does not exist</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefCimErrTypeMismatch">CIM_ERR_TYPE_MISMATCH</A></FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>13</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>The value supplied is incompatible with the type</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P>CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED</FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>14</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>The query language is not recognized or supported</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefCimErrInvalidQuery">CIM_ERR_INVALID_QUERY</A></FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>15</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>The query is not valid for the specified query language</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P>CIM_ERR_METHOD_NOT_AVAILABLE</FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>16</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>The extrinsic Method could not be executed</FONT></TD>
</TR>
<TR><TD WIDTH="55%" VALIGN="MIDDLE">
<FONT SIZE=2><P>CIM_ERR_METHOD_NOT_FOUND</FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>17</FONT></TD>
<TD WIDTH="35%" VALIGN="MIDDLE">
<FONT SIZE=2><P>The specified extrinsic Method does not exist</FONT></TD>
</TR>
</TABLE>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755807">2.3.2. <A NAME="SecIntrinsicMethods">Intrinsic Methods</A></A></P>
</B></FONT><P>This section describes the <A HREF="#DefIntrinsic">Intrinsic</A> methods that are defined outside of schema for the purposes of&nbsp;CIM operations.&nbsp; These methods can only be called on a CIM Namespace, rather than a CIM Class or CIM Instance.</P>
<P>The following intrinsic methods are defined by this specification:</P>

<UL>
<LI><A HREF="#SecGetClass">Get a CIM Class</A> </LI>
<LI><A HREF="#SecGetInstance">Get a CIM Instance</A> </LI>
<LI><A HREF="#_2.3.2.3._DeleteClass">Delete a CIM Class</A> </LI>
<LI><A HREF="#SecDeleteInstance">Delete a CIM Instance</A>&nbsp; </LI>
<LI><A HREF="#SecCreateClass">Create a CIM Class</A> </LI>
<LI><A HREF="#SecCreateInstance">Create a CIM Instance</A> </LI>
<LI><A HREF="#SecModifyClass">Modify a CIM Class</A> </LI>
<LI><A HREF="#SecModifyInstance">Modify a CIM Instance</A>&nbsp; </LI>
<LI><A HREF="#SecEnumerateClasses">Enumerate subclasses of a CIM Class</A> </LI>
<LI><A HREF="#SecEnumerateClassNames">Enumerate subclass names of a CIM Class</A>&nbsp; </LI>
<LI><A HREF="#SecEnumerateInstances">Enumerate instances of a CIM Class</A> </LI>
<LI><A HREF="#SecEnumerateInstanceNames">Enumerate instance names of a CIM Class</A>&nbsp; </LI>
<LI><A HREF="#SecDeleteQualifier">Delete a CIM Qualifier definition</A> </LI>
<LI><A HREF="#_2.3.2.21._SetQualifier">Create a CIM Qualifier definition</A> </LI>
<LI><A HREF="#SecEnumerateQualifiers">Enumerate&nbsp;CIM Qualifier definitions</A> </LI>
<LI><A HREF="#SecExecQuery">Execute a Query</A> </LI>
<LI><A HREF="#SecAssociators">Enumerate associators of a CIM Object</A> </LI>
<LI><A HREF="#SecAssociatorNames">Enumerate names of associators of a CIM Object</A> </LI>
<LI><A HREF="#_2.3.2.16._References">Enumerate references to a CIM Object</A> </LI>
<LI><A HREF="#SecReferenceNames">Enumerate names of references to a CIM Object</A>&nbsp; </LI>
<LI><A HREF="#SecGetProperty">Get a CIM Property value from a CIM Instance</A> </LI>
<LI><A HREF="#SecSetProperty">Set a CIM Property value from a CIM Instance</A> </LI>
<LI><A HREF="#SecGetQualifier">Get a Qualifier declaration</A> </LI>
<LI><A HREF="#SecSetQualifier">Set a Qualifier declaration</A> </LI>
<LI><A HREF="#SecDeleteQualifier">Delete a Qualifier declaration</A> </LI>
<LI><A HREF="#SecEnumerateQualifiers">Enumerate Qualifier declarations</A></LI></UL>

<P>The convention used in the following subsections to define the signatures of the intrinsic methods is a pseudo-MOF notation that extends the standard MOF BNF [1] for describing CIM Methods with a number of&nbsp;pseudo parameter types (which are indicated by being placed within "&lt;" and "&gt;" characters). </P>
<P>This notation admits of the decoration of parameters with a number of pseudo-qualifiers (IN, OPTIONAL and NULL) to define their invocation semantics. It is important to understand that these qualifiers are used for description purposes only within the scope of this specification, and in particular a <A HREF="#DefCIMClient">CIM Client</A> MUST&nbsp;NOT&nbsp;specify them in intrinsic method invocations.</P>
<P>This notation uses the IN qualifier to denote that the parameter is an input parameter.</P>
<P>This notation uses the OPTIONAL qualifier to indicate parameters whose presence is not mandatory, and declares default values for optional method parameters using&nbsp;similar notation employed for default property values in MOF.</P>
<P>A CIM Client MAY omit an optional parameter in the case that the required value is the specified default, by not specifying an &lt;IPARAMVALUE&gt; element for that parameter. It MUST NOT omit any parameter that is not marked as optional.</P>
<P>This notation&nbsp;uses the NULL qualifier to indicate parameters whose values&nbsp;may be specified as NULL in a method call. A NULL (unassigned) value for a parameter is specified by an &lt;IPARAMVALUE&gt; element with no subelement. For parameters which do not possess the NULL qualifier, the CIM Client MUST specify a value for the parameter by including a suitable subelement for the &lt;IPARAMVALUE&gt;&nbsp;element for that parameter.</P>
<P>All parameters MUST be named uniquely, and MUST correspond to a valid parameter name for that method as described by this specification.&nbsp;The order of the parameters is not significant.</P>
<P>The non-NULL values of intrinsic method parameters or return values which are modeled as standard CIM types (such as string and boolean, or arrays thereof) are represented as follows:</P>

<UL>
<LI>Simple values MUST be represented using the &lt;VALUE&gt; subelement within an &lt;IPARAMETER&gt; element (for method parameters) or within an &lt;IRETURNVALUE&gt; element (for method return values). </LI>
<LI>Array values&nbsp;MUST be represented using the &lt;VALUE.ARRAY&gt; subelement within an &lt;IPARAMETER&gt; element (for method parameters) or within an &lt;IRETURNVALUE&gt; element (for method return values).</LI></UL>

<P>The following table describes how each of the pseudo-types used by the intrinsic methods&nbsp;MUST be mapped to an XML element described in [2] in the context of both a parameter value (subelement of &lt;IPARAMVALUE&gt;) and a return value (subelement of &lt;IRETURNVALUE&gt;).</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=598>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">Type</STRONG></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">XML Element</STRONG></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="Def_object">&lt;object&gt;</A></FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>(VALUE.OBJECT|VALUE.OBJECTWITHLOCALPATH|VALUE.OBJECTWITHPATH)</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="sec_defclass">&lt;class&gt;</A></FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>CLASS</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="sec_definstance">&lt;instance&gt;</A></FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>INSTANCE</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="def_className">&lt;className&gt;</A></FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>CLASSNAME</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="sec_defnamedinstance">&lt;namedInstance&gt;</A></FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>VALUE.NAMEDINSTANCE</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="def_instanceName">&lt;instanceName&gt;</A></FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>INSTANCENAME</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="Def_objectWithPathArray">&lt;objectWithPath&gt;</A></FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>VALUE.OBJECTWITHPATH</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="Def_objectName">&lt;objectName&gt;</A></FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>(CLASSNAME|INSTANCENAME)</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="Def_propertyValue">&lt;propertyValue&gt;</A></FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>(VALUE|VALUE.ARRAY|VALUE.REFERENCE)</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="Def_qualifierDecl">&lt;qualifierDecl&gt;</A></FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>QUALIFIER.DECLARATION</FONT></TD>
</TR>
</TABLE>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755808">2.3.2.1. <A NAME="SecGetClass">GetClass</A></A></P>
</B></FONT><P>This operation is used to return a single CIM Class from the target Namespace.&nbsp; </P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=401>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;GetClass</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;<A HREF="#sec_defclass">&lt;class&gt;</A>&nbsp; <STRONG>GetClass</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#def_className">&lt;className&gt;</A> ClassName,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean LocalOnly = true,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean IncludeQualifiers = true,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean IncludeClassOrigin = false,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL] string PropertyList [] = NULL<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">ClassName</FONT> input parameter defines the name of the Class to be retrieved.&nbsp; </P>
<P>If the <FONT FACE="Courier New">LocalOnly</FONT> input parameter&nbsp;is <FONT FACE="Courier New">true</FONT>, this specifies that only CIM Elements (properties, methods and qualifiers) overriden within&nbsp;the definition of the Class are returned [1].&nbsp; If <FONT FACE="Courier New">false</FONT>, all elements are returned.&nbsp; This parameter therefore effects a CIM Server-side mechanism to filter certain elements of the returned object based on whether or not they have been propagated from the parent Class (as defined by the <FONT FACE="Courier New">PROPAGATED</FONT> attribute).</P>
<P>If the <FONT FACE="Courier New">IncludeQualifiers</FONT> input parameter is <FONT FACE="Courier New">true</FONT>, this specifies that all Qualifiers for that Class (including Qualifiers on the Class and on any returned Properties, Methods or Method Parameters) MUST be included as <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT> elements in the response.&nbsp; If false no <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT>&nbsp;elements are present in the returned Class.</P>
<P>If the <FONT FACE="Courier New">IncludeClassOrigin</FONT> input parameter is <FONT FACE="Courier New">true</FONT>, this specifies that the <FONT FACE="Courier New">CLASSORIGIN</FONT> attribute MUST be present on all appropriate elements in the returned Class. If false, no <FONT FACE="Courier New">CLASSORIGIN</FONT> attributes are present in the returned Class.</P>
<P>If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is not <FONT FACE="Courier New">NULL</FONT>, the members of the array define one or more Property names.&nbsp; The returned Class MUST NOT include elements for any Properties&nbsp;missing from this list.&nbsp; Note that if <FONT FACE="Courier New">LocalOnly</FONT> is specified as <FONT FACE="Courier New">true</FONT> this acts as an additional filter on the&nbsp;set of Properties returned (for example, if&nbsp;Property <FONT FACE="Courier New">A</FONT> is included&nbsp;in the <FONT FACE="Courier New">PropertyList</FONT> but <FONT FACE="Courier New">LocalOnly</FONT> is set to true and <FONT FACE="Courier New">A</FONT> is not local to the requested Class, then it will not be included in the response). If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is an empty array this signifies that no Properties are included in the response.&nbsp;If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is NULL this specifies that all Properties (subject to the conditions expressed by the other parameters) are included in the response.</P>
<P>If the&nbsp;<FONT FACE="Courier New">PropertyList</FONT>&nbsp;contains duplicate elements, the Server MUST ignore the duplicates but otherwise process the request normally.&nbsp; If the <FONT FACE="Courier New">PropertyList</FONT> contains elements which are invalid Property names for the target Class, the Server MUST ignore such entries but otherwise process the request normally.</P>
<P>If successful, the return value&nbsp;is a single CIM Class.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_NOT_FOUND (the request CIM Class does not exist in the specified namespace) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755809">2.3.2.2. <A NAME="SecGetInstance">GetInstance</A></A></P>
</B></FONT><P>This operation is used to return a single CIM Instance from the target Namespace.&nbsp; </P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=401>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;GetInstance</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;<A HREF="#sec_definstance">&lt;instance&gt;</A>&nbsp;<STRONG>GetInstance</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#Def_instanceName">&lt;instanceName&gt;</A> InstanceName,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean LocalOnly = true,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean IncludeQualifiers = false,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean IncludeClassOrigin = false,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL] string PropertyList [] = NULL<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">InstanceName</FONT> input parameter defines the name of the Instance to be retrieved.&nbsp; </P>
<P>If the <FONT FACE="Courier New">LocalOnly</FONT> input parameter&nbsp;is <FONT FACE="Courier New">true</FONT>, this specifies that only elements (properties and qualifiers) overriden within&nbsp;the definition of the&nbsp;Instance are returned [1].&nbsp; If <FONT FACE="Courier New">false</FONT>, all elements are returned.&nbsp; This parameter therefore effects a CIM Server-side mechanism to filter certain elements of the returned object based on whether or not they have been propagated from the parent Class (as defined by the <FONT FACE="Courier New">PROPAGATED</FONT> attribute).</P>
<P>If the <FONT FACE="Courier New">IncludeQualifiers</FONT> input parameter is <FONT FACE="Courier New">true</FONT>, this specifies that all Qualifiers for that&nbsp;Instance (including Qualifiers on the&nbsp;Instance and on any returned Properties) MUST be included as <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT> elements in the response.&nbsp; If false no <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT>&nbsp;elements are present in the returned Instance.</P>
<P>If the <FONT FACE="Courier New">IncludeClassOrigin</FONT> input parameter is <FONT FACE="Courier New">true</FONT>, this specifies that the <FONT FACE="Courier New">CLASSORIGIN</FONT> attribute MUST be present on all appropriate elements in the returned Instance. If false, no <FONT FACE="Courier New">CLASSORIGIN</FONT> attributes are present in the returned Instance.</P>
<P>If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is not <FONT FACE="Courier New">NULL</FONT>, the members of the array define one or more Property names.&nbsp; The returned&nbsp;Instance MUST NOT include elements for any Properties&nbsp;missing from this list.&nbsp; Note that if <FONT FACE="Courier New">LocalOnly</FONT> is specified as <FONT FACE="Courier New">true</FONT> this acts as an additional filter on the&nbsp;set of Properties returned (for example, if&nbsp;Property <FONT FACE="Courier New">A</FONT> is included&nbsp;in the <FONT FACE="Courier New">PropertyList</FONT> but <FONT FACE="Courier New">LocalOnly</FONT> is set to true and <FONT FACE="Courier New">A</FONT> is not local to the requested Instance, then it will not be included in the response). If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is an empty array this signifies that no Properties are included in the response.&nbsp;If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is NULL this specifies that all Properties (subject to the conditions expressed by the other parameters) are included in the response.</P>
<P>If the&nbsp;<FONT FACE="Courier New">PropertyList</FONT>&nbsp;contains duplicate elements, the Server MUST ignore the duplicates but otherwise process the request normally.&nbsp; If the <FONT FACE="Courier New">PropertyList</FONT> contains elements which are invalid Property names for the target Instance, the Server MUST ignore such entries but otherwise process the request normally.</P>
<P>If successful, the return value is a single CIM Instance.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the specified namespace) </LI>
<LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested CIM&nbsp;Instance does not exist in the specified namespace) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_2.3.2.3._DeleteClass"><A NAME="_2.3.24.3._DeleteClass"><A NAME="_Toc520755810"></A></A>2.3.2.3. DeleteClass</A></P>
</B></FONT><P>This operation is used to delete a single CIM Class from the target Namespace.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=235>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;DeleteClass</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;void&nbsp;&nbsp;<STRONG>DeleteClass</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN] <A HREF="#def_className">&lt;className&gt;</A> ClassName<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">ClassName</FONT> input parameter defines the name of the Class to be deleted.&nbsp;&nbsp;&nbsp; </P>
<P>If successful, the specified Class (including any subclasses and any instances) MUST have been removed by the CIM Server.&nbsp; The operation&nbsp;MUST fail if any one of these objects cannot be deleted.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_NOT_FOUND (the CIM Class to be deleted does not exist) </LI>
<LI>CIM_ERR_CLASS_HAS_CHILDREN (the CIM Class has one or more subclasses which cannot be deleted) </LI>
<LI>CIM_ERR_CLASS_HAS_INSTANCES (the CIM Class has one or more instances which cannot be deleted) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_2.43.2.4._DeleteInstance"><A NAME="_Toc520755811"></A>2.3.2.4. <A NAME="SecDeleteInstance">DeleteInstance</A></A></P>
</B></FONT><P>This operation is used to&nbsp;delete a single CIM Instance from the target Namespace.&nbsp; </P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=279>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;DeleteInstance</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;void&nbsp; <STRONG>DeleteInstance</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#Def_instanceName">&lt;instanceName&gt;</A> InstanceName<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">InstanceName</FONT> input parameter defines the name (model path) of the Instance to be deleted.&nbsp; </P>
<P>If successful, the specified&nbsp;Instance MUST have been removed by the CIM Server.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the specified namespace) </LI>
<LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested CIM&nbsp;Instance does not exist in the specified namespace) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755812">2.3.2.5. <A NAME="SecCreateClass">CreateClass</A></A></P>
</B></FONT><P>This operation is used to create a single CIM Class in the target Namespace.&nbsp; The Class MUST NOT already exist.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=189>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;CreateClass</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;void&nbsp;<STRONG>CreateClass</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#sec_defclass">&lt;class&gt;</A> NewClass<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">NewClass</FONT> input parameter defines the new Class.&nbsp; The proposed definition MUST be a correct Class definition according to the CIM specification [1].</P>
<P>In processing the creation of the new Class, the following rules MUST be conformed to by the CIM Server:</P>

<UL>
<LI>Any <FONT FACE="Courier New">CLASSORIGIN</FONT> and <FONT FACE="Courier New">PROPAGATED</FONT> attributes in the <FONT FACE="Courier New">NewClass</FONT> MUST be ignored by the Server. </LI>
<LI>If the new Class has no Superclass, the <FONT FACE="Courier New">NewClass</FONT> parameter defines a new base Class. The Server MUST ensure that all Properties and Methods of the new Class have a <FONT FACE="Courier New">CLASSORIGIN</FONT> attribute whose value is the name of the new Class. </LI>
<LI>If the new Class has a Superclass, the&nbsp;<FONT FACE="Courier New">NewClass</FONT> parameter defines a new Subclass of that Superclass. The Superclass MUST exist. The Server MUST ensure that: </LI>

<UL>
<LI>Any Properties, Methods or Qualifiers&nbsp;in the Subclass not defined in the Superclass are created as new&nbsp;elements of the Subclass. In particular the Server MUST set the <FONT FACE="Courier New">CLASSORIGIN</FONT> attribute on the new Properties and Methods to the name of the Subclass, and ensure that all other Properties and Methods preserve their <FONT FACE="Courier New">CLASSORIGIN</FONT> attribute value from that defined in the Superclass. </LI>
<LI>If a Property is defined in the Superclass and in the Subclass,&nbsp;the value assigned to that property in the Subclass (including NULL) becomes the default value of the property for the Subclass. </LI>
<LI>If a Property or Method of the Superclass is not specified in the Subclass, then that Property&nbsp;or Method is inherited without modification by the Subclass. </LI>
<LI>Any Qualifiers defined in the Superclass with a <FONT FACE="Courier New">TOSUBCLASS</FONT> attribute value of <FONT FACE="Courier New">true</FONT> MUST appear in the resulting Subclass. Qualifiers in the Superclass with a <FONT FACE="Courier New">TOSUBCLASS</FONT> attribute value of <FONT FACE="Courier New">false</FONT> MUST NOT be propagated to the Subclass. </LI>
<LI>Any Qualifier propagated from the Superclass cannot be modified in the Subclass if the <FONT FACE="Courier New">OVERRIDABLE</FONT> attribute of that Qualifier was set to <FONT FACE="Courier New">false</FONT> in the Superclass. It is a Client error to specify such a Qualifier in the <FONT FACE="Courier New">NewClass</FONT> with a different definition to that in the Superclass (where definition encompasses the name, type and flavor&nbsp;attribute settings of the <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT> element, and the value of the Qualifier).</LI></UL>
</UL>

<P>If successful, the specified&nbsp;Class MUST have been created by the CIM Server.&nbsp; </P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE&nbsp; </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_ALREADY_EXISTS (the CIM Class already exists)&nbsp; </LI>
<LI>CIM_ERR_INVALID_SUPERCLASS (the putative CIM Class declares a non-existent superclass) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_2.3.24.6._CreateInstance"><A NAME="_Toc520755813"></A>2.3.2.6. <A NAME="SecCreateInstance">CreateInstance</A></A></P>
</B></FONT><P>This operation is used to create a single CIM Instance in the target Namespace. The Instance MUST NOT already exist.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=242>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;CreateInstance</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;<A HREF="#Def_instanceName">&lt;instanceName&gt;</A> &nbsp;<STRONG>CreateInstance</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#sec_definstance">&lt;instance&gt;</A> NewInstance<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">NewInstance</FONT> input parameter defines the new Instance.&nbsp; The proposed definition MUST be a&nbsp;correct&nbsp;Instance definition for the underlying CIM Class according to the CIM specification [1].</P>
<P>In processing the creation of the new Instance, the following rules MUST be conformed to by the CIM Server:</P>

<UL>
<LI>Any <FONT FACE="Courier New">CLASSORIGIN</FONT> and <FONT FACE="Courier New">PROPAGATED</FONT> attributes in the <FONT FACE="Courier New">NewInstance</FONT> MUST be ignored by the Server. </LI>
<LI>The Server MUST ensure that: </LI>

<UL>
<LI>Any Qualifiers&nbsp;in the Instance not defined in the&nbsp;Class are created as new&nbsp;elements of the Instance. </LI>
<LI>All Properties of the&nbsp;Instance preserve their <FONT FACE="Courier New">CLASSORIGIN</FONT> attribute value from that defined in the Class. </LI>
<LI>If a Property is specified in the <FONT FACE="Courier New">ModifiedInstance</FONT> parameter,&nbsp;the value assigned to that property in the&nbsp;Instance (including NULL) becomes the value of the property for the Instance. Note that it is a Client error to specify a Property that does not belong to the Class. </LI>
<LI>If a Property of the&nbsp;Class is not specified in the Instance, then that Property is inherited without modification by the Instance. </LI>
<LI>Servers MAY choose to ignore TOINSTANCE. Servers that do not ignore TOINSTANCE MUST interpret it as follows. Any Qualifiers defined in the Class with a TOINSTANCE attribute value of true appear in the Instance. Qualifiers in the Class with a TOINSTANCE attribute value of false MUST NOT be <FONT FACE="Arial">propagated to the Instance.</LI>
</FONT><LI>Any Qualifier propagated from the Class cannot be modified&nbsp;in the Instance if the <FONT FACE="Courier New">OVERRIDABLE</FONT> attribute of that Qualifier was set to <FONT FACE="Courier New">false</FONT> in the Class. It is a Client error to specify such a Qualifier in the <FONT FACE="Courier New">NewInstance</FONT> with a different definition to that in the Class (where definition encompasses the name, type&nbsp;and flavor&nbsp;attribute settings of the <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT> element, and the value of the Qualifier).</LI></UL>
</UL>

<P>If successful, the return value defines the object path of the new CIM&nbsp;Instance relative to the target Namespace (i.e. the Model Path as defined by [1]), created by the CIM Server.&nbsp; It is returned in case one or more of the new keys of the Instance are allocated dynamically during the creation process rather than specified in the request.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE&nbsp; </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_INVALID_CLASS (the CIM Class of which this is to be a new Instance does not exist) </LI>
<LI>CIM_ERR_ALREADY_EXISTS (the CIM&nbsp;Instance already exists)&nbsp; </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755814">2.3.2.7. <A NAME="SecModifyClass">ModifyClass</A></A></P>
</B></FONT><P>This operation is used to&nbsp;modify an&nbsp;existing CIM Class in the target Namespace.&nbsp; The Class MUST&nbsp;already exist.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=218>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;ModifyClass</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;void&nbsp;<STRONG>ModifyClass</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#sec_defclass">&lt;class&gt;</A> ModifiedClass<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">ModifiedClass</FONT> input parameter defines the set of changes (which MUST be&nbsp;correct amendments to the CIM Class as defined by the CIM Specification [1]) to be made to the current class definition.</P>
<P>In processing the&nbsp;modification of the Class, the following rules MUST be conformed to by the CIM Server:</P>

<UL>
<LI>Any <FONT FACE="Courier New">CLASSORIGIN</FONT> and <FONT FACE="Courier New">PROPAGATED</FONT> attributes in the <FONT FACE="Courier New">ModifiedClass</FONT> MUST be ignored by the Server. </LI>
<LI>If the&nbsp;modified Class has no Superclass, the <FONT FACE="Courier New">ModifiedClass</FONT> parameter defines modifications to a base Class. The Server MUST ensure that: </LI>

<UL>
<LI>All Properties and Methods of the modified Class have a <FONT FACE="Courier New">CLASSORIGIN</FONT> attribute whose value is the name of this Class. </LI>
<LI>Any Properties, Methods or Qualifiers in the existing Class definition which do not appear in the&nbsp;ModifiedClass parameter are removed from the resulting modified Class.</LI></UL>

<LI>If the&nbsp;modified Class has a Superclass, the&nbsp;<FONT FACE="Courier New">ModifiedClass</FONT> parameter defines&nbsp;modifications to a Subclass of that Superclass. The Superclass MUST exist, and the Client MUST NOT change the name of the Superclass in the modified Subclass. The Server MUST ensure that: </LI>

<UL>
<LI>Any Properties, Methods or Qualifiers&nbsp;in the Subclass not defined in the Superclass are created as elements of the Subclass. In particular the Server MUST set the <FONT FACE="Courier New">CLASSORIGIN</FONT> attribute on the new Properties and Methods to the name of the Subclass, and MUST ensure that all other Properties and Methods preserve their <FONT FACE="Courier New">CLASSORIGIN</FONT> attribute value from that defined in the Superclass. </LI>
<LI>Any Property, Method or Qualifier previously defined in the Subclass but not defined in the Superclass, and which is not present in the <FONT FACE="Courier New">ModifiedClass</FONT> parameter, is removed from the Subclass.&nbsp; </LI>
<LI>If a Property is specified in the <FONT FACE="Courier New">ModifiedClass</FONT> parameter,&nbsp;the value assigned to that property therein (including NULL) becomes the default value of the property for the Subclass. </LI>
<LI>If a Property or Method of the Superclass is not specified in the Subclass, then that Property&nbsp;or Method is inherited without modification by the Subclass (so that any previous changes to such an Element in the Subclass are lost). </LI>
<LI>If a&nbsp;Qualifier in the Superclass is not specified in the Subclass, and the Qualifier is defined in the Superclass with a <FONT FACE="Courier New">TOSUBCLASS</FONT> attribute value of <FONT FACE="Courier New">true</FONT>, then the Qualifier MUST still be present in the resulting modified Subclass (it is not possible to remove a propagated Qualifier from a Subclass). </LI>
<LI>Any Qualifier propagated from the Superclass cannot be modified&nbsp;in the Subclass if the <FONT FACE="Courier New">OVERRIDABLE</FONT> attribute of that Qualifier was set to <FONT FACE="Courier New">false</FONT> in the Superclass. It is a Client error to specify such a Qualifier in the <FONT FACE="Courier New">ModifiedClass</FONT> with a different definition to that in the Superclass (where definition encompasses the name, type and flavor&nbsp;attribute settings of the <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT> element, and the value of the Qualifier). </LI>
<LI>Any Qualifiers defined in the Superclass with a <FONT FACE="Courier New">TOSUBCLASS</FONT> attribute value of&nbsp; <FONT FACE="Courier New">false</FONT> MUST NOT be propagated to the Subclass.</LI></UL>
</UL>

<P>If successful, the specified&nbsp;Class MUST have been updated by the CIM Server.&nbsp; </P>
<P>The request to modify the Class MUST fail if the Server cannot update any existing Subclasses or Instances of that Class in a consistent manner.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE&nbsp; </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_NOT_FOUND (the CIM Class&nbsp;does not exist)&nbsp; </LI>
<LI>CIM_ERR_INVALID_SUPERCLASS (the putative CIM Class declares a non-existent or incorrect superclass) </LI>
<LI>CIM_ERR_CLASS_HAS_CHILDREN (the modification could not be performed because it was not possible to update the subclasses of the Class in a consistent fashion) </LI>
<LI>CIM_ERR_CLASS_HAS_INSTANCES (the modification could not be performed because it was not possible to update the&nbsp;instances of the Class in a consistent fashion)&nbsp; </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_2.3.24.8._ModifyInstance"><A NAME="_Toc520755815"></A>2.3.2.8. <A NAME="SecModifyInstance">ModifyInstance</A></A></P>
</B></FONT><P>This operation is used to&nbsp;modify an existing CIM Instance in the target Namespace. The Instance MUST&nbsp;already exist.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=302>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;ModifyInstance</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;void&nbsp;<STRONG>ModifyInstance</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#sec_defnamedinstance">&lt;namedInstance&gt;</A>&nbsp;ModifiedInstance<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">ModifiedInstance</FONT> input parameter&nbsp;identifies the name of the Instance to be modified, and defines the set of changes (which MUST be&nbsp;correct amendments to the&nbsp;Instance as defined by the CIM Specification [1]) to be made to the current&nbsp;Instance definition.&nbsp;</P>
<P>In processing the&nbsp;modification of the Instance, the following rules MUST be conformed to by the CIM Server:</P>

<UL>
<LI>Any <FONT FACE="Courier New">CLASSORIGIN</FONT> and <FONT FACE="Courier New">PROPAGATED</FONT> attributes in the <FONT FACE="Courier New">ModifiedInstance</FONT> MUST be ignored by the Server. </LI>
<LI>The Class MUST exist, and the Client MUST NOT change the name of the Class in the modified Instance. The Server MUST ensure that: </LI>

<UL>
<LI>Any Qualifiers&nbsp;in the Instance not defined in the&nbsp;Class are created as new&nbsp;elements of the Instance. </LI>
<LI>All Properties of the&nbsp;Instance preserve their <FONT FACE="Courier New">CLASSORIGIN</FONT> attribute value from that defined in the Class. </LI>
<LI>Any Qualifier previously defined in the&nbsp;Instance but not defined in the Class, and which is not present in the <FONT FACE="Courier New">ModifiedInstance</FONT> parameter, is removed from the Instance.&nbsp; </LI>
<LI>If a Property is&nbsp;specified in the <FONT FACE="Courier New">ModifiedInstance</FONT> parameter,&nbsp;the value assigned to that property&nbsp;therein (including NULL) becomes the value of the property for the Instance. Note that it is a Client error to specify a Property that does not belong to the Class. </LI>
<LI>If a Property of the&nbsp;Class is not specified in the Instance, then that Property is inherited without modification by the Instance (so that any previous changes to&nbsp;that Property in the&nbsp;Instance are lost). </LI>
<LI>Servers MAY choose to ignore TOINSTANCE. Servers that do not ignore TOINSTANCE MUST interpret it as follows. Any Qualifiers defined in the Class with a TOINSTANCE attribute value of true appear in the Instance (it is not possible remove a propagated Qualifier from an Instance). Qualifiers in the Class with a TOINSTANCE attribute value of false MUST NOT be propagated to the Instance.</LI>
<LI>Any Qualifier propagated from the Class cannot be modified by the Server if the <FONT FACE="Courier New">OVERRIDABLE</FONT> attribute of that Qualifier was set to <FONT FACE="Courier New">false</FONT> in the Class. It is a Client error to specify such a Qualifier in the <FONT FACE="Courier New">ModifiedInstance</FONT> with a different definition to that in the Class (where definition encompasses the name, type&nbsp;and flavor&nbsp;attribute settings of the <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT> element, and the value of the Qualifier). </LI>
<LI>Any Qualifier propagated from the Class cannot be modified&nbsp;in the Instance if the <FONT FACE="Courier New">OVERRIDABLE</FONT> attribute of that Qualifier was set to <FONT FACE="Courier New">false</FONT> in the Class. It is a Client error to specify such a Qualifier in the <FONT FACE="Courier New">ModifiedInstance</FONT> with a different definition to that in the Class (where definition encompasses the name, type and flavor&nbsp;attribute settings of the <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT> element, and the value of the Qualifier).</LI></UL>
</UL>

<P>If successful, the specified&nbsp;Instance MUST have been updated by the CIM Server.&nbsp; </P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED&nbsp; </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE&nbsp; </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_INVALID_CLASS (the CIM Class of which this is to be a new Instance does not exist) </LI>
<LI>CIM_ERR_NOT_FOUND (the CIM&nbsp;Instance does not exist)&nbsp; </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755816">2.3.2.9. <A NAME="SecEnumerateClasses"><A NAME="DefEnumerateClasses"></A>EnumerateClasses</A></A></P>
</B></FONT><P>This operation is used to enumerate subclasses of a CIM Class in the target Namespace.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=426>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;EnumerateClasses</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;<A HREF="#sec_defclass">&lt;class&gt;*</A>&nbsp;<STRONG>EnumerateClasses</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL]&nbsp;<A HREF="#def_className">&lt;className&gt;</A> ClassName=NULL,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean DeepInheritance = false,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean LocalOnly = true,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean IncludeQualifiers = true,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean IncludeClassOrigin = false<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">ClassName</FONT> input parameter defines the Class that is the basis for the enumeration.&nbsp; </P>
<P>If the <FONT FACE="Courier New">DeepInheritance</FONT> input parameter&nbsp;is <FONT FACE="Courier New">true</FONT>,&nbsp;this specifies that all subclasses of the specified Class should be returned (if the <FONT FACE="Courier New">ClassName</FONT> input parameter is absent, this implies that all Classes in the target Namespace should be returned).&nbsp; If <FONT FACE="Courier New">false</FONT>, only immediate child subclasses&nbsp;are returned (if the <FONT FACE="Courier New">ClassName</FONT> input parameter is NULL, this implies that all base Classes in the target Namespace should be returned). </P>
<P>If the <FONT FACE="Courier New">LocalOnly</FONT> input parameter&nbsp;is <FONT FACE="Courier New">true</FONT>, it specifies that, for each returned Class, only elements (properties, methods and qualifiers) overriden within&nbsp;the definition of that Class are included [1].&nbsp; If <FONT FACE="Courier New">false</FONT>, all elements are returned.&nbsp; This parameter therefore effects a CIM Server-side mechanism to filter certain elements of the returned object based on whether or not they have been propagated from the parent Class (as defined by the <FONT FACE="Courier New">PROPAGATED</FONT> attribute).</P>
<P>If the <FONT FACE="Courier New">IncludeQualifiers</FONT> input parameter is <FONT FACE="Courier New">true</FONT>, this specifies that all Qualifiers for&nbsp;each Class (including Qualifiers on the Class and on any returned Properties, Methods or Method Parameters) MUST be included as <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT> elements in the response.&nbsp; If false no <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT>&nbsp;elements are present in&nbsp;each returned Class.</P>
<P>If the <FONT FACE="Courier New">IncludeClassOrigin</FONT> input parameter is <FONT FACE="Courier New">true</FONT>, this specifies that the <FONT FACE="Courier New">CLASSORIGIN</FONT> attribute MUST be present on all appropriate elements in&nbsp;each returned Class. If false, no <FONT FACE="Courier New">CLASSORIGIN</FONT> attributes are present in&nbsp;each returned Class.</P>
<P>If successful, the method returns zero or more&nbsp;Classes that meet the required criteria.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE&nbsp; </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the basis for this enumeration does not exist) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755817">2.3.2.10. <A NAME="SecEnumerateClassNames">EnumerateClassNames</A></A></P>
</B></FONT><P>This operation is used to enumerate the names of subclasses of a CIM Class in the target Namespace.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=434>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;EnumerateClassNames</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;<A HREF="#def_className">&lt;className&gt;*</A>&nbsp;&nbsp;<STRONG>EnumerateClassNames</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL]&nbsp;<A HREF="#def_className">&lt;className&gt;</A> ClassName = NULL,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean DeepInheritance&nbsp;= false<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">ClassName</FONT> input parameter defines the Class that is the basis for the enumeration.&nbsp;&nbsp;&nbsp; </P>
<P>If the <FONT FACE="Courier New">DeepInheritance</FONT> input parameter&nbsp;is <FONT FACE="Courier New">true</FONT>,&nbsp;this specifies that the names of all subclasses of the specified Class should be returned (if the <FONT FACE="Courier New">ClassName</FONT> input parameter is absent, this implies that the names of all Classes in the target Namespace should be returned).&nbsp; If <FONT FACE="Courier New">false</FONT>, only the names of immediate child subclasses&nbsp;are returned (if the <FONT FACE="Courier New">ClassName</FONT> input parameter is NULL, this implies that the names of all base Classes in the target Namespace should be returned). </P>
<P>If successful, the method returns zero or more&nbsp;names of Classes that meet the requested criteria.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE&nbsp; </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the basis for this enumeration does not exist) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755818">2.3.2.11. <A NAME="SecEnumerateInstances"><A NAME="DefEnumerateInstances"></A>EnumerateInstances</A></A></P>
</B></FONT><P>This operation is used to enumerate instances of a CIM Class in the target Namespace.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=401>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;EnumerateInstances</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;<A HREF="#sec_defnamedinstance">&lt;namedInstance&gt;*</A>&nbsp;<STRONG>EnumerateInstances</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#def_className">&lt;className&gt;</A> ClassName,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean LocalOnly = true,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL] boolean DeepInheritance = true,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean IncludeQualifiers = false,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean IncludeClassOrigin = false,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL] string PropertyList [] = NULL<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">ClassName</FONT> input parameter defines the Class that is the basis for the enumeration.&nbsp;&nbsp;&nbsp; </P>
<P>If the <FONT FACE="Courier New">LocalOnly</FONT> input parameter&nbsp;is <FONT FACE="Courier New">true</FONT>,&nbsp;this specifies that, for each returned Instance, only elements (properties and qualifiers) overriden within&nbsp;the definition of that&nbsp;Instance are included [1].&nbsp; If <FONT FACE="Courier New">false</FONT>, all elements are returned.&nbsp; This parameter therefore effects a CIM Server-side mechanism to filter certain elements of the returned object based on whether or not they have been propagated from the parent Class&nbsp;(as defined by the <FONT FACE="Courier New">PROPAGATED</FONT> attribute).</P>
<P>If the <FONT FACE="Courier New">DeepInheritance</FONT> input parameter&nbsp;is <FONT FACE="Courier New">true</FONT>,&nbsp;this specifies that, for each returned Instance of the Class, all properties of the Instance MUST be&nbsp;present (subject to constraints imposed by the other parameters), including any which were added by subclassing the specified Class.&nbsp;If <FONT FACE="Courier New">false</FONT>, each returned&nbsp;Instance includes only properties defined for the&nbsp;specified Class.</P>
<P>If the <FONT FACE="Courier New">IncludeQualifiers</FONT> input parameter is <FONT FACE="Courier New">true</FONT>, this specifies that all Qualifiers for&nbsp;each&nbsp;Instance (including Qualifiers on the&nbsp;Instance and on any returned Properties) MUST be included as <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT> elements in the response.&nbsp; If false no <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT>&nbsp;elements are present in&nbsp;each returned Instance.</P>
<P>If the <FONT FACE="Courier New">IncludeClassOrigin</FONT> input parameter is <FONT FACE="Courier New">true</FONT>, this specifies that the <FONT FACE="Courier New">CLASSORIGIN</FONT> attribute MUST be present on all appropriate elements in&nbsp;each returned Instance. If false, no <FONT FACE="Courier New">CLASSORIGIN</FONT> attributes are present in&nbsp;each returned Instance.</P>
<P>If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is not <FONT FACE="Courier New">NULL</FONT>, the members of the array define one or more Property names.&nbsp;&nbsp;Each returned&nbsp;Instance MUST NOT include elements for any Properties&nbsp;missing from this list.&nbsp; Note that if <FONT FACE="Courier New">LocalOnly</FONT> is specified as <FONT FACE="Courier New">true</FONT> (or <FONT FACE="Courier New">DeepInheritance</FONT> is specified as <FONT FACE="Courier New">false</FONT>) this acts as an additional filter on the&nbsp;set of Properties returned (for example, if&nbsp;Property <FONT FACE="Courier New">A</FONT> is included&nbsp;in the <FONT FACE="Courier New">PropertyList</FONT> but <FONT FACE="Courier New">LocalOnly</FONT> is set to true and <FONT FACE="Courier New">A</FONT> is not local to a returned&nbsp;Instance, then it will not be included in that Instance). If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is an empty array this signifies that no Properties are included in each returned Instance.&nbsp;If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is NULL this specifies that all Properties (subject to the conditions expressed by the other parameters) are included in each&nbsp;returned Instance.</P>
<P>If&nbsp;the&nbsp;<FONT FACE="Courier New">PropertyList</FONT>&nbsp;contains duplicate elements, the Server MUST ignore the duplicates but otherwise process the request normally.&nbsp; If the <FONT FACE="Courier New">PropertyList</FONT> contains elements which are invalid Property names for any&nbsp;target Instance, the Server MUST ignore such entries but otherwise process the request normally.</P>
<P>If successful, the method returns zero or more&nbsp;named Instances that meet the required criteria.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE&nbsp; </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the basis for this enumeration does not exist) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755819">2.3.2.12. <A NAME="SecEnumerateInstanceNames">EnumerateInstanceNames</A></A></P>
</B></FONT><P>This operation is used to enumerate the names (model paths) of the instances of a CIM Class in the target Namespace.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=322>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;EnumerateInstanceNames</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;<A HREF="#Def_instanceName">&lt;instanceName&gt;*</A>&nbsp;<STRONG>EnumerateInstanceNames</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#def_className">&lt;className&gt;</A> ClassName<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">ClassName</FONT> input parameter defines the Class that is the basis for the enumeration.&nbsp; </P>
<P>If successful, the method returns zero or more&nbsp;names of Instances (model paths) that meet the requsted criteria.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE&nbsp; </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the basis for this enumeration does not exist) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755820">2.3.2.13. <A NAME="SecExecQuery">ExecQuery</A></A></P>
</B></FONT><P>This operation is used to execute a query against the target Namespace.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=223>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;ExecQuery</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;<A HREF="#Def_object">&lt;object&gt;*</A>&nbsp;<STRONG>ExecQuery</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;string QueryLanguage,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;string Query<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">QueryLanguage</FONT> input parameter defines the query language in which the Query parameter is expressed.</P>
<P>The <FONT FACE="Courier New">Query</FONT> input parameter defines the query to be executed. </P>
<P>Neither the Query language nor the format of the Query are defined by this specification.&nbsp; It is anticipated that Query languages will be submitted to the DMTF as separate proposals.</P>
<P>A mechanism whereby <A HREF="#DefCIMServer">CIM Servers</A> can declare which query languages they support (if any) is defined in <A HREF="#SecDeterminingCIMServerCapabilities">Determining CIM Server Capabilities</A>.</P>
<P>If successful, the method returns zero or more&nbsp;CIM Classes or Instances that correspond to the results set of the query.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE&nbsp; </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED (the requested query language is not recognized) </LI>
<LI>CIM_ERR_INVALID_QUERY (the query is not a valid query&nbsp;in the specified query language)&nbsp; </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_2.3.24.14._Associators"><A NAME="_Toc520755821"></A>2.3.2.14. <A NAME="SecAssociators">Associators</A></A></P>
</B></FONT><P>This operation is used to enumerate CIM Objects (Classes or Instances) that are associated to a particular source&nbsp;CIM&nbsp;Object.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=436>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;Associators</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;<A HREF="#Def_objectWithPathArray">&lt;objectWithPath&gt;*</A> <STRONG>Associators</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#Def_objectName">&lt;objectName&gt;</A> ObjectName,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL]&nbsp;<A HREF="#def_className">&lt;className&gt;</A> AssocClass = NULL,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL,NULL]&nbsp;<A HREF="#def_className">&lt;className&gt;</A>&nbsp;ResultClass = NULL,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL] string Role = NULL,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL] string ResultRole = NULL,<BR>
&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean IncludeQualifiers = false,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean IncludeClassOrigin = false,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL] string PropertyList [] = NULL<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">ObjectName</FONT> input parameter defines the source CIM&nbsp;Object whose associated Objects are to be returned.&nbsp; This may be either a Class name or Instance name (model path).</P>
<P>The <FONT FACE="Courier New">AssocClass</FONT> input parameter, if not <FONT FACE="Courier New">NULL</FONT>, MUST be a valid CIM Association Class name. It acts as a filter on the returned set of&nbsp;Objects by mandating that each returned&nbsp;Object MUST be associated to the source&nbsp;Object via an Instance of this Class or one of its subclasses. </P>
<P>The <FONT FACE="Courier New">ResultClass</FONT> input parameter, if not <FONT FACE="Courier New">NULL</FONT>, MUST be a valid CIM Class name.&nbsp;It acts as a filter on the returned set of&nbsp;Objects by mandating that each returned&nbsp;Object MUST be either an Instance of this Class (or one of its subclasses) or be this Class (or one of its subclasses).</P>
<P>The <FONT FACE="Courier New">Role</FONT> input parameter, if not <FONT FACE="Courier New">NULL</FONT>, MUST be a valid&nbsp;Property name. It acts as a filter on the returned set of&nbsp;Objects by mandating that each returned&nbsp;Object MUST be associated to the source&nbsp;Object via an Association in which the source&nbsp;Object plays the specified role (i.e. the name of the Property in the Association Class that refers to the source&nbsp;Object&nbsp;MUST match the value of this parameter).</P>
<P>The <FONT FACE="Courier New">ResultRole</FONT> input parameter, if not <FONT FACE="Courier New">NULL</FONT>, MUST be a valid&nbsp;Property name. It acts as a filter on the returned set of&nbsp;Objects by mandating that each returned&nbsp;Object MUST be associated to the source&nbsp;Object via an Association in which the returned&nbsp;Object plays the specified role (i.e. the name of the Property in the Association Class that refers to the&nbsp;returned&nbsp;Object&nbsp;MUST match the value of this parameter).</P>
<P>If the <FONT FACE="Courier New">IncludeQualifiers</FONT> input parameter is <FONT FACE="Courier New">true</FONT>, this specifies that all Qualifiers for&nbsp;each&nbsp;Object (including Qualifiers on the&nbsp;Object and on any returned Properties) MUST be included as <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT> elements in the response.&nbsp; If false no <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT>&nbsp;elements are present in&nbsp;each returned Object.</P>
<P>If the <FONT FACE="Courier New">IncludeClassOrigin</FONT> input parameter is <FONT FACE="Courier New">true</FONT>, this specifies that the <FONT FACE="Courier New">CLASSORIGIN</FONT> attribute MUST be present on all appropriate elements in&nbsp;each returned Object. If false, no <FONT FACE="Courier New">CLASSORIGIN</FONT> attributes are present in&nbsp;each returned Object.</P>
<P>If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is not <FONT FACE="Courier New">NULL</FONT>, the members of the array define one or more Property names.&nbsp;&nbsp;Each returned&nbsp;Object MUST NOT include elements for any Properties&nbsp;missing from this list.&nbsp; Note that if <FONT FACE="Courier New">LocalOnly</FONT> is specified as <FONT FACE="Courier New">true</FONT> (or <FONT FACE="Courier New">DeepInheritance</FONT> is specified as <FONT FACE="Courier New">false</FONT>) this acts as an additional filter on the&nbsp;set of Properties returned (for example, if&nbsp;Property <FONT FACE="Courier New">A</FONT> is included&nbsp;in the <FONT FACE="Courier New">PropertyList</FONT> but <FONT FACE="Courier New">LocalOnly</FONT> is set to true and <FONT FACE="Courier New">A</FONT> is not local to a returned&nbsp;Instance, then it will not be included in that Instance). If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is an empty array this signifies that no Properties are included in each returned Object.&nbsp;If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is NULL this specifies that all Properties (subject to the conditions expressed by the other parameters) are included in each&nbsp;returned Object.</P>
<P>If the&nbsp;<FONT FACE="Courier New">PropertyList</FONT>&nbsp;contains duplicate elements, the Server MUST ignore the duplicates but otherwise process the request normally.&nbsp; If the <FONT FACE="Courier New">PropertyList</FONT> contains elements which are invalid Property names for any&nbsp;target Object, the Server MUST ignore such entries but otherwise process the request normally.</P>
<P>Clients SHOULD NOT explicitly specify properties in the <FONT FACE="Courier New">PropertyList</FONT> parameter unless they have specified a non-NULL value for the <FONT FACE="Courier New">ResultClass</FONT> parameter.</P>
<P>If successful, the method returns zero or more&nbsp;CIM Classes or Instances meeting the requested criteria.&nbsp; Since it is possible for CIM Objects from different hosts or namespaces to be associated, each returned Object includes location information.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE&nbsp; </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_2.3.24.15._AssociatorNames"><A NAME="_Toc520755822"></A>2.3.2.15. <A NAME="SecAssociatorNames">AssociatorNames</A></A></P>
</B></FONT><P>This operation is used to enumerate the names of CIM Objects (Classes or Instances) that are associated to a particular source&nbsp;CIM&nbsp;Object.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=436>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;AssociatorNames</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;objectPath&gt;*&nbsp;<STRONG>AssociatorNames</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#Def_objectName">&lt;objectName&gt;</A> ObjectName,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL]&nbsp;<A HREF="#def_className">&lt;className&gt;</A> AssocClass = NULL,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL,NULL]&nbsp;<A HREF="#def_className">&lt;className&gt;</A>&nbsp;ResultClass = NULL,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL] string Role = NULL,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL] string ResultRole = NULL<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">ObjectName</FONT> input parameter defines the source CIM&nbsp;Object whose associated names are to be returned.&nbsp;This is either a Class name or Instance name (model path).</P>
<P>The <FONT FACE="Courier New">AssocClass</FONT> input parameter, if not <FONT FACE="Courier New">NULL</FONT>, MUST be a valid CIM Association Class name. It acts as a filter on the returned set of&nbsp;names by mandating that each returned&nbsp;name identifies an Object that MUST be associated to the source&nbsp;Object via an Instance of this Class or one of its subclasses. </P>
<P>The <FONT FACE="Courier New">ResultClass</FONT> input parameter, if not <FONT FACE="Courier New">NULL</FONT>, MUST be a valid CIM Class name.&nbsp;It acts as a filter on the returned set of&nbsp;names by mandating that each returned&nbsp;name identifies an Object that MUST be either an Instance of this Class (or one of its subclasses) or be this Class (or one of its subclasses).</P>
<P>The <FONT FACE="Courier New">Role</FONT> input parameter, if not <FONT FACE="Courier New">NULL</FONT>, MUST be a valid&nbsp;Property name. It acts as a filter on the returned set of&nbsp;names by mandating that each returned&nbsp;name identifies an Object that MUST be associated to the source&nbsp;Object via an Association in which the source&nbsp;Object plays the specified role (i.e. the name of the Property in the Association Class that refers to the source&nbsp;Object&nbsp;MUST match the value of this parameter).</P>
<P>The <FONT FACE="Courier New">ResultRole</FONT> input parameter, if not <FONT FACE="Courier New">NULL</FONT>, MUST be a valid&nbsp;Property name. It acts as a filter on the returned set of&nbsp;names by mandating that each returned&nbsp;name identifies an Object that MUST be associated to the source&nbsp;Object via an Association in which the named returned&nbsp;Object plays the specified role (i.e. the name of the Property in the Association Class that refers to the&nbsp;returned&nbsp;Object&nbsp;MUST match the value of this parameter).</P>
<P>If successful, the method returns zero or more&nbsp;full&nbsp;CIM Class paths or Instance paths of Objects meeting the requested criteria.&nbsp; Since it is possible for CIM Objects from different hosts or namespaces to be associated, each returned&nbsp;path&nbsp;is an absolute path that includes host and namespace information.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE&nbsp; </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_2.3.24.16._References"><A NAME="_2.3.2.16._References"><A NAME="_Toc520755823"></A></A>2.3.2.16. <A NAME="SecReferencesMethod">References</A></A></P>
</B></FONT><P>This operation is used to enumerate&nbsp;the association objects that refer to a particular target&nbsp;CIM&nbsp;Object (Class or Instance).</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=436>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;References</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;<A HREF="#Def_objectWithPathArray">&lt;objectWithPath&gt;*</A>&nbsp;<STRONG>References</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#Def_objectName">&lt;objectName&gt;</A> ObjectName,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL,NULL]&nbsp;<A HREF="#def_className">&lt;className&gt;</A>&nbsp;ResultClass = NULL,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL] string Role = NULL,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean IncludeQualifiers = false,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL] boolean IncludeClassOrigin = false,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL] string PropertyList [] = NULL<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">ObjectName</FONT> input parameter defines the&nbsp;target CIM&nbsp;Object whose&nbsp;referring&nbsp;Objects are to be returned.&nbsp;This is either a Class name or Instance name (model path).&nbsp; </P>
<P>The <FONT FACE="Courier New">ResultClass</FONT> input parameter, if not <FONT FACE="Courier New">NULL</FONT>, MUST be a valid CIM Class name.&nbsp;It acts as a filter on the returned set of&nbsp;Objects by mandating that each returned&nbsp;Object&nbsp;MUST be&nbsp;an Instance of this Class (or one of its subclasses), or this Class (or one of its&nbsp;subclasses).</P>
<P>The <FONT FACE="Courier New">Role</FONT> input parameter, if not <FONT FACE="Courier New">NULL</FONT>, MUST be a valid&nbsp;Property name. It acts as a filter on the returned set of&nbsp;Objects by mandating that each returned&nbsp;Objects MUST refer to the target&nbsp;Object&nbsp;via a Property whose name matches&nbsp;the value of this parameter.</P>
<P>If the <FONT FACE="Courier New">IncludeQualifiers</FONT> input parameter is <FONT FACE="Courier New">true</FONT>, this specifies that all Qualifiers for&nbsp;each&nbsp;Object (including Qualifiers on the&nbsp;Object and on any returned Properties) MUST be included as <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT> elements in the response.&nbsp; If false no <FONT FACE="Courier New">&lt;QUALIFIER&gt;</FONT>&nbsp;elements are present in&nbsp;each returned Object.</P>
<P>If the <FONT FACE="Courier New">IncludeClassOrigin</FONT> input parameter is <FONT FACE="Courier New">true</FONT>, this specifies that the <FONT FACE="Courier New">CLASSORIGIN</FONT> attribute MUST be present on all appropriate elements in&nbsp;each returned Object. If false, no <FONT FACE="Courier New">CLASSORIGIN</FONT> attributes are present in&nbsp;each returned Object.</P>
<P>If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is not <FONT FACE="Courier New">NULL</FONT>, the members of the array define one or more Property names.&nbsp;&nbsp;Each returned&nbsp;Object MUST NOT include elements for any Properties&nbsp;missing from this list.&nbsp; Note that if <FONT FACE="Courier New">LocalOnly</FONT> is specified as <FONT FACE="Courier New">true</FONT> (or <FONT FACE="Courier New">DeepInheritance</FONT> is specified as <FONT FACE="Courier New">false</FONT>) this acts as an additional filter on the&nbsp;set of Properties returned (for example, if&nbsp;Property <FONT FACE="Courier New">A</FONT> is included&nbsp;in the <FONT FACE="Courier New">PropertyList</FONT> but <FONT FACE="Courier New">LocalOnly</FONT> is set to true and <FONT FACE="Courier New">A</FONT> is not local to a returned&nbsp;Instance, then it will not be included in that Instance). If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is an empty array this signifies that no Properties are included in each returned Object.&nbsp;If the <FONT FACE="Courier New">PropertyList</FONT> input parameter is NULL this specifies that all Properties (subject to the conditions expressed by the other parameters) are included in each&nbsp;returned Object.</P>
<P>If the&nbsp;<FONT FACE="Courier New">PropertyList</FONT>&nbsp;contains duplicate elements, the Server MUST ignore the duplicates but otherwise process the request normally.&nbsp; If the <FONT FACE="Courier New">PropertyList</FONT> contains elements which are invalid Property names for any&nbsp;target Object, the Server MUST ignore such entries but otherwise process the request normally.</P>
<P>Clients SHOULD NOT explicitly specify properties in the <FONT FACE="Courier New">PropertyList</FONT> parameter unless they have specified a non-NULL value for the <FONT FACE="Courier New">ResultClass</FONT> parameter.</P>
<P>If successful, the method returns zero or more&nbsp;CIM Classes or Instances meeting the requested criteria.&nbsp; Since it is possible for CIM Objects from different hosts or namespaces to be associated, each returned Object includes location information.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE&nbsp; </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_2.3.24.17._ReferenceNames"><A NAME="_Toc520755824"></A>2.3.2.17. <A NAME="SecReferenceNames">ReferenceNames</A></A></P>
</B></FONT><P>This operation is used to enumerate the association&nbsp;objects that refer to a particular target&nbsp;CIM&nbsp;Object (Class or Instance).</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=436>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;ReferenceNames</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;objectPath&gt;*&nbsp;<STRONG>ReferenceNames</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#Def_objectName">&lt;objectName&gt;</A> ObjectName,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[IN,OPTIONAL,NULL]&nbsp;<A HREF="#def_className">&lt;className&gt;</A>&nbsp;ResultClass = NULL,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL] string Role&nbsp;= NULL<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">ObjectName</FONT> input parameter defines the&nbsp;target CIM&nbsp;Object whose&nbsp;referring&nbsp;object names are to be returned.&nbsp;It may be either a Class name&nbsp;or an Instance name (model path).</P>
<P>The <FONT FACE="Courier New">ResultClass</FONT> input parameter, if not <FONT FACE="Courier New">NULL</FONT>, MUST be a valid CIM Class name.&nbsp;It acts as a filter on the returned set of&nbsp;Object Names by mandating that each returned&nbsp;Object&nbsp;Name MUST identify&nbsp;an Instance of this Class (or one of its subclasses), or this Class (or one of its subclasses).</P>
<P>The <FONT FACE="Courier New">Role</FONT> input parameter, if not <FONT FACE="Courier New">NULL</FONT>, MUST be a valid&nbsp;Property name. It acts as a filter on the returned set of&nbsp;Object Names by mandating that each returned&nbsp;Object Name MUST identify an&nbsp;Object that refers to the target Instance&nbsp;via a Property whose name matches&nbsp;the value of this parameter.</P>
<P>If successful, the method returns the names of zero or more&nbsp;full&nbsp;CIM Class paths or Instance paths of Objects meeting the requested criteria.&nbsp; Since it is possible for CIM Objects from different hosts or namespaces to be associated, each returned&nbsp;path&nbsp;is an absolute path that includes host and namespace information.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE&nbsp; </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755825">2.3.2.18. <A NAME="SecGetProperty">GetProperty</A></A></P>
</B></FONT><P>This operation is used to retrieve a single property value from a CIM Instance in the target Namespace.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=283>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;GetProperty</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;<A HREF="#Def_propertyValue">&lt;propertyValue&gt;?</A>&nbsp;<STRONG>GetProperty</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#Def_instanceName">&lt;instanceName&gt;</A> InstanceName,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;string&nbsp;PropertyName<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">InstanceName</FONT> input parameter&nbsp;specifies the name of the&nbsp;Instance (model path) from which the Property value is requested.</P>
<P>The <FONT FACE="Courier New">PropertyName</FONT> input parameter specifies the name of the Property whose value is to be returned.</P>
<P>If successful, the return value specifies the value of the requested Property. If the value is NULL then no element is returned.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the specified namespace) </LI>
<LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested CIM&nbsp;Instance does not exist in the specified namespace) </LI>
<LI>CIM_ERR_NO_SUCH_PROPERTY (the CIM Instance does exist, but the requested Property does not)&nbsp; </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755826">2.3.2.19. <A NAME="SecSetProperty">SetProperty</A></A></P>
</B></FONT><P>This operation is used to&nbsp;set a single property value in a CIM Instance in the target Namespace.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=448>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;SetProperty</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;void&nbsp;<STRONG>SetProperty</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#Def_instanceName">&lt;instanceName&gt;</A> InstanceName,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;string&nbsp;PropertyName,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN,OPTIONAL,NULL] <A HREF="#Def_propertyValue">&lt;propertyValue&gt;</A> NewValue = NULL<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">InstanceName</FONT> input parameter&nbsp;specifies the name of the Instance (model path)&nbsp;for which the Property value is to be updated.</P>
<P>The <FONT FACE="Courier New">PropertyName</FONT> input parameter specifies the name of the Property whose value is to be updated.</P>
<P>The <FONT FACE="Courier New">NewValue</FONT> input parameter specifies the new value for the Property (which may be NULL).</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist in the specified namespace) </LI>
<LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the requested CIM&nbsp;Instance does not exist in the specified namespace) </LI>
<LI>CIM_ERR_NO_SUCH_PROPERTY (the CIM Instance does exist, but the requested Property does not)&nbsp; </LI>
<LI>CIM_ERR_TYPE_MISMATCH (the supplied value is incompatible with the type of the Property) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755827">2.3.2.20. <A NAME="SecGetQualifier">GetQualifier</A></A></P>
</B></FONT><P>This operation is used to&nbsp;retrieve&nbsp;a single Qualifier declaration from the target Namespace.&nbsp; </P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=214>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;GetQualifier</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;<A HREF="#Def_qualifierDecl">&lt;qualifierDecl&gt;</A> <STRONG>GetQualifier</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;string QualifierName<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">QualifierName</FONT> input parameter identifies the Qualifier whose declaration to be retrieved.</P>
<P>If successful, the method returns the Qualifier declaration for the named Qualifier.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_NOT_FOUND (the requested Qualifier declaration did not exist) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_2.3.2.21._SetQualifier"><A NAME="_Toc520755828"></A>2.3.2.21. <A NAME="SecSetQualifier">SetQualifier</A></A></P>
</B></FONT><P>This operation is used to&nbsp;create&nbsp;or update a single Qualifier declaration in the target Namespace.&nbsp; If the Qualifier&nbsp;declaration already exists it is overwritten.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=314>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;SetQualifier</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;void&nbsp;<STRONG>SetQualifier</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;<A HREF="#Def_qualifierDecl">&lt;qualifierDecl&gt;</A> QualifierDeclaration<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">QualifierDeclaration</FONT> input parameter defines the Qualifier Declaration to be added to the Namespace.</P>
<P>If successful, the Qualifier declaration MUST have been added to the target Namespace.&nbsp; If a Qualifier declaration with the same Qualifier name already existed, then it MUST have been replaced by the new declaration.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755829">2.3.2.22. <A NAME="SecDeleteQualifier">DeleteQualifier</A></A></P>
</B></FONT><P>This operation is used to&nbsp;delete&nbsp;a single Qualifier declaration from the target Namespace.&nbsp; </P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=212>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;DeleteQualifier</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;void <STRONG>DeleteQualifier</STRONG> (<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [IN]&nbsp;string QualifierName<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">QualifierName</FONT> input parameter identifies the Qualifier whose declaration to be deleted.</P>
<P>If successful, the specified Qualifier declaration MUST have been deleted from the Namespace.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_NOT_FOUND (the requested Qualifier declaration did not exist) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755830">2.3.2.23. <A NAME="SecEnumerateQualifiers">EnumerateQualifiers</A></A></P>
</B></FONT><P>This operation is used to&nbsp;enumerate Qualifier declarations from the target Namespace.&nbsp; </P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=280>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P>&nbsp;EnumerateQualifiers</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;<A HREF="#Def_qualifierDecl">&lt;qualifierDecl&gt;*</A> <STRONG>EnumerateQualifiers</STRONG> (<BR>
&nbsp;)</TD>
</TR>
</TABLE>

<P>If successful, the method returns zero or more&nbsp;Qualifier declarations.</P>
<P>If unsuccessful, one of the following status codes&nbsp;MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is&nbsp;the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_NAMESPACE </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate,&nbsp;unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755831">2.3.3. <A NAME="SecNamespaceManipulation">Namespace Manipulation</A></A></P>
</B></FONT><P>There are no <A HREF="#DefIntrinsic">intrinsic</A> methods defined specifically for the purpose of manipulating CIM Namespaces. However, the modeling of a CIM Namespace&nbsp;using the class&nbsp;<FONT FACE="Courier New">__Namespace</FONT>, together with the requirement that the <FONT FACE="Courier New">root</FONT> Namespace MUST be supported by all CIM Servers, implies that all Namespace operations can be supported.</P>
<P>For example:</P>

<UL>
<LI>Enumeration of all child&nbsp;Namespaces of a particular Namespace is realized by calling the&nbsp;intrinsic method <A HREF="#SecEnumerateInstanceNames">EnumerateInstanceNames</A> against the parent Namespace,&nbsp;specifying a value for the ClassName parameter&nbsp;of <FONT FACE="Courier New">__Namespace</FONT>. </LI>
<LI>Creation of a child Namespace is realized by calling the intrinsic method <A HREF="#SecCreateInstance">CreateInstance</A> against the parent&nbsp;Namespace, specifying a value&nbsp;for the NewInstance parameter which defines a valid instance of the class <FONT FACE="Courier New">__Namespace</FONT> and whose <FONT FACE="Courier New">Name</FONT> property&nbsp;is the desired name of the new Namespace.</LI></UL>

<B><FONT SIZE=4><P><A NAME="SecFunctionalProfiles"><A NAME="_Toc520755832">2.3.4. Functional Profiles</A></A></P>
</B></FONT><P>This section partitions the <A HREF="#SecIntrinsicMethods">intrinsic methods</A> into functional&nbsp;groups for the purpose of establishing conformance.</P>
<P>Support for a particular group does <EM>not</EM> guarantee that all invocations of any method in that group will succeed.&nbsp; Rather, the exclusion of a group is a declaration that any attempt to call a method in that group will always return <A HREF="#DefCimErrNotSupported">CIM_ERR_NOT_SUPPORTED</A>.</P>
<P>Mechanisms by which a <A HREF="#DefCIMServer">CIM Server</A> may declare the functional groups that it supports are defined in the section on <A HREF="#SecDeterminingCIMServerCapabilities">Determining CIM Server Capabilities</A>.</P>
<P>In order to limit the number of different profiles that may be supported by a CIM Server, each functional group has a dependency on another group (with the exception of the Basic Read functional group).&nbsp; If functional group G<SUB>1</SUB> has a dependency on functional group G<SUB>2</SUB>, then a CIM Server which supports G<SUB>1</SUB> MUST also support G<SUB>2</SUB>.&nbsp; </P>
<P>The dependency relation is transitive, so that if G<SUB>1</SUB> depends on G<SUB>2</SUB>, and G<SUB>2</SUB> depends on G<SUB>3</SUB>, then G<SUB>1</SUB> depends on G<SUB>3</SUB>. It is also anti-symmetric, so that if G<SUB>1</SUB> depends on G<SUB>2</SUB> then G<SUB>2</SUB> cannot depend on G<SUB>1</SUB>.</P>
<P>Using these rules, the table below defines a rooted directed tree of dependencies with the Basic Read dependency representing the root node.&nbsp; </P>
<P>For example, a CIM Server which supports the Schema Manipulation functional group MUST also support the Instance Manipulation, Basic Write and Basic Read.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#008080" CELLPADDING=5 WIDTH=589>
<TR><TD WIDTH="32%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">Functional Group</STRONG> </TD>
<TD WIDTH="31%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">Dependency</STRONG></TD>
<TD WIDTH="36%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">Methods</STRONG></TD>
</TR>
<TR><TD WIDTH="32%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefBasicRead">Basic Read</A></FONT></TD>
<TD WIDTH="31%" VALIGN="MIDDLE">
<FONT SIZE=2><EM><P>none</FONT></EM></TD>
<TD WIDTH="36%" VALIGN="MIDDLE">
<P><A HREF="#SecGetClass"><FONT SIZE=2>GetClass</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#SecEnumerateClasses"><FONT SIZE=2>EnumerateClasses</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#SecEnumerateClassNames"><FONT SIZE=2>EnumerateClassNames</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#SecGetInstance"><FONT SIZE=2>GetInstance</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#SecEnumerateInstances"><FONT SIZE=2>EnumerateInstances</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#SecEnumerateInstanceNames"><FONT SIZE=2>EnumerateInstanceNames</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#SecGetProperty"><FONT SIZE=2>GetProperty</FONT></A></TD>
</TR>
<TR><TD WIDTH="32%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefBasicWrite">Basic Write</A></FONT></TD>
<TD WIDTH="31%" VALIGN="MIDDLE">
<FONT SIZE=2><P>Basic Read</FONT></TD>
<TD WIDTH="36%" VALIGN="MIDDLE">
<P><A HREF="#SecSetProperty"><FONT SIZE=2>SetProperty</FONT></A></TD>
</TR>
<TR><TD WIDTH="32%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefSchemaManipulation">Schema Manipulation</A></FONT></TD>
<TD WIDTH="31%" VALIGN="MIDDLE">
<FONT SIZE=2><P>Instance Manipulation</FONT></TD>
<TD WIDTH="36%" VALIGN="MIDDLE">
<P><A HREF="#SecCreateClass"><FONT SIZE=2>CreateClass</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#SecModifyClass"><FONT SIZE=2>ModifyClass</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#_2.3.24.3._DeleteClass"><FONT SIZE=2>DeleteClass</FONT></A></TD>
</TR>
<TR><TD WIDTH="32%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefInstanceManipulation">Instance Manipulation</A></FONT></TD>
<TD WIDTH="31%" VALIGN="MIDDLE">
<FONT SIZE=2><P>Basic Write</FONT></TD>
<TD WIDTH="36%" VALIGN="MIDDLE">
<P><A HREF="#_2.3.24.6._CreateInstance"><FONT SIZE=2>CreateInstance</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#_2.3.24.8._ModifyInstance"><FONT SIZE=2>ModifyInstance</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#_2.43.2.4._DeleteInstance"><FONT SIZE=2>DeleteInstance</FONT></A></TD>
</TR>
<TR><TD WIDTH="32%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefAssociationTraversal">Association Traversal</A></FONT></TD>
<TD WIDTH="31%" VALIGN="MIDDLE">
<FONT SIZE=2><P>Basic Read</FONT></TD>
<TD WIDTH="36%" VALIGN="MIDDLE">
<P><A HREF="#_2.3.24.14._Associators"><FONT SIZE=2>Associators</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#_2.3.24.15._AssociatorNames"><FONT SIZE=2>AssociatorNames</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#_2.3.24.16._References"><FONT SIZE=2>References</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#_2.3.24.17._ReferenceNames"><FONT SIZE=2>ReferenceNames</FONT></A></TD>
</TR>
<TR><TD WIDTH="32%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefQueryExecution">Query Execution</A></FONT></TD>
<TD WIDTH="31%" VALIGN="MIDDLE">
<FONT SIZE=2><P>Basic Read</FONT></TD>
<TD WIDTH="36%" VALIGN="MIDDLE">
<P><A HREF="#SecExecQuery"><FONT SIZE=2>ExecQuery</FONT></A></TD>
</TR>
<TR><TD WIDTH="32%" VALIGN="MIDDLE">
<FONT SIZE=2><P><A NAME="DefQualifierDeclaration">Qualifier Declaration</A></FONT></TD>
<TD WIDTH="31%" VALIGN="MIDDLE">
<FONT SIZE=2><P>Schema Manipulation</FONT></TD>
<TD WIDTH="36%" VALIGN="MIDDLE">
<P><A HREF="#SecGetQualifier"><FONT SIZE=2>GetQualifier</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#SecSetQualifier"><FONT SIZE=2>SetQualifier</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#SecDeleteQualifier"><FONT SIZE=2>DeleteQualifier</FONT></A><U><FONT SIZE=2 COLOR="#0000ff"><BR>
</U></FONT><A HREF="#SecEnumerateQualifiers"><FONT SIZE=2>EnumerateQualifiers</FONT></A></TD>
</TR>
</TABLE>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="SecExtrinsicMethodInvocation"><A NAME="_Toc520755833">2.3.5. Extrinsic Method Invocation</A></A></P>
</B></FONT><P>Any&nbsp;<A HREF="#DefCIMServer">CIM Server</A> is assumed to support extrinsic methods. Extrinsic methods are defined by the Schema supported by the CIM Server. If a CIM Server does not support extrinsic method invocations, it MUST (subject to the considerations described in the rest of this section) return the error code CIM_ERR_NOT_SUPPORTED to any request to execute an extrinsic method. This allows a <A HREF="#DefCIMClient">CIM client</A> to determine that all attempts to execute extrinsic methods will fail.</P>
<P>If the  CIM Server is unable to perform the extrinsic method invocation, one of the following status codes MUST be returned by the CIM Server, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional specific interpretation of the error is given in parentheses. </P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED (the CIM Server does not support extrinsic method invocations) </LI>
<LI>CIM_ERR_INVALID_NAMESPACE </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_NOT_FOUND (the target CIM Class or instance does not exist in the specified namespace) </LI>
<LI>CIM_ERR_METHOD_NOT_FOUND </LI>
<LI>CIM_ERR_METHOD_NOT_AVAILABLE (the CIM Server is unable to honor the invocation request) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="_Toc520755834">2.4 CIM Export Syntax and Semantics</A></P>
</FONT><FONT SIZE=4><P><A NAME="_Toc520755835">2.4.1. Export Method Invocations</A></P>
</B></FONT><P>All CIM Export Message requests defined for this mapping are defined as invocations of one or more export methods.  Export methods do not operate against CIM Namespaces.</P>
<P>An export method call is represented in XML by the &lt;EXPMETHODCALL&gt; element, and the response to that call represented by the &lt;EXPMETHODRESPONSE&gt; element.&nbsp; </P>
<P>An Input parameter is one with an IN Qualifier (with value <FONT FACE="Courier New">true</FONT>) in the Method definition.  An Output parameter is one with an OUT Qualifier (with value true) in the Method definition. An Optional parameter is one with an OPTIONAL Qualifier in the Method definition. A parameter may be both an Input and Output parameter.</P>
<P>The &lt;EXPMETHODCALL&gt; element serves to name the method to be invoked and supply any Input parameters to the export method call. Note that:</P>

<UL>
<LI>Each Input parameter MUST be named using the name assigned in the method definition. </LI>
<LI>The Input parameters MAY be supplied in any order. </LI>
<LI>Each Input parameter of the method, and no others, MUST be present in the call, unless it was defined as Optional.</LI></UL>

<P>The &lt;EXPMETHODRESPONSE&gt; element defines either an &lt;ERROR&gt; or a (possibly optional) return value and output parameters (i.e. one decorated with the OUT Qualifier in the method definition). In the latter case:</P>

<UL>
<LI>Each Output parameter MUST be named using the name assigned in the method definition. </LI>
<LI>The Output parameters MAY be supplied in any order. </LI>
<LI>Each Output parameter of the method, and no others, MUST be present in the response, unless it was defined as Optional.</LI></UL>

<P>The method invocation process may be thought of as:</P>

<UL>
<LI>The binding of the input parameter values specified as subelements of the &lt;EXPMETHODCALL&gt; element to the input parameters of the Method, followed by; </LI>
<LI>The attempted execution of the method using the bound input parameters, and; </LI>

<UL>
<LI>If attempt to call the method is successful, the binding of the return value and output parameters to the subelements of the &lt;EXPMETHODRESPONSE&gt; element, or; </LI>
<LI>If the attempt to call the method is unsuccessful, the binding of an error code and (optional) human-readable description of that code to the &lt;EXPMETHODRESPONSE&gt; element.</LI></UL>
</UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755836">2.4.1.1. Simple Export</A></P>
</B></FONT><P>A simple export is defined as one that requires the invocation of a single export method.  A simple export request&nbsp;is represented by a &lt;SIMPLEEXPREQ&gt; element, and a simple export response by a &lt;SIMPLEEXPRSP&gt; element.</P>
<P>A &lt;SIMPLEEXPREQ&gt; MUST contain a &lt;EXPMETHODCALL&gt; element.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755837">2.4.1.2. Multiple Export</A></P>
</B></FONT><P>A multiple export is defined as one that requires the invocation of more than one export method.  A multiple export request is represented by a &lt;MULTEXPREQ&gt; element, and a multiple export response by a &lt;MULTIEXPRSP&gt; element.</P>
<P>A &lt;MULTIEXPREQ&gt; (respectively, &lt;MULTIEXPRSP&gt;) element is a sequence of two or more &lt;SIMPLEEXPREQ&gt; (respectively, &lt;SIMPLEEXPRSP&gt;) elements.</P>
<P>A &lt;MULTIEXPRSP&gt; element MUST contain a &lt;SIMPLEEXPRSP&gt; element for every &lt;SIMPLEEXPREQ&gt; element in the corresponding multiple export response, and these &lt;SIMPLEEXPRSP&gt; elements MUST be in the same order as their &lt;SIMPLEEXPREQ&gt; counterparts (so the first &lt;SIMPLEEXPRSP&gt; in the response corresponds to the first &lt;SIMPLEEXPREQ&gt; in the request, and so forth). </P>
<P>Multiple Exports provide a convenient mechanism to batch the delivery of multiple export method invocations into a single HTTP Message, reducing the number of roundtrips between a <A HREF="#DefCIMClient">CIM Client</A> and a <A HREF="#DefCIMListener">CIM Listener</A> and allowing the CIM Listener to make certain internal optimizations should it choose so to do.  Note that Multiple Exports do not confer any transactional capabilities in the processing of the request (for example, there is no requirement that the CIM Listener guarantee that the constituent export method calls either all failed or all succeeded, only that the CIM Listener make a "best effort" to process the operation).  However, CIM Listeners MUST process each method invocation in a batched message to completion before executing the next method invocation in the batch. Clients MUST recognize that the order of method calls within a batched message is significant in the manner described in the last sentence.</P>
<P>Not all CIM Listeners support Multiple Exports; the means by which they declare support for this feature is defined in the section on <A HREF="#_4.6._Determining_CIM">Determining CIM Listener Capabilities</A>.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755838">2.4.1.3. Status Codes</A></P>
</B></FONT><P>This section defines the status codes that may be returned by a conforming CIM Listener as the value of the <FONT FACE="Courier New">CODE</FONT> attribute of an &lt;ERROR&gt; subelement within a &lt;EXPMETHODRESPONSE&gt; element.</P>
<P>The symbolic names defined in the table below do not appear on the wire. They are used here solely as a convenient way to refer to an error in other parts of this specification.</P>
<P>Not all methods would be expected to return all the status codes listed below.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#008080" CELLPADDING=5 WIDTH=589>
<TR><TD WIDTH="32%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">Symbolic Name</STRONG></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">CODE</STRONG></TD>
<TD WIDTH="58%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">Definition</STRONG> </TD>
</TR>
<TR><TD WIDTH="32%" VALIGN="MIDDLE">
<FONT SIZE=2><P>CIM_ERR_FAILED</FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>1</FONT></TD>
<TD WIDTH="58%" VALIGN="MIDDLE">
<FONT SIZE=2><P>A general error occurred that is not covered by a more specific error code</FONT></TD>
</TR>
<TR><TD WIDTH="32%" VALIGN="MIDDLE">
<FONT SIZE=2><P>CIM_ERR_ACCESS_DENIED</FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>2</FONT></TD>
<TD WIDTH="58%" VALIGN="MIDDLE">
<FONT SIZE=2><P>Access was not available to the client</FONT></TD>
</TR>
<TR><TD WIDTH="32%" VALIGN="MIDDLE">
<FONT SIZE=2><P>CIM_ERR_NOT_SUPPORTED</FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>7</FONT></TD>
<TD WIDTH="58%" VALIGN="MIDDLE">
<FONT SIZE=2><P>The requested operation is not supported</FONT></TD>
</TR>
<TR><TD WIDTH="32%" VALIGN="MIDDLE">
<FONT SIZE=2><P>CIM_ERR_TYPE_MISMATCH</FONT></TD>
<TD WIDTH="10%" VALIGN="MIDDLE">
<FONT SIZE=2><P>13</FONT></TD>
<TD WIDTH="58%" VALIGN="MIDDLE">
<FONT SIZE=2><P>The value supplied is incompatible with the type</FONT></TD>
</TR>
</TABLE>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755839">2.4.2. Export Methods</A></P>
</B></FONT><P>This section describes the methods that can be defined within a CIM Export Message. These methods operate only on an external data representation of a CIM entity, namespace or element.  Specifically, export methods do not operate on CIM Namespaces or CIM elements.</P>
<P> The following export method is defined by this specification:</P>

<UL>
<LI>Export an Indication</LI></UL>

<P>The convention used in the following subsections to define the signatures of the export methods is a pseudo-MOF notation that extends the standard MOF BNF [1] for describing CIM export methods with a number of pseudo parameter types (which are indicated by being placed within "&lt;" and "&gt;" characters). </P>
<P>This notation admits of the decoration of parameters with a number of pseudo-qualifiers (IN, OPTIONAL and NULL) to define their invocation semantics. It is important to understand that these qualifiers are used for description purposes only within the scope of this specification, and in particular a <A HREF="#DefCIMClient">CIM Client</A> MUST NOT specify them in export method invocations.</P>
<P>This notation uses the IN qualifier to denote that the parameter is an input parameter.</P>
<P>This notation uses the OPTIONAL qualifier to indicate parameters whose presence is not mandatory, and declares default values for optional method parameters using similar notation employed for default property values in MOF.</P>
<P>A CIM Client MAY omit an optional parameter in the case that the required value is the specified default, by not specifying an &lt;IPARAMVALUE&gt; element for that parameter. It MUST NOT omit any parameter that is not marked as optional.</P>
<P>This notation uses the NULL qualifier to indicate parameters whose values may be specified as NULL in an export method call. A NULL (unassigned) value for a parameter is specified by an &lt;IPARAMVALUE&gt; element with no subelement. For parameters which do not possess the NULL qualifier, the CIM Client MUST specify a value for the parameter by including a suitable subelement for the &lt;IPARAMVALUE&gt; element for that parameter.</P>
<P>All parameters MUST be named uniquely, and MUST correspond to a valid parameter name for that method as described by this specification. The order of the parameters is not significant.</P>
<P>The non-NULL values of export method parameters or return values that are modeled as standard CIM types (such as string and boolean, or arrays thereof) are represented as follows:</P>

<UL>
<LI>Simple values MUST be represented using the &lt;VALUE&gt; subelement within an &lt;IPARAMETER&gt; element (for export method parameters) or within an &lt;IRETURNVALUE&gt; element (for export method return values). </LI>
<LI>Array values MUST be represented using the &lt;VALUE.ARRAY&gt; subelement within an &lt;IPARAMETER&gt; element (for export method parameters) or within an &lt;IRETURNVALUE&gt; element (for export method return values).</LI></UL>

<P>The following table describes how each of the pseudo-types used by the export methods MUST be mapped to an XML element described in [2] in the context of both a parameter value (subelement of &lt;IPARAMVALUE&gt;) and a return value (subelement of &lt;IRETURNVALUE&gt;).</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=598>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">Type</STRONG></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">XML Element</STRONG></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P>&lt;object&gt;</FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>(VALUE.OBJECT|VALUE.OBJECTWITHLOCALPATH|VALUE.OBJECTWITHPATH)</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P>&lt;class&gt;</FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>CLASS</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P>&lt;instance&gt;</FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>INSTANCE</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P>&lt;className&gt;</FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>CLASSNAME</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P>&lt;namedInstance&gt;</FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>VALUE.NAMEDINSTANCE</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P>&lt;instanceName&gt;</FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>INSTANCENAME</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P>&lt;objectWithPath&gt;</FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>VALUE.OBJECTWITHPATH</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P>&lt;objectName&gt;</FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>(CLASSNAME|INSTANCENAME)</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P>&lt;propertyValue&gt;</FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>(VALUE|VALUE.ARRAY|VALUE.REFERENCE)</FONT></TD>
</TR>
<TR><TD WIDTH="17%" VALIGN="MIDDLE">
<FONT SIZE=2><P>&lt;qualifierDecl&gt;</FONT></TD>
<TD WIDTH="83%" VALIGN="MIDDLE">
<FONT SIZE=2><P>QUALIFIER.DECLARATION</FONT></TD>
</TR>
</TABLE>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755840">2.4.2.1. ExportIndication</A></P>
</B></FONT><P>This operation is used to export a single CIM Indication to the destination CIM Listener. </P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" WIDTH=241>
<TR><TD VALIGN="MIDDLE">
<FONT FACE="Verdana"><STRONG><P> ExportIndication</FONT></STRONG></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P> void <STRONG>ExportIndication</STRONG> (<BR>
        [IN] <A HREF="#sec_definstance">&lt;instance&gt;</A> NewIndication<BR>
 )</TD>
</TR>
</TABLE>

<P>The <FONT FACE="Courier New">NewIndication</FONT> input parameter defines the Indication to be exported. The proposed definition SHOULD be a correct instance definition for the underlying CIM Indication Class according to the CIM specification [1].</P>
<P>If unsuccessful, one of the following status codes MUST be returned by this method, where the first applicable error in the list (starting with the first element of the list, and working down) is the error returned. Any additional method-specific interpretation of the error in is given in parentheses.</P>

<UL>
<LI>CIM_ERR_ACCESS_DENIED </LI>
<LI>CIM_ERR_NOT_SUPPORTED </LI>
<LI>CIM_ERR_INVALID_PARAMETER (including missing, duplicate, unrecognized or otherwise incorrect parameters) </LI>
<LI>CIM_ERR_INVALID_CLASS (the CIM Class of which this is to be a new Instance does not exist) </LI>
<LI>CIM_ERR_FAILED (some other unspecified error occurred)</LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_2.4.3._Functional_Profiles"><A NAME="_Toc520755841"></A>2.4.3. Functional Profiles</A></P>
</B></FONT><P>This section partitions the export methods into functional groups for the purpose of establishing conformance.</P>
<P>Support for a particular group does <EM>not</EM> guarantee that all invocations of any export method in that group will succeed.  Rather, the exclusion of a group is a declaration that any attempt to call an export method in that group will always return <A HREF="#DefCimErrNotSupported">CIM_ERR_NOT_SUPPORTED</A>.</P>
<P>Mechanisms by which a <A HREF="#DefCIMListener">CIM Listener</A> may declare the groups that it supports are defined in the section on Determining CIM Listener Capabilities.</P>
<P>If group G<SUB>1</SUB> has a dependency on functional group G<SUB>2</SUB>, then a <A HREF="#DefCIMListener">CIM Listener</A> which supports G<SUB>1</SUB> MUST also support G<SUB>2</SUB>.&nbsp; </P>
<P>The dependency relation is transitive, so that if G<SUB>1</SUB> depends on G<SUB>2</SUB>, and G<SUB>2</SUB> depends on G<SUB>3</SUB>, then G<SUB>1</SUB> depends on G<SUB>3</SUB>. It is also anti-symmetric, so that if G<SUB>1</SUB> depends on G<SUB>2</SUB> then G<SUB>2</SUB> cannot depend on G<SUB>1</SUB>.</P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#008080" CELLPADDING=5 WIDTH=571>
<TR><TD WIDTH="31%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">Functional Group</STRONG> </TD>
<TD WIDTH="25%" VALIGN="MIDDLE">
<STRONG><P ALIGN="CENTER">Dependency</STRONG></TD>
<TD WIDTH="44%" VALIGN="TOP">
<STRONG><P ALIGN="CENTER">Method</STRONG></TD>
</TR>
<TR><TD WIDTH="31%" VALIGN="MIDDLE">
<FONT SIZE=2><P>Indication</FONT></TD>
<TD WIDTH="25%" VALIGN="MIDDLE">
<FONT SIZE=2><EM><P>none</FONT></EM></TD>
<TD WIDTH="44%" VALIGN="TOP">
<FONT SIZE=2><P>ExportIndication</FONT></TD>
</TR>
</TABLE>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=6><P><A NAME="_Toc520755842">3. <A NAME="SecEncapsulationOfCIMOperations"></A>Encapsulation of CIM  Messages</A></P>
</B></FONT><P>All CIM Message requests MUST be made using&nbsp;either an HTTP M-POST or POST message, with the preferred mechanism being the use of M-POST. The use of other HTTP Methods to invoke CIM Message requests is outside the scope of this specification.</P>
<P>All CIM Message responses are carried in the corresponding HTTP Response message to the M-POST or POST request.</P>
<P>In&nbsp;the remainder of&nbsp;this document:</P>

<UL>
<LI><A NAME="DefCIMOperationRequest"></A>the term <EM>CIM Operation Request</EM> is a convenient shorthand for an HTTP M-POST or POST request message that includes an XML entity body which defines an <A HREF="#DefOperationRequestMessage">Operation Request Message</A>, and; </LI>
<LI><A NAME="DefCIMOperationResponse"></A>the term <EM>CIM Operation Response</EM> is a convenient shorthand for an HTTP response message, issued in response to a CIM Operation Request, that includes an entity body which defines an <A HREF="#DefOperationResponseMessage">Operation&nbsp;Response Message</A>.&nbsp; </LI>
<LI>the term <EM>CIM Export Request</EM> is a convenient shorthand for an HTTP M-POST or POST request message that includes an XML entity body which defines a <A HREF="#DefCIMExportMessage">CIM Export Message</A> request, and; </LI>
<LI>the term <EM>CIM Export Response</EM> is a convenient shorthand for an HTTP response message, issued in response to a CIM Export Message request, that includes an entity body which defines a <A HREF="#DefCIMExportMessage">CIM Export Message</A> response, and;</LI>
<LI>the phrase <EM>CIM Message request</EM> is a convenient shorthand for an HTTP M-POST or POST request message that includes an XML entity body which defines either a <A HREF="#DefCIMOperationMessage">CIM Operation</A> or <A HREF="#DefCIMExportMessage">Export Message</A> request, and; </LI>
<LI>the phrase <EM>CIM Message response</EM> is a convenient shorthand for an HTTP response message, issued in response to a CIM Operation Message (or respectively, CIM Export Message) request, that includes an entity body which defines a CIM Operation Message (or respectively, CIM Export Message) response.</LI></UL>
<DIR>

<P>Note&nbsp;that an HTTP response to a CIM Request is <EM>not always</EM> a CIM Response; for example a "505 HTTP Version Not Supported" response would not be a CIM Response.</P></DIR>

<P>Where it is necessary to distinguish requirements between the use of M-POST and POST, these will be explicitly defined.</P>
<P>The extension mechanism used in this document is based on the HTTP Extension Framework [9]. A goal of the framework is to allow a decentralized naming mechanism whereby parties can introduce additional HTTP Headers without fear of conflicting interpretation of a given Header name.</P>
<P>It is not the intention of this document to replicate information in that document concerning the required behavior of entities that implement this framework; suffice it to say that conforming CIM implementations of this specification protocol MUST abide by all requirements in that document.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="SecCIMClientsAndServers"><A NAME="_Toc520755843">3.1. CIM Clients, CIM Servers</A> and CIM Listeners</A></P>
</B></FONT><P>A <A NAME="DefCIMApplication"><I>CIM Product </A></I>is any product capable of supplying, consuming, or both supplying and consuming management information using the CIM Schema.  In particular, CIM Clients, CIM Servers and CIM Listeners are examples of CIM Products.</P>

<UL>
<LI>A <A NAME="DefCIMClient"><EM>CIM Client</EM> </A>is a client application that issues CIM Message requests and receives and processes CIM Message responses.</LI>
<LI><A NAME="DefCIMServer"></A>A <EM>CIM Server</EM> is a server application that receives and processes CIM Operation Message requests and issues CIM Operation Message responses.</LI>
<LI><A NAME="DefCIMListener"></A>A <I>CIM Listener</I> is a server application that receives and processes CIM Export Message requests and issues CIM Export Message responses.</LI></UL>

<P>A CIM Product MAY be capable of acting as any combination of CIM Client, CIM Server and CIM Listener.  For example, a CIM Server that supports Indication Subscription and Generation would act as a CIM Client when delivering an Indication, via ExportIndication, to a CIM Listener.</P>
<P>Throughout this document the terms CIM Client, CIM Server, CIM Listener and CIM Product are used as convenient shorthand to refer to the subset of CIM Products that conform to this specification.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="SecUseOfMPOSTAndPOST"><A NAME="_Toc520755844">3.2. Use of M-POST and POST</A></A></P>
</B></FONT><P>A <A HREF="#DefCIMClient">CIM client</A> attempting a CIM Message invocation conformant to this specification MUST first try the invocation using the HTTP method "M-POST". </P>

<UL>
<LI>If the M-POST invocation fails with an HTTP status of "501 Not Implemented" or "510 Not Extended", then the client SHOULD retry the request using the HTTP method &quot;POST&quot; with the appropriate modifications (described in <A HREF="#SecNamingOfExtensionHeaders">Naming of Extension Headers</A>).&nbsp; The intention is that POST should only be used as a fallback mechanism in environments where firewalls or proxies do not yet have the ability to understand M-POST requests. </LI>
<LI>If the M-POST invocation fails with an HTTP status of "405 Method Not Allowed", then the client SHOULD fail the request. </LI>
<LI>For all other status codes the client MUST act in accordance with standard HTTP [6,7].</LI></UL>

<P>This extended invocation mechanism allows Internet proxies &amp; firewalls greater filtering control and administrative flexibility over CIM Message invocations.</P>
<P>In the case of a client receiving a 501 or 510 status in response to an M-POST request, then in subsequent invocations to the same HTTP server, the client&nbsp;MAY omit the attempt at M-POST invocations for a suitable period, thus avoiding the need for an extra round trip on each and every method invocation.&nbsp; The details of the caching strategy employed by the client are outside of the scope of this specification.</P>
<P>Given this algorithm, firewalls can if they wish effectively force the use of M-POST by prohibiting POST invocations containing the Extension Header <A HREF="#SecCIMOperation">CIMOperation</A> for CIM Operation Messages and the Extension Header CIMExport for CIM Export Messages.</P>
<B><FONT SIZE=4><P><A NAME="SecUseOfTheExtHeader"><A NAME="_Toc520755845">3.2.1. Use of the Ext Header</A></A></P>
</B></FONT><P>If a <A HREF="#DefCIMServer">CIM Server</A> or <A HREF="#DefCIMListener">CIM Listener</A> receives a valid M-POST request, and has fulfilled all mandatory extension header declarations in the request, then it MUST include in the response the "Ext" header defined by [9].&nbsp; This must be protected by the appropriate <A HREF="#SecCache-Control">Cache-Control</A> directive.</P>
<P><A HREF="#top">Back to contents
<B><FONT SIZE=5><P><A NAME="SecExtensionHeadersDefinedForCIM"></P></B></FONT></A><A NAME="_Toc520755846"><B><FONT SIZE=5>3.3. Extension Headers Defined for CIM Message Requests and Responses</A></A></P>
</B></FONT><P>A CIM Message contains exactly one of the following: CIM Operation Request, CIM Operation Response, CIM Export Request or CIM Export Response.  This section describes the extension headers used to specify CIM Message semantics in the HTTP Header of an M-POST or POST message. Any <A HREF="#DefCIMOperationRequest">CIM Operation Request</A> or <A HREF="#DefCIMOperationResponse">CIM Operation Response</A> MUST, and only CIM Operation Requests and Responses MAY, include the following CIM extension header:</P>

<UL>
<LI><A HREF="#SecCIMOperation">CIMOperation</A> </LI></UL>

<P>Any <A HREF="#DefCIMOperationRequest">CIM Operation Request</A> MUST, and only CIM Operation Requests MAY, include one and only one of the&nbsp;following CIM extension header sets:</P>

<UL>
<LI><A HREF="#SecCIMMethod">CIMMethod</A> and <A HREF="#SecCIMObject">CIMObject</A>, or </LI></UL>

<P><A HREF="#SecCIMBatch">CIMBatch</A></P>
<P>Any CIM Export Request or CIM Export Response MUST, and only CIM Export Requests and Responses MAY, include the following CIM extension header:</P>

<UL>
<LI><A HREF="#_3.3.5._CIMExport">CIMExport</A></LI></UL>

<P>Any CIM Export Request MUST, and only CIM Export Requests MAY, include one and only one of the following CIM extension headers:</P>

<UL>
<LI><A HREF="#_3.3.9._CIMExportMethod">CIMExportMethod</A></LI>
<LI><A HREF="#_3.3.10._CIMExportBatch">CIMExportBatch</A></LI></UL>

<P>An HTTP response with an error status code to a CIM Message MAY include the following CIM extension header:</P>

<UL>
<LI><A HREF="#SecCIMError">CIMError</A></LI></UL>

<P>All&nbsp;CIM Messages MAY include the following CIM extension header:</P>

<UL>
<LI><A HREF="#SecCIMProtocolVersion">CIMProtocolVersion</A></LI></UL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="SecNamingOfExtensionHeaders"><A NAME="_Toc520755847">3.3.1. Naming of Extension Headers</A></A></P>
</B></FONT><P>In M-POST request messages (and their responses), CIM extension headers MUST be declared using the name space prefix allotted by the "Man" extension header (in accordance with [9]) that refers to the name space "<A HREF="http://www.dmtf.org/cim/mapping/http/v1.0peration">http://www.dmtf.org/cim/mapping/http/v1.0peration</A>". </P>
<P>The full format of the "Man" header declaration for this specification is:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=470>
<TR><TD VALIGN="MIDDLE">
<P>Man&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "Man" ":" "<A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A>"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";" "ns" "=" header-prefix</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>header-prefix&nbsp;&nbsp;&nbsp;&nbsp;= 2*DIGIT</TD>
</TR>
</TABLE>

<P>This header-prefix SHOULD be generated at random on a per-HTTP message basis, and SHOULD NOT necessarily be a specific number.</P>
<P>In accordance with [9], all POST request messages (and their responses) MUST NOT include such a mandatory extension declaration. In POST request messages (and their responses), name space prefixes MUST NOT be used.</P>
<STRONG><P>Example 1</STRONG> </P>
<P>Using M-POST:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=437>
<TR><TD VALIGN="MIDDLE">
<P>M-POST /cimom HTTP/1.1</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org./cim/mapping/http/v1.0peration">http://www.dmtf.org./cim/mapping/http/v1.0peration</A> ; ns=23</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>23-CIMOperation: MethodCall</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>...</TD>
</TR>
</TABLE>

<STRONG><P>Example 2</STRONG> </P>
<P>Using POST:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=187>
<TR><TD VALIGN="MIDDLE">
<P>POST /cimom HTTP/1.1</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>CIMOperation: MethodCall</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>...</TD>
</TR>
</TABLE>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755848">3.3.2. <A NAME="SecEncodingOfCIMNamesWithinHTTPHeaders"></A>Encoding of CIM Element Names within HTTP Headers</A></P>
</B></FONT><P><A NAME="DefCIMIdentifier"></A>CIM element (class, property, qualifier, method or method parameter) names are&nbsp;natively Unicode, and may use UCS-2 characters unsuitable for inclusion within an HTTP message header. In order to&nbsp;encode CIM element names represented in Unicode to values within HTTP Headers, the following mapping MUST be used:</P>

<UL>
<LI>Encode the full Unicode CIM element name using UTF-8 [15], and then; </LI>
<LI>Apply the standard URI [16, section 2] escaping mechanism to the resulting string to escape any characters&nbsp;that&nbsp;are unsafe within an HTTP Header, using the ""%" HEX HEX" convention).</LI></UL>

<P>The token <STRONG>CIMIdentifier</STRONG>, where used in this document, represents a CIM element name to which this transformation has been applied.</P>
<P>One characteristic of this mapping is that CIM elements that are named with an ASCII representation will appear in ASCII in the resultant URL.</P>
<STRONG><P>Examples</STRONG> </P>
<TABLE BORDER CELLSPACING=1 BORDERCOLOR="#808080" CELLPADDING=10 WIDTH=602>
<TR><TD VALIGN="MIDDLE">
<P>CIM_LogicalElement is unchanged under this transformation</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>The class named using the UCS-2 sequence representing the Hangul characters for the Korean&nbsp;word "hangugo" (D55C, AD6D, C5B4) becomes </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %ED%95%9C%EA%B5%AD%EC%96%B4=10</P>
<P>after UTF-8 transformation and escaping all characters with their % HEX HEX equivalent. </TD>
</TR>
</TABLE>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755849">3.3.3. <A NAME="SecEncodingOfCIMObjectPathsWithinHTTPHea"></A>Encoding of CIM Object Paths within HTTP Headers</A></P>
</B></FONT><P>This section describes the mapping that MUST be applied in order to represent CIM object paths, as described within an <A HREF="#DefOperationRequestMessage">Operation Request Message</A> using the &lt;LOCALNAMESPACEPATH&gt;, &lt;LOCALCLASSPATH&gt; or &lt;LOCALINSTANCEPATH&gt; elements,&nbsp;in&nbsp;a format that is safe for representation within an HTTP header. </P>
<P>If the element to be transformed is a &lt;LOCALNAMESPACEPATH&gt; element, the algorithm is as follows:</P>
<OL>

<LI>For the first NAMESPACE subelement, output the textual content of that element. </LI>
<LI>For each subsequent NAMESPACE subelement, output the forward slash character (/) followed by the textual content of that NAMESPACE element. </LI></OL>

<P>If the element to be transformed is a &lt;LOCALCLASSPATH&gt; element, the algorithm is as follows:</P>
<OL>

<LI>Transform the&nbsp;&lt;LOCALNAMESPACEPATH&gt; subelement using the rules described above, and output a colon character (:). </LI>
<LI>Output the value of the <FONT FACE="Courier New">NAME</FONT> attribute of the &lt;CLASSNAME&gt; subelement.</LI></OL>

<P>If the element to be transformed is an &lt;LOCALINSTANCEPATH&gt; element, the algorithm is as follows:</P>
<OL>

<LI>Transform the&nbsp;&lt;LOCALNAMESPACEPATH&gt; subelement using the rules described above, and output a colon character (:). </LI>
<LI>Output the value of the <FONT FACE="Courier New">CLASSNAME</FONT> attribute of the &lt;INSTANCENAME&gt; subelement. </LI>
<LI>If there is at least one &lt;KEYBINDING&gt; subelement under the &lt;INSTANCENAME&gt; subelement, then for each&nbsp;such subelement: </LI>

<UL>
<LI>Output a period character (.) if this is the first &lt;KEYBINDING&gt; subelement, and a comma (,) otherwise. </LI>
<LI>Output the value of the <FONT FACE="Courier New">NAME</FONT> attribute, followed by an equals character (=). </LI>
<LI>If there is&nbsp;a&nbsp;&lt;KEYVALUE&gt; subelement, output the textual element content of that element, subject to the following transformation: </LI>

<UL>
<LI>If the <FONT FACE="Courier New">VALUETYPE</FONT> attribute is&nbsp;numeric or boolean, the output&nbsp;is identical to the content of the element. </LI>
<LI>If the <FONT FACE="Courier New">VALUETYPE</FONT> attribute is string, the output is obtained by enclosing the content of the element in double quote (") characters, and escaping any double quote characters within the value with a preceding backslash&nbsp;(\) character.&nbsp;</LI></UL>

<LI>If there is&nbsp;a&nbsp;&lt;VALUE.REFERENCE&gt; subelement </LI>

<UL>
<LI>output a double quote character ("). </LI>
<LI>apply the process recursively to the &lt;CLASSPATH&gt; or &lt;INSTANCEPATH&gt; subelement of the &lt;VALUE.REFERENCE&gt; element, escaping any double quote character or backslash character thereby generated with a preceding backslash (\) character. </LI>
<LI>output a closing double quote character (").</LI></UL>
</UL>

<LI>If there is no &lt;KEYBINDING&gt; subelement but there is a &lt;KEYVALUE&gt; or &lt;VALUE.REFERENCE&gt; subelement under the &lt;INSTANCENAME&gt; subelement, then: </LI>

<UL>
<LI>Output an equals character (=). </LI>
<LI>Output the transformed&nbsp;value of the &lt;KEYVALUE&gt; or &lt;VALUE.REFERENCE&gt;, using the same rules as described above.</LI></UL>

<LI>If there were no &lt;KEYBINDING&gt; subelements, or no &lt;KEYVALUE&gt; or &lt;VALUE.REFERENCE&gt; subelement, under the &lt;INSTANCENAME&gt; subelement then output the string "=@" to indicate a singleton instance.</LI></OL>

<P>Finally, after applying the above rules to the &lt;LOCALNAMESPACEPATH&gt;, &lt;LOCALCLASSPATH&gt; or &lt;LOCALINSTANCEPATH&gt; element, transform the entire output string into URI-safe format as follows:&nbsp;</P>
<OL>

<LI>Encode the&nbsp;string using UTF-8 [15] if it is not already in this format, and then; </LI>
<LI>Apply the standard URI [16, section 2] escaping mechanism to the resulting string to escape any characters&nbsp;that&nbsp;are unsafe within an HTTP Header, using the ""%" HEX HEX" convention).</LI></OL>

<P><A NAME="DefCIMObjectPath"></A>The token <STRONG>CIMObjectPath</STRONG>, where used in this document, represents a &lt;LOCALNAMESPACEPATH&gt;, &lt;LOCALCLASSPATH&gt; or &lt;LOCALINSTANCEPATH&gt; element to which the above transformation has been applied.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755850">3.3.4. <A NAME="SecCIMOperation"></A>CIMOperation</A></P>
</B></FONT><P>This header MUST be present in all <A HREF="#DefCIMOperationRequest">CIM Operation&nbsp;Request</A> and <A HREF="#DefCIMOperationResponse">CIM Operation Response</A> messages.&nbsp;&nbsp;It identifies the HTTP message as carrying a CIM Operation request or response.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=487>
<TR><TD VALIGN="MIDDLE">
<P>CIMOperation = "CIMOperation"&nbsp;":" ("MethodCall" | "MethodResponse")</TD>
</TR>
</TABLE>

<P>A <A HREF="#DefCIMClient">CIM Client</A> MUST include this header,&nbsp;with the value "MethodCall", in all CIM Operation Requests that it issues.&nbsp; A <A HREF="#DefCIMServer">CIM Server</A> MUST include this header in all CIM Operation Responses,&nbsp;with the value "MethodResponse", that it issues.</P>
<P>If a CIM Server receives CIM Operation request with this header, but with a missing value or a value that is not "MethodCall", then it MUST fail the request with status "400 Bad Request".&nbsp;The CIM Server&nbsp;MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <FONT FACE="Courier New">unsupported-operation</FONT>.</P>
<P>If a CIM Server receives a CIM Operation request without this header, it MUST NOT process it as if it were a CIM Operation Request.&nbsp; The status code returned by the CIM Server in response to such a request is outside of the scope of this specification.</P>
<P>If a CIM Client receives a response to a CIM Operation Request without this header (or if this header has a value which is not "MethodResponse"), it SHOULD discard the response, and take appropriate measures to publicize the fact that it has received an incorrect response.&nbsp; The details as to how this is done are outside of the scope of this specification.</P>
<P>This header affords a simple mechanism by which firewall or proxy administrators can make global administrative decisions on all CIM Operations.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_3.3.5._CIMExport"><A NAME="_Toc520755851"></A>3.3.5. CIMExport</A></P>
</B></FONT><P>This header MUST be present in all CIM Export Request and CIM Export Response messages.  It identifies the HTTP message as carrying a CIM Export method request or response.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=471>
<TR><TD VALIGN="MIDDLE">
<P>CIMExport = "CIMExport" ":" ("MethodRequest" | "MethodResponse")</TD>
</TR>
</TABLE>

<P>A <A HREF="#DefCIMClient">CIM Client</A> MUST include this header, with the value "MethodRequest", in all CIM Export Requests that it issues.  A CIM Listener MUST include this header in all CIM Export Responses, with the value "MethodResponse", that it issues.</P>
<P>If a CIM Listener receives a CIM Export request with this header, but with a missing value or a value that is not "MethodRequest", then it MUST fail the request with status "400 Bad Request".  The CIM Listener MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <I>unsupported-operation</I>.</P>
<P>If a CIM Listener receives a CIM Export request without this header, it MUST NOT process it.  The status code returned by the CIM Listener in response to such a request is outside of the scope of this specification.</P>
<P>If a CIM Client receives a response to a CIM Export Request without this header (or if this header has a value which is not "MethodResponse&quot;), it SHOULD discard the response, and take appropriate measures to publicize the fact that it has received an incorrect response.  The details as to how this is done are outside of the scope of this specification.</P>
<P>This header affords a simple mechanism by which firewall or proxy administrators can make global administrative decisions on all CIM Exports.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_3.3.6._CIMProtocolVersion"><A NAME="_Toc520755852"></A>3.3.6. <A NAME="SecCIMProtocolVersion"></A>CIMProtocolVersion</A></P>
</B></FONT><P>This header MAY be present in any CIM Message.&nbsp; The header identifies the version of the CIM&nbsp;mapping onto HTTP being used by the sending entity.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=478>
<TR><TD VALIGN="MIDDLE">
<P>CIMProtocolVersion = "CIMProtocolVersion" ":" 1*DIGIT "." 1*DIGIT </TD>
</TR>
</TABLE>

<P>If the header is omitted, then a value of 1.0&nbsp;MUST be assumed.</P>
<P>The major and minor numbers MUST be treated as&nbsp;independent integers which MAY be incremented higher than a single digit.&nbsp; Therefore version x<SUB>1</SUB>.y<SUB>1</SUB> is lower than x<SUB>2</SUB>.y<SUB>2</SUB> if and only if:</P>

<UL>
<LI>x<SUB>1</SUB> is less than x<SUB>2</SUB>, or; </LI>
<LI>x<SUB>1</SUB> equals x<SUB>2</SUB>, and y<SUB>1</SUB> is less than y<SUB>2</LI></UL>

</SUB><P>If a <A HREF="#DefCIMServer">CIM Server</A> or <A HREF="#DefCIMListener">CIM Listener</A> receives  a CIM Message request for which the value of this header indicates a version that it does not support, then it&nbsp;MUST respond in the manner defined in the section on <A HREF="#SecErrors">Errors</A>.   Otherwise, if a CIM Server or CIM Listener receives a CIM Message request for which the value of this header does not match the value of the <FONT FACE="Courier New">PROTOCOLVERSION</FONT> attribute&nbsp;of the &lt;MESSAGE&gt; element within the CIM Message request, then it MUST fail the request and return a status of "400 Bad Request" (and&nbsp;MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <FONT FACE="Courier New">unsupported-protocol-version</FONT>), subject to the considerations specified in <A HREF="#SecErrors">Errors</A>.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755853">3.3.7. <A NAME="SecCIMMethod"></A>CIMMethod</A></P>
</B></FONT><P>This header MUST be present in any CIM Operation Request message that contains a Simple Operation Request.&nbsp; </P>
<P>It MUST NOT be present in any CIM Operation Response message, nor in any CIM Operation Request message that is not a Simple Operation Request. It MUST NOT be present in any CIM Export Request or Response message.</P>
<P>The header identifies the name of the&nbsp;CIM&nbsp;method to be invoked, encoded in an <A HREF="#SecEncodingOfCIMNamesWithinHTTPHeaders">HTTP-safe representation</A>.&nbsp; Firewalls and proxies&nbsp;may use this header to carry out routing and forwarding decisions based on the CIM method to be invoked.</P>
<P>The name of the CIM method within a Simple Operation Request is defined to be the value of the <FONT FACE="Courier New">NAME</FONT> attribute of the &lt;METHODCALL&gt; or &lt;IMETHODCALL&gt; element.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=315>
<TR><TD VALIGN="MIDDLE">
<P>CIMMethod&nbsp; = "CIMMethod" ":" MethodName</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>MethodName = <A HREF="#DefCIMIdentifier">CIMIdentifier</A> </TD>
</TR>
</TABLE>

<P>If a&nbsp;<A HREF="#DefCIMServer">CIM Server</A>&nbsp;receives a CIM Operation Request for which either:</P>

<UL>
<LI>The CIMMethod header is present but has an invalid value, or; </LI>
<LI>The CIMMethod header is not present but the Operation Request&nbsp;Message&nbsp;is a Simple Operation Request, or; </LI>
<LI>The CIMMethod header is present but the Operation Request&nbsp;Message&nbsp;is not a&nbsp;Simple Operation Request, or; </LI>
<LI>The CIMMethod header is present, the Operation Request Message is a Simple Operation Request, but the CIMIdentifier value (when unencoded) does not match the unique method name within the Simple Operation Request,</LI></UL>

<P>then it MUST fail the request and return a status of "400 Bad Request" (and&nbsp;MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <FONT FACE="Courier New">header-mismatch</FONT>),&nbsp;subject to the considerations specified in <A HREF="#SecErrors">Errors</A>.</P>
<P>Note that this verification provides a <EM>basic </EM>level of assurance that any intermediate firewall or proxy was not acting on misleading information when it decided to forward the request based on the content of the CIMMethod header.&nbsp; Additional securing of HTTP messages against modification in transit (such as the encryption of the payload or appending of a digital signature thereto) would be required to provide a higher degree of integrity.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755854">3.3.8.<A NAME="SecCIMObject"></A> CIMObject</A></P>
</B></FONT><P>This header MUST be present in any <A HREF="#DefCIMOperationRequest">CIM Operation Request</A> message that contains a <A HREF="#DefSimpleOperationRequest">Simple Operation Request</A>.&nbsp; </P>
<P>It MUST NOT be present in any <A HREF="#DefCIMOperationResponse">CIM Operation Response</A> message, nor in any <A HREF="#DefCIMOperationRequest">CIM Operation Request</A> message that that is not a Simple Operation Request. It MUST NOT be present in any CIM Export Request or Response message.</P>
<P>The header identifies the&nbsp;CIM&nbsp;object (which MUST be a Class or Instance for an <A HREF="#DefExtrinsic">extrinsic</A> method, or a Namespace for an <A HREF="#DefIntrinsic">intrinsic</A> method) on which the method is to be invoked, using a CIM object path encoded in an <A HREF="#SecEncodingOfCIMObjectPathsWithinHTTPHea">HTTP-safe representation</A>.&nbsp; Firewalls and proxies&nbsp;may use this header to carry out routing and forwarding decisions based on the CIM object that is the target of a method invocation.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=284>
<TR><TD VALIGN="MIDDLE">
<P>CIMObject&nbsp; = "CIMObject" ":"&nbsp;ObjectPath</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>ObjectPath = <A HREF="#DefCIMObjectPath">CIMObjectPath</A></TD>
</TR>
</TABLE>

<P>The ObjectPath value is constructed by applying the algorithm defined in&nbsp;<A HREF="#SecEncodingOfCIMObjectPathsWithinHTTPHea">Encoding CIM Object Paths</A> to either:</P>

<UL>
<LI>The &lt;LOCALNAMESPACEPATH&gt; subelement of the &lt;IMETHODCALL&gt; element, or; </LI>
<LI>The &lt;LOCALCLASSPATH&gt; or &lt;LOCALINSTANCEPATH&gt; subelement of the &lt;METHODCALL&gt; element</LI></UL>

<P>within the CIM Operation Request.</P>
<P>If a&nbsp;<A HREF="#DefCIMServer">CIM Server</A>&nbsp;receives a CIM Operation Request for which either:</P>

<UL>
<LI>The CIMObject header is present but has an invalid value, or: </LI>
<LI>The CIMObject header is not present but the Operation Request&nbsp;Message&nbsp;is a <A HREF="#DefSimpleOperationRequest">Simple Operation Request</A>, or; </LI>
<LI>The CIMObject header is present but the Operation Request&nbsp;Message&nbsp;is not a&nbsp;Simple Operation Request, or; </LI>
<LI>The CIMObject header is present,&nbsp;Operation Request Message is&nbsp;a Simple Operation Request, but the&nbsp;ObjectPath value does not match (where <EM>match </EM>is defined in the section on <A HREF="#SecEncodingOfCIMObjectPathsWithinHTTPHea">Encoding CIM Object Paths</A>) the Operation Request Message,</LI></UL>

<P>then it MUST fail the request and return a status of "400 Bad Request" (and&nbsp;MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <FONT FACE="Courier New">header-mismatch</FONT>),&nbsp;subject to the considerations specified in <A HREF="#SecErrors">Errors</A>.</P>
<P>Note that this verification provides a <EM>basic </EM>level of assurance that any intermediate firewall or proxy was not acting on misleading information when it decided to forward the request based on the content of the CIMObject header.&nbsp; Additional securing of HTTP messages against modification in transit (such as the encryption of the payload or appending of a digital signature thereto) would be required to provide a higher degree of integrity.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_3.3.9._CIMExportMethod"><A NAME="_Toc520755855"></A>3.3.9. CIMExportMethod</A></P>
</B></FONT><P>This header MUST be present in any CIM Export Request message that contains a Simple Export Request.&nbsp; </P>
<P>It MUST NOT be present in any CIM Export Response message, nor in any CIM Export Request message that is not a Simple Export Request. It MUST NOT be present in any CIM Operation Request or Response message.</P>
<P>The header identifies the name of the&nbsp;CIM&nbsp;export method to be invoked, encoded in an <A HREF="#SecEncodingOfCIMNamesWithinHTTPHeaders">HTTP-safe representation</A>.&nbsp; Firewalls and proxies&nbsp;may use this header to carry out routing and forwarding decisions based on the CIM export method to be invoked.</P>
<P>The name of the CIM export method within a Simple Export Request is defined to be the value of the <FONT FACE="Courier New">NAME</FONT> attribute of the &lt;EXPMETHODCALL&gt; element.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=446>
<TR><TD VALIGN="MIDDLE">
<P>CIMExportMethod&nbsp; = "CIMExportMethod" ":" ExportMethodName</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>ExportMethodName = <A HREF="#DefCIMIdentifier">CIMIdentifier</A> </TD>
</TR>
</TABLE>

<P>If a&nbsp;<A HREF="#DefCIMListener">CIM Listener&nbsp;</A>receives a CIM Export Request for which either:</P>

<UL>
<LI>The CIMExportMethod header is present but has an invalid value, or; </LI>
<LI>The CIMExportMethod header is not present but the Export Request&nbsp;Message&nbsp;is a Simple Export Request, or; </LI>
<LI>The CIMExportMethod header is present but the Export Request&nbsp;Message&nbsp;is not a&nbsp;Simple Export Request, or; </LI>
<LI>The CIMExportMethod header is present, the Export Request Message is a Simple Export Request, but the CIMIdentifier value (when unencoded) does not match the unique method name within the Simple Export Request,</LI></UL>

<P>then it MUST fail the request and return a status of "400 Bad Request" (and&nbsp;MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <FONT FACE="Courier New">header-mismatch</FONT>),&nbsp;subject to the considerations specified in <A HREF="#SecErrors">Errors</A>.</P>
<P>Note that this verification provides a <EM>basic </EM>level of assurance that any intermediate firewall or proxy was not acting on misleading information when it decided to forward the request based on the content of the CIMExportMethod header.&nbsp; Additional securing of HTTP messages against modification in transit (such as the encryption of the payload or appending of a digital signature thereto) would be required to provide a higher degree of integrity.</P>
<P><A HREF="#top">Back to contents</A></P>
<P>&nbsp;</P>
<B><FONT SIZE=4><P><A NAME="SecCIMBatch"><A NAME="_Toc520755856">3.3.10. CIMBatch</A></A></P>
</B></FONT><P>This header MUST be present in any <A HREF="#DefCIMOperationRequest">CIM Operation Request</A> message that contains a <A HREF="#DefMultipleOperationRequest">Multiple Operation Request</A>.&nbsp; </P>
<P>It MUST NOT be present in any <A HREF="#DefCIMOperationResponse">CIM Operation Response</A> message, nor in any <A HREF="#DefCIMOperationRequest">CIM Operation Request</A> message that is not a Multiple Operation Request.  It MUST NOT be present in any CIM Export Request or Response message.</P>
<P>The header identifies the encapsulated Operation Request Message as containing multiple method invocations.&nbsp; Firewalls and proxies&nbsp;may use this header to carry out routing and forwarding decisions for batched CIM method invocations.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=198>
<TR><TD VALIGN="MIDDLE">
<P>CIMBatch = "CIMBatch" ":"&nbsp; </TD>
</TR>
</TABLE>

<P>If a&nbsp;<A HREF="#DefCIMServer">CIM Server</A>&nbsp;receives a CIM Operation Request for which either:</P>

<UL>
<LI>The CIMBatch header is present but has an invalid value, or: </LI>
<LI>The CIMBatch header is not present but the Operation Request&nbsp;Message&nbsp;is a Multiple Operation Request, or; </LI>
<LI>The CIMBatch header is present but the Operation Request Message is not a&nbsp;Multiple Operation Request,</LI></UL>

<P>then it MUST fail the request and return a status of "400 Bad Request" (and&nbsp;MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <FONT FACE="Courier New">header-mismatch</FONT>),&nbsp;subject to the considerations specified in <A HREF="#SecErrors">Errors</A>.</P>
<P>Note that this verification provides a <EM>basic </EM>level of assurance that any intermediate firewall or proxy was not acting on misleading information when it decided to forward the request based on the content of the CIMBatch header.&nbsp; Additional securing of HTTP messages against modification in transit (such as the encryption of the payload or appending of a digital signature thereto) would be required to provide a higher degree of integrity.</P>
<P>If a CIM Server receives a CIM Operation Request&nbsp;for which the CIMBatch header is present, but the Server does not support&nbsp;Multiple Operations, then&nbsp;it MUST fail the request and return a status of "501 Not Implemented".&nbsp; Firewalls or Proxies MAY also employ this mechanism to compel a <A HREF="#DefCIMClient">CIM Client</A> to use Simple Operation Requests rather than Multiple Operation Requests.</P>
<P>A CIM Client that receives a response of "501 Not Implemented" to a Multiple Operation Request SHOULD resubmit that request as a series of Simple Operation Requests.&nbsp;</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_3.3.10._CIMExportBatch"><A NAME="_Toc520755857"></A>3.3.11. CIMExportBatch</A></P>
</B></FONT><P>This header MUST be present in any CIM Export Request message that contains a Multiple Export Request.</P>
<P>It MUST NOT be present in any CIM Operation Request or Response message.  It MUST NOT be present in any CIM Export Response Message, nor in any CIM Export Request message that is not a Multiple Export Request.</P>
<P>The header identifies the encapsulated Export Request Message as containing multiple export method invocations. Firewalls and proxies may use this header to carry out routing and forwarding decisions for batched CIM Export method invocations.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=285>
<TR><TD VALIGN="MIDDLE">
<P>CIMExportBatch = "CIMExportBatch" ":"&nbsp; </TD>
</TR>
</TABLE>

<P>If a CIM Listener receives a CIM Export Request for which either:</P>

<UL>
<LI>The CIMExportBatch header is present but has an invalid value, or: </LI>
<LI>The CIMExportBatch header is not present but the Export Request&nbsp;Message&nbsp;is a Multiple Export Request, or; </LI>
<LI>The CIMExportBatch header is present but the Export Request Message is not a&nbsp;Multiple Export Request,</LI></UL>

<P>then it MUST fail the request and return a status of "400 Bad Request" (and&nbsp;MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <FONT FACE="Courier New">header-mismatch</FONT>), subject to the considerations specified in <A HREF="#SecErrors">Errors</A>.</P>
<P>Note that this verification provides a <EM>basic </EM>level of assurance that any intermediate firewall or proxy was not acting on misleading information when it decided to forward the request based on the content of the CIMExportBatch header. Additional securing of HTTP messages against modification in transit (such as the encryption of the payload or appending of a digital signature thereto) would be required to provide a higher degree of integrity.</P>
<P>If a CIM Listener receives a CIM Export Request for which the CIMExportBatch header is present, but the CIM Listener does not support Multiple Exports, then it MUST fail the request and return a status of "501 Not Implemented".&nbsp; Firewalls or Proxies MAY also employ this mechanism to compel a <A HREF="#DefCIMClient">CIM Client</A> to use Simple Export Requests rather than Multiple Export Requests.</P>
<P>A CIM Client that receives a response of "501 Not Implemented" to a Multiple Export Request SHOULD resubmit that request as a series of Simple Export Requests.&nbsp;</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="SecCIMError"><A NAME="_Toc520755858">3.3.12.</A> CIMError</A></P>
</B></FONT><P>This header&nbsp;MAY be present in any HTTP response to a <A HREF="#DefCIMMessagerequest">CIM Message request</A> that is not a <A HREF="#DefCIMMessageresponse">CIM Message response</A>.</P>
<P>It MUST NOT be present in any CIM Message response, nor in any CIM Message request.</P>
<P>The header provides further CIM specific diagnostic information in the case that the <A HREF="#DefCIMServer">CIM Server</A> or <A HREF="#DefCIMListener">CIM Listener</A> encountered a fundamental error during processing of the CIM request, and is intended to assist Clients to further disambiguate errors that have the same HTTP status code.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=295>
<TR><TD VALIGN="MIDDLE">
<P>CIMError&nbsp; = "CIMError" ":" cim-error</P>
<P>cim-error = "unsupported-protocol-version" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "multiple-requests-unsupported" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"unsupported-cim-version" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "unsupported-dtd-version" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "request-not-valid" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"request-not-well-formed" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "request-not-loosely-valid" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "header-mismatch" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"unsupported-operation<FONT FACE="Courier New">"</FONT></TD>
</TR>
</TABLE>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=6><P><A NAME="SecHTTPRequirementsAndUsage"><A NAME="_Toc520755859">4. HTTP Requirements &amp; Usage</A></A></P>
</FONT><FONT SIZE=5><P><A NAME="SecHTTPSupport"><A NAME="_Toc520755860">4.1. HTTP Support</A></A></P>
</B></FONT><P>It is RECOMMENDED that <A HREF="#DefCIMClient">CIM Clients</A>, <A HREF="#DefCIMServer">CIM Servers</A> and <A HREF="#DefCIMListener">CIM Listeners</A> support HTTP/1.1 [7].&nbsp; CIM Clients, CIM Servers and CIM Listeners MAY support HTTP/1.0 instead.&nbsp; CIM Clients, CIM Servers and CIM Listeners MUST NOT be limited to any version of HTTP earlier than 1.0.</P>
<P>It should be noted that the current revised draft [10] of RFC 2068 clarifies and corrects ambiguities and errors in that RFC.&nbsp; </P>
<P>CIM Clients, CIM Servers and CIM Listeners that make use of extension headers as defined in this specification MUST conform to the requirements defined in [9] for their use.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="SecUseOfStandardHeaders"><A NAME="_Toc520755861">4.2. Use of Standard Headers</A></A></P>
</B></FONT><P>Unless otherwise stated herein, <A HREF="#DefCIMClient">CIM Clients</A>, <A HREF="#DefCIMServer">CIM Servers</A> and <A HREF="#DefCIMListener">CIM Listeners</A> MUST comply with the requirements on the use of headers described in [6,7]. This section defines only any <EM>additional </EM>requirements on CIM Clients, CIM Servers and CIM Listeners with respect to the use of standard HTTP headers [6,7] within a CIM Message.</P>
<P>Note that headers defined in RFC 2068 [7] but deprecated from [10] (e.g. Public, Content-Base)&nbsp;SHOULD NOT be used by CIM Clients, CIM Servers and CIM Listeners.</P>
<B><FONT SIZE=4><P><A NAME="SecAccept"><A NAME="_Toc520755862">4.2.1. Accept</A></A></P>
</B></FONT><P>If&nbsp;a <A HREF="#DefCIMClient">CIM client</A> includes an Accept header in a request, it MUST specify a value which allows the Server to return an entity body of "text/xml" or "application/xml" in the response.</P>
<P>A <A HREF="#DefCIMServer">CIM server</A> or <A HREF="#DefCIMListener">CIM Listener</A> MUST accept any value for this header which states that "text/xml" or "application/xml" is an acceptable type for an response entity.&nbsp; A CIM Server or CIM Listener SHOULD return "406 Not Acceptable" if the Accept header indicates that neither of these content types are acceptable.</P>
<P>If a CIM server or CIM Listener decides to accept a request to return an entity of type other than "text/xml" or "application/xml", the nature of the response is outside of the domain of this specification.</P>
<P><A HREF="#top">Back to contents</A> </P>
<B><FONT SIZE=4><P><A NAME="SecAccept-Charset"><A NAME="_Toc520755863">4.2.2. Accept-Charset</A></A></P>
</B></FONT><P>If a <A HREF="#DefCIMClient">CIM client</A> includes an Accept-Charset header in a request, it MUST specify a value which allows the CIM Server or CIM Listener to return an entity body using the character set "utf-8".</P>
<P>A <A HREF="#DefCIMServer">CIM server</A> or <A HREF="#DefCIMListener">CIM Listener</A> MUST accept any value for this header which implies that "utf-8" is an acceptable character set for an response entity.&nbsp; A CIM Server or CIM Listener SHOULD return "406 Not Acceptable" if the Accept-Charset header indicates that this character&nbsp;set is not acceptable.</P>
<P>If a CIM Server or CIM Listener decides to accept a request to return an entity using a character set&nbsp;other than "utf-8", the nature of the response is outside of the domain of this specification.</P>
<P>See <A HREF="#SecInternationalizationConsiderations">Internationalization Considerations</A> for more details.</P>
<P><A HREF="#top">Back to contents</A> </P>
<B><FONT SIZE=4><P><A NAME="SecAccept-Encoding"><A NAME="_Toc520755864">4.2.3. Accept-Encoding</A></A></P>
</B></FONT><P>If a <A HREF="#DefCIMClient">CIM client</A> includes an Accept-Encoding header in a request, it MUST specify a value which allows the CIM Server or CIM Listener to use the "identity" encoding.</P>
<P>A <A HREF="#DefCIMServer">CIM Server</A> or <A HREF="#DefCIMListener">CIM Listener</A> MUST accept any value for this header which implies that "identity" is an acceptable encoding for the response entity.&nbsp; A CIM Server or CIM-Listener &nbsp;MAY return "406 Not Acceptable" if the Accept-Encoding header indicates that the this encoding is not acceptable.</P>
<P><A HREF="#top">Back to contents</A> </P>
<B><FONT SIZE=4><P><A NAME="SecAccept-Language"><A NAME="_4.2.4._Accept-Language"><A NAME="_Toc520755865"></A>4.2.4. Accept-Language</A></A></P>
</B></FONT><P>If a CIM Client includes an Accept-Language header in a request, it SHOULD specify a value which allows the CIM Server or CIM Listener to return an entity in the language of its'&nbsp;own choosing.&nbsp;&nbsp; This is accomplished by including in the list of acceptable language ranges the special range "*".</P>
<P>CIM Servers and CIM Listeners MAY support multiple languages if they so choose.</P>
<P>See <A HREF="#SecInternationalizationConsiderations">Internationalization Considerations </A>for more details.</P>
<P><A HREF="#top">Back to contents</A> </P>
<B><FONT SIZE=4><P><A NAME="SecAccept-Ranges"><A NAME="_Toc520755866">4.2.5. Accept-Ranges</A></A></P>
</B></FONT><P><A HREF="#DefCIMClient">CIM clients</A> MUST NOT include this header in a request.&nbsp; A <A HREF="#DefCIMServer">CIM Server</A> or <A HREF="#DefCIMListener">CIM Listener</A> MUST reject a request that includes an Accept-Range header with a status of "406 Not Acceptable".</P>
<P><A HREF="#top">Back to contents</A> </P>
<B><FONT SIZE=4><P><A NAME="SecAllow"><A NAME="_Toc520755867">4.2.6. Allow</A></A></P>
</B></FONT><P>If a&nbsp;<A HREF="#DefCIMServer">CIM Server</A> or <A HREF="#DefCIMListener">CIM Listener</A> is returning a "405 Method Not Allowed" response to a CIM Message request then the Allow header MUST include either M-POST or POST.&nbsp; Whether it includes any other HTTP methods is outside the scope of this specification.</P>
<P><A HREF="#top">Back to contents</A> </P>
<B><FONT SIZE=4><P><A NAME="SecAuthorization"><A NAME="_Toc520755868">4.2.7. Authorization</A></A></P>
</B></FONT><P>See the section on <A HREF="#SecSecurityConsiderations">Security Considerations</A> for more details.&nbsp; </P>
<P><A HREF="#top">Back to contents</A> </P>
<B><FONT SIZE=4><P><A NAME="_Toc520755869">4.2.8. <A NAME="SecCache-Control"></A>Cache-Control</A></P>
</B></FONT><P>In general a CIM Message request may consist of a mixture of CIM method invocations, some of which may be eminently cachable (e.g. the Manufacturer label on a Disk Drive), and some of which may be decidedly uncachable (e.g. format a Disk Drive).&nbsp; </P>
<P>Furthermore, the encapsulation of&nbsp;such multiple method invocations within an HTTP POST or M-POST means that if a CIM Message request has any effect on an HTTP cache it is likely to be one of invalidating cached responses for the target CIM Server or CIM Listener.&nbsp; Indeed HTTP/1.1[7] stipulates that by default POST responses are not cachable unless the CIM Server or CIM Listener indicates otherwise using an appropriate Cache-Control or Expires header.</P>
<P>For these reasons, CIM Message responses&nbsp;SHOULD NOT be considered cachable.&nbsp; A <A HREF="#DefCIMServer">CIM Server</A>&nbsp;or <A HREF="#DefCIMListener">CIM Listener</A> SHOULD NOT include a Cache-Control header in a CIM Message response which might indicate to a cache that the response could be cached.&nbsp; </P>
<P>If the CIM Server or CIM Listener is responding to a CIM Message request conveyed within an M-POST request, then in accordance with [9]&nbsp;the CIM Server or CIM Listener MUST include a no-cache control directive to prevent inadvertent caching of the "Ext" header. For example:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=168>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Ext:</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Cache-Control: no-cache</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>...</TD>
</TR>
</TABLE>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="SecConnection"><A NAME="_Toc520755870">4.2.9. Connection</A></A></P>
</B></FONT><P>It is&nbsp;RECOMMENDED that </P>

<UL>
<LI><A HREF="#DefCIMClient">CIM clients</A> should avoid the use of the "Connection: close" header unless it is known in advance that this is the only request likely to be sent out on that connection. </LI>
<LI><A HREF="#DefCIMServer">CIM servers</A> and <A HREF="#DefCIMListener">CIM Listeners</A> support persistent connections wherever possible. </LI></UL>

<P>Timeout mechanisms&nbsp;SHOULD be employed to remove idle connections on the CIM Client, Server and Listener, the details of which are outside the domain of this specification. Clients&nbsp;SHOULD be cautious in retrying requests, especially if they are not idempotent (e.g. method invocation). </P>
<P>CIM Clients, Servers and Listeners SHOULD support pipelining [7, section 1.1.2.2] if possible, but be aware of the requirements defined in [7].&nbsp; In particular, attention is drawn to the following requirement from [7]:</P><DIR>
<DIR>

<EM><P>Clients SHOULD NOT pipeline requests using non-idempotent methods or non-idempotent sequences of methods...A client wishing to send a non-idempotent request SHOULD wait to send that request until it has received the response status for the previous request. </P></DIR>
</DIR>

</EM><P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="SecContent-Encoding"><A NAME="_Toc520755871">4.2.10. Content-Encoding</A></A></P>
</B></FONT><P>If&nbsp;a <A HREF="#DefCIMClient">CIM client</A> includes a&nbsp;Content-Encoding header in a request, it&nbsp;SHOULD specify a value of "identity", unless it has good reason to believe that the Server or Listener can accept another encoding.</P>
<P><A HREF="#top">Back to contents</A> </P>
<B><FONT SIZE=4><P><A NAME="_Toc520755872">4.2.11. <A NAME="SecContentLanguage">Content-Language</A></A></P>
</B></FONT><P>See <A HREF="#SecInternationalizationConsiderations">Internationalization Considerations</A> for more details.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="SecContent-Range"><A NAME="_Toc520755873">4.2.12. Content-Range</A></A></P>
</B></FONT><P><A HREF="#DefCIMClient">CIM clients</A>, <A HREF="#DefCIMServer">CIM servers</A> and <A HREF="#DefCIMListener">CIM Listeners</A> MUST NOT use this header.</P>
<P><A HREF="#top">Back to contents</A> </P>
<B><FONT SIZE=4><P><A NAME="SecContent-Type"><A NAME="_Toc520755874">4.2.13. Content-Type</A></A></P>
</B></FONT><P><A HREF="#DefCIMClient">CIM clients</A>, <A HREF="#DefCIMServer">CIM servers</A> and <A HREF="#DefCIMListener">CIM Listeners</A> MUST specify (and accept) a value for this header of either "text/xml" or "application/xml" as defined in [18].&nbsp;</P>
<P><A HREF="#top">Back to contents</A> </P>
<B><FONT SIZE=4><P><A NAME="SecExpires"><A NAME="_Toc520755875">4.2.14. Expires</A></A></P>
</B></FONT><P>For the same reasons described in <A HREF="#SecCache-Control">Cache-Control</A>, a <A HREF="#DefCIMServer">CIM Server</A> or <A HREF="#DefCIMListener">CIM Listener</A> SHOULD NOT include an Expires header in a CIM Message response which might indicate to a cache that the response could be cached.</P>
<P><A HREF="#top">Back to contents</A> </P>
<B><FONT SIZE=4><P><A NAME="SecIf-Range"><A NAME="_Toc520755876">4.2.15. If-Range</A></A></P>
</B></FONT><P><A HREF="#DefCIMClient">CIM clients</A>,  <A HREF="#DefCIMServer">CIM servers</A>  and <A HREF="#DefCIMListener">CIM Listeners</A> MUST NOT use this header.</P>
<P><A HREF="#top">Back to contents</A> </P>
<B><FONT SIZE=4><P><A NAME="SecProxy-Authenticate"><A NAME="_Toc520755877">4.2.16. Proxy-Authenticate</A></A></P>
</B></FONT><P>See the section on <A HREF="#SecSecurityConsiderations">Security Considerations</A> for more details.&nbsp; </P>
<P><A HREF="#top">Back to contents</A> </P>
<B><FONT SIZE=4><P><A NAME="SecRange"><A NAME="_Toc520755878">4.2.17. Range</A></A></P>
</B></FONT><P><A HREF="#DefCIMClient">CIM clients</A>, <A HREF="#DefCIMServer">CIM servers</A> and <A HREF="#DefCIMListener">CIM Listeners</A> MUST NOT use this header.</P>
<P><A HREF="#top">Back to contents</A> </P>
<B><FONT SIZE=4><P><A NAME="SecWWW-Authenticate"><A NAME="_Toc520755879">4.2.18. WWW-Authenticate</A></A></P>
</B></FONT><P>See the section on <A HREF="#SecSecurityConsiderations">Security Considerations</A> for more details.&nbsp; </P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="_Toc520755880">4.3. <A NAME="SecErrors"></A>Errors and Status Codes</A></P>
</B></FONT><P>This section defines how <A HREF="#DefCIMServer">CIM Servers</A> and <A HREF="#DefCIMListener">CIM Listeners</A> MUST handle errors that occur in the processing of a CIM Message request. This specification does not introduce any new HTTP response status codes.</P>
<P>If there is an error in&nbsp;processing the HTTP Request-Line or standard HTTP Headers then the CIM Server&nbsp;or CIM Listener MUST take the appropriate action as dictated by its conformance to the relevant version of HTTP [6,7].</P>
<P>Otherwise, if there are any mandatory extension declarations which the server does not support it MUST respond with a "510 Not Extended" status according to [9].</P>
<P>Otherwise, the CIM Server or CIM Listener MUST process the request in accordance with the relevant version of HTTP [6,7] and the additional rules defined in this document.</P>
<P>Assuming that the HTTP request is otherwise correct, the CIM Server or CIM Listener MUST use the following status codes when processing the CIM Extension Headers:</P><DIR>
<DIR>

<STRONG><P>501 Not Implemented</STRONG> One of the following occurred:</P></DIR>
</DIR>


<UL>

<UL>
<LI>The <A HREF="#SecCIMProtocolVersion">CIMProtocolVersion</A> extension header specified in the request specifies a version of the CIM&nbsp;Mapping onto HTTP which is not supported by this CIM Server or CIM Listener. The CIM Server&nbsp;or CIM-Listener MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <FONT FACE="Courier New">unsupported-protocol-version.</FONT> </LI>
<LI>The Client specified a <A HREF="#DefMultipleOperationRequest">Multiple Operation Request</A> (or Multiple Export Request) and the CIM Server (or CIM Listener) does not support such requests. The CIM Server&nbsp;or CIM Listener MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <FONT FACE="Courier New">multiple-requests-unsupported.</FONT> </LI>
<LI>The <FONT FACE="Courier New">CIMVERSION</FONT> attribute in the Message Request was not set to a value of "2.0". The CIM Server&nbsp;or CIM Listener MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <FONT FACE="Courier New">unsupported-cim-version.</FONT> </LI>
<LI>The <FONT FACE="Courier New">DTDVERSION</FONT> attribute in the Message Request was not set to a value of "2.0". The CIM Server&nbsp;or CIM Listener MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <FONT FACE="Courier New">unsupported-dtd-version.</LI></UL>
</UL>
<DIR>
<DIR>

</FONT><STRONG><P>401 Unauthorized</STRONG> The CIM Server or CIM Listener is configured to require that&nbsp;a client authenticate itself before it can issue CIM Message requests to the Server or Listener.</P>
<STRONG><P>403 Forbidden</STRONG> The CIM Server or CIM Listener does not allow the client to issue CIM Message requests.&nbsp; The CIM Server or CIM Listener MAY alternatively respond with a "404 Not Found" if it does not wish to reveal this information to the client.</P>
<STRONG><P>407 Proxy Authentication Required</STRONG> The CIM Server or CIM Listener is configured to require that&nbsp;the proxy authenticate itself before it can issue CIM Message requests on behalf of a CIM Client to the Server or Listener.</P></DIR>
</DIR>

<P>Assuming that the CIM Extension Headers are correct, then a validating CIM Server or CIM Listener (one which is enforcing validity of the CIM Message request with respect to the CIM XML DTD) MUST use the following status code when processing the entity body containing the CIM Message request.</P><DIR>
<DIR>

<STRONG><P>400 Bad Request</STRONG> The entity body defining the CIM Message request was not well-formed or not valid with respect to the CIM XML DTD. The CIM Server&nbsp;or CIM Listener MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <FONT FACE="Courier New">request-not-well-formed</FONT> or <FONT FACE="Courier New">request-not-valid</FONT> (as appropriate).</P></DIR>
</DIR>

<P>A loosely-validating&nbsp;CIM Server or CIM Listener (one that is only enforcing that the CIM Message request be <A HREF="#DefLooselyValid">loosely valid</A>) MAY reject a CIM Message request that is not loosely valid with an HTTP status code of 400 (Bad Request) before further processing, in which case the CIM Server&nbsp;or CIM Listener MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <FONT FACE="Courier New">request-not-loosely-valid</FONT>. </P>
<P>A loosely-validating&nbsp;CIM Server or CIM Listener MUST reject a CIM Message request that is not well-formed with an HTTP status code of 400 (Bad Request), in which case the CIM Server&nbsp;or CIM Listener MUST include a <A HREF="#SecCIMError">CIMError</A> header in the response with a value of <FONT FACE="Courier New">request-not-well-formed</FONT>. </P>
<P>A loosely-validating&nbsp;CIM Server&nbsp;or CIM Listener MUST NOT reject an invalid (in the XML sense) CIM Message request that is loosely valid.</P>
<P>A&nbsp;loosely-validating CIM Server or CIM Listener MUST ultimately signal an error to the CIM Client if the CIM Message request is not loosely valid (i.e. is missing required content, or for which the required content is incorrect, such as&nbsp;an attribute with an invalid value according to the CIM XML DTD).&nbsp;&nbsp;It is not mandated to reject a Message Request before processing, for to do otherwise would compel the Server or Listener into checking the complete request before processing could begin and this would&nbsp;be as expensive as&nbsp;requiring that the Server or Listener fully validate the request.&nbsp;Therefore&nbsp;a&nbsp;loosely-validating&nbsp;Server or Listener MAY&nbsp;elect to begin processing the request and issuing a response (with an HTTP success status code) before checking that the entire request is loosely valid.</P>
<P>A CIM Client may determine whether a CIM Server or CIM Listener is validating or loosely-validating via the <A HREF="#SecCIMValidation">CIMValidation</A> header mechanism.</P>
<P>Assuming that the <A HREF="#DefCIMMessagerequest">CIM Message request</A> was correctly formed (in the manner described above), the CIM Server or CIM Listener MUST process the request accordingly and return a <A HREF="#DefCIMMessageresponse">CIM Message response</A>.&nbsp; </P>
<P>The entity body MUST be a correct&nbsp;CIM Message response for that request.&nbsp; </P>
<P>If the CIM Message response contains an entity which is a Simple Message Response then the response status must be <STRONG>200 OK</STRONG>.&nbsp; Otherwise the response status MUST be <STRONG>207 Multistatus</STRONG>. </P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="_Toc520755881">4.4. <A NAME="SecSecurityConsiderations"></A>Security Considerations</A></P>
</B></FONT><P><A HREF="#DefCIMClient">CIM Clients</A>, <A HREF="#DefCIMServer">CIM Servers</A> and <A HREF="#DefCIMListener">CIM Listeners</A> MAY elect not to use authentication, but only in environments where lack of security is not an issue.</P>
<P>Basic Authentication is described in [6,7].&nbsp; Digest Authentication is defined in [12].&nbsp; Both authentication schemes are&nbsp;covered in a consolidated document [14] which also makes a number of improvements to the original specification of Digest Authentication.</P>
<P>Basic Authentication provides a very rudimentary level of authentication, with the major weakness that the client password is sent over the wire in unencrypted form.&nbsp;</P>
<P>For this reason <A HREF="#DefCIMClient">CIM Clients</A>, <A HREF="#DefCIMServer">CIM Servers</A> and <A HREF="#DefCIMListener">CIM Listeners</A> MUST NOT&nbsp;use Basic Authentication other than in the context of&nbsp;a highly secure environment (for example, if used in conjunction with SSL, or in a physically secure private network).&nbsp; CIM Servers and CIM Listeners MUST NOT send Basic Authentication credentials in a WWW-Authenticate header other than in the context of a highly secure environment.</P>
<P>Conforming&nbsp;applications SHOULD support the Digest authentication scheme. Since Digest authentication verifies that both parties share a common secret, without having to send that secret in the clear,&nbsp;it is more secure than Basic authentication.&nbsp; However, CIM Clients, CIM Servers and CIM Listeners that require more robust protection SHOULD use encryption mechanisms such as SSL or SHTTP.</P>
<P>CIM Clients, CIM Servers and CIM Listeners using Basic or Digest Authentication MUST comply with the requirements set forth in [6,7,12,14].&nbsp; This specification describes only <EM>additional</EM> requirements on CIM Clients, CIM Servers and CIM Listeners when using these authentication schemes.</P>
<P>CIM Servers and CIM Listeners SHOULD require that CIM Clients authenticate themselves.&nbsp; This specification does not mandate this as it is recognized that in some circumstances the CIM Server or CIM Listener may not require or wish the overhead of employing authentication.&nbsp; CIM Servers and CIM Listeners SHOULD consider carefully the performance/security tradeoffs in determining how often to issue challenges to CIM Clients.</P>
<P>A CIM Server or CIM Listener that returns a "401 Unauthorized" response to a CIM Message request SHOULD include in the&nbsp;WWW-Authenticate response-header either the "Basic" or "Digest" authentication values (but not both).&nbsp; This specification does not mandate use of Basic or Digest Authentication as it is recognized that in some circumstances the CIM Server or CIM Listener may use bespoke authentication mechanisms not covered by [14].&nbsp; Similar considerations apply to the use of the Proxy-Authorization header in&nbsp; "407 Proxy Authentication Required".</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="_Toc520755882">4.5.&nbsp;<A NAME="SecDeterminingCIMServerCapabilities"></A>Determining CIM Server Capabilities</A></P>
</B></FONT><P>If a CIM Server is capable of returning capabilities information there are two techniques for returning that information defined in this specification. The preferred technique is as through the use of the classes defined in section 4.5.1. Alternatively, the use of the HTTP OPTIONS method as defined in section 4.5.2 is allowed because historically it was the original technique defined for requesting capability information. The use of the CIM classes defined in section 4.5.1 is strongly encouraged and it is expected that this method will be enhanced and extended in the future to provide more capabilities information. The use of the HTTP OPTIONS method to determine capabilities of CIM Servers is discouraged in the future. It will probably not be expanded significantly in the future and may be reviewed for possible deprecation in the next major revision of this specification.</P>
<B><FONT SIZE=4><P><A NAME="_Toc520755883">4.5.1&nbsp;Determining CIM Server Capabilities through CIM Classes</A></P>
</B></FONT><P>A set of CIM classes has been defined specifically to return CIM Server capabilities information as follows:</P>
<P>CIM_ObjectManager - A type of CIM_Service that defines the capabilities of the target CIM Server</P>
<P>CIM_ObjectManagerCommunicationMechanism - Class that describes access to the target CIM Server that defines the capabilities of the CIM Server available through the target Object Manager Communication Mechanism. It is allowable for a CIM server to support different capabilities through different Communication Mechanisms. </P>
<P>CIM_WBEMCommunicationMechanism - This class specializes ObjectManagerCommunicationMechanism, adding properties specific to the CIM-xml encoding and protocol.</P>
<P>CIM_CommMechanismForManager - Association between CIM_ObjectManager and CIM_ObjectManagerCommunicationsMechanism which defines the communications protocols (and corresponding capabilities) available on the target CIM Server through the ObjectManagerCommunicationMechanism instances.</P>
<P>Instances of these CIM classes MAY be used by a CIM Client to determine the CIM capabilities (if any) of the target CIM Server. A CIM server that supports capabilities determination through these classes must support at least the Enumerate Instance and Get Instance operations for the classed defined above. The use of other methods of the basic read profile is optional. A CIM Server that does not support the determination of CIM capabilities through these classes must return CIM_ERR_NOT_FOUND to any instance or class request on these classes. These classes MUST NOT be used for reporting any other information than capabilities of the target CIM Server.</P>
<P>To provide interoperability, the CIM Object Manager classes must exist in a well-known namespace. Because there is no discovery mechanism defined that could define this well-known namespace to a CIM Client, it must be one or more predefined namespaces. Therefore, in this specification we recommend that pending future extensions of the WBEM specifications to include discovery tools that define a namespace for these classes in a CIM Server, to insure interoperability these should exist in either the root namespace or in the /root/CIMV2 namespace.</P>
<P>A CIM Server that supports capabilities reporting through these classes must report correctly the current actual capabilities of the target CIM Server and must report on all of the capabilities defined. It is allowable for a CIM Server to report "none" if the capability does not exist or "unknown" if the status of the capability is unknown at the time of the request for those properties where these choices exist in the properties definition. Because the CIM_ObjectManager object provides information on the target CIM Server only a single instance of this class may exist in a CIM server.</P>
<P>The capabilities to be reported through CIM_ObjectManagerCommunicationMechanism are as follows: </P>
<P>CommunicationMechanism property which defines the communication protocol for the CommunicationMechanism object. A compliant CIM Server must include the CIM-xml protocol for at least one ObjectManagerCommunicationMechanism instance.</P>
<P>ProfilesSupported property that defines the functional profiles supported as defined in section 2.6.All CIM Servers MUST support the basic-read functional group. All CIM Clients MAY assume that any CIM Server supports the basic-read functional group. The list of functional groups returned by a CIM Server MUST contain the basic-read group, and MUST NOT contain any duplicates. CIM Clients MUST ignore any duplicate entries in the functional-group list. If a functional group is included in the list, then the CIM Client MUST assume that all other groups on which it depends (according to the rules defined in Functional Profiles) are also supported. A CIM Server SHOULD NOT explicitly include a functional group in the list whose presence may be inferred implicitly by a dependency. Support for a functional group does not imply that any method from that group will always succeed. Rather, the absence (whether explicit or implied) of the functional group from this list is an indication to the CIM Client that methods in that group will never succeed.</P>
<P>MultipleOperationsSupported property which defines whether the target CIM Server supports multiple operation requests as defined in section 2.3.2. TRUE in this property indicates that the Server can accept and process Multiple Operation Requests. FALSE indicates that the CIM Server can accept only Single Operation Requests.</P>
<P>QueryLanguageSupported property which defines the query languages supported by the target CIM Server.</P>
<P>AuthenticationMechanismsSupported property which defines the authentication mechanisms supported by the target CIM Server as defined in section 4.4 of this specification.</P>
<P>Compliant CIM Servers may report additional capabilities for the CommunicationMechanism Functional Profiles, QueryLanguageSupported, and AuthenticationMechanismSupported by defining the "other" enumeration in the property and returning additional information in the associated "additional capabilities" property.</P>
<P>&nbsp;</P>
<B><FONT SIZE=4><P><A NAME="_Toc520755884">4.5.2&nbsp;Determining CIM Server Capabilities through HTTP Options</A></P>
</B></FONT><P>The OPTIONS method&nbsp;MAY be used by a client to determine the CIM capabilities (if any) of the target server.&nbsp; A <A HREF="#DefCIMServer">CIM Server</A> MAY support the OPTIONS method (for example, CIM Servers supporting only HTTP/1.0 would not support OPTIONS).</P>
<P>In order to support the ability for a Server to&nbsp;declare its CIM capabilities in a manner independent of HTTP, it is the intention of the DMTF to publish a CIM Schema (in a separate document) describing such capabilities. In particular this mechanism would allow Servers that do not support the OPTIONS method to declare their capabilities to a Client.</P>
<P>If a CIM Server supports the OPTIONS method, it SHOULD:</P>

<UL>
<LI>Return the CIM Extension Header <A HREF="#SecCIMProtocolVersion">CIMProtocolVersion</A>&nbsp;in the response.&nbsp; This provides a way for a client to discover the version of the CIM&nbsp;HTTP&nbsp;mapping supported by the CIM Server. </LI>
<LI>Return the CIM Extension Header <A HREF="#SecCIMSupportedFunctionalGroups">CIMSupportedFunctionalGroups</A> in the response.&nbsp; This provides a way for a client to discover the CIM Operations supported by the CIM Server. </LI>
<LI>Return the CIM Extension Header <A HREF="#SecCIMSupportsMultipleOperations">CIMSupportsMultipleOperations</A> in the response.&nbsp; This provides a way for the client to discover whether the CIM Server can support <A HREF="#DefMultipleOperationRequest">Multiple Operation Requests</A>.</LI></UL>

<P>In addition, if the CIM Server supports one or more query languages, it SHOULD:</P>

<UL>
<LI>Return the CIM Extension Header <A HREF="#SecCIMSupportedQueryLanguages">CIMSupportedQueryLanguages</A> in the response.&nbsp; This allows the client to discover the query languages supported by the CIM Server.</LI></UL>

<P>In addition, if the CIM Server runs in a&nbsp;fixed validation mode, it SHOULD:</P>

<UL>
<LI>Return the CIM Extension Header <A HREF="#SecCIMValidation">CIMValidation</A> in the response.&nbsp; This allows the client to determine whether the CIM Server is strictly validating or loosely validating.</LI></UL>

<P>If the <A HREF="#SecCIMProtocolVersion">CIMProtocolVersion</A>,&nbsp;<A HREF="#SecCIMSupportedFunctionalGroups">CIMSupportedFunctionalGroups</A>, <A HREF="#SecCIMSupportsMultipleOperations">CIMSupportsMultipleOperations</A>,&nbsp;<A HREF="#SecCIMValidation">CIMValidation</A>&nbsp;or <A HREF="#SecCIMSupportedQueryLanguages">CIMSupportedQueryLanguages</A>&nbsp;extension headers&nbsp;are included in the response, the CIM Server MUST declare&nbsp;them as&nbsp;Optional extension headers using the "Opt" header defined in [9].</P>
<P>The full format of the "Opt" header declaration for this specification is:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=459>
<TR><TD VALIGN="MIDDLE">
<P>Opt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "Opt" ":" "<A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A>"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";" "ns" "=" header-prefix</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Header-prefix&nbsp;&nbsp;&nbsp;&nbsp;= 2*DIGIT</TD>
</TR>
</TABLE>

<P>This header-prefix SHOULD be generated at random on a per-HTTP message basis, and SHOULD NOT necessarily be a specific number.</P>
<P>For example the following is a fragment of a legitimate OPTIONS response from a CIM Server:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=375>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Opt: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=77</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>77-CIMProtocolVersion: 1.0</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>77-CIMSupportedFunctionalGroups: basic-read</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>77-CIMBatch</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>77-CIMSupportedQueryLanguages: wql</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>...</TD>
</TR>
</TABLE>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755885">4.5.2.1. <A NAME="SecCIMSupportedFunctionalGroups">CIMSupportedFunctionalGroups</A></A></P>
</B></FONT><P>The CIMSupportedFunctionalGroups extension header SHOULD be returned by a <A HREF="#DefCIMServer">CIM Server</A> in any OPTIONS response.&nbsp; It MUST NOT be returned in any other scenario.</P>
<P>This header is defined as follows:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=584>
<TR><TD VALIGN="MIDDLE">
<P>CIMSupportedFunctionalGroups&nbsp; = "CIMSupportedFunctionalGroups" ":" 1#functional-group<BR>
<BR>
functional-group&nbsp;&nbsp;&nbsp;&nbsp; = "<A HREF="#DefBasicRead">basic-read</A>" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "<A HREF="#DefBasicWrite">basic-write</A>" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "<A HREF="#DefSchemaManipulation">schema-manipulation</A>" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"<A HREF="#DefInstanceManipulation">instance-manipulation</A>" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"<A HREF="#DefQualifierDeclaration">qualifier-declaration</A>" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "<A HREF="#DefAssociationTraversal">association-traversal</A>" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "<A HREF="#DefQueryExecution">query-execution</A>"</TD>
</TR>
</TABLE>

<P>The functional group definitions correspond directly to those listed in <A HREF="#SecFunctionalProfiles">Functional Profiles</A>.&nbsp; All CIM Servers MUST support the basic-read functional group.&nbsp; All <A HREF="#DefCIMClient">CIM Clients</A> MAY assume that any CIM Server supports the basic-read functional group.</P>
<P>The list of functional groups returned by a CIM Server MUST contain the basic-read group, and MUST NOT contain any duplicates.&nbsp; CIM Clients MUST ignore any duplicate entries in the functional-group list.</P>
<P>If a functional group is included in the list, then the CIM Client MUST assume that all other groups on which it depends (according to the rules defined in <A HREF="#SecFunctionalProfiles">Functional Profiles</A>) are also supported.&nbsp; A CIM Server SHOULD NOT explicitly include a functional group in the list whose presence may be inferred implicitly by a dependency.</P>
<P>For example the following HTTP response message indicates that&nbsp;the CIM Server supports instance-manipulation, association-traversal, basic-write and basic-read.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=531>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Opt: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=77</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>77-CIMProtocolVersion: 1.0</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>77-CIMSupportedFunctionalGroups: association-traversal, instance-manipulation</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>...</TD>
</TR>
</TABLE>

<P>Support for a functional group does <EM>not</EM> imply that any method from that group will always succeed.&nbsp; Rather, the absence (whether explicit or implied) of the functional group from this header is an indication to the CIM Client that methods in that group will <EM>never</EM> succeed.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="SecCIMSupportsMultipleOperations"><A NAME="_Toc520755886">4.5.2.2. CIMSupportsMultipleOperations</A></A></P>
</B></FONT><P>The CIMSupportsMultipleOperations extension header&nbsp;MUST be returned in an OPTIONS response by any <A HREF="#DefCIMServer">CIM Server</A> that supports <A HREF="#DefMultipleOperationRequest">Multiple Operation Requests</A>.&nbsp; It MUST NOT be returned in any other circumstances.</P>
<P>This header is defined as follows:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=467>
<TR><TD VALIGN="MIDDLE">
<P>CIMSupportsMultipleOperations&nbsp; = "CIMSupportsMultipleOperations"</TD>
</TR>
</TABLE>

<P>The presence of this header indicates that the Server can accept and process Multiple Operation Requests.&nbsp; The absence of this header indicates that the Server can only accept and process <A HREF="#DefSimpleOperationRequest">Simple Operation Requests</A>.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_Toc520755887">4.5.2.3. <A NAME="SecCIMSupportedQueryLanguages">CIMSupportedQueryLanguages</A></A></P>
</B></FONT><P>The CIMSupportedQueryLanguages extension header SHOULD be returned by a <A HREF="#DefCIMServer">CIM Server</A> that supports at least one query language in any OPTIONS response.&nbsp; It MUST NOT be returned in any other scenario.</P>
<P>This header is defined as follows (<FONT FACE="Courier New">token</FONT> has the meaning conferred by [7, section 2.2]:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=584>
<TR><TD VALIGN="MIDDLE">
<P>CIMSupportedQueryLanguages&nbsp; = "CIMSupportedQueryLanguages" ":" 1#query-language<BR>
<BR>
query-language&nbsp;&nbsp;&nbsp;&nbsp; =&nbsp;token</TD>
</TR>
</TABLE>

<P>The query-language value MUST be treated as case-insensitive.&nbsp;It is anticipated that query languages will be submitted for approval to the DMTF, and each submission will define a value for this token to enable it to be specified in this header.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="SecCIMValidation"><A NAME="_Toc520755888">4.5.2.4. CIMValidation</A></A></P>
</B></FONT><P>The CIMValidation&nbsp;extension header MAY be returned by a <A HREF="#DefCIMServer">CIM Server</A> to provide information concerning the level of validation of <A HREF="#DefCIMOperationRequest">CIM Operation Request</A>&nbsp;messages.</P>
<P>This header is defined as follows:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=371>
<TR><TD VALIGN="MIDDLE">
<P>CIMValidation&nbsp;&nbsp;&nbsp; = "CIMValidation" ":" validation-level<BR>
validation-level&nbsp;=&nbsp;"validating" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"loosely-validating"</TD>
</TR>
</TABLE>

<P>A validation-level of <FONT FACE="Courier New">validating</FONT> indicates that the CIM Server will always apply strict validation of each CIM Operation Request. A validation-level of <FONT FACE="Courier New">loosely-validating</FONT> indicates that the CIM Server will apply <A HREF="#DefLooselyValid">loose validation</A>&nbsp;of each CIM Operation Request.</P>
<P>In the absence of this header, a CIM Client SHOULD assume that the CIM Server operates in strict validation mode.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="_4.6._Determining_CIM"><A NAME="_Toc520755889"></A>4.6.&nbsp;Determining CIM Listener Capabilities</A></P>
</B></FONT><P>The OPTIONS method&nbsp;MAY be used by a client to determine the CIM Export capabilities (if any) of the target CIM Listener.&nbsp; A <A HREF="#DefCIMListener">CIM Listener</A> MAY support the OPTIONS method (for example, CIM Listener supporting only HTTP/1.0 would not support OPTIONS).</P>
<P>If a CIM Listener supports the OPTIONS method, it SHOULD:</P>

<UL>
<LI>Return the CIM Extension Header <A HREF="#SecCIMProtocolVersion">CIMProtocolVersion</A>&nbsp;in the response.&nbsp; This provides a way for a client to discover the version of the CIM&nbsp;HTTP&nbsp;mapping supported by the CIM Listener. </LI>
<LI>Return the CIM Extension Header <A HREF="#_4.6.1._CIMSupportedExportGroups">CIMSupportedExportGroups</A> in the response.&nbsp; This provides a way for a client to discover the CIM Exports supported by the CIM Listener. </LI>
<LI>Return the CIM Extension Header CIMSupportsMultipleExports in the response.&nbsp; This provides a way for the client to discover whether the CIM Listener can support Multiple Export Requests.</LI></UL>

<P>In addition, if the CIM Listener runs in a&nbsp;fixed validation mode, it SHOULD:</P>

<UL>
<LI>Return the CIM Extension Header <A HREF="#SecCIMValidation">CIMValidation</A> in the response.&nbsp; This allows the client to determine whether the CIM Listener is strictly validating or loosely validating.</LI></UL>

<P>If the <A HREF="#_3.3.6._CIMProtocolVersion">CIMProtocolVersion</A>,&nbsp;<A HREF="#_4.6.1._CIMSupportedExportGroups">CIMSupportedExportGroups</A>, <A HREF="#_4.6.2._CIMSupportsMultipleExports">CIMSupportsMultipleExports</A>,&nbsp;or <A HREF="#_4.6.3._CIMValidation">CIMValidation</A>&nbsp;extension headers&nbsp;are included in the response, the CIM Listener MUST declare&nbsp;them as&nbsp;Optional extension headers using the "Opt" header defined in [9].</P>
<P>The full format of the "Opt" header declaration for this specification is:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=459>
<TR><TD VALIGN="MIDDLE">
<P>Opt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "Opt" ":" "<A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A>"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";" "ns" "=" header-prefix</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>header-prefix&nbsp;&nbsp;&nbsp;&nbsp;= 2*DIGIT</TD>
</TR>
</TABLE>

<P>This header-prefix SHOULD be generated at random on a per-HTTP message basis, and SHOULD NOT necessarily be a specific number.</P>
<P>For example the following is a fragment of a legitimate OPTIONS response from a CIM Listener:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=375>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Opt: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=77</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>77-CIMProtocolVersion: 1.1</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>77-CIMSupportedExportGroups: Indication</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>77-CIMExportBatch</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>...</TD>
</TR>
</TABLE>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_4.6.1._CIMSupportedExportGroups"><A NAME="_Toc520755890"></A>4.6.1. CIMSupportedExportGroups</A></P>
</B></FONT><P>The CIMSupportedExportGroups extension header SHOULD be returned by a <A HREF="#DefCIMListener">CIM Listener</A> in any OPTIONS response.&nbsp; It MUST NOT be returned in any other scenario.</P>
<P>This header is defined as follows:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=540>
<TR><TD VALIGN="MIDDLE">
<P>CIMSupportedExportGroups&nbsp; = "CIMSupportedExportGroups" ":" 1#export-group<BR>
<BR>
export-group&nbsp;&nbsp;&nbsp;&nbsp; = "indication" </TD>
</TR>
</TABLE>

<P>The export group definitions correspond directly to those listed in <A HREF="#_2.4.3._Functional_Profiles">Export Profiles</A>.&nbsp;</P>
<P>The list of export groups returned by a CIM Listener MUST NOT contain any duplicates.&nbsp; CIM Clients MUST ignore any duplicate entries in the export group list.</P>
<P>For example the following HTTP response message indicates that&nbsp;the CIM Listener supports indications.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=375>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Opt: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=77</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>77-CIMProtocolVersion: 1.1</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>77-CIMSupportedExportGroups: indication</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>...</TD>
</TR>
</TABLE>

<P>Support for a functional group does <EM>not</EM> imply that any method from that group will always succeed.&nbsp; Rather, the absence (whether explicit or implied) of the functional group from this header is an indication to the CIM Client that methods in that group will <EM>never</EM> succeed.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_4.6.2._CIMSupportsMultipleExports"><A NAME="_Toc520755891"></A>4.6.2. CIMSupportsMultipleExports</A></P>
</B></FONT><P>The CIMSupportsMultipleExports extension header&nbsp;MUST be returned in an OPTIONS response by any CIM Listener that supports Multiple Export Requests.&nbsp; It MUST NOT be returned in any other circumstances.</P>
<P>This header is defined as follows:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=426>
<TR><TD VALIGN="MIDDLE">
<P>CIMSupportsMultipleExports&nbsp; = "CIMSupportsMultipleExports"</TD>
</TR>
</TABLE>

<P>The presence of this header indicates that the CIM Listener can accept and process Multiple Export Requests.&nbsp; The absence of this header indicates that the CIM Listener can only accept and process Simple Export Requests.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=4><P><A NAME="_4.6.3._CIMValidation"><A NAME="_Toc520755892"></A>4.6.3. CIMValidation</A></P>
</B></FONT><P>The CIMValidation&nbsp;extension header MAY be returned by a CIM Listener to provide information concerning the level of validation of <A HREF="#DefExportRequestMessage">CIM Export Request</A>.</P>
<P>This header is defined as follows:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=371>
<TR><TD VALIGN="MIDDLE">
<P>CIMValidation&nbsp;&nbsp;&nbsp; = "CIMValidation" ":" validation-level<BR>
validation-level&nbsp;=&nbsp;"validating" |<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"loosely-validating"</TD>
</TR>
</TABLE>

<P>A validation-level of <FONT FACE="Courier New">validating</FONT> indicates that the CIM Listener will always apply strict validation of each CIM Export Request. A validation-level of <FONT FACE="Courier New">loosely-validating</FONT> indicates that the CIM Listener will apply <A HREF="#DefLooselyValid">loose validation</A>&nbsp;of each CIM Export Request.</P>
<P>In the absence of this header, a CIM Client SHOULD assume that the CIM Listener operates in strict validation mode.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="SecOtherHTTPMethods"><A NAME="_Toc520755893">4.7. Other HTTP Methods</A></A></P>
</B></FONT><P>This specification does not in any way define or constrain the manner in which a CIM Client, CIM Server or CIM Listener uses any HTTP Method other than those explicitly referred to herein.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="SecDiscoveryAndAddressing"><A NAME="_Toc520755894">4.8. CIM Server Discovery and Addressing</A></A></P>
</B></FONT><P>The target URI of the <A HREF="#DefCIMOperationRequest">CIM Operation Request</A> is defined to be the location of the <A HREF="#DefCIMServer">CIM Server</A>.&nbsp; This specification does not constrain the format of this URI other than it be a valid URI [13] for the purposes of describing an HTTP-addressable resource.</P>
<P>An HTTP Server which supports the CIM&nbsp;Mapping defined herein, and which supports the OPTIONS method, SHOULD include the following CIM extension header in an OPTIONS response:</P>

<UL>
<LI>CIMOM</LI></UL>

<P>This header is defined as follows:</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=381>
<TR><TD VALIGN="MIDDLE">
<P>CIMOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = "CIMOM" ":" (absoluteURI | relativeURI)</TD>
</TR>
</TABLE>

<P>The terms absoluteURI and relativeURI are taken from [7]; they indicate the location of the CIM Server for this HTTP Server.</P>
<P>If the CIMOM extension header is included in the response, the CIM Server MUST declare it an Optional extension header in an analagous fashion to that described in the section on <A HREF="#SecDeterminingCIMServerCapabilities">Determining CIM Server Capabilities</A>.</P>
<P>A <A HREF="#DefCIMClient">CIM Client</A> that wishes to communicate with a CIM Server on&nbsp;an HTTP Server SHOULD try an OPTIONS request to that HTTP Server.&nbsp; If the OPTIONS request fails, or the response does not include the CIM-CIMOM extension header, then the CIM Client MAY assume that the value of CIM-CIMOM is the relative URI <STRONG>cimom</STRONG>.</P>
<P>The DMTF recommends the use of the following well-known IP ports for use in compliant CIM Servers. This is a recommendation only and not a requirement for compliance with this specification. These port addresses have been acquired from IANA by the DMTF  and are registered with IANA  so are for the exclusive use for DMTF functions, in particular CIM Servers.</P>
<P>   CIM-XML (http)              5988/tcp</P>
<P>   CIM_XML (http)              5988/udp</P>
<P>   CIM-XML (https)             5989/tcp </P>
<P>   CIM-XML (https)             5989/udp</P>
<P>Other&nbsp;discovery mechanisms are outside the scope of this version of the specification.</P>
<U><P>Example 1</P>
</U><P>This example shows&nbsp;an HTTP Server located at&nbsp;<A HREF="http://www.dmtf.org/">http://www.dmtf.org/</A>&nbsp;issuing an OPTIONS response to an HTTP client to indicate that its CIM Server is located at <A HREF="http://www.dmtf.org/access/cimom">http://www.dmtf.org/access/cimom</A>.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=375>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Opt: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=48</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>48-CIMOM: /access/cimom</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>...</TD>
</TR>
</TABLE>

<U><P>Example 2</P>
</U><P>If&nbsp;an HTTP Server located at <A HREF="http://www.dmtf.org/">http://www.dmtf.org/</A> responds with a&nbsp;"501 Not Implemented" to an OPTIONS request from a CIM Client,&nbsp;the CIM client&nbsp;may then try to contact the CIM Server at <A HREF="http://www.dmtf.org/cimom">http://www.dmtf.org/cimom</A>.</P>
<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="_Toc520755895">4.9. <A NAME="SecInternationalizationConsiderations">Internationalization Considerations</A></A></P>
</B></FONT><P>This section defines the capabilities of the&nbsp;CIM HTTP Mapping with respect to IETF policy guidelines on character sets and languages [19].</P>
<P>In this specification, human-readable fields can be found within a response or request entity body.&nbsp; In all cases, any human-readable content is encoded using XML (which has explicit provisions for character set tagging and encoding) and requires that XML processors read XML elements encoded, at minimum, using the UTF-8 [15] encoding of the ISO 10646 multilingual plane.&nbsp;</P>
<P>XML examples in this specification demonstrate use of the charset parameter of the Content-Type header, as defined in [10], as well as the XML <FONT FACE="Courier New">encoding</FONT> attribute on the &lt;?xml&gt; processing instruction, which together provide charset identification information for MIME and XML processors. This specification mandates that conforming applications MUST support at least the "utf-8" charset encoding [19] in the Content-Type header, and the "utf-8" value for the XML <FONT FACE="Courier New">encoding</FONT> attribute.&nbsp;</P>
<P>XML also provides a language tagging capability for specifying the language of the contents of a particular XML element, based on use of&nbsp;IANA registered language tags [20] in the <FONT FACE="Courier New">xml:lang</FONT> attribute of an XML element to identify the language of its content and attributes.&nbsp; The XML CIM DTD [2,11] does not declare this attribute on any of the XML elements, and therefore conforming applications MUST NOT use this attribute as otherwise&nbsp;the XML document would not be valid with respect to that DTD.</P>
<P>This&nbsp;specification defines a number of names of HTTP headers and their values.&nbsp; These are constructed using&nbsp;standard encoding practices&nbsp;so as to always have an HTTP-safe ASCII representation.&nbsp; Since these headers are not in general visible to users they do not need to support encoding in multiple character sets.</P>
<P>The XML DTD for CIM [2,11] introduces a number of XML element names.&nbsp; Similarly these are not visible to an end user and do not need to support multiple character set encodings.</P>
<P>The CIM&nbsp;model [1] defines the subset of the Unicode character set that can be used to name CIM elements (Classes, Instances, Methods, Properties, Qualifiers and Method Parameters).&nbsp; In general these appear as the value of XML attributes or as element content, and in general would not be displayed to end users.</P>
<P>Values of CIM Properties and Qualifiers, and error message descriptions MAY be localizable, but there is no mandate on CIM Servers to support this.&nbsp; Negotiation and notification of language settings is effected in&nbsp;this&nbsp;mapping using the standard <A HREF="#_4.2.4._Accept-Language">Accept-Language</A> and <A HREF="#SecContentLanguage">Content-Language</A> headers defined in [7].</P>
<B><FONT SIZE=6><P><A NAME="SecReferences"><A NAME="_Toc520755896"></A>5. References</A></P>
<OL>

<LI><A NAME="RefCIM"></A></B></FONT>"Common Information Model (CIM) Specification", Version 2.2, DMTF,&nbsp;14th June 1999 (<A HREF="http://dmtf.org/spec/cim_schema_v201.html">http://dmtf.org/spec/cim_schema_v201.html</A>) </LI>
<LI>"Specification for the Representation of CIM in XML", Version 2.0, DMTF, 20<SUP>th</SUP>&nbsp;July 1999 (<A HREF="http://www.dmtf.org/download/spec/xmls/CIM_XML_Mapping20.htm">http://www.dmtf.org/download/spec/xmls/CIM_XML_Mapping20.htm</A>) </LI>
<LI>"Extensible Markup Language (XML)", Version 1.0, W3C Recommendation (<A HREF="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</A>) </LI>
<LI><A NAME="NamespaceRef"></A>"Namespaces in XML", 14<SUP>th</SUP> January 1999, W3C Recommendation (<A HREF="http://www.w3.org/TR/REC-xml-names">http://www.w3.org/TR/REC-xml-names</A>) </LI>
<LI><A NAME="RefXMLWP"></A>"XML as a Representation for Management Information - A White Paper", Version 1.0, DMTF,&nbsp;September 15<SUP>th</SUP> 1998 (<A HREF="http://www.dmtf.org/spec/xmlw.html">http://www.dmtf.org/spec/xmlw.html</A>) </LI>
<LI><A NAME="RefCSS1"></A>"Hypertext Transfer Protocol -- HTTP/1.0",&nbsp;IETF RFC 1945,&nbsp;May 1996 (<A HREF="http://www.ietf.org/rfc/rfc1945.txt">http://www.ietf.org/rfc/rfc1945.txt</A>) </LI>
<LI><A NAME="RefCSS2">"Hypertext Transfer Protocol -- HTTP/1.1",&nbsp;IETF RFC 2068,&nbsp;January 1997 (<A HREF="http://www.ietf.org/rfc/rfc2068.txt">http://www.ietf.org/rfc/rfc2068.txt</A>) </LI>
<LI><A NAME="RefXSL"></A>"Key words for use in RFCs to Indicate Requirement Levels",&nbsp;IETF RFC 2119,&nbsp;March 1997 (<A HREF="http://www.ietf.org/rfc/rfc2119.txt">http://www.ietf.org/rfc/rfc2119.txt</A>) </LI>
<LI><A NAME="RefDOM"></A>"HTTP Extension Framework",&nbsp;IETF Internet Draft,&nbsp;February 2000 (<A HREF="http://www.ietf.org/rfc/rfc2774.txt">http://www.ietf.org/rfc/rfc2774.txt</A>) </LI>
<LI></A>"Hypertext Transfer Protocol -- HTTP/1.1",&nbsp;IETF Internet Draft,  June 1999 (<A HREF="http://www.ietf.org/rfc/rfc2616.txt">http://www.ietf.org/rfc/rfc2616.txt</A> <A HREF="http://ietf.org/internet-drafts/draft-ietf-http-v11-spec-rev-06.txt"></A></LI>
<LI>) </LI>
<LI>"CIM XML DTD", Version 2.0, DMTF, 20<SUP>th</SUP>&nbsp;July 1999 (<A HREF="http://www.dmtf.org/download/spec/xmls/CIM_DTD_V20.txt">http://www.dmtf.org/download/spec/xmls/CIM_DTD_V20.txt</A>) </LI>
<LI>"An Extension to HTTP: Digest Access Authentication", IETF RFC 2069,&nbsp;January 1997 (<A HREF="http://www.ietf.org/rfc/rfc1945.txt">http://www.ietf.org/rfc/rfc1945.txt</A>) </LI>
<LI>"Uniform Resource Identifiers (URI): Generic Syntax", IETF RFC 2396, 12<SUP>th</SUP> August 1998 (<A HREF="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</A>) </LI>
<LI>"HTTP Authentication: Basic and Digest Access Authentication", IETF Internet Draft,  June 1999() </LI>
<LI>"UTF-8, a transformation format of Unicode and ISO 10646", RFC 2279, January 1998 (<A HREF="http://www.ietf.org/rfc/rfc2279.txt">http://www.ietf.org/rfc/rfc2279.txt</A>) </LI>
<LI>"Uniform Resource Identifiers (URI): Generic Syntax", IETF RFC 2396, 12<SUP>th</SUP> August 1998 (<A HREF="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</A>) </LI>
<LI>"XSL Transformations&nbsp;(XSLT)", Version 1.0, W3C&nbsp;Working Draft, 21<SUP>st</SUP> April 1999 (<A HREF="http://www.w3.org/TR/WD-xsltl">http://www.w3.org/TR/WD-xsltl</A>) </LI>
<LI>"XML Media Types", IETF Informational RFC 2376, July 1998 (<A HREF="http://www.ietf.org/rfc/rfc2376.txt">http://www.ietf.org/rfc/rfc2376.txt</A>) </LI>
<LI>"IETF Policy on Character Sets and Languages", IETF Best Current Practice RFC 2277, January 1998 (<A HREF="http://www.ietf.org/rfc/rfc2277.txt">http://www.ietf.org/rfc/rfc2277.txt</A>) </LI>
<LI>"Tags for the Identification of Languages", IETF Standards Track RFC 1766, March 1995 (<A HREF="http://www.ietf.org/rfc/rfc1766.txt">http://www.ietf.org/rfc/rfc1766.txt</A>) </LI>
<LI>"XML Schema Part 1: Structures", W3C Working Draft 6<SUP>th</SUP> May 1999 (<A HREF="http://www.w3.org/TR/xmlschema-1/">http://www.w3.org/TR/xmlschema-1/</A>)</LI></OL>

<P><A HREF="#top">Back to contents</A></P>
<B><FONT SIZE=6><P><A NAME="SecAppendixA"><A NAME="_Toc520755897">Appendix A </A>- Examples of Message Exchanges</A></P>
</B></FONT><P>This section illustrates the protocol defined in this document by providing examples of valid HTTP request/response exchanges.</P>
<P>For the purposes of clarity additional white space has been included in the examples, but such white space is not an intrinsic part of such XML documents.&nbsp;</P>
<B><FONT SIZE=5><P><A NAME="SecRetrievalOfASingleClassDefinition"><A NAME="_Toc520755898">A.1. Retrieval of a Single Class Definition</A></A></P>
</B></FONT><P>The following HTTP request illustrates how a client would request the class CIM_VideoBIOSElement.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=584>
<TR><TD VALIGN="MIDDLE">
<P>M-POST /cimom HTTP/1.1</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>HOST: <A HREF="http://www.erewhon.com/">http://www.erewhon.com/</A></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodCall</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMMethod: GetClass</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMObject: root/cimv2</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;IMETHODCALL NAME="GetClass"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE NAME="root"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE NAME="cimv2"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE NAME="ClassName"&gt;&lt;CLASSNAME NAME="CIM_VideoBIOSElement"/&gt;&lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE NAME="LocalOnly"&gt;&lt;VALUE&gt;FALSE&lt;/VALUE&gt;&lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P>The following is an HTTP response to the above request indicating success of the requested operation.&nbsp; For clarity of exposition the complete definition of the returned &lt;CLASS&gt; element has not been shown.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=584>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Ext:</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Cache-Control: no-cache</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodResponse</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;IMETHODRESPONSE NAME="GetClass"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IRETURNVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;CLASS NAME="CIM_VideoBIOSElement" SUPERCLASS="CIM_SoftwareElement"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/CLASS&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/IRETURNVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODRESPONSE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P><A HREF="../../Documents%20and%20Settings/deckstei/Local%20Settings/Temp/CIM_HTTP_Mapping10.htm#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="SecRetrievalOfASingleInstanceDefinition"><A NAME="_Toc520755899">A.2. Retrieval of a Single&nbsp;Instance Definition</A></A></P>
</B></FONT><P>The following HTTP request illustrates how a client would request the&nbsp;instance MyClass.MyKey="S3".</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=584>
<TR><TD VALIGN="MIDDLE">
<P>M-POST /cimom HTTP/1.1</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>HOST: <A HREF="http://www.erewhon.com/">http://www.erewhon.com/</A></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodCall</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMMethod: GetInstance</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMObject: root/cimv2</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="1.1"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87855" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;IMETHODCALL NAME="GetInstance"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE NAME="root"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE NAME="cimv2"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE NAME="InstanceName"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCENAME CLASSNAME="MyClass"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;KEYBINDING NAME="MyKey"&gt;&lt;KEYVALUE&gt;S3&lt;/KEYVALUE&gt;&lt;/KEYBINDING&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/INSTANCENAME&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE NAME="LocalOnly"&gt;&lt;VALUE&gt;FALSE&lt;/VALUE&gt;&lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P>The following is an HTTP response to the above request indicating&nbsp;an error due to the&nbsp;specified instance not being found.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=504>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Ext:</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Cache-Control: no-cache</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodResponse</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87885" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;IMETHODRESPONSE NAME="GetInstance"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;ERROR CODE="6" DESCRIPTION="Instance of MyClass not found"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODRESPONSE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P><A HREF="../../Documents%20and%20Settings/deckstei/Local%20Settings/Temp/CIM_HTTP_Mapping10.htm#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="SecDeletionOfASingleClassDefinition"><A NAME="_Toc520755900">A.3.&nbsp;Deletion of a Single Class Definition</A></A></P>
</B></FONT><P>The following HTTP request illustrates how a client would&nbsp;delete the class CIM_VideoBIOSElement.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=584>
<TR><TD VALIGN="MIDDLE">
<P>M-POST /cimom HTTP/1.1</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>HOST: <A HREF="http://www.erewhon.com/">http://www.erewhon.com/</A></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodCall</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMMethod: DeleteClass</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMObject: root/cimv2</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;IMETHODCALL NAME="DeleteClass"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&lt;LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE NAME="root"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;NAMESPACE NAME="cimv2"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE NAME="ClassName"&gt;&lt;CLASSNAME NAME="CIM_VideoBIOSElement"/&gt;&lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P>The following is an HTTP response to the above request indicating failure of the above operation due to the inability to delete instances of the Class.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=521>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Ext:</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Cache-Control: no-cache</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodResponse</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872"&nbsp;PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&lt;IMETHODRESPONSE NAME="DeleteClass"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;ERROR CODE="9" DESCRIPTION="Class has non-deletable instances"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODRESPONSE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P><A HREF="../../Documents%20and%20Settings/deckstei/Local%20Settings/Temp/CIM_HTTP_Mapping10.htm#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="SecDeletionOfASingleInstanceDefinition"><A NAME="_Toc520755901">A.4.&nbsp;Deletion of a Single&nbsp;Instance Definition</A></A></P>
</B></FONT><P>The following HTTP request illustrates how a client would&nbsp;delete the&nbsp;instance MyClass.MyKey="S3".</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=387>
<TR><TD VALIGN="MIDDLE">
<P>M-POST /cimom HTTP/1.1</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>HOST: <A HREF="http://www.erewhon.com/">http://www.erewhon.com/</A></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodCall</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMMethod: DeleteInstance</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMObject: root/cimv2</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;IMETHODCALL NAME="DeleteInstance"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE NAME="root"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE NAME="cimv2"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE NAME="InstancePath"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCENAME CLASSNAME="MyClass"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;KEYBINDING NAME="MyKey"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;KEYVALUE&gt;S3&lt;/KEYVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/KEYBINDING&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/INSTANCENAME&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P>The following is an HTTP response to the above request indicating&nbsp;success of the above operation.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=387>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Ext:</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Cache-Control: no-cache</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/operation">http://www.dmtf.org/cim/operation</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodResponse</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;IMETHODRESPONSE NAME="DeleteInstance"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P><A HREF="../../Documents%20and%20Settings/deckstei/Local%20Settings/Temp/CIM_HTTP_Mapping10.htm#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="SecCreationOfASingleClassDefinition"><A NAME="_Toc520755902">A.5.&nbsp;Creation of a Single Class Definition</A></A></P>
</B></FONT><P>The following HTTP request illustrates how a client would&nbsp;create the class MySchema_VideoBIOSElement as a subclass of CIM_VideoBIOSElement.&nbsp; For clarity of exposition most of the submitted &lt;CLASS&gt; element is omitted from the example.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=584>
<TR><TD VALIGN="MIDDLE">
<P>M-POST /cimom HTTP/1.1</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>HOST: <A HREF="http://www.erewhon.com/">http://www.erewhon.com/</A></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodCall</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMMethod: CreateClass</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMObject: root/cimv2</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;IMETHODCALL NAME="CreateClass"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE NAME="root"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE NAME="cimv2"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE NAME="NewClass"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;CLASS NAME="MySchema_VideoBIOSElement" SUPERCLASS="CIM_VideoBIOSElement"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/CLASS&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P>The following is an HTTP response to the above request indicating&nbsp;success of the above operation.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=387>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Ext:</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Cache-Control: no-cache</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodResponse</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;IMETHODRESPONSE NAME="CreateClass"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P><A HREF="../../Documents%20and%20Settings/deckstei/Local%20Settings/Temp/CIM_HTTP_Mapping10.htm#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="SecCreationOfASingleInstanceDefinition"><A NAME="_Toc520755903">A.6.&nbsp;Creation of a Single&nbsp;Instance Definition</A></P>
</B></FONT><P>The following HTTP request illustrates how a client would&nbsp;create an instance of the class MySchema_VideoBIOSElement. For clarity of exposition most of the submitted &lt;INSTANCE&gt; element is omitted from the example.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=415>
<TR><TD VALIGN="MIDDLE">
<P>M-POST /cimom HTTP/1.1</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>HOST: <A HREF="http://www.erewhon.com/">http://www.erewhon.com/</A></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodCall</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMMethod: CreateInstance</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMObject: root/cimv2</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&lt;IMETHODCALL NAME="CreateInstance"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &nbsp;&lt;LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE NAME="root"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &nbsp;&lt;NAMESPACE NAME="cimv2"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &nbsp; &lt;/LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE NAME="NewInstance"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCE CLASSNAME="CIM_VideoBIOSElement"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/INSTANCE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P>The following is an HTTP response to the above request indicating&nbsp;success of the above operation.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=505>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Ext:</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Cache-Control: no-cache</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodResponse</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;IMETHODRESPONSE NAME="CreateInstance"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IRETURNVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCENAME CLASSNAME="MySchema_VideoBIOSElement"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;KEYBINDING NAME="Name"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&lt;KEYVALUE&gt;S4&lt;/KEYVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/KEYBINDING&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/INSTANCENAME&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/IRETURNVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IRETURNVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P><A HREF="../../Documents%20and%20Settings/deckstei/Local%20Settings/Temp/CIM_HTTP_Mapping10.htm#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="_Toc520755904">A.7.&nbsp;Enumeration of Class Names</A></P>
</B></FONT><P>The following HTTP request illustrates how a client would&nbsp;enumerate the names of all subclasses of the class CIM_SoftwareElement. </P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=584>
<TR><TD VALIGN="MIDDLE">
<P>M-POST /cimom HTTP/1.1</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>HOST: <A HREF="http://www.erewhon.com/">http://www.erewhon.com/</A></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodCall</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMMethod: EnumerateClassNames</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMObject: root/cimv2</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&lt;IMETHODCALL NAME="EnumerateClassNames"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &nbsp;&lt;LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE NAME="root"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &nbsp;&lt;NAMESPACE NAME="cimv2"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &nbsp; &lt;/LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE NAME="ClassName"&gt;&lt;CLASSNAME NAME="CIM_SoftwareElement"/&gt;&lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&lt;IPARAMVALUE NAME="DeepInheritance"&gt;&lt;VALUE&gt;FALSE&lt;/VALUE&gt;&lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P>The following is an HTTP response to the above request indicating&nbsp;success of the above operation, and returning the names of the requested subclasses.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=413>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Ext:</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Cache-Control: no-cache</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodResponse</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;IMETHODRESPONSE NAME="EnumerateClassNames"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IRETURNVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;CLASSNAME NAME="CIM_BIOSElement"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;CLASSNAME NAME="CIM_VideoBOISElement"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/IRETURNVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODRESPONSE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P><A HREF="../../Documents%20and%20Settings/deckstei/Local%20Settings/Temp/CIM_HTTP_Mapping10.htm#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="_Toc520755905">A.8.&nbsp;<A NAME="SecEnumerationOfInstances">Enumeration of Instances</A></P>
</B></FONT><P>The following HTTP request illustrates how a client would&nbsp;enumerate all instances of the class CIM_LogicalDisk. For clarity of exposition most of the&nbsp;returned&nbsp;Instances&nbsp;are omitted from the example.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=584>
<TR><TD VALIGN="MIDDLE">
<P>M-POST /cimom HTTP/1.1</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>HOST: <A HREF="http://www.erewhon.com/">http://www.erewhon.com/</A></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/operation">http://www.dmtf.org/cim/operation</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodCall</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMMethod: EnumerateInstances</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMObject: root/cimv2</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&lt;IMETHODCALL NAME="EnumerateInstances"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &nbsp;&lt;LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE NAME="root"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &nbsp;&lt;NAMESPACE NAME="cimv2"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &nbsp; &lt;/LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE NAME="ClassName"&gt;&lt;CLASSNAME NAME="CIM_LogicalDisk"/&gt;&lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&lt;IPARAMVALUE NAME="LocalOnly"&gt;&lt;VALUE&gt;TRUE&lt;/VALUE&gt;&lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&lt;IPARAMVALUE NAME="DeepInheritance"&gt;&lt;VALUE&gt;TRUE&lt;/VALUE&gt;&lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P>The following is an HTTP response to the above request indicating&nbsp;success of the above operation, returning the requested instances.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=444>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Ext:</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Cache-Control: no-cache</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodResponse</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;IMETHODRESPONSE NAME="EnumerateInstances"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IRETURNVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;VALUE.NAMEDINSTANCE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCENAME CLASSNAME="Erewhon_LogicalDisk"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/INSTANCENAME&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCE CLASSNAME="Erewhon_LogicalDisk"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/INSTANCE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/VALUE.NAMEDINSTANCE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;VALUE.NAMEDINSTANCE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCENAME CLASSNAME="Foobar_LogicalDisk"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/INSTANCENAME&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCE CLASSNAME="Foobar_LogicalDisk"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/INSTANCE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/VALUE.NAMEINSTANCE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/IRETURNVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODRESPONSE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P><A HREF="../../Documents%20and%20Settings/deckstei/Local%20Settings/Temp/CIM_HTTP_Mapping10.htm#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="_Toc520755906">A.9.&nbsp;<A NAME="SecRetrievalOfASingleProperty"></A>Retrieval of a Single Property</A></A></P>
</B></FONT><P>The following HTTP request illustrates how a client would&nbsp;retrieve the FreeSpace property from the Instance MyDisk.DeviceID="C:".</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=584>
<TR><TD VALIGN="MIDDLE">
<P>M-POST /cimom HTTP/1.1</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>HOST: <A HREF="http://www.erewhon.com/">http://www.erewhon.com/</A></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/operation">http://www.dmtf.org/cim/operation</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodCall</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMMethod: GetProperty</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMObject: root/cimv2</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&lt;IMETHODCALL NAME="GetProperty"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &nbsp;&lt;LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE NAME="root"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &nbsp;&lt;NAMESPACE NAME="cimv2"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &nbsp; &lt;/LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE NAME="InstanceName"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCENAME CLASSNAME="MyDisk"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;KEYBINDING NAME="DeviceID"&gt;&lt;KEYVALUE&gt;C:&lt;/KEYVALUE&gt;&lt;/KEYBINDING&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/INSTANCENAME&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&lt;IPARAMVALUE NAME="PropertyName"&gt;&lt;VALUE&gt;FreeSpace&lt;/VALUE&gt;&lt;/IPARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P>The following is an HTTP response to the above request indicating&nbsp;success of the above operation, returning the requested value.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=387>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Ext:</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Cache-Control: no-cache</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodResponse</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;IMETHODRESPONSE NAME="GetProperty"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;IRETURNVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;VALUE&gt;6752332&lt;/VALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/IRETURNVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/IMETHODRESPONSE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P><A HREF="../../Documents%20and%20Settings/deckstei/Local%20Settings/Temp/CIM_HTTP_Mapping10.htm#top">Back to contents</A></P>
<B><FONT SIZE=5><P><A NAME="_Toc520755907">A.10.&nbsp;<A NAME="SecExecutionOfAnExtrinsicMethod"></A>Execution of an Extrinsic Method</A></A></P>
</B></FONT><P>The following HTTP request illustrates how a client would&nbsp;execute the&nbsp;SetPowerState&nbsp;method&nbsp;on the Instance MyDisk.DeviceID="C:".</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=595>
<TR><TD VALIGN="MIDDLE">
<P>M-POST /cimom HTTP/1.1</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>HOST: <A HREF="http://www.erewhon.com/">http://www.erewhon.com/</A></TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodCall</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMMethod: SetPowerState</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMObject: root/cimv2:Win32_LogicalDisk="C:"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&lt;METHODCALL NAME="SetPowerState"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;LOCALINSTANCEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &nbsp; &lt;LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE NAME="root"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &nbsp; &lt;NAMESPACE NAME="cimv2"/&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &nbsp;&nbsp; &lt;/LOCALNAMESPACEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCENAME CLASSNAME="MyDisk"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;KEYBINDING NAME="C:"&gt;&lt;KEYVALUE&gt;C:&lt;/KEYVALUE&gt;&lt;/KEYBINDING&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/INSTANCENAME&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/LOCALINSTANCEPATH&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;PARAMVALUE NAME="PowerState"&gt;&lt;VALUE&gt;1&lt;/VALUE&gt;&lt;/PARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&lt;PARAMVALUE NAME="Time"&gt;&lt;VALUE&gt;00000001132312.000000:000&lt;/VALUE&gt;&lt;/PARAMVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&lt;/METHODCALL&gt;&nbsp;&nbsp; </TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLEREQ&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;/CIM&gt;</TD>
</TR>
</TABLE>

<P>The following is an HTTP response to the above request indicating&nbsp;success of the above operation.</P>
<TABLE CELLSPACING=0 BORDER=0 WIDTH=387>
<TR><TD VALIGN="MIDDLE">
<P>HTTP/1.1 200 OK</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Type: application/xml; charset="utf-8"</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Content-Length: xxxx</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Ext:</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Cache-Control: no-cache</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>Man: <A HREF="http://www.dmtf.org/cim/mapping/http/v1.0">http://www.dmtf.org/cim/mapping/http/v1.0</A> ; ns=73</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>73-CIMOperation: MethodResponse</TD>
</TR>
<TR><TD VALIGN="MIDDLE">&nbsp;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;?xml version="1.0" encoding="utf-8" ?&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&lt;CIM CIMVERSION="2.0" DTDVERSION="2.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;MESSAGE ID="87872" PROTOCOLVERSION="1.0"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;METHODRESPONSE NAME="SetPowerState"&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;RETURNVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp;&nbsp; &lt;VALUE&gt;0&lt;/VALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp;&nbsp; &lt;/RETURNVALUE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&nbsp; &lt;/METHODRESPONSE&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp; &lt;/SIMPLERSP&gt;</TD>
</TR>
<TR><TD VALIGN="MIDDLE">
<P>&nbsp;&lt;/MESSAGE&gt;</TD>
</TR>
</TABLE>

</BODY>
</HTML>

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2