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

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META content="text/html; charset=unicode" http-equiv=Content-Type>
<META content="Microsoft FrontPage 4.0" name=GENERATOR>
<TITLE>Specification for CIM Operations over HTTP</TITLE>
<LINK TYPE="text/css" REL=STYLESHEET href="cimxml.css">
</HEAD>
<BODY>
<DL>
  <DD>
  <P class=CenterTitle>Distributed Management Task Force, 
  Inc.</P>
  <P class=BigCenterTitle> Specification for&nbsp;CIM 
  Operations over HTTP</P>
  <P class=CenterTitle>Version 1.0</P>
  <P class=CenterTitle>August&nbsp; 11th, 1999</P>
  <P align=justify>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" >dmtf-info@dmtf.org</A> </P>
  <H3>Participants</H3>
  <DIR>
  <DIR>
  <P>This list shows the names of the companies and 
  organizations that have participated in the Distributed Management Task Force - 
  CIM TC XML Sub-Committee whose contributions made this document possible.</P>
  <UL>
    <LI>Agranat Systems 
    <LI>Hewlett-Packard Company 
    <LI>IBM Corporation 
    <LI>Microsoft Corporation 
    <LI>Tivoli Systems, Inc. 
    <LI>Customer Support Consortium 
    <LI>Sun Microsystems, Inc.
    <LI>Intel Corporation</LI></UL></DIR></DIR>
  <H3>Change History</H3>
  <DIV align=center>
  <TABLE border=1 class=ChangeHistory>
    <TBODY>
    <TR>
      <TD width="17%">Version 1.0a</TD>
      <TD width="30%">May 1st, 1999</TD>
      <TD width="52%">First Draft Release</TD></TR>
    <TR>
      <TD width="17%">Version 1.0b</TD>
      <TD width="30%">May 7th, 1999</TD>
      <TD width="52%">Updates after first Working Group Review</TD></TR>
    <TR>
      <TD width="17%">Version 1.0c</TD>
      <TD width="30%">May 11th, 1999</TD>
      <TD width="52%">Further updates</TD></TR>
    <TR>
      <TD width="17%">Version 1.0d</TD>
      <TD width="30%">May 25th, 1999</TD>
      <TD width="52%">Changed LOCAL to PROPAGATED<BR>Added 
        VALUETYPE&nbsp;attribute to KEYVALUE</TD></TR>
    <TR>
      <TD width="17%">Version 1.0e</TD>
      <TD width="30%">May 28th, 1999</TD>
      <TD width="52%">
        <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</P></TD></TR>
    <TR>
      <TD width="17%">Version 1.0</TD>
      <TD width="30%">June&nbsp;2nd, 1999</TD>
      <TD width="52%">
        <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</P></TD></TR>
    <TR>
      <TD width="17%"></TD>
      <TD width="30%">July&nbsp;6th, 1999</TD>
      <TD width="52%">
        <P>Updated examples to reflect DTD changes<BR>QueryExecution based on 
        BasicRead, not BasicWrite</P></TD></TR>
    <TR>
      <TD width="17%"> </TD>
      <TD width="30%">July&nbsp;20th, 1999</TD>
      <TD width="52%">
        <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.</P>      
        </TD></TR></TBODY></TABLE></DIV>
  <H3><A name=top>Contents</A></H3>
  <P style="MARGIN-RIGHT: 0px"><A href="#SecAbstract" >Abstract</A><BR 
  ><A href="#SecIntroduction" >1. Introduction</A><BR>
  <DL>
    <DD><A href="#SecRequirements" >1.1. Requirements</A><BR 
    >
    <DD><A href="#SecTerminology" >1.2. Terminology</A><BR>
    <DD><A href="#SecStyle" >1.3. Style</A><BR></DD></DL><A href="#SecCIMOperationsMessageFormat" >2.&nbsp;CIM Operation Syntax 
  and Semantics</A><BR>
  <DL>
    <DD><A href="#SecOverview" >2.1. Overview</A>
    <DL> 
    <DD><A href="#SecWellFormed">2.1.1. Well-Formed, 
      Valid and Loosely Valid</A></DD></DL>
    <DD><A href="#SecOperationalSemantics">2.2. Operational Semantics</A> 
    <DD><A href="#SecMethodInvocations">2.3. Method 
    Invocations</A>
    <DL>
     <DD><A href="#SecSimpleOperations">2.3.1. Simple 
      Operations</A>
     <DD><A href="#SecMultipleOperations">2.3.2. 
      Multiple Operations</A>&nbsp;
 
     <DD><A href="#SecStatusCodes">2.3.3. Status Codes</A> </DD></DL>
    <DD><A href="#SecIntrinsicMethods">2.4. Intrinsic Methods</A>
    <DL>
     <DD><A href="#SecGetClass">2.4.1. GetClass</A>
      <DD><A href="#SecGetInstance">2.4.2. GetInstance</A>
      <DD><A href="#SecDeleteClass">2.4.3. DeleteClass</A>
      <DD><A href="#SecDeleteInstance">2.4.4. DeleteInstance</A>
      <DD><A href="#SecCreateClass">2.4.5. CreateClass</A>
      <DD><A href="#SecCreateInstance">2.4.6. CreateInstance</A>
      <DD><A href="#SecModifyClass">2.4.7. ModifyClass</A>
      <DD><A href="#SecModifyInstance">2.4.8. ModifyInstance</A>&nbsp;
      <DD><A href="#SecEnumerateClasses">2.4.9. 
      EnumerateClasses</A>
      <DD><A href="#SecEnumerateClassNames">2.4.10. 
      EnumerateClassNames</A>
      <DD><A href="#SecEnumerateInstances">2.4.11. 
      EnumerateInstances</A>
      <DD><A href="#SecEnumerateInstanceNames">2.4.12. 
      EnumerateInstanceNames</A>
      <DD><A href="#SecExecQuery">2.4.13. ExecQuery</A>&nbsp;
      <DD><A href="#SecAssociators">2.4.14. Associators</A>
      <DD><A href="#SecAssociatorNames">2.4.15. 
      AssociatorNames</A>
      <DD><A href="#SecReferencesMethod">2.4.16. 
      References</A>
      <DD><A href="#SecReferenceNames">2.4.17. ReferenceNames</A>&nbsp;
      <DD><A href="#SecGetProperty">2.4.18. GetProperty</A>
      <DD><A href="#SecSetProperty">2.4.19. SetProperty</A>
      <DD><A href="#SecGetQualifier">2.4.20. GetQualifier</A>&nbsp;
      <DD><A href="#SecSetQualifier">2.4.21. SetQualifier</A>
      <DD><A href="#SecDeleteQualifier">2.4.22. 
      DeleteQualifier</A>
      <DD><A href="#SecEnumerateQualifiers">2.4.23. 
      EnumerateQualifiers</A></DD></DL>
    <DD><A href="#SecNamespaceManipulation">2.5. 
    Namespace Manipulation</A>
    <DD><A href="#SecFunctionalProfiles">2.6. Functional 
    Profiles</A>
     <DD><A href="#SecExtrinsicMethodInvocation">2.7. Extrinsic Method Invocation</A></DD>
   </DL>
    <A href="#SecEncapsulationOfCIMOperations" >3. 
  Encapsulation of CIM Operations</A><BR>
  <DL>
    <DD><A href="#SecCIMClientsAndServers" >3.1. CIM 
    Clients and Servers</A><BR>
    <DD><A href="#SecUseOfMPOSTAndPOST" >3.2. Use of 
    M-POST and POST</A><BR>
    <DL>
      <DD><A href="#SecUseOfTheExtHeader" >3.2.1. Use of 
      the Ext Header</A><BR></DD></DL>
    <DD><A href="#SecExtensionHeadersDefinedForCIM" >3.3. 
    Extension Headers Defined for CIM Operation Requests and Responses</A><BR 
    >
    <DL>
      <DD><A href="#SecNamingOfExtensionHeaders" >3.3.1. 
      Naming of Extension Headers</A><BR>
      <DD><A href="#SecEncodingOfCIMNamesWithinHTTPHeaders">3.3.2. Encoding of 
      CIM Names within HTTP Headers</A><BR>
      <DD><A href="#SecEncodingOfCIMObjectPathsWithinHTTPHeaders">3.3.3. 
      Encoding of CIM Object Paths within HTTP Headers</A>
      <DD><A href="#SecCIMOperation" >3.3.4. CIMOperation</A>
      <DD><A href="#SecCIMProtocolVersion" >3.3.5. 
      CIMProtocolVersion</A><BR>
      <DD><A href="#SecCIMMethod" >3.3.6. CIMMethod</A><BR>
      <DD><A href="#SecCIMObject" >3.3.7. CIMObject</A><BR>
      <DD><A href="#SecCIMBatch" >3.3.8. CIMBatch</A>
      <DD><A href="#SecCIMError">3.3.9. 
CIMError</A>&nbsp;</DD></DL></DD></DL>
  <DD><A href="#SecHTTPRequirementsAndUsage" >4. HTTP Requirements &amp; 
  Usage</A><BR>
  <DL>
    <DD><A href="#SecHTTPSupport" >4.1. HTTP Support</A><BR 
    >
    <DD><A href="#SecUseOfStandardHeaders" >4.2. Use of 
    Standard Headers</A><BR>
    <DL>
      <DD><A href="#SecAccept" >4.2.1. Accept</A><BR>
      <DD><A href="#SecAccept-Charset" >4.2.2. Accept-Charset</A><BR 
      >
      <DD><A href="#SecAccept-Encoding" >4.2.3. 
      Accept-Encoding</A><BR>
      <DD><A href="#SecAccept-Language" >4.2.4. 
      Accept-Language</A><BR>
      <DD><A href="#SecAccept-Ranges" >4.2.5. Accept-Ranges</A><BR 
      >
      <DD><A href="#SecAllow" >4.2.6. Allow</A><BR>
      <DD><A href="#SecAuthorization" >4.2.7. Authorization</A><BR 
      >
      <DD><A href="#SecCache-Control" >4.2.8. Cache-Control</A><BR 
      >
      <DD><A href="#SecConnection" >4.2.9. Connection</A><BR 
      >
      <DD><A href="#SecContent-Encoding" >4.2.10. 
      Content-Encoding</A><BR>
      <DD><A href="#SecContent-Language" >4.2.11. 
      Content-Language</A><BR>
      <DD><A href="#SecContent-Range" >4.2.12. Content-Range</A><BR 
      >
      <DD><A href="#SecContent-Type" >4.2.13. Content-Type</A><BR 
      >
      <DD><A href="#SecExpires" >4.2.14. Expires</A><BR>
      <DD><A href="#SecIf-Range" >4.2.15. If-Range</A><BR>
      <DD><A href="#SecProxy-Authenticate" >4.2.16. 
      Proxy-Authenticate</A><BR>
      <DD><A href="#SecRange" >4.2.17. Range</A><BR>
      <DD><A href="#SecWWW-Authenticate" >4.2.18. 
      WWW-Authenticate</A><BR></DD></DL>
    <DD><A href="#SecErrors" >4.3. Errors and Status Codes</A><BR>
    <DD><A href="#SecSecurityConsiderations" >4.4. 
    Security Considerations</A><BR>
    <DD><A href="#SecDeterminingCIMServerCapabilities" >4.5. Determining CIM 
    Server Capabilities</A><BR>
    <DL>
      <DD><A href="#SecCIMSupportedFunctionalGroups">4.5.1. 
      CIMSupportedFunctionalGroups</A>
      <DD><A href="#SecCIMSupportsMultipleOperations">4.5.2. 
      CIMSupportsMultipleOperations</A>
      <DD><A href="#SecCIMSupportedQueryLanguages">4.5.3. 
      CIMSupportedQueryLanguages</A>
      <DD><A href="#SecCIMValidation">4.5.4. 
      CIMValidation</A></DD></DL>
    <DD><A href="#SecOtherHTTPMethods" >4.6. Other HTTP Methods</A><BR 
    >
    <DD><A href="#SecDiscoveryAndAddressing" >4.7. 
    Discovery and Addressing</A><BR>
    <DD><A href="#SecInternationalizationConsiderations" >4.8. 
    Internationalization Considerations</A><BR></DD></DL>
    <A href="#SecReferences" >5. 
  References</A><BR>
    <A href="#SecAppendixA" >Appendix A - Examples of 
  Message Exchanges</A><BR>
  <DL>
   <DD><A href="#SecRetrievalOfASingleClassDefinition">A.1. Retrieval of a 
    Single Class Definition</A>
   <DD><A href="#SecRetrievalOfASingleInstanceDefinition">A.2. Retrieval of a 
    Single Instance Definition</A>
   <DD><A href="#SecDeletionOfASingleClassDefinition">A.3. Deletion of a 
    Single Class Definition</A>
   <DD><A href="#SecDeletionOfASingleInstanceDefinition">A.4. Deletion of a 
    Single Instance Definition</A>
   <DD><A href="#SecCreationOfASingleClassDefinition">A.5. Creation of a 
    Single Class Definition</A>
   <DD><A href="#SecCreationOfASingleInstanceDefinition">A.6. Creation of a 
    Single Instance Definition</A>
   <DD><A href="#SecEnumerationOfClassNames">A.7. 
    Enumeration of Class Names</A>
   <DD><A href="#SecEnumerationOfInstances">A.8. 
    Enumeration of Instances</A>
   <DD><A href="#SecRetrievalOfASingleProperty">A.9. 
    Retrieval of&nbsp;a Single Property</A>
   <DD><A href="#SecExecutionOfAnExtrinsicMethod">A.10. 
    Execution of an Extrinsic Method</A>&nbsp;</DD></DL><BR></DD></DL>
<H1><A name=SecAbstract></A>Abstract</H1>
<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://ietf.org/internet-drafts/draft-ietf-http-v11-spec-rev-06.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 Operations 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>
<P><A name=intro></A></P>
<H1>1. <A name=SecIntroduction></A>Introduction</H1>
<P>This document defines a mapping of CIM operations 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="#SecCIMOperationsMessageFormat" >Section 
  2</A>    describes the CIM Operations which form the HTTP 
  payload, using XML. It specifies the syntax and semantics of the operation 
  requests and their corresponding responses. 
  <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><A href="#SecHTTPRequirementsAndUsage" >Section 
  4</A> 
  describes in more detail other aspects of the encapsulation: 
  <UL>
    <LI>HTTP Version Support 
    <LI>The use of standard HTTP Headers 
    <LI>HTTP Error codes 
    <LI>Security Considerations </LI></UL></LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H2><A name=SecRequirements>1.1. 
Requirements</A></H2>
<P>There are potentially many different ways in which CIM 
operations could be represented within XML, and those 
operations&nbsp;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>The following criteria have been applied to the 
representation&nbsp;of CIM Operations in XML [2,11]: 
<UL>
  <LI>Each CIM Operation is described completely in XML; 
  completeness is favored over conciseness.&nbsp; 
  <LI> The set of CIM Operations provide 
  sufficient functionality to enable implementations of CIM to communicate effectively 
  for the purposes of management. It is not a goal of the first release of 
  this&nbsp;mapping to provide a <U>complete</U>  set of 
  operations. It is a goal to define the&nbsp;mapping so as to admit straightfoward extension 
  (addition of further features) in future versions. 
  <LI>The set of CIM Operations&nbsp;are classified into 
  functional profiles so that a range of implementations (varying from complete 
  support of all operations 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 Operations herein: 
<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>The encapsulation does not introduce any requirements 
  which are in conflict with those stated in HTTP/1.0 or HTTP/1.1 
  <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>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>The encapsulation exposes key CIM operation 
  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 Operation. 
  <LI>There is a clear and unambiguous encapsulation of the 
  CIM Operation payload within the HTTP Message. Conciseness of the 
  encapsulation is of secondary importance. </LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H2><A name=SecTerminology>1.2. 
Terminology</A></H2>
<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>
<H2><A name=SecStyle>1.3. 
Style</A></H2>
<P>This document uses a number of stylistic conventions to 
highlight examples and definitions.</P>
<P>Examples are displayed in this fashion:</P>
<TABLE class=Example>
  
  <TR>
    <TD>This is an example</TD></TR></TABLE>
<P>Definitions are illustrated thusly:</P>
<P>
<TABLE class=Definition>
  
  <TR>
    <TD>This is a definition</TD></TR></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H2>2. <A name=SecCIMOperationMessageFormat>CIM Operation Syntax and Semantics</A></H2>
<H2>2.1. Overview</H2>
<P>This specification defines all interactions between CIM 
entities as Operations.&nbsp; CIM Operations belong to a larger category known 
as CIM Messages (currently all Messages are Operations, but in future this may 
not be true).</P>
<P>This section describes the syntax and semantics of CIM 
Operations 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>
<H3><A name=SecWellFormed>2.1.1. </A>Well-Formed, Valid and Loosely Valid</H3>
<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 style="MARGIN-RIGHT: 0px">
  <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>&nbsp;or a <A 
href="#DefCIMServer">CIM Server</A> when parsing received XML documents defined within the scope of this 
mapping. It is recognized that not all Clients (respectively,&nbsp;Servers) 
should be required to validate&nbsp;each received <A 
href="#DefOperationResponseMessage">Operation&nbsp;Response Message</A> 
(respectively,&nbsp;<A href="#DefOperationRequestMessage">Operation Request 
Message</A>) 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) MAY include a 
  DOCTYPE element in an&nbsp;Operation Request Message (respectively, Operation 
  Response Message). If so, an External declaration SHOULD be used (in-lining of 
  the complete DTD within a message is discouraged). 
  <LI>A CIM Client (respectively, CIM Server) MAY elect to 
  validate a received&nbsp;Operation Response Message (respectively, Operation 
  Request Message).&nbsp; 
  <LI>            
          
                
             
  If a CIM Client (respectively, CIM Server) elects not to validate a received Operation Response 
  Message (respectively, Operation Request Message), then loose validation MUST be 
enforced.</LI></UL>
<P>The behavior of a CIM Server with respect to a received 
Operation Request Message is covered in detail in the section on <A 
href="#SecErrors">Errors and Status Codes</A>              
             
            
               
        
.</P>
<H2>2.2. <A name=SecOperationalSemantics></A>Operational Semantics </H2>
<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>
<UL>
  <LI>&lt;SIMPLEREQ&gt; 
  <LI>&lt;SIMPLERSP&gt; 
  <LI>&lt;MULTIREQ&gt; 
  <LI>&lt;MULTIRSP&gt;</LI></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><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></UL>
<P>An Operation Request Message MUST contain a non-empty 
value for the <FONT face="Courier New">ID</FONT> attribute 
of the &lt;MESSAGE&gt; element.&nbsp; The corresponding Operation Response 
Message 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 
Operation Response Message.</P>
<P>Any Operation Request Message or Operation Response 
Message 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;Operation Response Message sent in response to 
an Operation 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 
  Operation Request Message, and 
  <UL>
    <LI>contain a&nbsp;&lt;MULTIRSP&gt; subelement if the 
    Operation Request Message contained a &lt;MULTIREQ&gt; subelement, or 
    <LI>contain&nbsp;a &lt;SIMPLERSP&gt; subelement if the 
    Operation Request Message contained a &lt;SIMPLEREQ&gt; 
  subelement.</LI></UL></LI></UL>
<P>A <EM><A 
name=#DefSimpleOperationRequest><EM>Simple Operation Request</EM></A></EM> is an Operation 
Request Message that contains a &lt;SIMPLEREQ&gt; subelement.&nbsp; A <EM><A name=DefSimpleOperationResponse><EM>Simple Operation Response</EM></A></EM> is an Operation 
Response Message that contains a &lt;SIMPLERSP&gt; subelement.</P>
<P>A <A name=DefMultipleOperationRequest><EM>Multiple Operation 
Request</EM></A> is an Operation Request Message that contains a 
&lt;MULTIREQ&gt; subelement.&nbsp; A <A name=DefMultipleOperationResponse><EM>Multiple Operation 
Response</EM></A> is an Operation Response Message that contains a 
&lt;MULTIRSP&gt; subelement.</P>
<P><A href="#top" >Back to contents</A></P>
<H2>2.3. Method Invocations</H2>
<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><EM><A name=DefIntrinsic 
  ><EM>Intrinsic</EM></A></EM>, 
  which means that it is defined by this specification for the purposes of 
  modelling a CIM operation, or; 
  <LI><EM><A name=DefExtrinsic 
  ><EM>Extrinsic</EM></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="#DefIntrinsicMethods" >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 style="MARGIN-RIGHT: 0px">
  <LI>Each Input parameter MUST be named using the name 
  assigned in the method definition. 
  <LI>The Input parameters MAY be supplied in any order. 
  <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>The Output parameters MAY be supplied in any order. 
  <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>The attempted execution of the method using the bound 
  input parameters, and; 
  <UL>
    <LI>If attempt to call the method is successful, the 
    binding of the the return value and output parameters to the subelements of 
    the &lt;METHODRESPONSE&gt; or &lt;IMETHODRESPONSE&gt; element, or; 
    <LI>If the attempt to call the method is unsuccesful, 
    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></LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>2.3.1. Simple Operations</H3>
<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 style="MARGIN-RIGHT: 0px">
  <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>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>
<H3>2.3.2. <A name=SecMultipleOperations>Multiple Operations</A></H3>
<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 CIM 
Server 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).</P>
<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>
<H3>2.3.3. Status Codes</H3>
<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>
<P>
<TABLE border=1 borderColor=teal cellPadding=5 cellSpacing=1 id=TABLE7 
width="100%" Color="teal">
  <THEAD>
  <TR>
    <TD>
      <P align=center><FONT size=3 
      ><STRONG>Symbolic 
      Name</STRONG></FONT></P></TD>
    <TD>
      <P align=center><FONT size=3 
      ><STRONG 
    >CODE</STRONG></FONT></P></TD>
    <TD>
      <P align=center><FONT size=3 
      ><STRONG>Definition</STRONG> 
      </FONT></P></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD><FONT size=2><A 
      name=DefCimErrFailed><FONT size=2 
      >CIM_ERR_FAILED</FONT></A></FONT></TD>
    <TD><FONT size=2>1</FONT></TD>
    <TD><FONT size=2>A general error 
      occured that is not covered by a more specific error code</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefCimErrAccessDenied><FONT size=2 
      >CIM_ERR_ACCESS_DENIED</FONT></A></FONT></TD>
    <TD><FONT size=2>2</FONT></TD>
    <TD><FONT size=2>Access to a CIM 
      resource was not available to the client</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefCimErrInvalidNamespace><FONT size=2 
      >CIM_ERR_INVALID_NAMESPACE</FONT></A></FONT></TD>
    <TD><FONT size=2>3</FONT></TD>
    <TD><FONT size=2>The target 
      namespace does not exist</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><FONT size=2 
      ><A name=DefCimErrInvalidParameter 
      ><FONT size=2><A 
      name=DefCimErrInvalidParameter><FONT size=2 
      >CIM_ERR_INVALID_PARAMETER</FONT></A><A 
      name=DefCimErrInvalidParameter 
      ></FONT></A></FONT></A></FONT></TD>
    <TD><FONT size=2>4</FONT></TD>
    <TD><FONT size=2>One or more 
      parameter values passed to the method were invalid</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefCimErrInvalidClass><FONT size=2 
      >CIM_ERR_INVALID_CLASS</FONT></A></FONT></TD>
    <TD><FONT size=2>5</FONT></TD>
    <TD><FONT size=2>The specified 
      Class does not exist</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefCimErrNotFound><FONT size=2 
      >CIM_ERR_NOT_FOUND</FONT></A></FONT></TD>
    <TD><FONT size=2>6</FONT></TD>
    <TD><FONT size=2>The requested 
      object could not be found</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefCimErrNotSupported><FONT size=2 
      >CIM_ERR_NOT_SUPPORTED</FONT></A></FONT></TD>
    <TD><FONT size=2>7</FONT></TD>
    <TD><FONT size=2>The requested 
      operation is not supported</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefCimErrClassHasChildren><FONT size=2 
      >CIM_ERR_CLASS_HAS_CHILDREN</FONT></A></FONT></TD>
    <TD><FONT size=2>8</FONT></TD>
    <TD><FONT size=2>Operation 
      cannot be carried out on this class since it has subclasses</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefCimErrClassHasInstances><FONT size=2 
      >CIM_ERR_CLASS_HAS_INSTANCES</FONT></A></FONT></TD>
    <TD><FONT size=2>9</FONT></TD>
    <TD><FONT size=2>Operation 
      cannot be carried out on this class since it has instances</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefCimErrInvalidSuperclass><FONT size=2 
      >CIM_ERR_INVALID_SUPERCLASS</FONT></A></FONT></TD>
    <TD><FONT size=2>10</FONT></TD>
    <TD><FONT size=2>Operation 
      cannot be carried out since the specified superclass does not 
    exist</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefCimErrAlreadyExists><FONT size=2 
      >CIM_ERR_ALREADY_EXISTS</FONT></A></FONT></TD>
    <TD><FONT size=2>11</FONT></TD>
    <TD><FONT size=2>Operation 
      cannot be carried out because an object already exists</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefCimErrNoSuchProperty><FONT size=2 
      >CIM_ERR_NO_SUCH_PROPERTY</FONT></A></FONT></TD>
    <TD><FONT size=2>12</FONT></TD>
    <TD><FONT size=2>The specified 
      Property does not exist</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefCimErrTypeMismatch><FONT size=2 
      >CIM_ERR_TYPE_MISMATCH</FONT></A></FONT></TD>
    <TD><FONT size=2>13</FONT></TD>
    <TD><FONT size=2>The value 
      supplied is incompatible with the type</FONT></TD></TR>
  <TR>
    <TD><FONT size=2 
      >CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED</FONT></TD>
    <TD><FONT size=2>14</FONT></TD>
    <TD><FONT size=2>The query 
      language is not recognized or supported</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A name=DefCimErrInvalidQuery><FONT 
      size=2>CIM_ERR_INVALID_QUERY</FONT></A></FONT></TD>
    <TD><FONT size=2>15</FONT></TD>
    <TD><FONT size=2>The query is not valid for the specified query 
      language</FONT></TD></TR>
  <TR>
    <TD><FONT size=2>CIM_ERR_METHOD_NOT_AVAILABLE</FONT></TD>
    <TD><FONT size=2>16</FONT></TD>
    <TD><FONT size=2>The extrinsic Method could not be executed</FONT></TD></TR>
  <TR>
    <TD><FONT size=2>CIM_ERR_METHOD_NOT_FOUND</FONT></TD>
    <TD><FONT size=2>17</FONT></TD>
    <TD><FONT size=2>   
      The specified extrinsic Method does not exist</FONT></TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H2>2.4. <A name=SecIntrinsicMethods>Intrinsic Methods</A></H2>
<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 style="MARGIN-RIGHT: 0px">
  <LI><A href="#SecGetClass" >Get a CIM Class</A> 
  <LI><A href="#SecGetInstance" >Get a CIM Instance</A> 
  <LI><A href="#SecDeleteClass" >Delete a CIM Class</A> 
  <LI><A href="#SecDeleteInstance" >Delete a CIM Instance</A>&nbsp; 
  <LI><A href="#SecCreateClass" >Create a CIM Class</A> 
  <LI><A href="#SecCreateInstance" >Create a CIM Instance</A> 
  <LI><A href="#SecModifyClass" >Modify a CIM Class</A> 
  <LI><A href="#SecModifyInstance" >Modify a CIM Instance</A>&nbsp; 
  <LI><A href="#SecEnumerateClasses" >Enumerate subclasses of a CIM Class</A> 
  <LI><A href="#SecEnumerateClassNames" >Enumerate 
  subclass names of a CIM Class</A>&nbsp; 
  <LI><A href="#SecEnumerateInstances" >Enumerate instances of a CIM Class</A> 
  <LI><A href="#SecEnumerateInstanceNames" >Enumerate 
  instance names of a CIM Class</A>&nbsp; 
  <LI><A href="#SecDeleteQualifier" >Delete a CIM Qualifier definition</A> 
  <LI><A href="#SecCreateQualifier" >Create a CIM Qualifier definition</A> 
  <LI><A href="#SecEnumerateQualifiers" >Enumerate&nbsp;CIM Qualifier 
  definitions</A> 
  <LI><A href="#SecExecQuery" >Execute a Query</A> 
  <LI><A href="#SecAssociators" >Enumerate associators of a CIM Object</A> 
  <LI><A href="#SecAssociatorNames" >Enumerate names of associators of a CIM 
  Object</A> 
  <LI><A href="#SecReferences" >Enumerate references to a CIM Object</A> 
  <LI><A href="#SecReferenceNames" >Enumerate names of references to a CIM 
  Object</A>&nbsp; 
  <LI><A href="#SecGetProperty" >Get a CIM Property value from a CIM 
  Instance</A> 
  <LI><A href="#SecSetProperty" >Set a CIM Property value from a CIM 
  Instance</A> 
  <LI><A href="#SecGetQualifier" >Get a Qualifier declaration</A> 
  <LI><A href="#SecSetQualifier" >Set a Qualifier declaration</A> 
  <LI><A href="#SecDeleteQualifier" >Delete a Qualifier declaration</A> 
  <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 descriptional 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 
paramaters 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 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 modelled 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>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>
<P>
<TABLE border=1 cellPadding=1 cellSpacing=1 width="100%">
  <TBODY>
  <TR>
    <TD>
      <P align=center><STRONG 
      >Type</STRONG></P></TD>
    <TD>
      <P align=center><STRONG>XML 
      Element</STRONG></P></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=Def_object><FONT size=2 
      >&lt;object&gt;</FONT></A></FONT></TD>
    <TD><FONT size=2 
      >(VALUE.OBJECT|VALUE.OBJECTWITHLOCALPATH|VALUE.OBJECTWITHPATH)</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=sec_defclass><FONT size=2 
      >&lt;class&gt;</FONT></A></FONT></TD>
    <TD><FONT size=2 
  >CLASS</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=sec_definstance><FONT size=2 
      >&lt;instance&gt;</FONT></A></FONT></TD>
    <TD><FONT size=2 
    >INSTANCE</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=def_className>&lt;className&gt;</A></FONT></TD>
    <TD><FONT size=2 
    >CLASSNAME</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=sec_defnamedinstance><FONT size=2 
      >&lt;namedInstance&gt;</FONT></A></FONT></TD>
    <TD><FONT size=2 
      >VALUE.NAMEDINSTANCE</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=def_instanceName><FONT size=2 
      >&lt;instanceName&gt;</FONT></A></FONT></TD>
    <TD><FONT size=2 
      >INSTANCENAME</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=Def_objectWithPathArray><FONT size=2 
      >&lt;objectWithPath&gt;</FONT></A></FONT></TD>
    <TD>
      <P align=left><FONT size=2 
      >VALUE.OBJECTWITHPATH</FONT></P></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=Def_objectName><FONT size=2 
      >&lt;objectName&gt;</FONT></A></FONT></TD>
    <TD><FONT size=2 
      >(CLASSNAME|INSTANCENAME)</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=Def_propertyValue 
      >&lt;propertyValue&gt;</A></FONT></TD>
    <TD><FONT size=2 
      >(VALUE|VALUE.ARRAY|VALUE.REFERENCE)</FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=Def_qualifierDecl><FONT size=2 
      >&lt;qualifierDecl&gt;</FONT></A></FONT></TD>
    <TD><FONT size=2 
      >QUALIFIER.DECLARATION</FONT></TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H3>2.4.1. <A name=SecGetClass>GetClass</A></H3>
<P>This operation is used to return a single CIM Class from 
the target Namespace.&nbsp; </P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;GetClass</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>CIM_ERR_INVALID_NAMESPACE 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_NOT_FOUND (the request CIM Class does not 
  exist in the specified namespace) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>2.4.2. <A name=SecGetInstance>GetInstance</A></H3>
<P>This operation is used to return a single CIM Instance 
from the target Namespace.&nbsp; </P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;GetInstance</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>CIM_ERR_INVALID_NAMESPACE 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist 
  in the specified namespace) 
  <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the 
  requested CIM&nbsp;Instance does not exist in the specified namespace) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>2.4.3. DeleteClass</H3>
<P>This operation is used to delete a single CIM Class from 
the target Namespace.</P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;DeleteClass</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_NOT_FOUND (the CIM Class to be deleted does 
  not exist) 
  <LI>CIM_ERR_CLASS_HAS_CHILDREN (the CIM Class has one or 
  more subclasses which cannot be deleted) 
  <LI>CIM_ERR_CLASS_HAS_INSTANCES (the CIM Class has one or 
  more instances which cannot be deleted) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>2.4.4. <A name=SecDeleteInstance>DeleteInstance</A></H3>
<P>This operation is used to&nbsp;delete a single CIM 
Instance from the target Namespace.&nbsp; </P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;DeleteInstance</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist 
  in the specified namespace) 
  <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the 
  requested CIM&nbsp;Instance does not exist in the specified namespace) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>2.4.5. <A name=SecCreateClass>CreateClass</A></H3>
<P>This operation is used to create a single CIM Class in 
the target Namespace.&nbsp; The Class MUST NOT already exist.</P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;CreateClass</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>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>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: 
  <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>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>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>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>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></LI></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE&nbsp; 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_ALREADY_EXISTS (the CIM Class already 
  exists)&nbsp; 
  <LI>CIM_ERR_INVALID_SUPERCLASS (the putative CIM Class 
  declares a non-existent superclass) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>2.4.6. <A name=SecCreateInstance>CreateInstance</A></H3>
<P>This operation is used to create a single CIM Instance 
in the target Namespace. The Instance MUST NOT already exist.</P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;CreateInstance</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>The Server MUST ensure that: 
  <UL>
    <LI>Any Qualifiers&nbsp;in the Instance not defined in 
    the&nbsp;Class are created as new&nbsp;elements of the Instance. 
    <LI>All Properties of the&nbsp;Instance preserve their 
    <FONT face="Courier New">CLASSORIGIN</FONT> attribute 
    value from that defined in the Class. 
    <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>If a Property of the&nbsp;Class is not specified in 
    the Instance, then that Property is inherited without modification by the 
    Instance. 
    <LI>Any Qualifiers defined in the&nbsp;Class with a 
    <FONT face="Courier New">TOINSTANCE</FONT> attribute 
    value of <FONT face="Courier New">true</FONT> appear in 
    the&nbsp;Instance. Qualifiers in the Class with a <FONT face="Courier New" 
    >TOINSTANCE</FONT> attribute value of <FONT 
    face="Courier New">false</FONT> MUST NOT be propagated 
    to the Instance. 
    <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></LI></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE&nbsp; 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_INVALID_CLASS (the CIM Class of which this is 
  to be a new Instance does not exist) 
  <LI>CIM_ERR_ALREADY_EXISTS (the CIM&nbsp;Instance already 
  exists)&nbsp; 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>2.4.7. <A name=SecModifyClass>ModifyClass</A></H3>
<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>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;ModifyClass</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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;modifcation 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>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: 
  <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>Any Properties, Methods or Qualifiers in the 
    existing Class definition which do not appear in the&nbsp; <FONT 
    face="Courier New">ModifiedClass</FONT> 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"><FONT 
  face="Courier New">ModifiedClass</FONT></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: 
  <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>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"><FONT 
    face="Courier New">ModifiedClass</FONT></FONT> 
    parameter, is removed from the Subclass.&nbsp; 
    <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>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>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>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>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></LI></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE&nbsp; 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_NOT_FOUND (the CIM Class&nbsp;does not 
  exist)&nbsp; 
  <LI>CIM_ERR_INVALID_SUPERCLASS (the putative CIM Class 
  declares a non-existent or incorrect superclass) 
  <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>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>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>2.4.8. <A name=SecModifyInstance>ModifyInstance</A></H3>
<P>This operation is used to&nbsp;modify an existing CIM 
Instance in the target Namespace. The Instance MUST&nbsp;already exist.</P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;ModifyInstance</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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;modifcation 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>The Class MUST exist, and the Client MUST NOT change 
  the name of the Class in the modified Instance. The Server MUST ensure that: 
  <UL>
    <LI>Any Qualifiers&nbsp;in the Instance not defined in 
    the&nbsp;Class are created as new&nbsp;elements of the Instance. 
    <LI>All Properties of the&nbsp;Instance preserve their 
    <FONT face="Courier New">CLASSORIGIN</FONT> attribute 
    value from that defined in the Class. 
    <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"><FONT face="Courier New" 
    >ModifiedInstance</FONT></FONT> parameter, is removed 
    from the Instance.&nbsp; 
    <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>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>Any Qualifiers defined in the&nbsp;Class with a 
    <FONT face="Courier New">TOINSTANCE</FONT> attribute 
    value of <FONT face="Courier New">true</FONT> appear in 
    the&nbsp;Instance (it is not possible remove a propagated Qualifier from an 
    Instance. Qualifiers in the Class with a <FONT face="Courier New" 
    >TOINSTANCE</FONT> attribute value of <FONT 
    face="Courier New">false</FONT> MUST NOT be propagated 
    to the Instance. 
    <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>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></LI></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE&nbsp; 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_INVALID_CLASS (the CIM Class of which this is 
  to be a new Instance does not exist) 
  <LI>CIM_ERR_NOT_FOUND (the CIM&nbsp;Instance does not 
  exist)&nbsp; 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>2.4.9. <A name=SecEnumerateClasses></a><A name=DefEnumerateClasses>EnumerateClasses</A></H3>
<P>This operation is used to enumerate subclasses of a CIM 
Class in the target Namespace.</P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;EnumerateClasses</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE&nbsp; 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the 
  basis for this enumeration does not exist) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>2.4.10. <A name=SecEnumerateClassNames>EnumerateClassNames</A></H3>
<P>This operation is used to enumerate the names of 
subclasses of a CIM Class in the target Namespace.</P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;EnumerateClassNames</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE&nbsp; 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the 
  basis for this enumeration does not exist) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>2.4.11. <A name=SecEnumerateInstances></a><A name=DefEnumerateInstances>EnumerateInstances</A></H3>
<P>This operation is used to enumerate instances of a CIM 
Class in the target Namespace.</P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;EnumerateInstances</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE&nbsp; 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the 
  basis for this enumeration does not exist) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>
</h3>
<H3>2.4.12. <A name=SecEnumerateInstanceNames>EnumerateInstanceNames</A></H3>
<P>This operation is used to enumerate the names (model 
paths) of the instances of a CIM Class in the target Namespace.</P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;EnumerateInstanceNames</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE&nbsp; 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the 
  basis for this enumeration does not exist) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>
</h3>
<H3>2.4.13. <A name=SecExecQuery>ExecQuery</A></H3>
<P>This operation is used to execute a query against the 
target Namespace.</P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;ExecQuery</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&nbsp;<A href="#Def_objectArray" >&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></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE&nbsp; 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED (the requested 
  query language is not recognized) 
  <LI>CIM_ERR_INVALID_QUERY (the query is not a valid 
  query&nbsp;in the specified query language)&nbsp; 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>
</h3>
<H3>2.4.14. <A name=SecAssociators>Associators</A></H3>
<P>This operation is used to enumerate CIM Objects (Classes 
or Instances) that are associated to a particular 
source&nbsp;CIM&nbsp;Object.</P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;Associators</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE&nbsp; 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>
</h3>
<H3>2.4.15. <A name=SecAssociatorNames>AssociatorNames</A></H3>
<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>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;AssociatorNames</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&nbsp;<A href="#Def_objectPathArray" >&lt;objectPath&gt;*</A>&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></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE&nbsp; 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>
</h3>
<H3>2.4.16. <A name=SecReferencesMethod>References</A></H3>
<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>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;References</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE&nbsp; 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>
</h3>
<H3>2.4.17. <A name=SecReferenceNames>ReferenceNames</A></H3>
<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>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;ReferenceNames</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&nbsp;<A href="#Def_objectPathArray" >&lt;objectPath&gt;*</A>&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></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE&nbsp; 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>
</h3>
<H3>2.4.18. <A name=SecGetProperty>GetProperty</A></H3>
<P style="COLOR: black">This operation is used to retrieve 
a single property value from a CIM Instance in the target Namespace.</P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;GetProperty</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD style="COLOR: black">&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></TBODY></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>CIM_ERR_INVALID_NAMESPACE 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist 
  in the specified namespace) 
  <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the 
  requested CIM&nbsp;Instance does not exist in the specified namespace) 
  <LI>CIM_ERR_NO_SUCH_PROPERTY (the CIM Instance does 
  exist, but the requested Property does not)&nbsp; 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>
</h3>
<H3>2.4.19. <A name=SecSetProperty>SetProperty</A></H3>
<P>This operation is used to&nbsp;set a single property 
value in a CIM Instance in the target Namespace.</P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;SetProperty</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist 
  in the specified namespace) 
  <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the 
  requested CIM&nbsp;Instance does not exist in the specified namespace) 
  <LI>CIM_ERR_NO_SUCH_PROPERTY (the CIM Instance does 
  exist, but the requested Property does not)&nbsp; 
  <LI>CIM_ERR_TYPE_MISMATCH (the supplied value is 
  incompatible with the type of the Property) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>
</h3>
<H3>2.4.20. <A name=SecGetQualifier></a><A 
name=SecGetQualifier>GetQualifier</A></H3>
<P>This operation is used to&nbsp;retrieve&nbsp;a single 
Qualifier declaration from the target Namespace.&nbsp; </P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;GetQualifier</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_NOT_FOUND (the requested Qualifier 
  declaration did not exist) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>
</h3>
<H3>2.4.21. <A name=SecSetQualifier>SetQualifier</A></H3>
<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>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;SetQualifier</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&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></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>2.4.22. <A name=SecDeleteQualifier>DeleteQualifier</A></H3>
<P>This operation is used to&nbsp;delete&nbsp;a single 
Qualifier declaration from the target Namespace.&nbsp; </P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;DeleteQualifier</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&nbsp;void <STRONG 
      >DeleteQualifier</STRONG> (<BR 
      >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      [IN]&nbsp;string QualifierName<BR 
  >&nbsp;)</TD></TR></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_NOT_FOUND (the requested Qualifier 
  declaration did not exist) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H3>2.4.23. <A name=SecEnumerateQualifiers>EnumerateQualifiers</A></H3>
<P>This operation is used to&nbsp;enumerate Qualifier 
declarations from the target Namespace.&nbsp; </P>
<P>
<TABLE border=1 class=Definition>
  <THEAD>
  <TR>
    <TD><FONT face=Verdana><STRONG 
      >&nbsp;EnumerateQualifiers</STRONG></FONT></TD></TR></THEAD>
  <TBODY>
  <TR>
    <TD>&nbsp;<A href="#Def_qualifierDecl" >&lt;qualifierDecl&gt;*</A> <STRONG 
      >EnumerateQualifiers</STRONG> (<BR 
      >&nbsp;)</TD></TR></TBODY></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>CIM_ERR_NOT_SUPPORTED 
  <LI>CIM_ERR_INVALID_NAMESPACE 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate,&nbsp;unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H2>2.5. <A name=SecNamespaceManipulation>Namespace Manipulation</A></H2>
<P>There are no <A href="#DefIntrinsic" >intrinsic</A> methods defined 
specifically for the purpose of manipulating CIM Namespaces. However, the 
modelling 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 style="MARGIN-RIGHT: 0px">
  <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>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>
<H2><A name=SecFunctionalProfiles>2.6. 
Functional Profiles</A></H2>
<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>
<P>
<TABLE border=1 borderColor=teal cellPadding=5 cellSpacing=1 width="100%">
  <TBODY>
  <TR>
    <TD>
      <P align=center><STRONG><FONT 
      size=3>Functional Group</FONT></STRONG> </P></TD>
    <TD>
      <P align=center><FONT size=3 
      ><STRONG 
      >Dependency</STRONG></FONT></P></TD>
    <TD>
      <P align=center><FONT size=3 
      ><STRONG 
      >Methods</STRONG></FONT></P></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefBasicRead><FONT size=2 
      >Basic Read</FONT></A></FONT></TD>
    <TD><EM><FONT size=2 
      >none</FONT></EM></TD>
    <TD><FONT size=2><A href="#SecGetProperty" >GetClass<BR 
      >EnumerateClasses<BR 
      >EnumerateClassNames<BR 
      >GetInstance<BR 
      >EnumerateInstances<BR 
      >EnumerateInstanceNames<BR 
      >GetProperty</A></FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefBasicWrite><FONT size=2 
      >Basic Write</FONT></A></FONT></TD>
    <TD><FONT size=2>Basic 
      Read</FONT></TD>
    <TD><FONT size=2><A href="#SecSetProperty" >SetProperty</A></FONT></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefSchemaManipulation><FONT size=2 
      >Schema Manipulation</FONT></A></FONT></TD>
    <TD><FONT size=2>Instance 
      Manipulation</FONT></TD>
    <TD><A href="#SecDeleteClass" ><FONT size=2 
      >CreateClass<BR>ModifyClass<BR 
      >DeleteClass</FONT></A></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefInstanceManipulation><FONT size=2 
      >Instance Manipulation</FONT></A></FONT></TD>
    <TD><FONT size=2>Basic 
      Write</FONT></TD>
    <TD><A href="#SecModifyInstance" ><FONT size=2 
      >CreateInstance<BR 
      >ModifyInstance<BR 
      >DeleteInstance</FONT></A></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefAssociationTraversal><FONT size=2 
      >Association Traversal</FONT></A></FONT></TD>
    <TD><FONT size=2>Basic 
      Read</FONT></TD>
    <TD><A href="#SecReferenceNames" ><FONT size=2 
      >Associators<BR 
      >AssociatorNames<BR>References<BR 
      >ReferenceNames</FONT></A></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefQueryExecution><FONT size=2 
      >Query Execution</FONT></A></FONT></TD>
    <TD><FONT size=2>Basic 
      Read</FONT></TD>
    <TD><A href="#SecExecQuery" ><FONT size=2 
      >ExecQuery</FONT></A></TD></TR>
  <TR>
    <TD><FONT size=2><A 
      name=DefQualifierDeclaration><FONT size=2 
      >Qualifier Declaration</FONT></A></FONT></TD>
    <TD><FONT size=2>Schema 
      Manipulation</FONT></TD>
    <TD><FONT size=2><A href="#SecEnumerateQualifiers" >GetQualifier<BR 
      >SetQualifier<BR 
      >DeleteQualifier<BR 
      >EnumerateQualifiers</A></FONT></TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H2><A name=SecExtrinsicMethodInvocation>2.7. Extrinsic Method Invocation</A></H2>
<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 
CimServer, 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. 
<UL>
  <LI>CIM_ERR_ACCESS_DENIED 
  <LI>CIM_ERR_NOT_SUPPORTED (the CimServer does not support 
  extrinsic method invocations) 
  <LI>CIM_ERR_INVALID_NAMESPACE 
  <LI>CIM_ERR_INVALID_PARAMETER (including missing, 
  duplicate, unrecognized or otherwise incorrect parameters) 
  <LI>CIM_ERR_NOT_FOUND (the target CIM Class or instance 
  does not exist in the specified namespace) 
  <LI>CIM_ERR_METHOD_NOT_FOUND 
  <LI>CIM_ERR_METHOD_NOT_AVAILABLE (the CimServer is unable 
  to honor the invocation request) 
  <LI>CIM_ERR_FAILED (some other unspecified error 
  occurred)</LI></UL>
<P><A href="#top" >Back to contents</A></P>
<H1>3. <A name=SecEncapsulationOfCIMOperations></A>Encapsulation of CIM Operations</H1>
<P>All CIM Operation 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 Operations 
is outside the scope of this specification.</P>
<P>All CIM Operation 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><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&nbsp;<A href="#DefOperationResponseMessage" >Operation&nbsp;Response 
  Message</A>.&nbsp; Note&nbsp;that an HTTP response to a CIM Operation Request 
  is <EM>not always</EM> a CIM Operation Response; for 
  example a "505 HTTP Version Not Supported" response would not be a CIM 
  Operation Response.</LI></UL>
<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>
<H2><A name=SecCIMClientsAndServers>3.1. CIM Clients and Servers</A></H2>
<P>The following definitions are used throughout the 
remainder of this document:</P>
<UL>
  <LI><A name=DefCIMClient></A>A <EM 
  >CIM client</EM> is an HTTP client that issues <A href="#DefCIMOperationRequest" >CIM Operation Requests</A> and 
  receives and processes <A href="#DefCIMOperationResponse" >CIM Operation Responses</A>. 
  <LI><A name=DefCIMServer></A>A <EM 
  >CIM server</EM> is an an HTTP server that receives and 
  processes CIM Operation Requests and issues CIM Operation Responses.</LI></UL>
<P>An HTTP client/server&nbsp;MAY be capable of acting as 
both a CIM client and a CIM server.</P>
<P><A href="#top" >Back to contents</A></P>
<H2><A name=SecUseOfMPOSTAndPOST>3.2. 
Use of M-POST and POST</A></H2>
<P>A <A href="#DefCIMClient" >CIM client</A> attempting a CIM Operation 
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 “POST” 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>If the M-POST invocation fails with an HTTP status of 
  "405 Method Not Allowed", then the client SHOULD fail the request. 
  <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 Operation 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 for&nbsp;CIM Operation invocations by 
prohibiting POST invocations containing the Extension Header <A href="#SecCIMOperation" >CIMOperation</A>. </P>
<H3><A name=SecUseOfTheExtHeader>3.2.1. Use of the Ext Header</A></H3>
<P>If a <A href="#DefCIMServer" >CIM Server</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</A></P>
<H2><A name=SecExtensionHeadersDefinedForCIM>3.3. Extension Headers Defined for CIM Operation Requests 
and Responses</A></H2>
<P>This section describes the extension headers used to 
specify CIM operational semantics in the HTTP Header of an M-POST or POST 
message.</P>
<P>Any <A href="#DefCIMOperationRequest" >CIM Operation 
Request</A> or <A href="#DefCIMOperationResponse" >CIM Operation Response</A> MUST 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 include one and only one of the&nbsp;following CIM extension 
header sets:</P>
<UL style="MARGIN-RIGHT: 0px">
  <LI><A href="#SecCIMMethod" >CIMMethod</A> and <A href="#SecCIMObject" >CIMObject</A>, or 
  <LI><A href="#SecCIMBatch" >CIMBatch</A></LI></UL>
<P>An HTTP reponse with an error status code to a CIM 
Operation Request MAY include the following CIM extension header:</P>
<UL style="MARGIN-RIGHT: 0px">
  <LI><A href="#SecCIMError" >CIMError</A> </LI></UL>
<P>All&nbsp;CIM Operation Requests and Responses 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>
<H3><A name=SecNamingOfExtensionHeaders>3.3.1. Naming of Extension Headers</A></H3>
<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.0</A>". </P>
<P>The full format of the "Man" header declaration for this 
specification is:</P>
<P>
<TABLE class=Definition id=TABLE2 style="LEFT: 26px; TOP: 4179px">
  <TBODY>
  <TR>
    <TD 
      >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 
      >&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>header-prefix&nbsp;&nbsp;&nbsp;&nbsp;= 
  2*DIGIT</TD></TR></TBODY></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>
<P><STRONG>Example 1</STRONG> </P>
<P>Using M-POST:</P>
<P>
<TABLE class=Example id=TABLE5>
  <TBODY>
  <TR>
    <TD>M-POST /cimom HTTP/1.1</TD></TR>
  <TR>
    <TD>Man: <A 
      href="http://www.dmtf.org./cim/mapping/http/v1.0peration" 
      >http://www.dmtf.org./cim/mapping/http/v1.0</A> ; 
    ns=23</TD></TR>
  <TR>
    <TD>23-CIMOperation: MethodCall</TD></TR>
  <TR>
    <TD>...</TD></TR></TBODY></TABLE>
<P><STRONG>Example 2</STRONG> </P>
<P>Using POST:</P>
<P>
<TABLE class=Example>
  <TBODY>
  <TR>
    <TD>POST /cimom HTTP/1.1</TD></TR>
  <TR>
    <TD>CIMOperation: MethodCall</TD></TR>
  <TR>
    <TD>...</TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H3>3.3.2. <A name=SecEncodingOfCIMNamesWithinHTTPHeaders></A>Encoding of CIM Element Names within HTTP Headers</H3>
<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>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>
<P><STRONG>Examples</STRONG> </P>
<P>
<TABLE border=1 cellPadding=10 class=Example id=TABLE6>
  <TBODY>
  <TR>
    <TD>
      <P>CIM_LogicalElement is unchanged under this 
      transformation</P></TD></TR>
  <TR>
    <TD>
      <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. </P></TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H3>3.3.3. <A 
name=SecEncodingOfCIMObjectPathsWithinHTTPHeaders></A>Encoding of CIM Object Paths within HTTP Headers</H3>
<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>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>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>Output the value of the <FONT face="Courier New" 
  >CLASSNAME</FONT> attribute of the &lt;INSTANCENAME&gt; 
  subelement. 
  <LI>If there is at least one &lt;KEYBINDING&gt; 
  subelement under the &lt;INSTANCENAME&gt; subelement, then for each&nbsp;such 
  subelement: 
  <UL>
    <LI>Output a period character (.) if this is the first 
    &lt;KEYBINDING&gt; subelement, and a comma (,) otherwise. 
    <LI>Output the value of the <FONT face="Courier New" 
    >NAME</FONT> attribute, followed by an equals character 
    (=). 
    <LI>If there is&nbsp;a&nbsp;&lt;KEYVALUE&gt; 
    subelement, output the textual element content of that element, subject to 
    the following transformation: 
    <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>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 
    <UL>
      <LI>output a double quote character ("). 
      <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>output a closing double quote character 
    (").</LI></UL></LI></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: 
  <UL>
    <LI>Output an equals character (=). 
    <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>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>
<H3>3.3.4. <A name=SecCIMOperation></A>CIMOperation</H3>
<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>
<P>
<TABLE class=Definition>
  <TBODY>
  <TR>
    <TD>CIMOperation = "CIMOperation"&nbsp;":" 
      ("MethodCall" | "MethodResponse")</TD></TR></TBODY></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>
<H3>3.3.5. <A name=SecCIMProtocolVersion></A>CIMProtocolVersion</H3>
<P>This header MAY be present in any <A href="#DefCIMOperationRequest" >CIM Operation Request</A> or <A href="#DefCIMOperationResponse" >CIM Operation Response</A> 
message.&nbsp; The header identifies the version of the CIM&nbsp;mapping onto 
HTTP being used by the sending entity.</P>
<P>
<TABLE class=Definition id=TABLE3>
  <TBODY>
  <TR>
    <TD>CIMProtocolVersion = "CIMProtocolVersion" ":" 
      1*DIGIT "." 1*DIGIT </TD></TR></TBODY></TABLE>
<P>If the header is omitted, then a value of 1.0&nbsp;MUST 
be assummed.</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>x<SUB>1</SUB> equals x<SUB 
  >2</SUB>, and y<SUB>1</SUB> is less 
  than y<SUB>2</SUB></LI></UL>
<P>If a <A href="#DefCIMServer" >CIM Server</A> receives an CIM Operation 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>. 
</P>
<P>Otherwise, if a CIM Server receives an CIM Operation 
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 Operation 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>
<H3>3.3.6. <A name=SecCIMMethod></A>CIMMethod</H3>
<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 
is not a Simple Operation Request.</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>
<P>
<TABLE class=Definition id=TABLE4>
  <TBODY>
  <TR>
    <TD>CIMMethod&nbsp; = "CIMMethod" ":" 
MethodName</TD></TR>
  <TR>
    <TD>MethodName = <A href="#DefCIMIdentifier" >CIMIdentifier</A> 
    </TD></TR></TBODY></TABLE>
<P>If a&nbsp;<A href="#DefCIMServer" >CIM Server</A>&nbsp;receives a CIM Operation 
Request for which either:</P>
<UL style="MARGIN-RIGHT: 0px">
  <LI>The CIMMethod header is present but has an invalid 
  value, or; 
  <LI>The CIMMethod header is not present but the Operation 
  Request&nbsp;Message&nbsp;is a <A href="#DefSimpleOperationRequest" >Simple 
  Operation Request</A>, or; 
  <LI>The CIMMethod header is present but the Operation 
  Request&nbsp;Message&nbsp;is not a&nbsp;Simple Operation Request, or; 
  <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>
<H3>3.3.7.<A name=SecCIMObject></A> 
CIMObject</H3>
<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.</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="#SecEncodingOfCIMObjectPathsWithinHTTPHeaders" >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>
<P>
<TABLE class=Definition>
  <TBODY>
  <TR>
    <TD>CIMObject&nbsp; = "CIMObject" 
    ":"&nbsp;ObjectPath</TD></TR>
  <TR>
    <TD>ObjectPath = <A href="#DefCIMObjectPath" >CIMObjectPath</A></TD></TR></TBODY></TABLE>
<P>The ObjectPath value is constructed by applying the 
algorithm defined in&nbsp;<A href="#SecEncodingOfCIMObjectPathsWithinHTTPHeaders" >Encoding CIM 
Object Paths</A> to either:</P>
<UL>
  <LI>The &lt;LOCALNAMESPACEPATH&gt; subelement of the 
  &lt;IMETHODCALL&gt; element, or; 
  <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 style="MARGIN-RIGHT: 0px">
  <LI>The CIMObject header is present but has an invalid 
  value, or: 
  <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>The CIMObject header is present but the Operation 
  Request&nbsp;Message&nbsp;is not a&nbsp;Simple Operation Request, or; 
  <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="#SecEncodingOfCIMObjectPathsWithinHTTPHeaders" >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>
<H3><A name=SecCIMBatch>3.3.8. 
CIMBatch</A></H3>
<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.</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>
<P>
<TABLE class=Definition>
  <TBODY>
  <TR>
    <TD>CIMBatch = "CIMBatch" </TD></TR></TBODY></TABLE>
<P>If a&nbsp;<A href="#DefCIMServer" >CIM Server</A>&nbsp;receives a CIM Operation 
Request for which either:</P>
<UL style="MARGIN-RIGHT: 0px">
  <LI>The CIMBatch header is present but has an invalid 
  value, or: 
  <LI>The CIMBatch header is not present but the Operation 
  Request&nbsp;Message&nbsp;is a Multiple Operation Request, or; 
  <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>
<H3><A name=SecCIMError>3.3.9.</A> 
CIMError</H3>
<P>This header&nbsp;MAY be present in any HTTP response to 
a <A href="#DefCIMOperationRequest" >CIM Operation Request</A> message that 
is not a <A href="#DefCIMOperationResponse" >CIM Operation Response</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>.</P>
<P>The header provides further CIM specific diagnostic 
information in the case that the <A href="#DefCIMServer" >CIM Server</A> encountered a fundamental error 
during processing of the CIM Operation Request, and is intended to assist 
Clients to further disambiguate errors that have the same HTTP status code.</P>
<P>
<TABLE class=Definition>
  <TBODY>
  <TR>
    <TD>
      <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-<FONT 
      face="Courier New">operation"</FONT></P></TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H1><A name=SecHTTPRequirementsAndUsage>4. HTTP Requirements &amp; Usage</A></H1>
<H2><A name=SecHTTPSupport>4.1. HTTP 
Support</A></H2>
<P>It is RECOMMENDED that <A href="#DefCIMClient" >CIM clients</A> and <A href="#DefCIMServer" >CIM 
servers</A> support HTTP/1.1 [7].&nbsp; CIM clients and servers MAY support 
HTTP/1.0 instead.&nbsp; CIM clients and servers 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 and Servers 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>
<H2><A name=SecUseOfStandardHeaders>4.2. Use of Standard Headers</A></H2>
<P>Unless otherwise stated herein, <A href="#DefCIMClient" >CIM clients</A> and <A href="#DefCIMServer" >CIM 
servers</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 and servers with respect to the use of standard 
HTTP headers [6,7] within a <A href="#DefCIMOperationRequest" >CIM Operation 
Request</A> or <A href="#DefCIMOperationResponse" >CIM Operation Response</A>.&nbsp; </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 and 
servers.</P>
<P><EM></EM></P>
<H3><A name=SecAccept>4.2.1. 
Accept</A></H3>
<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> 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 server&nbsp;SHOULD return "406 Not Acceptable" 
if the Accept header indicates that neither of these content types are 
acceptable.</P>
<P>If a CIM server 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>
<H3><A name=SecAccept-Charset>4.2.2. 
Accept-Charset</A></H3>
<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 Server to return an 
entity body using the character set "utf-8".</P>
<P>A <A href="#DefCIMServer" >CIM server</A> MUST accept any value for this 
header which implies that "utf-8" is an acceptable character set for an response 
entity.&nbsp; A server&nbsp;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 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>
<H3><A name=SecAccept-Encoding>4.2.3. 
Accept-Encoding</A></H3>
<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 Server to use the 
"identity" encoding.</P>
<P>A <A href="#DefCIMServer" >CIM Server</A> MUST accept any value for this 
header which implies that "identity" is an acceptable encoding for the response 
entity.&nbsp; A server&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>
<H3><A name=SecAccept-Language>4.2.4. 
Accept-Language</A></H3>
<P>If a CIM Client includes an Accept-Language header in a 
request, it SHOULD specify a value which allows the Server 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 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>
<H3><A name=SecAccept-Ranges>4.2.5. 
Accept-Ranges</A></H3>
<P><A href="#DefCIMClient" >CIM clients</A> MUST NOT include this header in a 
request.&nbsp; A <A href="#DefCIMServer" >CIM Server</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>
<H3><A name=SecAllow>4.2.6. 
Allow</A></H3>
<P>If a&nbsp;<A href="#DefCIMServer" >CIM Server</A> is returning a "405 Method Not 
Allowed" response to a CIM Operations 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>
<H3><A name=SecAuthorization>4.2.7. 
Authorization</A></H3>
<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>
<H3>4.2.8. <A name=SecCache-Control></A>Cache-Control</H3>
<P>In general a <A href="#DefCIMOperationRequest" >CIM Operation 
Request</A> 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 Operation 
Request has any effect on an HTTP cache it is likely to be one of invalidating 
cached responses for the target CIM Server.&nbsp; Indeed HTTP/1.1[7] stipulates 
that by default POST responses are not cachable unless the server indicates 
otherwise using an appropriate Cache-Control or Expires header.</P>
<P>For these reasons, <A href="#DefCIMOperationResponse" >CIM Operation 
Responses</A>&nbsp;SHOULD NOT be considered cachable.&nbsp; A <A href="#DefCIMServer" >CIM 
Server</A>&nbsp;SHOULD NOT include a Cache-Control header in a CIM Operation 
Response which might indicate to a cache that the response could be 
cached.&nbsp; </P>
<P>If the CIM Server is responding to a CIM Operation 
Request coveyed within an M-POST request, then in accordance with [9]&nbsp;the 
Server MUST include a no-cache control directive to prevent inadvertant caching 
of the "Ext" header. For example:</P>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>HTTP/1.1 200 OK</TD></TR>
  <TR>
    <TD>Ext:</TD></TR>
  <TR>
    <TD>Cache-Control: no-cache</TD>
  <TR>
    <TD>...</TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H3><A name=SecConnection>4.2.9. 
Connection</A></H3>
<P>It is&nbsp;RECOMMENDED that </P>
<UL style="MARGIN-RIGHT: 0px">
  <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><A href="#DefCIMServer" >CIM servers</A> support persistant connections 
  wherever possible. </LI></UL>
<P>Timeout mechanisms&nbsp;SHOULD be employed to remove 
idle connections on both client and server, 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 and servers 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>
<BLOCKQUOTE style="MARGIN-RIGHT: 0px">
  <P><EM>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. </EM></P></BLOCKQUOTE>
<P><A href="#top" >Back to contents</A></P>
<H3><A name=SecContent-Encoding>4.2.10. Content-Encoding</A></H3>
<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 can accept another encoding.</P>
<P><A href="#top" >Back to contents</A> </P>
<H3>4.2.11. <A name=SecContentLanguage>Content-Language</A></H3>
<P>See <A href="#SecInternationalizationConsiderations" >Internationalization 
Considerations</A> for more details.</P>
<P><A href="#top" >Back to contents</A></P>
<H3><A name=SecContent-Range>4.2.12. 
Content-Range</A></H3>
<P><A href="#DefCIMClient" >CIM clients</A> and <A href="#DefCIMServer" >CIM servers</A> MUST NOT use 
this header.</P>
<P><A href="#top" >Back to contents</A> </P>
<H3><A name=SecContent-Type>4.2.13. 
Content-Type</A></H3>
<P><A href="#DefCIMClient" >CIM clients</A> and <A href="#DefCIMServer" >CIM servers</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>
<H3><A name=SecExpires>4.2.14. 
Expires</A></H3>
<P>For the same reasons described in <A href="#SecCache-Control" >Cache-Control</A>, a <A href="#DefCIMServer" >CIM Server</A> SHOULD NOT 
include an Expires header in a CIM Operation Response which might indicate to a 
cache that the response could be cached.</P>
<P><A href="#top" >Back to contents</A> </P>
<H3><A name=SecIf-Range>4.2.15. 
If-Range</A></H3>
<P><A href="#DefCIMClient" >CIM clients</A> and <A href="#DefCIMServer" >CIM servers</A> MUST NOT use 
this header.</P>
<P><A href="#top" >Back to contents</A> </P>
<H3><A name=SecProxy-Authenticate>4.2.16. Proxy-Authenticate</A></H3>
<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>
<H3><A name=SecRange>4.2.17. 
Range</A></H3>
<P><A href="#DefCIMClient" >CIM clients</A> and <A href="#DefCIMServer" >CIM servers</A> MUST NOT use 
this header.</P>
<P><A href="#top" >Back to contents</A> </P>
<H3><A name=SecWWW-Authenticate>4.2.18. WWW-Authenticate</A></H3>
<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>
<H2>4.3. <A name=SecErrors></A>Errors 
and Status Codes</H2>
<P>This section defines how <A href="#DefCIMServer" >CIM Servers</A> MUST handle 
errors that occur in the processing of a <A href="#DefCIMOperationRequest" >CIM Operation 
Request</A>. 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;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 Server 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 MUST use the following status codes when processing the CIM Extension 
Headers:</P>
<BLOCKQUOTE style="MARGIN-RIGHT: 0px">
  <P><STRONG>501 Not 
  Implemented</STRONG> One of the following occured:</P>
  <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. 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-protocol-version.</FONT> 
    <LI>The Client specified a <A href="#DefMultipleOperationRequest" >Multiple Operation Request</A> 
    and the CIM Server does not support such requests. The CIM Server&nbsp;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>The <FONT face="Courier New" 
    >CIMVERSION</FONT> attribute in the Operation Request 
    was not set to a value of "2.0". 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-cim-version.</FONT> 
    <LI>The <FONT face="Courier New" 
    >DTDVERSION</FONT> attribute in the Operation Request 
    was not set to a value of "2.0". 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-dtd-version.</FONT></LI></UL>
  <P><STRONG>401 Unauthorized</STRONG> 
  The CIM Server is configured to require that&nbsp;a client authenticate itself 
  before it can issue CIM Operation Requests to the Server.</P>
  <P><STRONG>403 Forbidden</STRONG> 
  The CIM Server does not allow the client to perform CIM Operations.&nbsp; The 
  CIM Server MAY alternatively respond with a "404 Not Found" if it does not 
  wish to reveal this information to the client.</P>
  <P><STRONG>407 Proxy Authentication 
  Required</STRONG> The CIM Server is configured to require that&nbsp;the proxy 
  authenticate itself before it can issue CIM Operation Requests on behalf of a 
  CIM Client to the Server.</P></BLOCKQUOTE>
<P>Assuming that the CIM Extension Headers are correct, 
then a validating CIM Server (one which is enforcing validity of the Operation 
Request Message with respect to the CIM XML DTD) MUST use the following status 
code when processing the entity body containing the CIM Operation request.</P>
<BLOCKQUOTE style="MARGIN-RIGHT: 0px">
  <P><STRONG>400 Bad Request</STRONG> 
  The entity body defining the CIM Operation request was not well-formed or not 
  valid with respect to the CIM XML DTD. The CIM Server&nbsp;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></BLOCKQUOTE>
<P>A loosely-validating&nbsp;CIM Server (one that is only 
enforcing that the CIM Operation Request be <A href="#DefLooselyValid" >loosely valid</A>) MAY 
reject an Operation Request Message&nbsp;that is not loosely valid with an HTTP 
status code of 400 (Bad Request) before further processing, in which case the 
CIM Server&nbsp;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 MUST reject an 
Operation Request Message that is not well-formed with an HTTP status code of 
400 (Bad Request), in which case the CIM Server&nbsp;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;MUST NOT 
reject an invalid (in the XML sense) Operation Request Message that is loosely 
valid.</P>
<P>A&nbsp;loosely-validating CIM Server MUST ultimately 
signal an error to the CIM Client if the Operation Request Message 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 an&nbsp;Operation 
Request before processing, for to do otherwise would compel the Server into 
checking the complete request before processing could begin and this 
would&nbsp;be as expensive as&nbsp;requiring that the Server fully validate the 
request.&nbsp;Therefore&nbsp;a&nbsp;loosely-validating&nbsp;Server 
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 is 
validating or loosely-validating via the <A href="#SecCIMValidation" >CIMValidation</A> header 
mechanism.</P>
<P>Assuming that the CIM operation request was correctly 
formed (in the manner described above), the CIM Server MUST process the request 
accordingly and return a <A href="#DefCIMOperationResponse" >CIM Operation Response</A> 
response.&nbsp; </P>
<P>The entity body MUST be a correct&nbsp;<A href="#DefOperationResponseMessage" >Operation Response Message</A> for 
that request.&nbsp; </P>
<P>If the CIM Operation Response contains an entity which 
is a <A href="#DefSimpleOperationResponse" >Simple Operation Response</A> 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>
<H2>4.4. <A name=SecSecurityConsiderations></A>Security Considerations</H2>
<P><A href="#DefCIMClient" >CIM Clients</A> and <A href="#DefCIMServer" >CIM Servers</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> and <A href="#DefCIMServer" >CIM 
Servers</A>&nbsp;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 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 and CIM 
Servers that require more robust protection SHOULD use encyption mechanisms such 
as SSL or SHTTP.</P>
<P>CIM Clients and CIM Servers 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 and CIM Servers when using these authentication 
schemes.</P>
<P>CIM Servers 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 may not require or wish the overhead 
of employing authentication.&nbsp; CIM Servers SHOULD consider carefully the 
performance/security tradeoffs in determining how often to issue challenges to 
CIM Clients.</P>
<P>A CIM Server that returns a "401 Unauthorized" response 
to a CIM Operation 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 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>
<H2>4.5.&nbsp;<A name=SecDeterminingCIMServerCapabilities></A>Determining CIM Server Capabilities</H2>
<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>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>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>
<P>
<TABLE class=Definition id=TABLE2 style="LEFT: 26px; TOP: 4180px">
  <TBODY>
  <TR>
    <TD 
      >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 
      >&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>header-prefix&nbsp;&nbsp;&nbsp;&nbsp;= 
  2*DIGIT</TD></TR></TBODY></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>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>HTTP/1.1 200 OK</TD></TR>
  <TR>
    <TD>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>77-CIMProtocolVersion: 1.0</TD>
  <TR>
    <TD>77-CIMSupportedFunctionalGroups: basic-read</TD></TR>
  <TR>
    <TD>77-CIMBatch</TD></TR>
  <TR>
    <TD>77-CIMSupportedQueryLanguages: wql</TD></TR>
  <TR>
    <TD>...</TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H3>4.5.1. <A name=SecCIMSupportedFunctionalGroups>CIMSupportedFunctionalGroups</A></H3>
<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>
<P>
<TABLE class=Definition>
  <TBODY>
  <TR>
    <TD>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></TBODY></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>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>HTTP/1.1 200 OK</TD></TR>
  <TR>
    <TD>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>77-CIMProtocolVersion: 1.0</TD>
  <TR>
    <TD>77-CIMSupportedFunctionalGroups: 
      association-traversal, instance-manipulation</TD></TR>
  <TR>
    <TD>...</TD></TR></TBODY></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>
<H3><A name=SecCIMSupportsMultipleOperations>4.5.2. CIMSupportsMultipleOperations</A></H3>
<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>
<P>
<TABLE class=Definition>
  <TBODY>
  <TR>
    <TD>CIMSupportsMultipleOperations&nbsp; = 
      "CIMSupportsMultipleOperations"</TD></TR></TBODY></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>
<H3>4.5.3. <A name=SecCIMSupportedQueryLanguages>CIMSupportedQueryLanguages</A></H3>
<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>
<P>
<TABLE class=Definition>
  <TBODY>
  <TR>
    <TD>CIMSupportedQueryLanguages&nbsp; = 
      "CIMSupportedQueryLanguages" ":" 1#query-language<BR 
      ><BR 
      >query-language&nbsp;&nbsp;&nbsp;&nbsp; 
  =&nbsp;token</TD></TR></TBODY></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>
<H3><A name=SecCIMValidation>4.5.4. 
CIMValidation</A></H3>
<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>
<P>
<TABLE class=Definition>
  <TBODY>
  <TR>
    <TD>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></TBODY></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>
<H2><A name=SecOtherHTTPMethods>4.6. 
Other HTTP Methods</A></H2>
<P>This specification does not in any way define or 
constrain the manner in which a CIM Client or Server uses any HTTP Method other 
than those explicitly referred to herein.</P>
<P><A href="#top" >Back to contents</A></P>
<H2><A name=SecDiscoveryAndAddressing>4.7. Discovery and Addressing</A></H2>
<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>
<P>
<TABLE class=Definition>
  <TBODY>
  <TR>
    <TD>CIMOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 
      "CIMOM" ":" (absoluteURI | relativeURI)</TD></TR></TBODY></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>Other&nbsp;discovery mechanisms are outside the scope of 
this version of the specification.</P>
<P><U>Example 1</U></P>
<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>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>HTTP/1.1 200 OK</TD></TR>
  <TR>
    <TD>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>48-CIMOM: /access/cimom</TD>
  <TR>
    <TD>...</TD></TR></TBODY></TABLE>
<P><U>Example 2</U></P>
<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>
<H2>4.8. <A name=SecInternationalizationConsiderations></a><A name=SecInternationalizationConsiderations>Internationalization Considerations</A></H2>
<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="#SecAcceptLanguage" >Accept-Language</A> and <A href="#SecContentLanguage" >Content-Language</A> headers defined in 
[7].</P>
<P><A name=SecReferences></A></P>
<H1>5. References</H1>
<OL>
  <LI><A name=RefCIM></A>"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_v22.pdf</A>) 
  <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/spec/CIM_XML_Mapping20.htm" 
  >http://www.dmtf.org/spec/CIM_XML_Mapping20.htm</A>) 
  <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><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><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><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><A name=RefCSS2></A>"Hypertext 
  Transfer Protocol -- HTTP/1.1",&nbsp;IETF RFC 2068,&nbsp;January 1997 (<U 
  ><FONT color=#0000ff><A 
  href="http://www.ietf.org/rfc/rfc2068.txt" 
  >http://www.ietf.org/rfc/rfc2068.txt</A></FONT></U>) 
  <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><A name=RefDOM></A>"HTTP 
  Extension Framework",&nbsp;IETF Internet Draft,&nbsp;March 15<SUP 
  >th</SUP> 1999 (<A 
  href="http://ietf.org/internet-drafts/draft-frystyk-http-extensions-03.txt" 
  >http://ietf.org/internet-drafts/draft-frystyk-http-extensions-03.txt</A>) 

  <LI><A name=RefCSS2></A>"Hypertext 
  Transfer Protocol -- HTTP/1.1",&nbsp;IETF Internet Draft, 18<SUP 
  >th</SUP>&nbsp;November 1998 (<U 
  ><FONT color=#0000ff><A 
  href="http://ietf.org/internet-drafts/draft-ietf-http-v11-spec-rev-06.txt" 
  >http://ietf.org/internet-drafts/draft-ietf-http-v11-spec-rev-06.txt</A></FONT></U> 
  <A href="http://ietf.org/internet-drafts/draft-ietf-http-v11-spec-rev-06.txt" 
  ></A>) 
  <LI>"CIM XML DTD", Version 2.0, DMTF, 20<SUP 
  >th</SUP>&nbsp;July 1999 ( <A 
  href="http://www.dmtf.org/spec/cim_dtd_V20.txt" 
  >http://www.dmtf.org/spec/cim_dtd_V20.txt</A>) 
  <LI>"An Extension to HTTP : Digest Access 
  Authentication", IETF RFC 2069,&nbsp;January 1997 (<U 
  ><FONT color=#0000ff><A 
  href="http://www.ietf.org/rfc/rfc1945.txt" 
  >http://www.ietf.org/rfc/rfc1945.txt</A></FONT></U>) 
  <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>"HTTP Authentication: Basic and Digest Access 
  Authentication", IETF Internet Draft, September 2<SUP 
  >nd</SUP> 1998 (<U><FONT 
  color=#0000ff><A 
  href="http://ietf.org/internet-drafts/draft-ietf-http-authentication-03.txt" 
  >http://ietf.org/internet-drafts/draft-ietf-http-authentication-03.txt</A></FONT></U>) 

  <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>"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>"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-xslt</A>) 
  <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>"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>"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>"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>
<H1><A name=SecAppendixA>Appendix A 
</A>- Examples of Message Exchanges</H1>
<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>
<H2><A name=SecRetrievalOfASingleClassDefinition>A.1. Retrieval of a Single Class Definition</A></H2>
<P>The following HTTP request illustrates how a client 
would request the class CIM_VideoBIOSElement.</P>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>M-POST /cimom HTTP/1.1</TD></TR>
  <TR>
    <TD>HOST: <A href="http://www.erewhon.com" 
      >www.erewhon.com</A></TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodCall</TD>
  <TR>
    <TD>73-CIMMethod: GetClass</TD></TR>
  <TR>
    <TD>73-CIMObject: root/cimv2</TD></TR>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;IMETHODCALL 
    NAME="GetClass"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; 
  &lt;LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE 
      NAME="root"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE 
      NAME="cimv20"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; 
  &lt;/LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE 
      NAME="ClassName"&gt;&lt;CLASSNAME 
      NAME="CIM_VideoBIOSElement"/&gt;&lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE 
      NAME="LocalOnly"&gt;&lt;VALUE&gt;FALSE&lt;/VALUE&gt;&lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></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>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>HTTP/1.1 200 OK</TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>Ext:</TD></TR>
  <TR>
    <TD>Cache-Control: no-cache</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodResponse</TD>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;IMETHODRESPONSE 
    NAME="GetClass"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IRETURNVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;CLASS 
      NAME="CIM_VideoBIOSElement" SUPERCLASS="CIM_SoftwareElement"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/CLASS&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;/IRETURNVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODRESPONSE&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H2><A name=SecRetrievalOfASingleInstanceDefinition>A.2. Retrieval of a Single&nbsp;Instance 
Definition</A></H2>
<P>The following HTTP request illustrates how a client 
would request the&nbsp;instance MyClass.MyKey="S3".</P>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>M-POST /cimom HTTP/1.1</TD></TR>
  <TR>
    <TD>HOST: <A href="http://www.erewhon.com" 
      >www.erewhon.com</A></TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodCall</TD>
  <TR>
    <TD>73-CIMMethod: GetInstance</TD></TR>
  <TR>
    <TD>73-CIMObject: root/cimv2</TD></TR>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="1.1"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87855" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;IMETHODCALL 
    NAME="GetInstance"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; 
  &lt;LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE 
      NAME="root"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE 
      NAME="myNamespace"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; 
  &lt;/LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE 
      NAME="InstanceName"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCENAME 
      CLASSNAME="MyClass"&gt;</TD></TR>
  <TR>
    <TD>&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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;/INSTANCENAME&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE 
      NAME="LocalOnly"&gt;&lt;VALUE&gt;FALSE&lt;/VALUE&gt;&lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></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>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>HTTP/1.1 200 OK</TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>Ext:</TD></TR>
  <TR>
    <TD>Cache-Control: no-cache</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodResponse</TD>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87885" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;IMETHODRESPONSE 
      NAME="GetInstance"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;ERROR CODE="6" 
      DESCRIPTION="Instance of MyClass not found"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODRESPONSE&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H2><A name=SecDeletionOfASingleClassDefinition>A.3.&nbsp;Deletion of a Single Class Definition</A></H2>
<P>The following HTTP request illustrates how a client 
would&nbsp;delete the class CIM_VideoBIOSElement.</P>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>M-POST /cimom HTTP/1.1</TD></TR>
  <TR>
    <TD>HOST: <A href="http://www.erewhon.com" 
      >www.erewhon.com</A></TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodCall</TD>
  <TR>
    <TD>73-CIMMethod: DeleteClass</TD></TR>
  <TR>
    <TD>73-CIMObject: root/cimv2</TD></TR>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;IMETHODCALL 
    NAME="DeleteClass"&gt;</TD></TR>
  <TR>
    <TD 
    >&nbsp;&nbsp;&nbsp;&nbsp;&lt;LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE 
      NAME="root"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;NAMESPACE 
      NAME="cimv20"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; 
  &lt;/LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE 
      NAME="ClassName"&gt;&lt;CLASSNAME 
      NAME="CIM_VideoBIOSElement"/&gt;&lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></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>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>HTTP/1.1 200 OK</TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>Ext:</TD></TR>
  <TR>
    <TD>Cache-Control: no-cache</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodResponse</TD>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE 
      ID="87872"&nbsp;PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&lt;IMETHODRESPONSE 
      NAME="DeleteClass"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;ERROR CODE="9" 
      DESCRIPTION="Class has non-deletable instances"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODRESPONSE&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H2><A name=SecDeletionOfASingleInstanceDefinition>A.4.&nbsp;Deletion of a Single&nbsp;Instance 
Definition</A></H2>
<P>The following HTTP request illustrates how a client 
would&nbsp;delete the&nbsp;instance MyClass.MyKey="S3".</P>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>M-POST /cimom HTTP/1.1</TD></TR>
  <TR>
    <TD>HOST: <A href="http://www.erewhon.com" 
      >www.erewhon.com</A></TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodCall</TD>
  <TR>
    <TD>73-CIMMethod: DeleteInstance</TD></TR>
  <TR>
    <TD>73-CIMObject: root/cimv2</TD></TR>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;IMETHODCALL 
      NAME="DeleteInstance"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; 
  &lt;LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE 
      NAME="root"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE 
      NAME="myNamespace"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; 
  &lt;/LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE 
      NAME="InstancePath"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCENAME 
      CLASSNAME="MyClass"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      &lt;KEYBINDING NAME="MyKey"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      &lt;KEYVALUE&gt;S3&lt;/KEYVALUE&gt;</TD></TR>
  <TR>
    <TD 
      >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/KEYBINDING&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;/INSTANCENAME&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P>The following is an HTTP response to the above request 
indicating&nbsp;success of the above operation.</P>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>HTTP/1.1 200 OK</TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>Ext:</TD></TR>
  <TR>
    <TD>Cache-Control: no-cache</TD></TR>
  <TR>
    <TD>Man: <A href="http://www.dmtf.org/cim/operation" 
      >http://www.dmtf.org/cim/operation</A> ; ns=73</TD></TR>
  <TR>
    <TD>73-CIMOperation: MethodResponse</TD>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;IMETHODRESPONSE 
      NAME="DeleteInstance"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H2><A name=SecCreationOfASingleClassDefinition>A.5.&nbsp;Creation of a Single Class Definition</A></H2>
<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>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>M-POST /cimom HTTP/1.1</TD></TR>
  <TR>
    <TD>HOST: <A href="http://www.erewhon.com" 
      >www.erewhon.com</A></TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodCall</TD>
  <TR>
    <TD>73-CIMMethod: CreateClass</TD></TR>
  <TR>
    <TD>73-CIMObject: root/cimv2</TD></TR>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;IMETHODCALL 
    NAME="CreateClass"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; 
  &lt;LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE 
      NAME="root"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE 
      NAME="cimv2"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; 
  &lt;/LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE 
      NAME="NewClass"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;CLASS 
      NAME="MySchema_VideoBIOSElement" 
  SUPERCLASS="CIM_VideoBIOSElement"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/CLASS&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P>The following is an HTTP response to the above request 
indicating&nbsp;success of the above operation.</P>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>HTTP/1.1 200 OK</TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>Ext:</TD></TR>
  <TR>
    <TD>Cache-Control: no-cache</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodResponse</TD>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;IMETHODRESPONSE 
      NAME="CreateClass"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H2><A name=SecCreationOfASingleInstanceDefinition>A.6.&nbsp;Creation of a Single&nbsp;Instance 
Definition</A></H2>
<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>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>M-POST /cimom HTTP/1.1</TD></TR>
  <TR>
    <TD>HOST: <A href="http://www.erewhon.com" 
      >www.erewhon.com</A></TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodCall</TD>
  <TR>
    <TD>73-CIMMethod: CreateInstance</TD></TR>
  <TR>
    <TD>73-CIMObject: root/cimv2</TD></TR>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&lt;IMETHODCALL 
      NAME="CreateInstance"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; 
  &nbsp;&lt;LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE 
      NAME="root"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &nbsp;&lt;NAMESPACE 
      NAME="cimv20"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &nbsp; &lt;/LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE 
      NAME="NewInstance"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCE 
      CLASSNAME="CIM_VideoBIOSElement"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/INSTANCE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P>The following is an HTTP response to the above request 
indicating&nbsp;success of the above operation.</P>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>HTTP/1.1 200 OK</TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>Ext:</TD></TR>
  <TR>
    <TD>Cache-Control: no-cache</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodResponse</TD>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;IMETHODRESPONSE 
      NAME="CreateInstance"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IRETURNVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCENAME 
      CLASSNAME="MySchema_VideoBIOSElement"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      &lt;KEYBINDING NAME="Name"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      &nbsp;&lt;KEYVALUE&gt;S4&lt;/KEYVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      &lt;/KEYBINDING&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/INSTANCENAME&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;/IRETURNVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IRETURNVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H2><A name=SecCreationOfASingleInstanceDefinition>A.7.&nbsp;</A><A name=#SecEnumerationOfClasses>Enumeration of Class Names</A></H2>
<P>The following HTTP request illustrates how a client 
would&nbsp;enumerate the names of all subclasses of the class 
CIM_SoftwareElement. </P>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>M-POST /cimom HTTP/1.1</TD></TR>
  <TR>
    <TD>HOST: <A href="http://www.erewhon.com" 
      >www.erewhon.com</A></TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodCall</TD>
  <TR>
    <TD>73-CIMMethod: EnumerateClassNames</TD></TR>
  <TR>
    <TD>73-CIMObject: root/cimv2</TD></TR>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&lt;IMETHODCALL 
      NAME="EnumerateClassNames"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; 
  &nbsp;&lt;LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE 
      NAME="root"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &nbsp;&lt;NAMESPACE 
      NAME="cimv20"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &nbsp; &lt;/LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE 
      NAME="ClassName"&gt;&lt;CLASSNAME 
      NAME="CIM_SoftwareElement"/&gt;&lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&lt;IPARAMVALUE 
      NAME="DeepInheritance"&gt;&lt;VALUE&gt;FALSE&lt;/VALUE&gt;&lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></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>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>HTTP/1.1 200 OK</TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>Ext:</TD></TR>
  <TR>
    <TD>Cache-Control: no-cache</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodResponse</TD>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;IMETHODRESPONSE 
      NAME="EnumerateClassNames"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IRETURNVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;CLASSNAME 
      NAME="CIM_BIOSElement"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;CLASSNAME 
      NAME="CIM_VideoBOISElement"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;/IRETURNVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODRESPONSE&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H2><A name=SecCreationOfASingleInstanceDefinition>A.8.&nbsp;</A><A name=SecEnumerationOfInstances>Enumeration of Instances</A></H2>
<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>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>M-POST /cimom HTTP/1.1</TD></TR>
  <TR>
    <TD>HOST: <A href="http://www.erewhon.com" 
      >www.erewhon.com</A></TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>Man: <A href="http://www.dmtf.org/cim/operation" 
      >http://www.dmtf.org/cim/operation</A> ; ns=73</TD></TR>
  <TR>
    <TD>73-CIMOperation: MethodCall</TD>
  <TR>
    <TD>73-CIMMethod: EnumerateInstances</TD></TR>
  <TR>
    <TD>73-CIMObject: root/cimv2</TD></TR>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&lt;IMETHODCALL 
      NAME="EnumerateInstances"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; 
  &nbsp;&lt;LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE 
      NAME="root"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &nbsp;&lt;NAMESPACE 
      NAME="cimv20"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &nbsp; &lt;/LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE 
      NAME="ClassName"&gt;&lt;CLASSNAME 
      NAME="CIM_LogicalDisk"/&gt;&lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&lt;IPARAMVALUE 
      NAME="LocalOnly"&gt;&lt;VALUE&gt;TRUE&lt;/VALUE&gt;&lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&lt;IPARAMVALUE 
      NAME="DeepInheritance"&gt;&lt;VALUE&gt;TRUE&lt;/VALUE&gt;&lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P>The following is an HTTP response to the above request 
indicating&nbsp;success of the above operation, returning the requested 
instances.</P>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>HTTP/1.1 200 OK</TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>Ext:</TD></TR>
  <TR>
    <TD>Cache-Control: no-cache</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodResponse</TD>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;IMETHODRESPONSE 
      NAME="EnumerateInstances"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IRETURNVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;VALUE.NAMEDINSTANCE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCENAME 
      CLASSNAME="Erewhon_LogicalDisk"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;/INSTANCENAME&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCE 
      CLASSNAME="Erewhon_LogicalDisk"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;/INSTANCE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;/VALUE.NAMEDINSTANCE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;VALUE.NAMEDINSTANCE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCENAME 
      CLASSNAME="Foobar_LogicalDisk"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;/INSTANCENAME&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCE 
      CLASSNAME="Foobar_LogicalDisk"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;/INSTANCE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;/VALUE.NAMEINSTANCE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;/IRETURNVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODRESPONSE&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H2><A name=SecCreationOfASingleInstanceDefinition>A.9.&nbsp;</A><A name=SecRetrievalOfASingleProperty></a><A name=SecEnumerationOfInstances>Retrieval of a Single Property</A></H2>
<P>The following HTTP request illustrates how a client 
would&nbsp;retrieve the FreeSpace property from the Instance 
MyDisk.DeviceID="C:".</P>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>M-POST /cimom HTTP/1.1</TD></TR>
  <TR>
    <TD>HOST: <A href="http://www.erewhon.com" 
      >www.erewhon.com</A></TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>Man: <A href="http://www.dmtf.org/cim/operation" 
      >http://www.dmtf.org/cim/operation</A> ; ns=73</TD></TR>
  <TR>
    <TD>73-CIMOperation: MethodCall</TD>
  <TR>
    <TD>73-CIMMethod: GetProperty</TD></TR>
  <TR>
    <TD>73-CIMObject: root/cimv2</TD></TR>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&lt;IMETHODCALL 
      NAME="GetProperty"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; 
  &nbsp;&lt;LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE 
      NAME="root"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &nbsp;&lt;NAMESPACE 
      NAME="myNamespace"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &nbsp; &lt;/LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IPARAMVALUE 
      NAME="InstanceName"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCENAME 
      CLASSNAME="MyDisk"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;KEYBINDING 
      NAME="DeviceID"&gt;&lt;KEYVALUE&gt;C:&lt;/KEYVALUE&gt;&lt;/KEYBINDING&gt;</TD></TR>
  <TR>
    <TD 
    >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/INSTANCENAME&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&lt;IPARAMVALUE 
      NAME="PropertyName"&gt;&lt;VALUE&gt;FreeSpace&lt;/VALUE&gt;&lt;/IPARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODCALL&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P>The following is an HTTP response to the above request 
indicating&nbsp;success of the above operation, returning the requested 
value.</P>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>HTTP/1.1 200 OK</TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>Ext:</TD></TR>
  <TR>
    <TD>Cache-Control: no-cache</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodResponse</TD>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;IMETHODRESPONSE 
      NAME="GetProperty"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;IRETURNVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; 
      &lt;VALUE&gt;6752332&lt;/VALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;/IRETURNVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/IMETHODRESPONSE&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P>
<H2><A name=SecCreationOfASingleInstanceDefinition>A.10.&nbsp;</A><A name=SecExecutionOfAnExtrinsicMethod>Execution of an Extrinsic Method</A></A></H2>
<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>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>M-POST /cimom HTTP/1.1</TD></TR>
  <TR>
    <TD>HOST: <A href="http://www.erewhon.com" 
      >www.erewhon.com</A></TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodCall</TD>
  <TR>
    <TD>73-CIMMethod: SetPowerState</TD></TR>
  <TR>
    <TD>73-CIMObject: 
  root/cimv2:Win32_LogicalDisk="C:"</TD></TR>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&lt;METHODCALL 
      NAME="SetPowerState"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; 
&lt;LOCALINSTANCEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &nbsp; 
  &lt;LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;NAMESPACE 
      NAME="root"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &nbsp; &lt;NAMESPACE 
      NAME="myNamespace"/&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &nbsp;&nbsp; 
  &lt;/LOCALNAMESPACEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; &lt;INSTANCENAME 
      CLASSNAME="MyDisk"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;KEYBINDING 
      NAME="C:"&gt;&lt;KEYVALUE&gt;C:&lt;/KEYVALUE&gt;&lt;/KEYBINDING&gt;</TD></TR>
  <TR>
    <TD 
    >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/INSTANCENAME&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; 
  &lt;/LOCALINSTANCEPATH&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;PARAMVALUE 
      NAME="PowerState"&gt;&lt;VALUE&gt;1&lt;/VALUE&gt;&lt;/PARAMVALUE&gt;</TD></TR>
  <TR>
    <TD>&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>&nbsp;&nbsp;&nbsp;&lt;/METHODCALL&gt;&nbsp;&nbsp; 
    </TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLEREQ&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P>The following is an HTTP response to the above request 
indicating&nbsp;success of the above operation.</P>
<P>
<TABLE class=Example id=TABLE2>
  <TBODY>
  <TR>
    <TD>HTTP/1.1 200 OK</TD></TR>
  <TR>
    <TD>Content-Type: application/xml; 
  charset="utf-8"</TD></TR>
  <TR>
    <TD>Content-Length: xxxx</TD></TR>
  <TR>
    <TD>Ext:</TD></TR>
  <TR>
    <TD>Cache-Control: no-cache</TD></TR>
  <TR>
    <TD>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>73-CIMOperation: MethodResponse</TD>
  <TR>
    <TD></TD></TR>
  <TR>
    <TD>&lt;?xml version="1.0" encoding="utf-8" 
  ?&gt;</TD></TR>
  <TR>
    <TD>&lt;CIM CIMVERSION="2.0" 
  DTDVERSION="2.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;MESSAGE ID="87872" 
      PROTOCOLVERSION="1.0"&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;METHODRESPONSE 
      NAME="SetPowerState"&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;RETURNVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp;&nbsp; 
    &lt;VALUE&gt;0&lt;/VALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp;&nbsp; &lt;/RETURNVALUE&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&nbsp; &lt;/METHODRESPONSE&gt;</TD></TR>
  <TR>
    <TD>&nbsp; &lt;/SIMPLERSP&gt;</TD></TR>
  <TR>
    <TD>&nbsp;&lt;/MESSAGE&gt;</TD></TR>
  <TR>
    <TD>&lt;/CIM&gt;</TD></TR></TBODY></TABLE>
<P><A href="#top" >Back to contents</A></P></BODY></HTML>

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2