1 karl 1.1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2 <HTML>
3 <HEAD>
4 <META content="text/html; charset=unicode" http-equiv=Content-Type>
5 <META content="Microsoft FrontPage 4.0" name=GENERATOR>
6 <TITLE>Specification for CIM Operations over HTTP</TITLE>
7 <LINK TYPE="text/css" REL=STYLESHEET href="cimxml.css">
8 </HEAD>
9 <BODY>
10 <DL>
11 <DD>
12 <P class=CenterTitle>Distributed Management Task Force,
13 Inc.</P>
14 <P class=BigCenterTitle> Specification for CIM
15 Operations over HTTP</P>
16 <P class=CenterTitle>Version 1.0</P>
17 <P class=CenterTitle>August 11th, 1999</P>
18 <P align=justify>Technical inquiries and editorial
19 comments should be directed in writing to:</P>
20 <P align=center>Distributed Management Task Force, Inc.
21 (DMTF)</P>
22 karl 1.1 <P align=center>c/o <A href="http://www.mkinc.com/"
23 >MacKenzie Kesselring, Inc.</A> <BR
24 >200 SW Market Street, Suite 450, <BR
25 >Portland, OR 97201 <BR>(503)
26 225-0725 <BR>(503) 225-0765 (fax) <BR
27 >email: <A href="mailto://dmtf-info@dmtf.org" >dmtf-info@dmtf.org</A> </P>
28 <H3>Participants</H3>
29 <DIR>
30 <DIR>
31 <P>This list shows the names of the companies and
32 organizations that have participated in the Distributed Management Task Force -
33 CIM TC XML Sub-Committee whose contributions made this document possible.</P>
34 <UL>
35 <LI>Agranat Systems
36 <LI>Hewlett-Packard Company
37 <LI>IBM Corporation
38 <LI>Microsoft Corporation
39 <LI>Tivoli Systems, Inc.
40 <LI>Customer Support Consortium
41 <LI>Sun Microsystems, Inc.
42 <LI>Intel Corporation</LI></UL></DIR></DIR>
43 karl 1.1 <H3>Change History</H3>
44 <DIV align=center>
45 <TABLE border=1 class=ChangeHistory>
46 <TBODY>
47 <TR>
48 <TD width="17%">Version 1.0a</TD>
49 <TD width="30%">May 1st, 1999</TD>
50 <TD width="52%">First Draft Release</TD></TR>
51 <TR>
52 <TD width="17%">Version 1.0b</TD>
53 <TD width="30%">May 7th, 1999</TD>
54 <TD width="52%">Updates after first Working Group Review</TD></TR>
55 <TR>
56 <TD width="17%">Version 1.0c</TD>
57 <TD width="30%">May 11th, 1999</TD>
58 <TD width="52%">Further updates</TD></TR>
59 <TR>
60 <TD width="17%">Version 1.0d</TD>
61 <TD width="30%">May 25th, 1999</TD>
62 <TD width="52%">Changed LOCAL to PROPAGATED<BR>Added
63 VALUETYPE attribute to KEYVALUE</TD></TR>
64 karl 1.1 <TR>
65 <TD width="17%">Version 1.0e</TD>
66 <TD width="30%">May 28th, 1999</TD>
67 <TD width="52%">
68 <P>AssociationTraversal dependent on BasicRead. not
69 BasicWrite<BR><BR>CIMFunctionalGroups OPTIONS header renamed to
70 CIMSupportedFunctionalGroups<BR><BR>501 returned by server if it does
71 not support multiple requests and receives such a request<BR><BR>Added
72 some operation parameters and allowed them to take default
73 values</P></TD></TR>
74 <TR>
75 <TD width="17%">Version 1.0</TD>
76 <TD width="30%">June 2nd, 1999</TD>
77 <TD width="52%">
78 <P>Clarified meaning of default intrinsic parameter value<BR>Resolved
79 ambiguity over server response to protocol version that is not
80 supported<BR>Clarified use of property list in Associators and
81 References intrinsic methods</P></TD></TR>
82 <TR>
83 <TD width="17%"></TD>
84 <TD width="30%">July 6th, 1999</TD>
85 karl 1.1 <TD width="52%">
86 <P>Updated examples to reflect DTD changes<BR>QueryExecution based on
87 BasicRead, not BasicWrite</P></TD></TR>
88 <TR>
89 <TD width="17%"> </TD>
90 <TD width="30%">July 20th, 1999</TD>
91 <TD width="52%">
92 <P>Remove IncludeClassOrigin and IncludeQualifiers
93 parameters from ExecQuery.<BR>Parameters to Associators, AssocitorNames,
94 References and ReferenceNames which express class names are modelled as
95 <className> rather than string.<BR>NewValue parameter to
96 SetProperty is now OPTIONAL<BR>Clarified semantics of optional
97 parameters, and the distinction between a default parameter value and a
98 NULL parameter value.<BR>
99
100 Clarified Create and
101 Modify operational semantics.<BR>Clarified validation requirements and
102 introduced CIMValidation header for OPTIONS response.<BR>Introduced
103 CIMError response header to disambiguate fundamental CIM-specific errors
104 that map
105
106 karl 1.1 to the same HTTP status
107 code.</P>
108 </TD></TR></TBODY></TABLE></DIV>
109 <H3><A name=top>Contents</A></H3>
110 <P style="MARGIN-RIGHT: 0px"><A href="#SecAbstract" >Abstract</A><BR
111 ><A href="#SecIntroduction" >1. Introduction</A><BR>
112 <DL>
113 <DD><A href="#SecRequirements" >1.1. Requirements</A><BR
114 >
115 <DD><A href="#SecTerminology" >1.2. Terminology</A><BR>
116 <DD><A href="#SecStyle" >1.3. Style</A><BR></DD></DL><A href="#SecCIMOperationsMessageFormat" >2. CIM Operation Syntax
117 and Semantics</A><BR>
118 <DL>
119 <DD><A href="#SecOverview" >2.1. Overview</A>
120 <DL>
121 <DD><A href="#SecWellFormed">2.1.1. Well-Formed,
122 Valid and Loosely Valid</A></DD></DL>
123 <DD><A href="#SecOperationalSemantics">2.2. Operational Semantics</A>
124 <DD><A href="#SecMethodInvocations">2.3. Method
125 Invocations</A>
126 <DL>
127 karl 1.1 <DD><A href="#SecSimpleOperations">2.3.1. Simple
128 Operations</A>
129 <DD><A href="#SecMultipleOperations">2.3.2.
130 Multiple Operations</A>
131
132 <DD><A href="#SecStatusCodes">2.3.3. Status Codes</A> </DD></DL>
133 <DD><A href="#SecIntrinsicMethods">2.4. Intrinsic Methods</A>
134 <DL>
135 <DD><A href="#SecGetClass">2.4.1. GetClass</A>
136 <DD><A href="#SecGetInstance">2.4.2. GetInstance</A>
137 <DD><A href="#SecDeleteClass">2.4.3. DeleteClass</A>
138 <DD><A href="#SecDeleteInstance">2.4.4. DeleteInstance</A>
139 <DD><A href="#SecCreateClass">2.4.5. CreateClass</A>
140 <DD><A href="#SecCreateInstance">2.4.6. CreateInstance</A>
141 <DD><A href="#SecModifyClass">2.4.7. ModifyClass</A>
142 <DD><A href="#SecModifyInstance">2.4.8. ModifyInstance</A>
143 <DD><A href="#SecEnumerateClasses">2.4.9.
144 EnumerateClasses</A>
145 <DD><A href="#SecEnumerateClassNames">2.4.10.
146 EnumerateClassNames</A>
147 <DD><A href="#SecEnumerateInstances">2.4.11.
148 karl 1.1 EnumerateInstances</A>
149 <DD><A href="#SecEnumerateInstanceNames">2.4.12.
150 EnumerateInstanceNames</A>
151 <DD><A href="#SecExecQuery">2.4.13. ExecQuery</A>
152 <DD><A href="#SecAssociators">2.4.14. Associators</A>
153 <DD><A href="#SecAssociatorNames">2.4.15.
154 AssociatorNames</A>
155 <DD><A href="#SecReferencesMethod">2.4.16.
156 References</A>
157 <DD><A href="#SecReferenceNames">2.4.17. ReferenceNames</A>
158 <DD><A href="#SecGetProperty">2.4.18. GetProperty</A>
159 <DD><A href="#SecSetProperty">2.4.19. SetProperty</A>
160 <DD><A href="#SecGetQualifier">2.4.20. GetQualifier</A>
161 <DD><A href="#SecSetQualifier">2.4.21. SetQualifier</A>
162 <DD><A href="#SecDeleteQualifier">2.4.22.
163 DeleteQualifier</A>
164 <DD><A href="#SecEnumerateQualifiers">2.4.23.
165 EnumerateQualifiers</A></DD></DL>
166 <DD><A href="#SecNamespaceManipulation">2.5.
167 Namespace Manipulation</A>
168 <DD><A href="#SecFunctionalProfiles">2.6. Functional
169 karl 1.1 Profiles</A>
170 <DD><A href="#SecExtrinsicMethodInvocation">2.7. Extrinsic Method Invocation</A></DD>
171 </DL>
172 <A href="#SecEncapsulationOfCIMOperations" >3.
173 Encapsulation of CIM Operations</A><BR>
174 <DL>
175 <DD><A href="#SecCIMClientsAndServers" >3.1. CIM
176 Clients and Servers</A><BR>
177 <DD><A href="#SecUseOfMPOSTAndPOST" >3.2. Use of
178 M-POST and POST</A><BR>
179 <DL>
180 <DD><A href="#SecUseOfTheExtHeader" >3.2.1. Use of
181 the Ext Header</A><BR></DD></DL>
182 <DD><A href="#SecExtensionHeadersDefinedForCIM" >3.3.
183 Extension Headers Defined for CIM Operation Requests and Responses</A><BR
184 >
185 <DL>
186 <DD><A href="#SecNamingOfExtensionHeaders" >3.3.1.
187 Naming of Extension Headers</A><BR>
188 <DD><A href="#SecEncodingOfCIMNamesWithinHTTPHeaders">3.3.2. Encoding of
189 CIM Names within HTTP Headers</A><BR>
190 karl 1.1 <DD><A href="#SecEncodingOfCIMObjectPathsWithinHTTPHeaders">3.3.3.
191 Encoding of CIM Object Paths within HTTP Headers</A>
192 <DD><A href="#SecCIMOperation" >3.3.4. CIMOperation</A>
193 <DD><A href="#SecCIMProtocolVersion" >3.3.5.
194 CIMProtocolVersion</A><BR>
195 <DD><A href="#SecCIMMethod" >3.3.6. CIMMethod</A><BR>
196 <DD><A href="#SecCIMObject" >3.3.7. CIMObject</A><BR>
197 <DD><A href="#SecCIMBatch" >3.3.8. CIMBatch</A>
198 <DD><A href="#SecCIMError">3.3.9.
199 CIMError</A> </DD></DL></DD></DL>
200 <DD><A href="#SecHTTPRequirementsAndUsage" >4. HTTP Requirements &
201 Usage</A><BR>
202 <DL>
203 <DD><A href="#SecHTTPSupport" >4.1. HTTP Support</A><BR
204 >
205 <DD><A href="#SecUseOfStandardHeaders" >4.2. Use of
206 Standard Headers</A><BR>
207 <DL>
208 <DD><A href="#SecAccept" >4.2.1. Accept</A><BR>
209 <DD><A href="#SecAccept-Charset" >4.2.2. Accept-Charset</A><BR
210 >
211 karl 1.1 <DD><A href="#SecAccept-Encoding" >4.2.3.
212 Accept-Encoding</A><BR>
213 <DD><A href="#SecAccept-Language" >4.2.4.
214 Accept-Language</A><BR>
215 <DD><A href="#SecAccept-Ranges" >4.2.5. Accept-Ranges</A><BR
216 >
217 <DD><A href="#SecAllow" >4.2.6. Allow</A><BR>
218 <DD><A href="#SecAuthorization" >4.2.7. Authorization</A><BR
219 >
220 <DD><A href="#SecCache-Control" >4.2.8. Cache-Control</A><BR
221 >
222 <DD><A href="#SecConnection" >4.2.9. Connection</A><BR
223 >
224 <DD><A href="#SecContent-Encoding" >4.2.10.
225 Content-Encoding</A><BR>
226 <DD><A href="#SecContent-Language" >4.2.11.
227 Content-Language</A><BR>
228 <DD><A href="#SecContent-Range" >4.2.12. Content-Range</A><BR
229 >
230 <DD><A href="#SecContent-Type" >4.2.13. Content-Type</A><BR
231 >
232 karl 1.1 <DD><A href="#SecExpires" >4.2.14. Expires</A><BR>
233 <DD><A href="#SecIf-Range" >4.2.15. If-Range</A><BR>
234 <DD><A href="#SecProxy-Authenticate" >4.2.16.
235 Proxy-Authenticate</A><BR>
236 <DD><A href="#SecRange" >4.2.17. Range</A><BR>
237 <DD><A href="#SecWWW-Authenticate" >4.2.18.
238 WWW-Authenticate</A><BR></DD></DL>
239 <DD><A href="#SecErrors" >4.3. Errors and Status Codes</A><BR>
240 <DD><A href="#SecSecurityConsiderations" >4.4.
241 Security Considerations</A><BR>
242 <DD><A href="#SecDeterminingCIMServerCapabilities" >4.5. Determining CIM
243 Server Capabilities</A><BR>
244 <DL>
245 <DD><A href="#SecCIMSupportedFunctionalGroups">4.5.1.
246 CIMSupportedFunctionalGroups</A>
247 <DD><A href="#SecCIMSupportsMultipleOperations">4.5.2.
248 CIMSupportsMultipleOperations</A>
249 <DD><A href="#SecCIMSupportedQueryLanguages">4.5.3.
250 CIMSupportedQueryLanguages</A>
251 <DD><A href="#SecCIMValidation">4.5.4.
252 CIMValidation</A></DD></DL>
253 karl 1.1 <DD><A href="#SecOtherHTTPMethods" >4.6. Other HTTP Methods</A><BR
254 >
255 <DD><A href="#SecDiscoveryAndAddressing" >4.7.
256 Discovery and Addressing</A><BR>
257 <DD><A href="#SecInternationalizationConsiderations" >4.8.
258 Internationalization Considerations</A><BR></DD></DL>
259 <A href="#SecReferences" >5.
260 References</A><BR>
261 <A href="#SecAppendixA" >Appendix A - Examples of
262 Message Exchanges</A><BR>
263 <DL>
264 <DD><A href="#SecRetrievalOfASingleClassDefinition">A.1. Retrieval of a
265 Single Class Definition</A>
266 <DD><A href="#SecRetrievalOfASingleInstanceDefinition">A.2. Retrieval of a
267 Single Instance Definition</A>
268 <DD><A href="#SecDeletionOfASingleClassDefinition">A.3. Deletion of a
269 Single Class Definition</A>
270 <DD><A href="#SecDeletionOfASingleInstanceDefinition">A.4. Deletion of a
271 Single Instance Definition</A>
272 <DD><A href="#SecCreationOfASingleClassDefinition">A.5. Creation of a
273 Single Class Definition</A>
274 karl 1.1 <DD><A href="#SecCreationOfASingleInstanceDefinition">A.6. Creation of a
275 Single Instance Definition</A>
276 <DD><A href="#SecEnumerationOfClassNames">A.7.
277 Enumeration of Class Names</A>
278 <DD><A href="#SecEnumerationOfInstances">A.8.
279 Enumeration of Instances</A>
280 <DD><A href="#SecRetrievalOfASingleProperty">A.9.
281 Retrieval of a Single Property</A>
282 <DD><A href="#SecExecutionOfAnExtrinsicMethod">A.10.
283 Execution of an Extrinsic Method</A> </DD></DL><BR></DD></DL>
284 <H1><A name=SecAbstract></A>Abstract</H1>
285 <P>The <A href="http://dmtf.org/spec/cims.html">Common Information Model</A> (CIM) [1] is an
286 object-oriented information model defined by the Distributed Management Task Force
287 (DMTF) which provides a conceptual framework for describing management data.</P>
288 <P>The <A
289 href="http://ietf.org/internet-drafts/draft-ietf-http-v11-spec-rev-06.txt">Hypertext Transfer Protocol</A> (HTTP) [6,7,10] is an
290 application-level protocol for distributed, collaborative, hypermedia
291 information systems. It is a generic stateless protocol which can be used
292 for many tasks through extension of its request methods, error codes and
293 headers.</P>
294 <P>The <A href="http://www.w3.org/TR/REC-xml">Extensible Markup Language</A> (XML) [3] is a simplified
295 karl 1.1 subset of SGML that offers powerful and extensible data modeling capabilities.
296 An <I>XML Document</I> is a collection of data represented
297 in XML. An <I>XML Schema</I> is a grammar that describes
298 the structure of an XML Document. </P>
299 <P> This
300 document defines a mapping of CIM Operations onto HTTP that
301 allows implementations of CIM to interoperate in an open, standardized
302 manner. It utilizes the CIM XML DTD [2,11] that defines the XML Schema for
303 CIM objects and messages.</P>
304 <P><A href="#top" >Back to contents</A></P>
305 <P><A name=intro></A></P>
306 <H1>1. <A name=SecIntroduction></A>Introduction</H1>
307 <P>This document defines a mapping of CIM operations onto HTTP that allows
308 implementations of CIM to operate in an open, standardized manner. It also
309 defines the notion of <EM>conformance</EM> in the context
310 of this mapping, and describes what behavior an implementation of CIM must
311 exhibit in order to be described as a conforming CIM implementation.</P>
312 <P>The remainder of this document is structured as
313 follows.</P>
314 <UL>
315 <LI><A href="#SecCIMOperationsMessageFormat" >Section
316 karl 1.1 2</A> describes the CIM Operations which form the HTTP
317 payload, using XML. It specifies the syntax and semantics of the operation
318 requests and their corresponding responses.
319 <LI><A href="#SecEncapsulationOfCIMOperations" >Section
320 3</A> describes the encapsulation of these messages in HTTP request and
321 response messages, with examples of each. It describes the extension headers
322 used to convey additional CIM-specific semantics in the HTTP Header.
323 <LI><A href="#SecHTTPRequirementsAndUsage" >Section
324 4</A>
325 describes in more detail other aspects of the encapsulation:
326 <UL>
327 <LI>HTTP Version Support
328 <LI>The use of standard HTTP Headers
329 <LI>HTTP Error codes
330 <LI>Security Considerations </LI></UL></LI></UL>
331 <P><A href="#top" >Back to contents</A></P>
332 <H2><A name=SecRequirements>1.1.
333 Requirements</A></H2>
334 <P>There are potentially many different ways in which CIM
335 operations could be represented within XML, and those
336 operations encapsulated within HTTP messages. In the interests of
337 karl 1.1 interoperability between different implementations of CIM there is an obvious
338 requirement for standardization of both the XML representation and the HTTP
339 encapsulation. The XML representation is defined in [2,11]. This document
340 utilizes that representation to defines the HTTP encapsulation.
341 <P>The following criteria have been applied to the
342 representation of CIM Operations in XML [2,11]:
343 <UL>
344 <LI>Each CIM Operation is described completely in XML;
345 completeness is favored over conciseness.
346 <LI> The set of CIM Operations provide
347 sufficient functionality to enable implementations of CIM to communicate effectively
348 for the purposes of management. It is not a goal of the first release of
349 this mapping to provide a <U>complete</U> set of
350 operations. It is a goal to define the mapping so as to admit straightfoward extension
351 (addition of further features) in future versions.
352 <LI>The set of CIM Operations are classified into
353 functional profiles so that a range of implementations (varying from complete
354 support of all operations to support of a minimal subset) is allowed. The
355 number of functional profiles is kept as small as possible to encourage
356 interoperability, and mechanisms provided by which CIM implementations
357 can declare their level of support.</LI></UL>
358 karl 1.1 <P>The following criteria have been applied to the HTTP
359 encapsulation of CIM Operations herein:
360 <UL>
361 <LI>In recognition of the large installed base of HTTP/1.0
362 systems, the encapsulation is designed to support both HTTP/1.0 and HTTP/1.1
363 <LI>The encapsulation does not introduce any requirements
364 which are in conflict with those stated in HTTP/1.0 or HTTP/1.1
365 <LI>The encapsulation should be straightforwardly usable
366 over the current base HTTP infrastructures. Some features are intended to
367 anticipate and exploit enhancements to this base, but no aspects of the
368 encapsulation require any such enhancements as mandatory.
369 <LI>The encapsulation avoids the use of pure HTTP
370 Tunnelling or URL munging (e.g. the use of the "?" character) in favor of a
371 mechanism which allows existing HTTP infrastructures to safely control
372 content.
373 <LI>The encapsulation exposes key CIM operation
374 information in Headers to allow efficient firewall/proxy handling. The
375 information is limited to that which is considered essential, in order not to
376 have significant impact on the size of the Header. No CIM-specific information
377 appears in a Header that does not also appear within the CIM Operation.
378 <LI>There is a clear and unambiguous encapsulation of the
379 karl 1.1 CIM Operation payload within the HTTP Message. Conciseness of the
380 encapsulation is of secondary importance. </LI></UL>
381 <P><A href="#top" >Back to contents</A></P>
382 <H2><A name=SecTerminology>1.2.
383 Terminology</A></H2>
384 <P>The key phrases and words MUST, MUST NOT, REQUIRED,
385 SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY and OPTIONAL in this
386 document are to be interpreted as described in RFC 2119 [8].</P>
387 <P>This specification uses the same notational conventions
388 and basic parsing constructs as defined in [7]. </P>
389 <P><A href="#top" >Back to contents</A></P>
390 <H2><A name=SecStyle>1.3.
391 Style</A></H2>
392 <P>This document uses a number of stylistic conventions to
393 highlight examples and definitions.</P>
394 <P>Examples are displayed in this fashion:</P>
395 <TABLE class=Example>
396
397 <TR>
398 <TD>This is an example</TD></TR></TABLE>
399 <P>Definitions are illustrated thusly:</P>
400 karl 1.1 <P>
401 <TABLE class=Definition>
402
403 <TR>
404 <TD>This is a definition</TD></TR></TABLE>
405 <P><A href="#top" >Back to contents</A></P>
406 <H2>2. <A name=SecCIMOperationMessageFormat>CIM Operation Syntax and Semantics</A></H2>
407 <H2>2.1. Overview</H2>
408 <P>This specification defines all interactions between CIM
409 entities as Operations. CIM Operations belong to a larger category known
410 as CIM Messages (currently all Messages are Operations, but in future this may
411 not be true).</P>
412 <P>This section describes the syntax and semantics of CIM
413 Operations in a manner independent of the encapsulation of such operations
414 within a particular protocol (such as HTTP).</P>
415 <P>XML is used as the basis for this description, and in
416 particular the CIM XML DTD [2,11].</P>
417 <P><A href="#top" >Back to contents</A></P>
418 <H3><A name=SecWellFormed>2.1.1. </A>Well-Formed, Valid and Loosely Valid</H3>
419 <P>Where this document makes reference to the concept of a Well-formed or
420 Valid XML documents, the meaning intended is the standard one defined
421 karl 1.1 in [3].</P>
422 <P><A name=DefLooselyValid>XML DTDs </A>are restricted to these terms to
423 describe XML documents, but this document requires a further
424 classification of an XML document with respect to a DTD. Henceforth
425 the term <EM>loosely valid</EM> is defined to apply to an XML Document with
426 the following characteristics:</P>
427 <UL style="MARGIN-RIGHT: 0px">
428 <LI>If any attributes or elements in the XML document which do not appear in
429 the CIM XML DTD are removed, then the resulting document is valid with respect
430 to the CIM XML DTD.</LI></UL>
431 <P> In effect, a loosely valid document is one which is
432 valid with respect to the CIM XML DTD apart from having additional attributes or elements not
433 defined by that DTD. The concept is very similar to that of an <EM>open content
434 model</EM> as
435 defined by the working draft on XML Schemas [21], expressed within the more
436 limited scope of DTDs. One corollary of this definition is that any XML document that is valid with respect to the CIM
437 XML DTD is also loosely valid.</P>
438 <P>The motivation for introducing this class of XML Documents is to relax the
439 restrictions on a <A href="#DefCIMClient">CIM Client</A> or a <A
440 href="#DefCIMServer">CIM Server</A> when parsing received XML documents defined within the scope of this
441 mapping. It is recognized that not all Clients (respectively, Servers)
442 karl 1.1 should be required to validate each received <A
443 href="#DefOperationResponseMessage">Operation Response Message</A>
444 (respectively, <A href="#DefOperationRequestMessage">Operation Request
445 Message</A>) as this would place too great a processing burden on the validating
446 entity at the expense of footprint and performance, most notably in communication between robust
447 and conformant implementations of this mapping.</P>
448 <P>Instead the following requirements are made by this specification:</P>
449 <UL>
450 <LI>A CIM Client (respectively, CIM Server) MAY include a
451 DOCTYPE element in an Operation Request Message (respectively, Operation
452 Response Message). If so, an External declaration SHOULD be used (in-lining of
453 the complete DTD within a message is discouraged).
454 <LI>A CIM Client (respectively, CIM Server) MAY elect to
455 validate a received Operation Response Message (respectively, Operation
456 Request Message).
457 <LI>
458
459
460
461 If a CIM Client (respectively, CIM Server) elects not to validate a received Operation Response
462 Message (respectively, Operation Request Message), then loose validation MUST be
463 karl 1.1 enforced.</LI></UL>
464 <P>The behavior of a CIM Server with respect to a received
465 Operation Request Message is covered in detail in the section on <A
466 href="#SecErrors">Errors and Status Codes</A>
467
468
469
470
471 .</P>
472 <H2>2.2. <A name=SecOperationalSemantics></A>Operational Semantics </H2>
473 <P>The CIM XML DTD [2,11] defines a subelement under the
474 root <CIM> element called <MESSAGE>, which contains one of the
475 following subelements:</P>
476 <UL>
477 <LI><SIMPLEREQ>
478 <LI><SIMPLERSP>
479 <LI><MULTIREQ>
480 <LI><MULTIRSP></LI></UL>
481 <P>In the remainder of this document:</P>
482 <UL>
483 <LI><A name=DefOperationRequestMessage
484 karl 1.1 ></A>The term <EM>Operation Request
485 Message </EM>denotes an XML document that is <A
486 href="#DefLooselyValid">loosely valid</A> with
487 respect to the CIM XML DTD, which contains under the root <CIM>
488 node a <MESSAGE> subelement, under which there is
489 a <MULTIREQ> or <SIMPLEREQ> subelement, and;
490 <LI><A name=DefOperationResponseMessage
491 ></A>The term <EM>Operation Response
492 Message </EM> denotes an XML document that is loosely valid with
493 respect to the CIM XML DTD, which contains under the root <CIM>
494 node a <MESSAGE> subelement, under which there is a
495 <MULTIRSP> or <SIMPLERSP> subelement.</LI></UL>
496 <P>An Operation Request Message MUST contain a non-empty
497 value for the <FONT face="Courier New">ID</FONT> attribute
498 of the <MESSAGE> element. The corresponding Operation Response
499 Message MUST supply the same value for that attribute. Clients SHOULD
500 employ a message ID scheme that minimizes the chance of receiving a stale
501 Operation Response Message.</P>
502 <P>Any Operation Request Message or Operation Response
503 Message conforming to this specification MUST specify a value of "1.0" for the
504 <FONT face="Courier New">PROTOCOLVERSION</FONT> attribute
505 karl 1.1 of the <MESSAGE> element.</P>
506 <P>An Operation Response Message sent in response to
507 an Operation Request Message MUST:</P>
508 <UL>
509 <LI>specify the same value for the <FONT
510 face="Courier New">ID</FONT>
511 attribute of the <MESSAGE> element as appeared in the
512 Operation Request Message, and
513 <UL>
514 <LI>contain a <MULTIRSP> subelement if the
515 Operation Request Message contained a <MULTIREQ> subelement, or
516 <LI>contain a <SIMPLERSP> subelement if the
517 Operation Request Message contained a <SIMPLEREQ>
518 subelement.</LI></UL></LI></UL>
519 <P>A <EM><A
520 name=#DefSimpleOperationRequest><EM>Simple Operation Request</EM></A></EM> is an Operation
521 Request Message that contains a <SIMPLEREQ> subelement. A <EM><A name=DefSimpleOperationResponse><EM>Simple Operation Response</EM></A></EM> is an Operation
522 Response Message that contains a <SIMPLERSP> subelement.</P>
523 <P>A <A name=DefMultipleOperationRequest><EM>Multiple Operation
524 Request</EM></A> is an Operation Request Message that contains a
525 <MULTIREQ> subelement. A <A name=DefMultipleOperationResponse><EM>Multiple Operation
526 karl 1.1 Response</EM></A> is an Operation Response Message that contains a
527 <MULTIRSP> subelement.</P>
528 <P><A href="#top" >Back to contents</A></P>
529 <H2>2.3. Method Invocations</H2>
530 <P> All CIM Operation requests defined for this mapping are
531 defined as invocations of one or more methods. A method may be either:</P>
532 <UL>
533 <LI><EM><A name=DefIntrinsic
534 ><EM>Intrinsic</EM></A></EM>,
535 which means that it is defined by this specification for the purposes of
536 modelling a CIM operation, or;
537 <LI><EM><A name=DefExtrinsic
538 ><EM>Extrinsic</EM></A></EM>, which
539 means that it is defined as a method on a CIM Class in some Schema.</LI></UL>
540 <P>Intrinsic methods are further characterized by the
541 fact that they are made against a CIM Namespace. Extrinsic methods
542 are invoked on a CIM Class (if static) or Instance (otherwise).
543 Intrinsic methods are defined in the section <A href="#DefIntrinsicMethods" >Intrinsic
544 Methods</A></P>
545 <P>An extrinsic method call is represented in XML by
546 the <METHODCALL> element, and the response to that call represented by the
547 karl 1.1 <METHODRESPONSE> element. </P>
548 <P>An intrinsic method call is represented in XML by the
549 <IMETHODCALL> element, and the response to that call represented by the
550 <IMETHODRESPONSE> element.</P>
551 <P>An Input parameter is one with an IN Qualifier (with
552 value <FONT face="Courier New">true</FONT>) in the Method
553 definition. An Output parameter is one with an OUT Qualifier (with value
554 true) in the Method definition. An Optional parameter is one with an
555 OPTIONAL Qualifier in the Method definition. A parameter may be both an Input
556 and Output parameter.</P>
557 <P>The <METHODCALL> or <IMETHODCALL>
558 element serves to name the method to be invoked and supply any Input
559 parameters to the method call. Note that:</P>
560 <UL style="MARGIN-RIGHT: 0px">
561 <LI>Each Input parameter MUST be named using the name
562 assigned in the method definition.
563 <LI>The Input parameters MAY be supplied in any order.
564 <LI>Each Input parameter of the method, and no
565 others, MUST be present in the call, unless it was defined as
566 Optional.</LI></UL>
567 <P>The <METHODRESPONSE> or <IMETHODRESPONSE>
568 karl 1.1 element defines either an <ERROR> or a (possibly optional) return
569 value and output parameters (i.e. one decorated with the OUT Qualifier in the
570 method definition). In the latter case:</P>
571 <UL>
572 <LI>Each Output parameter MUST be named using the name
573 assigned in the method definition.
574 <LI>The Output parameters MAY be supplied in any order.
575 <LI>Each Output parameter of the method, and no
576 others, MUST be present in the response, unless it was defined as
577 Optional.</LI></UL>
578 <P>The method invocation process may be thought of as:</P>
579 <UL>
580 <LI>The binding of the input parameter values
581 specified as subelements of the <METHODCALL> or <IMETHODCALL>
582 element to the input parameters of the Method, followed by;
583 <LI>The attempted execution of the method using the bound
584 input parameters, and;
585 <UL>
586 <LI>If attempt to call the method is successful, the
587 binding of the the return value and output parameters to the subelements of
588 the <METHODRESPONSE> or <IMETHODRESPONSE> element, or;
589 karl 1.1 <LI>If the attempt to call the method is unsuccesful,
590 the binding of an error code and (optional) human-readable description of
591 that code to the <METHODRESPONSE> or <IMETHODRESPONSE>
592 element.</LI></UL></LI></UL>
593 <P><A href="#top" >Back to contents</A></P>
594 <H3>2.3.1. Simple Operations</H3>
595 <P>A simple operation is defined as one that
596 requires the invocation of a single method. A simple operation
597 request is represented by a <SIMPLEREQ> element, and a simple
598 operation response by a <SIMPLERSP> element.</P>
599 <P>If the method is <A href="#DefIntrinsic" >intrinsic</A> then the
600 <SIMPLEREQ> MUST contain a <IMETHODCALL> element, which in turn
601 contains a <LOCALNAMESPACEPATH> subelement identifying the local CIM
602 Namespace against which the method is to be executed. If the method is <A href="#DefExtrinsic" >extrinsic</A> then the <SIMPLEREQ> element
603 MUST contain a <METHODCALL> element which in turn contains either:</P>
604 <UL style="MARGIN-RIGHT: 0px">
605 <LI>A <LOCALCLASSPATH> subelement identifying the
606 CIM Class on which the method is to be invoked, in the case that the
607 method is static, or;
608 <LI>An <LOCALINSTANCEPATH> subelement identifying
609 the CIM Instance on which the method is to be invoked, otherwise.</LI></UL>
610 karl 1.1 <P><A href="#top" >Back to contents</A></P>
611 <H3>2.3.2. <A name=SecMultipleOperations>Multiple Operations</A></H3>
612 <P>A multiple operation is defined as one that
613 requires the invocation of more than one method. A multiple operation
614 request is represented by a <MULTIREQ> element, and a multiple operation
615 response by a <MULTIRSP> element.</P>
616 <P>
617
618
619
620
621
622 A <MULTIREQ> (respectively, <MULTIRSP>) element is a sequence of two or
623 more <SIMPLEREQ> (respectively, <SIMPLERSP>) elements. </P>
624 <P>A <MULTIRSP> element MUST contain a <SIMPLERSP> element
625 for every <SIMPLEREQ> element in the corresponding Multiple Operation
626 Response, and these <SIMPLERSP> elements MUST be in the same order as
627 their <SIMPLEREQ> counterparts (so the first <SIMPLERSP> in the
628 response corresponds to the first <SIMPLEREQ> in the request, and so
629 forth). </P>
630 <P>Multiple Operations provide a convenient mechanism
631 karl 1.1 whereby multiple method invocations may be batched into a single HTTP Message,
632 thereby reducing the number of roundtrips between a <A href="#DefCIMClient" >CIM Client</A> and a CIM
633 Server and allowing the CIM Server to make certain internal
634 optimizations should it choose so to do. Note that Multiple Operations do
635 not confer any transactional capabilities in the processing of the request (for
636 example, there is no requirement that the CIM Server guarantee that the
637 constituent method calls either all failed or all succeeded, only that the
638 entity make a "best effort" to process the operation).</P>
639 <P>Not all CIM Servers support Multiple Operations; the
640 means by which they declare support for this feature is defined in the section
641 on <A href="#SecDeterminingCIMServerCapabilities" >Determining CIM Server
642 Capabilities</A>.</P>
643 <P><A href="#top" >Back to contents</A></P>
644 <H3>2.3.3. Status Codes</H3>
645 <P>This section defines the status codes that may be
646 returned by a conforming CIM Server application as the value of the <FONT
647 face="Courier New">CODE</FONT> attribute of an
648 <ERROR> subelement within a <METHODRESPONSE> or
649 <IMETHODRESPONSE> element.</P>
650 <P>The symbolic names defined in the table below do not
651 appear on the wire. They are used here solely as a convenient way to refer
652 karl 1.1 to an error in other parts of this specification.</P>
653 <P>Not all methods would be expected to return all the
654 status codes listed below. For <A href="#DefIntrinsic" >intrinsic</A> methods, the
655 relevant section on each method in this specification defines the expected error
656 codes to be returned. For extrinsic methods the specification of which of
657 the following codes can be used is described in the section on <A
658 href="#SecExtrinsicMethodInvocation">Extrinsic Method Invocation</A>
659
660
661
662 .</P>
663 <P>
664 <TABLE border=1 borderColor=teal cellPadding=5 cellSpacing=1 id=TABLE7
665 width="100%" Color="teal">
666 <THEAD>
667 <TR>
668 <TD>
669 <P align=center><FONT size=3
670 ><STRONG>Symbolic
671 Name</STRONG></FONT></P></TD>
672 <TD>
673 karl 1.1 <P align=center><FONT size=3
674 ><STRONG
675 >CODE</STRONG></FONT></P></TD>
676 <TD>
677 <P align=center><FONT size=3
678 ><STRONG>Definition</STRONG>
679 </FONT></P></TD></TR></THEAD>
680 <TBODY>
681 <TR>
682 <TD><FONT size=2><A
683 name=DefCimErrFailed><FONT size=2
684 >CIM_ERR_FAILED</FONT></A></FONT></TD>
685 <TD><FONT size=2>1</FONT></TD>
686 <TD><FONT size=2>A general error
687 occured that is not covered by a more specific error code</FONT></TD></TR>
688 <TR>
689 <TD><FONT size=2><A
690 name=DefCimErrAccessDenied><FONT size=2
691 >CIM_ERR_ACCESS_DENIED</FONT></A></FONT></TD>
692 <TD><FONT size=2>2</FONT></TD>
693 <TD><FONT size=2>Access to a CIM
694 karl 1.1 resource was not available to the client</FONT></TD></TR>
695 <TR>
696 <TD><FONT size=2><A
697 name=DefCimErrInvalidNamespace><FONT size=2
698 >CIM_ERR_INVALID_NAMESPACE</FONT></A></FONT></TD>
699 <TD><FONT size=2>3</FONT></TD>
700 <TD><FONT size=2>The target
701 namespace does not exist</FONT></TD></TR>
702 <TR>
703 <TD><FONT size=2><FONT size=2
704 ><A name=DefCimErrInvalidParameter
705 ><FONT size=2><A
706 name=DefCimErrInvalidParameter><FONT size=2
707 >CIM_ERR_INVALID_PARAMETER</FONT></A><A
708 name=DefCimErrInvalidParameter
709 ></FONT></A></FONT></A></FONT></TD>
710 <TD><FONT size=2>4</FONT></TD>
711 <TD><FONT size=2>One or more
712 parameter values passed to the method were invalid</FONT></TD></TR>
713 <TR>
714 <TD><FONT size=2><A
715 karl 1.1 name=DefCimErrInvalidClass><FONT size=2
716 >CIM_ERR_INVALID_CLASS</FONT></A></FONT></TD>
717 <TD><FONT size=2>5</FONT></TD>
718 <TD><FONT size=2>The specified
719 Class does not exist</FONT></TD></TR>
720 <TR>
721 <TD><FONT size=2><A
722 name=DefCimErrNotFound><FONT size=2
723 >CIM_ERR_NOT_FOUND</FONT></A></FONT></TD>
724 <TD><FONT size=2>6</FONT></TD>
725 <TD><FONT size=2>The requested
726 object could not be found</FONT></TD></TR>
727 <TR>
728 <TD><FONT size=2><A
729 name=DefCimErrNotSupported><FONT size=2
730 >CIM_ERR_NOT_SUPPORTED</FONT></A></FONT></TD>
731 <TD><FONT size=2>7</FONT></TD>
732 <TD><FONT size=2>The requested
733 operation is not supported</FONT></TD></TR>
734 <TR>
735 <TD><FONT size=2><A
736 karl 1.1 name=DefCimErrClassHasChildren><FONT size=2
737 >CIM_ERR_CLASS_HAS_CHILDREN</FONT></A></FONT></TD>
738 <TD><FONT size=2>8</FONT></TD>
739 <TD><FONT size=2>Operation
740 cannot be carried out on this class since it has subclasses</FONT></TD></TR>
741 <TR>
742 <TD><FONT size=2><A
743 name=DefCimErrClassHasInstances><FONT size=2
744 >CIM_ERR_CLASS_HAS_INSTANCES</FONT></A></FONT></TD>
745 <TD><FONT size=2>9</FONT></TD>
746 <TD><FONT size=2>Operation
747 cannot be carried out on this class since it has instances</FONT></TD></TR>
748 <TR>
749 <TD><FONT size=2><A
750 name=DefCimErrInvalidSuperclass><FONT size=2
751 >CIM_ERR_INVALID_SUPERCLASS</FONT></A></FONT></TD>
752 <TD><FONT size=2>10</FONT></TD>
753 <TD><FONT size=2>Operation
754 cannot be carried out since the specified superclass does not
755 exist</FONT></TD></TR>
756 <TR>
757 karl 1.1 <TD><FONT size=2><A
758 name=DefCimErrAlreadyExists><FONT size=2
759 >CIM_ERR_ALREADY_EXISTS</FONT></A></FONT></TD>
760 <TD><FONT size=2>11</FONT></TD>
761 <TD><FONT size=2>Operation
762 cannot be carried out because an object already exists</FONT></TD></TR>
763 <TR>
764 <TD><FONT size=2><A
765 name=DefCimErrNoSuchProperty><FONT size=2
766 >CIM_ERR_NO_SUCH_PROPERTY</FONT></A></FONT></TD>
767 <TD><FONT size=2>12</FONT></TD>
768 <TD><FONT size=2>The specified
769 Property does not exist</FONT></TD></TR>
770 <TR>
771 <TD><FONT size=2><A
772 name=DefCimErrTypeMismatch><FONT size=2
773 >CIM_ERR_TYPE_MISMATCH</FONT></A></FONT></TD>
774 <TD><FONT size=2>13</FONT></TD>
775 <TD><FONT size=2>The value
776 supplied is incompatible with the type</FONT></TD></TR>
777 <TR>
778 karl 1.1 <TD><FONT size=2
779 >CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED</FONT></TD>
780 <TD><FONT size=2>14</FONT></TD>
781 <TD><FONT size=2>The query
782 language is not recognized or supported</FONT></TD></TR>
783 <TR>
784 <TD><FONT size=2><A name=DefCimErrInvalidQuery><FONT
785 size=2>CIM_ERR_INVALID_QUERY</FONT></A></FONT></TD>
786 <TD><FONT size=2>15</FONT></TD>
787 <TD><FONT size=2>The query is not valid for the specified query
788 language</FONT></TD></TR>
789 <TR>
790 <TD><FONT size=2>CIM_ERR_METHOD_NOT_AVAILABLE</FONT></TD>
791 <TD><FONT size=2>16</FONT></TD>
792 <TD><FONT size=2>The extrinsic Method could not be executed</FONT></TD></TR>
793 <TR>
794 <TD><FONT size=2>CIM_ERR_METHOD_NOT_FOUND</FONT></TD>
795 <TD><FONT size=2>17</FONT></TD>
796 <TD><FONT size=2>
797 The specified extrinsic Method does not exist</FONT></TD></TR></TBODY></TABLE>
798 <P><A href="#top" >Back to contents</A></P>
799 karl 1.1 <H2>2.4. <A name=SecIntrinsicMethods>Intrinsic Methods</A></H2>
800 <P>This section describes the <A href="#DefIntrinsic" >Intrinsic</A> methods
801 that are defined outside of schema for the purposes of CIM operations.
802 These methods can only be called on a CIM Namespace, rather than a CIM Class or
803 CIM Instance.</P>
804 <P>The following intrinsic methods are defined by this
805 specification:</P>
806 <UL style="MARGIN-RIGHT: 0px">
807 <LI><A href="#SecGetClass" >Get a CIM Class</A>
808 <LI><A href="#SecGetInstance" >Get a CIM Instance</A>
809 <LI><A href="#SecDeleteClass" >Delete a CIM Class</A>
810 <LI><A href="#SecDeleteInstance" >Delete a CIM Instance</A>
811 <LI><A href="#SecCreateClass" >Create a CIM Class</A>
812 <LI><A href="#SecCreateInstance" >Create a CIM Instance</A>
813 <LI><A href="#SecModifyClass" >Modify a CIM Class</A>
814 <LI><A href="#SecModifyInstance" >Modify a CIM Instance</A>
815 <LI><A href="#SecEnumerateClasses" >Enumerate subclasses of a CIM Class</A>
816 <LI><A href="#SecEnumerateClassNames" >Enumerate
817 subclass names of a CIM Class</A>
818 <LI><A href="#SecEnumerateInstances" >Enumerate instances of a CIM Class</A>
819 <LI><A href="#SecEnumerateInstanceNames" >Enumerate
820 karl 1.1 instance names of a CIM Class</A>
821 <LI><A href="#SecDeleteQualifier" >Delete a CIM Qualifier definition</A>
822 <LI><A href="#SecCreateQualifier" >Create a CIM Qualifier definition</A>
823 <LI><A href="#SecEnumerateQualifiers" >Enumerate CIM Qualifier
824 definitions</A>
825 <LI><A href="#SecExecQuery" >Execute a Query</A>
826 <LI><A href="#SecAssociators" >Enumerate associators of a CIM Object</A>
827 <LI><A href="#SecAssociatorNames" >Enumerate names of associators of a CIM
828 Object</A>
829 <LI><A href="#SecReferences" >Enumerate references to a CIM Object</A>
830 <LI><A href="#SecReferenceNames" >Enumerate names of references to a CIM
831 Object</A>
832 <LI><A href="#SecGetProperty" >Get a CIM Property value from a CIM
833 Instance</A>
834 <LI><A href="#SecSetProperty" >Set a CIM Property value from a CIM
835 Instance</A>
836 <LI><A href="#SecGetQualifier" >Get a Qualifier declaration</A>
837 <LI><A href="#SecSetQualifier" >Set a Qualifier declaration</A>
838 <LI><A href="#SecDeleteQualifier" >Delete a Qualifier declaration</A>
839 <LI><A href="#SecEnumerateQualifiers" >Enumerate
840 Qualifier declarations</A></LI></UL>
841 karl 1.1 <P>The convention used in the following subsections to
842 define the signatures of the intrinsic methods is a pseudo-MOF notation that
843 extends the standard MOF BNF [1] for describing CIM Methods with a number
844 of pseudo parameter types (which are indicated by being placed within
845 "<" and ">" characters). </P>
846 <P>This notation admits of the decoration of parameters
847 with a number of pseudo-qualifiers (IN, OPTIONAL and NULL) to define their
848 invocation semantics. It is important to understand that these qualifiers are
849 used for descriptional purposes only within the scope of this specification, and
850 in particular a <A href="#DefCIMClient" >CIM Client</A> MUST NOT specify them in
851 intrinsic method invocations.</P>
852 <P>This notation uses the IN qualifier to denote that the
853 parameter is an input parameter.</P>
854 <P>This notation uses the OPTIONAL qualifier to indicate
855 paramaters whose presence is not mandatory, and declares default values for
856 optional method parameters using similar notation employed for default
857 property values in MOF.</P>
858 <P>A CIM Client MAY omit an optional parameter in the case
859 that the required value is the specified default, by not specifying an
860 <IPARAMVALUE> element for that parameter. It MUST NOT omit any parameter
861 that is not marked as optional.</P>
862 karl 1.1 <P>This notation uses the NULL qualifier to indicate
863 parameters whose values may be be specified as NULL in a method call. A
864 NULL (unassigned) value for a parameter is specified by an <IPARAMVALUE>
865 element with no subelement. For parameters which do not possess the NULL
866 qualifier, the CIM Client MUST specify a value for the parameter by including a
867 suitable subelement for the <IPARAMVALUE> element for that
868 parameter.</P>
869 <P>All parameters MUST be named uniquely, and MUST
870 correspond to a valid parameter name for that method as described by this
871 specification. The order of the parameters is not significant.</P>
872 <P>The non-NULL values of intrinsic method parameters or
873 return values which are modelled as standard CIM types (such as string and
874 boolean, or arrays thereof) are represented as follows:</P>
875 <UL>
876 <LI>Simple values MUST be represented using the
877 <VALUE> subelement within an <IPARAMETER> element (for method
878 parameters) or within an <IRETURNVALUE> element (for method return
879 values).
880 <LI>Array values MUST be represented using the
881 <VALUE.ARRAY> subelement within an <IPARAMETER> element (for
882 method parameters) or within an <IRETURNVALUE> element (for method
883 karl 1.1 return values).</LI></UL>
884 <P>The following table describes how each of the
885 pseudo-types used by the intrinsic methods MUST be mapped to an XML element
886 described in [2] in the context of both a parameter value (subelement of
887 <IPARAMVALUE>) and a return value (subelement of
888 <IRETURNVALUE>).</P>
889 <P>
890 <TABLE border=1 cellPadding=1 cellSpacing=1 width="100%">
891 <TBODY>
892 <TR>
893 <TD>
894 <P align=center><STRONG
895 >Type</STRONG></P></TD>
896 <TD>
897 <P align=center><STRONG>XML
898 Element</STRONG></P></TD></TR>
899 <TR>
900 <TD><FONT size=2><A
901 name=Def_object><FONT size=2
902 ><object></FONT></A></FONT></TD>
903 <TD><FONT size=2
904 karl 1.1 >(VALUE.OBJECT|VALUE.OBJECTWITHLOCALPATH|VALUE.OBJECTWITHPATH)</FONT></TD></TR>
905 <TR>
906 <TD><FONT size=2><A
907 name=sec_defclass><FONT size=2
908 ><class></FONT></A></FONT></TD>
909 <TD><FONT size=2
910 >CLASS</FONT></TD></TR>
911 <TR>
912 <TD><FONT size=2><A
913 name=sec_definstance><FONT size=2
914 ><instance></FONT></A></FONT></TD>
915 <TD><FONT size=2
916 >INSTANCE</FONT></TD></TR>
917 <TR>
918 <TD><FONT size=2><A
919 name=def_className><className></A></FONT></TD>
920 <TD><FONT size=2
921 >CLASSNAME</FONT></TD></TR>
922 <TR>
923 <TD><FONT size=2><A
924 name=sec_defnamedinstance><FONT size=2
925 karl 1.1 ><namedInstance></FONT></A></FONT></TD>
926 <TD><FONT size=2
927 >VALUE.NAMEDINSTANCE</FONT></TD></TR>
928 <TR>
929 <TD><FONT size=2><A
930 name=def_instanceName><FONT size=2
931 ><instanceName></FONT></A></FONT></TD>
932 <TD><FONT size=2
933 >INSTANCENAME</FONT></TD></TR>
934 <TR>
935 <TD><FONT size=2><A
936 name=Def_objectWithPathArray><FONT size=2
937 ><objectWithPath></FONT></A></FONT></TD>
938 <TD>
939 <P align=left><FONT size=2
940 >VALUE.OBJECTWITHPATH</FONT></P></TD></TR>
941 <TR>
942 <TD><FONT size=2><A
943 name=Def_objectName><FONT size=2
944 ><objectName></FONT></A></FONT></TD>
945 <TD><FONT size=2
946 karl 1.1 >(CLASSNAME|INSTANCENAME)</FONT></TD></TR>
947 <TR>
948 <TD><FONT size=2><A
949 name=Def_propertyValue
950 ><propertyValue></A></FONT></TD>
951 <TD><FONT size=2
952 >(VALUE|VALUE.ARRAY|VALUE.REFERENCE)</FONT></TD></TR>
953 <TR>
954 <TD><FONT size=2><A
955 name=Def_qualifierDecl><FONT size=2
956 ><qualifierDecl></FONT></A></FONT></TD>
957 <TD><FONT size=2
958 >QUALIFIER.DECLARATION</FONT></TD></TR></TBODY></TABLE>
959 <P><A href="#top" >Back to contents</A></P>
960 <H3>2.4.1. <A name=SecGetClass>GetClass</A></H3>
961 <P>This operation is used to return a single CIM Class from
962 the target Namespace. </P>
963 <P>
964 <TABLE border=1 class=Definition>
965 <THEAD>
966 <TR>
967 karl 1.1 <TD><FONT face=Verdana><STRONG
968 > GetClass</STRONG></FONT></TD></TR></THEAD>
969 <TBODY>
970 <TR>
971 <TD> <A href="#sec_defclass" ><class></A>
972 <STRONG>GetClass</STRONG> (<BR
973 >
974 [IN] <A href="#def_className" ><className></A> ClassName,<BR
975 > [IN,OPTIONAL]
976 boolean LocalOnly = true,<BR
977 > [IN,OPTIONAL]
978 boolean IncludeQualifiers = true,<BR
979 > [IN,OPTIONAL]
980 boolean IncludeClassOrigin = false,<BR
981 >
982 [IN,OPTIONAL,NULL] string PropertyList [] = NULL<BR
983 > )</TD></TR></TBODY></TABLE>
984 <P>The <FONT face="Courier New">ClassName</FONT> input parameter defines the name of the
985 Class to be retrieved. </P>
986 <P>If the <FONT face="Courier New">LocalOnly</FONT> input parameter is <FONT
987 face="Courier New">true</FONT>, this specifies that only
988 karl 1.1 CIM Elements (properties, methods and qualifiers) overriden within the
989 definition of the Class are returned [1]. If <FONT face="Courier New">false</FONT>, all elements are returned. This
990 parameter therefore effects a CIM Server-side mechanism to filter certain
991 elements of the returned object based on whether or not they have been
992 propagated from the parent Class (as defined by the <FONT face="Courier New">PROPAGATED</FONT> attribute).</P>
993 <P>If the <FONT face="Courier New">IncludeQualifiers</FONT> input parameter is <FONT
994 face="Courier New">true</FONT>, this specifies that all
995 Qualifiers for that Class (including Qualifiers on the Class and on any returned
996 Properties, Methods or Method Parameters) MUST be included as <FONT
997 face="Courier New"><QUALIFIER></FONT> elements in the
998 response. If false no <FONT face="Courier New"><QUALIFIER></FONT> elements are present in the
999 returned Class.</P>
1000 <P>If the <FONT face="Courier New">IncludeClassOrigin</FONT> input parameter is <FONT
1001 face="Courier New">true</FONT>, this specifies that the
1002 <FONT face="Courier New">CLASSORIGIN</FONT> attribute MUST
1003 be present on all appropriate elements in the returned Class. If false, no <FONT
1004 face="Courier New">CLASSORIGIN</FONT> attributes are
1005 present in the returned Class.</P>
1006 <P>If the <FONT face="Courier New">PropertyList</FONT> input parameter is not <FONT
1007 face="Courier New">NULL</FONT>, the members of the array
1008 define one or more Property names. The returned Class MUST NOT include
1009 karl 1.1 elements for any Properties missing from this list. Note that if
1010 <FONT face="Courier New">LocalOnly</FONT> is specified as
1011 <FONT face="Courier New">true</FONT> this acts as an
1012 additional filter on the set of Properties returned (for example,
1013 if Property <FONT face="Courier New">A</FONT> is
1014 included in the <FONT face="Courier New">PropertyList</FONT> but <FONT face="Courier New">LocalOnly</FONT> is set to true and <FONT
1015 face="Courier New">A</FONT> is not local to the requested
1016 Class, then it will not be included in the response). If the <FONT
1017 face="Courier New">PropertyList</FONT> input parameter is
1018 an empty array this signifies that no Properties are included in the
1019 response. If the <FONT face="Courier New">PropertyList</FONT> input parameter is NULL this specifies
1020 that all Properties (subject to the conditions expressed by the other
1021 parameters) are included in the response.</P>
1022 <P>If the <FONT face="Courier New">PropertyList</FONT> contains duplicate elements, the
1023 Server MUST ignore the duplicates but otherwise process the request
1024 normally. If the <FONT face="Courier New">PropertyList</FONT> contains elements which are invalid
1025 Property names for the target Class, the Server MUST ignore such entries but
1026 otherwise process the request normally.</P>
1027 <P>If successful, the return value is a single CIM
1028 Class.</P>
1029 <P>If unsuccessful, one of the following status
1030 karl 1.1 codes MUST be returned by this method, where the first applicable error in
1031 the list (starting with the first element of the list, and working down)
1032 is the error returned. Any additional method-specific interpretation of the
1033 error in is given in parentheses.</P>
1034 <UL>
1035 <LI>CIM_ERR_ACCESS_DENIED
1036 <LI>CIM_ERR_INVALID_NAMESPACE
1037 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1038 duplicate, unrecognized or otherwise incorrect parameters)
1039 <LI>CIM_ERR_NOT_FOUND (the request CIM Class does not
1040 exist in the specified namespace)
1041 <LI>CIM_ERR_FAILED (some other unspecified error
1042 occurred)</LI></UL>
1043 <P><A href="#top" >Back to contents</A></P>
1044 <H3>2.4.2. <A name=SecGetInstance>GetInstance</A></H3>
1045 <P>This operation is used to return a single CIM Instance
1046 from the target Namespace. </P>
1047 <P>
1048 <TABLE border=1 class=Definition>
1049 <THEAD>
1050 <TR>
1051 karl 1.1 <TD><FONT face=Verdana><STRONG
1052 > GetInstance</STRONG></FONT></TD></TR></THEAD>
1053 <TBODY>
1054 <TR>
1055 <TD> <A href="#sec_definstance" ><instance></A> <STRONG
1056 >GetInstance</STRONG> (<BR
1057 >
1058 [IN] <A href="#Def_instanceName" ><instanceName></A>
1059 InstanceName,<BR
1060 > [IN,OPTIONAL]
1061 boolean LocalOnly = true,<BR
1062 > [IN,OPTIONAL]
1063 boolean IncludeQualifiers = false,<BR
1064 > [IN,OPTIONAL]
1065 boolean IncludeClassOrigin = false,<BR
1066 >
1067 [IN,OPTIONAL,NULL] string PropertyList [] = NULL<BR
1068 > )</TD></TR></TBODY></TABLE>
1069 <P>The <FONT face="Courier New">InstanceName</FONT> input parameter defines the name of the
1070 Instance to be retrieved. </P>
1071 <P>If the <FONT face="Courier New">LocalOnly</FONT> input parameter is <FONT
1072 karl 1.1 face="Courier New">true</FONT>, this specifies that only
1073 elements (properties and qualifiers) overriden within the definition of
1074 the Instance are returned [1]. If <FONT face="Courier New">false</FONT>, all elements are returned. This
1075 parameter therefore effects a CIM Server-side mechanism to filter certain
1076 elements of the returned object based on whether or not they have been
1077 propagated from the parent Class (as defined by the <FONT face="Courier New">PROPAGATED</FONT> attribute).</P>
1078 <P>If the <FONT face="Courier New">IncludeQualifiers</FONT> input parameter is <FONT
1079 face="Courier New">true</FONT>, this specifies that all
1080 Qualifiers for that Instance (including Qualifiers on the Instance and
1081 on any returned Properties) MUST be included as <FONT face="Courier New"><QUALIFIER></FONT> elements in the response. If
1082 false no <FONT face="Courier New"><QUALIFIER></FONT> elements are present in the
1083 returned Instance.</P>
1084 <P>If the <FONT face="Courier New">IncludeClassOrigin</FONT> input parameter is <FONT
1085 face="Courier New">true</FONT>, this specifies that the
1086 <FONT face="Courier New">CLASSORIGIN</FONT> attribute MUST
1087 be present on all appropriate elements in the returned Instance. If false, no
1088 <FONT face="Courier New">CLASSORIGIN</FONT> attributes are
1089 present in the returned Instance.</P>
1090 <P>If the <FONT face="Courier New">PropertyList</FONT> input parameter is not <FONT
1091 face="Courier New">NULL</FONT>, the members of the array
1092 define one or more Property names. The returned Instance MUST NOT
1093 karl 1.1 include elements for any Properties missing from this list. Note that
1094 if <FONT face="Courier New">LocalOnly</FONT> is specified
1095 as <FONT face="Courier New">true</FONT> this acts as an
1096 additional filter on the set of Properties returned (for example,
1097 if Property <FONT face="Courier New">A</FONT> is
1098 included in the <FONT face="Courier New">PropertyList</FONT> but <FONT face="Courier New">LocalOnly</FONT> is set to true and <FONT
1099 face="Courier New">A</FONT> is not local to the requested
1100 Instance, then it will not be included in the response). If the <FONT
1101 face="Courier New">PropertyList</FONT> input parameter is
1102 an empty array this signifies that no Properties are included in the
1103 response. If the <FONT face="Courier New">PropertyList</FONT> input parameter is NULL this specifies
1104 that all Properties (subject to the conditions expressed by the other
1105 parameters) are included in the response.</P>
1106 <P>If the <FONT face="Courier New">PropertyList</FONT> contains duplicate elements, the
1107 Server MUST ignore the duplicates but otherwise process the request
1108 normally. If the <FONT face="Courier New">PropertyList</FONT> contains elements which are invalid
1109 Property names for the target Instance, the Server MUST ignore such entries but
1110 otherwise process the request normally.</P>
1111 <P>If successful, the return value is a single CIM
1112 Instance.</P>
1113 <P>If unsuccessful, one of the following status
1114 karl 1.1 codes MUST be returned by this method, where the first applicable error in
1115 the list (starting with the first element of the list, and working down)
1116 is the error returned. Any additional method-specific interpretation of the
1117 error in is given in parentheses.</P>
1118 <UL>
1119 <LI>CIM_ERR_ACCESS_DENIED
1120 <LI>CIM_ERR_INVALID_NAMESPACE
1121 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1122 duplicate, unrecognized or otherwise incorrect parameters)
1123 <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist
1124 in the specified namespace)
1125 <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the
1126 requested CIM Instance does not exist in the specified namespace)
1127 <LI>CIM_ERR_FAILED (some other unspecified error
1128 occurred)</LI></UL>
1129 <P><A href="#top" >Back to contents</A></P>
1130 <H3>2.4.3. DeleteClass</H3>
1131 <P>This operation is used to delete a single CIM Class from
1132 the target Namespace.</P>
1133 <P>
1134 <TABLE border=1 class=Definition>
1135 karl 1.1 <THEAD>
1136 <TR>
1137 <TD><FONT face=Verdana><STRONG
1138 > DeleteClass</STRONG></FONT></TD></TR></THEAD>
1139 <TBODY>
1140 <TR>
1141 <TD> void <STRONG
1142 >DeleteClass</STRONG> (<BR
1143 > [IN] <A href="#def_className" ><className></A> ClassName<BR
1144 > )</TD></TR></TBODY></TABLE>
1145 <P>The <FONT face="Courier New">ClassName</FONT> input parameter defines the name of the
1146 Class to be deleted. </P>
1147 <P>If successful, the specified Class (including any
1148 subclasses and any instances) MUST have been removed by the CIM Server.
1149 The operation MUST fail if any one of these objects cannot be deleted.</P>
1150 <P>If unsuccessful, one of the following status
1151 codes MUST be returned by this method, where the first applicable error in
1152 the list (starting with the first element of the list, and working down)
1153 is the error returned. Any additional method-specific interpretation of the
1154 error in is given in parentheses.</P>
1155 <UL>
1156 karl 1.1 <LI>CIM_ERR_ACCESS_DENIED
1157 <LI>CIM_ERR_NOT_SUPPORTED
1158 <LI>CIM_ERR_INVALID_NAMESPACE
1159 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1160 duplicate, unrecognized or otherwise incorrect parameters)
1161 <LI>CIM_ERR_NOT_FOUND (the CIM Class to be deleted does
1162 not exist)
1163 <LI>CIM_ERR_CLASS_HAS_CHILDREN (the CIM Class has one or
1164 more subclasses which cannot be deleted)
1165 <LI>CIM_ERR_CLASS_HAS_INSTANCES (the CIM Class has one or
1166 more instances which cannot be deleted)
1167 <LI>CIM_ERR_FAILED (some other unspecified error
1168 occurred)</LI></UL>
1169 <P><A href="#top" >Back to contents</A></P>
1170 <H3>2.4.4. <A name=SecDeleteInstance>DeleteInstance</A></H3>
1171 <P>This operation is used to delete a single CIM
1172 Instance from the target Namespace. </P>
1173 <P>
1174 <TABLE border=1 class=Definition>
1175 <THEAD>
1176 <TR>
1177 karl 1.1 <TD><FONT face=Verdana><STRONG
1178 > DeleteInstance</STRONG></FONT></TD></TR></THEAD>
1179 <TBODY>
1180 <TR>
1181 <TD> void <STRONG
1182 >DeleteInstance</STRONG> (<BR
1183 >
1184 [IN] <A href="#Def_instanceName" ><instanceName></A> InstanceName<BR
1185 > )</TD></TR></TBODY></TABLE>
1186 <P>The <FONT face="Courier New">InstanceName</FONT> input parameter defines the name (model
1187 path) of the Instance to be deleted. </P>
1188 <P>If successful, the specified Instance MUST have
1189 been removed by the CIM Server.</P>
1190 <P>If unsuccessful, one of the following status
1191 codes MUST be returned by this method, where the first applicable error in
1192 the list (starting with the first element of the list, and working down)
1193 is the error returned. Any additional method-specific interpretation of the
1194 error in is given in parentheses.</P>
1195 <UL>
1196 <LI>CIM_ERR_ACCESS_DENIED
1197 <LI>CIM_ERR_NOT_SUPPORTED
1198 karl 1.1 <LI>CIM_ERR_INVALID_NAMESPACE
1199 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1200 duplicate, unrecognized or otherwise incorrect parameters)
1201 <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist
1202 in the specified namespace)
1203 <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the
1204 requested CIM Instance does not exist in the specified namespace)
1205 <LI>CIM_ERR_FAILED (some other unspecified error
1206 occurred)</LI></UL>
1207 <P><A href="#top" >Back to contents</A></P>
1208 <H3>2.4.5. <A name=SecCreateClass>CreateClass</A></H3>
1209 <P>This operation is used to create a single CIM Class in
1210 the target Namespace. The Class MUST NOT already exist.</P>
1211 <P>
1212 <TABLE border=1 class=Definition>
1213 <THEAD>
1214 <TR>
1215 <TD><FONT face=Verdana><STRONG
1216 > CreateClass</STRONG></FONT></TD></TR></THEAD>
1217 <TBODY>
1218 <TR>
1219 karl 1.1 <TD> void <STRONG
1220 >CreateClass</STRONG> (<BR
1221 >
1222 [IN] <A href="sec_defclass" ><class></A> NewClass<BR
1223 > )</TD></TR></TBODY></TABLE>
1224 <P>The <FONT face="Courier New">NewClass</FONT> input parameter defines the new
1225 Class. The proposed definition MUST be a correct Class definition
1226 according to the CIM specification [1].</P>
1227 <P>In processing the creation of the new Class, the
1228 following rules MUST be conformed to by the CIM Server:</P>
1229 <UL>
1230 <LI>Any <FONT face="Courier New"
1231 >CLASSORIGIN</FONT> and <FONT face="Courier New"
1232 >PROPAGATED</FONT> attributes in the <FONT
1233 face="Courier New">NewClass</FONT> MUST be ignored by the
1234 Server.
1235 <LI>If the new Class has no Superclass, the <FONT
1236 face="Courier New">NewClass</FONT> parameter defines a
1237 new base Class. The Server MUST ensure that all Properties and Methods of the
1238 new Class have a <FONT face="Courier New"
1239 >CLASSORIGIN</FONT> attribute whose value is the name of
1240 karl 1.1 the new Class.
1241 <LI>If the new Class has a Superclass, the <FONT
1242 face="Courier New">NewClass</FONT> parameter defines a
1243 new Subclass of that Superclass. The Superclass MUST exist. The Server MUST
1244 ensure that:
1245 <UL>
1246 <LI>Any Properties, Methods or Qualifiers in the
1247 Subclass not defined in the Superclass are created as new elements of
1248 the Subclass. In particular the Server MUST set the <FONT face="Courier New"
1249 >CLASSORIGIN</FONT> attribute on the new Properties and
1250 Methods to the name of the Subclass, and ensure that all other Properties
1251 and Methods preserve their <FONT face="Courier New"
1252 >CLASSORIGIN</FONT> attribute value from that defined in
1253 the Superclass.
1254 <LI>If a Property is defined in the Superclass and in
1255 the Subclass, the value assigned to that property in the Subclass
1256 (including NULL) becomes the default value of the property for the Subclass.
1257
1258 <LI>If a Property or Method of the Superclass is not
1259 specified in the Subclass, then that Property or Method is inherited
1260 without modification by the Subclass.
1261 karl 1.1 <LI>Any Qualifiers defined in the Superclass with a
1262 <FONT face="Courier New">TOSUBCLASS</FONT> attribute
1263 value of <FONT face="Courier New">true</FONT> MUST
1264 appear in the resulting Subclass. Qualifiers in the Superclass with a <FONT
1265 face="Courier New">TOSUBCLASS</FONT> attribute value of
1266 <FONT face="Courier New">false</FONT> MUST NOT be
1267 propagated to the Subclass.
1268 <LI>Any Qualifier propagated from the Superclass cannot
1269 be modified in the Subclass if the <FONT face="Courier New"
1270 >OVERRIDABLE</FONT> attribute of that Qualifier was set
1271 to <FONT face="Courier New">false</FONT> in the
1272 Superclass. It is a Client error to specify such a Qualifier in the <FONT
1273 face="Courier New">NewClass</FONT> with a different
1274 definition to that in the Superclass (where definition encompasses the name,
1275 type and flavor attribute settings of the <FONT face="Courier New"
1276 ><QUALIFIER></FONT> element, and the value of the
1277 Qualifier).</LI></UL></LI></UL>
1278 <P>If successful, the specified Class MUST have been
1279 created by the CIM Server. </P>
1280 <P>If unsuccessful, one of the following status
1281 codes MUST be returned by this method, where the first applicable error in
1282 karl 1.1 the list (starting with the first element of the list, and working down)
1283 is the error returned. Any additional method-specific interpretation of the
1284 error in is given in parentheses.</P>
1285 <UL>
1286 <LI>CIM_ERR_ACCESS_DENIED
1287 <LI>CIM_ERR_NOT_SUPPORTED
1288 <LI>CIM_ERR_INVALID_NAMESPACE
1289 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1290 duplicate, unrecognized or otherwise incorrect parameters)
1291 <LI>CIM_ERR_ALREADY_EXISTS (the CIM Class already
1292 exists)
1293 <LI>CIM_ERR_INVALID_SUPERCLASS (the putative CIM Class
1294 declares a non-existent superclass)
1295 <LI>CIM_ERR_FAILED (some other unspecified error
1296 occurred)</LI></UL>
1297 <P><A href="#top" >Back to contents</A></P>
1298 <H3>2.4.6. <A name=SecCreateInstance>CreateInstance</A></H3>
1299 <P>This operation is used to create a single CIM Instance
1300 in the target Namespace. The Instance MUST NOT already exist.</P>
1301 <P>
1302 <TABLE border=1 class=Definition>
1303 karl 1.1 <THEAD>
1304 <TR>
1305 <TD><FONT face=Verdana><STRONG
1306 > CreateInstance</STRONG></FONT></TD></TR></THEAD>
1307 <TBODY>
1308 <TR>
1309 <TD> <A href="#Def_instanceName" ><instanceName></A> <STRONG
1310 >CreateInstance</STRONG> (<BR
1311 >
1312 [IN] <A href="sec_definstance" ><instance></A> NewInstance<BR
1313 > )</TD></TR></TBODY></TABLE>
1314 <P>The <FONT face="Courier New">NewInstance</FONT> input parameter defines the new
1315 Instance. The proposed definition MUST be a correct Instance
1316 definition for the underlying CIM Class according to the CIM specification
1317 [1].</P>
1318 <P>In processing the creation of the new Instance, the
1319 following rules MUST be conformed to by the CIM Server:</P>
1320 <UL>
1321 <LI>Any <FONT face="Courier New"
1322 >CLASSORIGIN</FONT> and <FONT face="Courier New"
1323 >PROPAGATED</FONT> attributes in the <FONT
1324 karl 1.1 face="Courier New">NewInstance</FONT> MUST be ignored by
1325 the Server.
1326 <LI>The Server MUST ensure that:
1327 <UL>
1328 <LI>Any Qualifiers in the Instance not defined in
1329 the Class are created as new elements of the Instance.
1330 <LI>All Properties of the Instance preserve their
1331 <FONT face="Courier New">CLASSORIGIN</FONT> attribute
1332 value from that defined in the Class.
1333 <LI>If a Property is specified in the <FONT
1334 face="Courier New">ModifiedInstance</FONT>
1335 parameter, the value assigned to that property in the Instance
1336 (including NULL) becomes the value of the property for the Instance. Note
1337 that it is a Client error to specify a Property that does not belong to the
1338 Class.
1339 <LI>If a Property of the Class is not specified in
1340 the Instance, then that Property is inherited without modification by the
1341 Instance.
1342 <LI>Any Qualifiers defined in the Class with a
1343 <FONT face="Courier New">TOINSTANCE</FONT> attribute
1344 value of <FONT face="Courier New">true</FONT> appear in
1345 karl 1.1 the Instance. Qualifiers in the Class with a <FONT face="Courier New"
1346 >TOINSTANCE</FONT> attribute value of <FONT
1347 face="Courier New">false</FONT> MUST NOT be propagated
1348 to the Instance.
1349 <LI>Any Qualifier propagated from the Class cannot be
1350 modified in the Instance if the <FONT face="Courier New"
1351 >OVERRIDABLE</FONT> attribute of that Qualifier was set
1352 to <FONT face="Courier New">false</FONT> in the Class.
1353 It is a Client error to specify such a Qualifier in the <FONT
1354 face="Courier New">NewInstance</FONT> with a different
1355 definition to that in the Class (where definition encompasses the name,
1356 type and flavor attribute settings of the <FONT face="Courier New"
1357 ><QUALIFIER></FONT> element, and the value of the
1358 Qualifier).</LI></UL></LI></UL>
1359 <P>If successful, the return value defines the object path
1360 of the new CIM Instance relative to the target Namespace (i.e. the Model
1361 Path as defined by [1]), created by the CIM Server. It is returned in case
1362 one or more of the new keys of the Instance are allocated dynamically during the
1363 creation process rather than specified in the request.</P>
1364 <P>If unsuccessful, one of the following status
1365 codes MUST be returned by this method, where the first applicable error in
1366 karl 1.1 the list (starting with the first element of the list, and working down)
1367 is the error returned. Any additional method-specific interpretation of the
1368 error in is given in parentheses.</P>
1369 <UL>
1370 <LI>CIM_ERR_ACCESS_DENIED
1371 <LI>CIM_ERR_NOT_SUPPORTED
1372 <LI>CIM_ERR_INVALID_NAMESPACE
1373 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1374 duplicate, unrecognized or otherwise incorrect parameters)
1375 <LI>CIM_ERR_INVALID_CLASS (the CIM Class of which this is
1376 to be a new Instance does not exist)
1377 <LI>CIM_ERR_ALREADY_EXISTS (the CIM Instance already
1378 exists)
1379 <LI>CIM_ERR_FAILED (some other unspecified error
1380 occurred)</LI></UL>
1381 <P><A href="#top" >Back to contents</A></P>
1382 <H3>2.4.7. <A name=SecModifyClass>ModifyClass</A></H3>
1383 <P>This operation is used to modify an existing
1384 CIM Class in the target Namespace. The Class MUST already exist.</P>
1385 <P>
1386 <TABLE border=1 class=Definition>
1387 karl 1.1 <THEAD>
1388 <TR>
1389 <TD><FONT face=Verdana><STRONG
1390 > ModifyClass</STRONG></FONT></TD></TR></THEAD>
1391 <TBODY>
1392 <TR>
1393 <TD> void <STRONG
1394 >ModifyClass</STRONG> (<BR
1395 >
1396 [IN] <A href="sec_defclass" ><class></A> ModifiedClass<BR
1397 > )</TD></TR></TBODY></TABLE>
1398 <P>The <FONT face="Courier New">ModifiedClass</FONT> input parameter defines the set of
1399 changes (which MUST be correct amendments to the CIM Class as defined by
1400 the CIM Specification [1]) to be made to the current class definition.</P>
1401 <P>In processing the modifcation of the Class, the
1402 following rules MUST be conformed to by the CIM Server:</P>
1403 <UL>
1404 <LI>Any <FONT face="Courier New"
1405 >CLASSORIGIN</FONT> and <FONT face="Courier New"
1406 >PROPAGATED</FONT> attributes in the <FONT
1407 face="Courier New">ModifiedClass</FONT> MUST be ignored
1408 karl 1.1 by the Server.
1409 <LI>If the modified Class has no Superclass, the
1410 <FONT face="Courier New">ModifiedClass</FONT> parameter
1411 defines modifications to a base Class. The Server MUST ensure that:
1412 <UL>
1413 <LI>All Properties and Methods of the modified Class
1414 have a <FONT face="Courier New">CLASSORIGIN</FONT>
1415 attribute whose value is the name of this Class.
1416 <LI>Any Properties, Methods or Qualifiers in the
1417 existing Class definition which do not appear in the <FONT
1418 face="Courier New">ModifiedClass</FONT> parameter are
1419 removed from the resulting modified Class.</LI></UL>
1420 <LI>If the modified Class has a Superclass,
1421 the <FONT face="Courier New"><FONT
1422 face="Courier New">ModifiedClass</FONT></FONT> parameter
1423 defines modifications to a Subclass of that Superclass. The Superclass
1424 MUST exist, and the Client MUST NOT change the name of the Superclass in the
1425 modified Subclass. The Server MUST ensure that:
1426 <UL>
1427 <LI>Any Properties, Methods or Qualifiers in the
1428 Subclass not defined in the Superclass are created as elements of the
1429 karl 1.1 Subclass. In particular the Server MUST set the <FONT face="Courier New"
1430 >CLASSORIGIN</FONT> attribute on the new Properties and
1431 Methods to the name of the Subclass, and MUST ensure that all other
1432 Properties and Methods preserve their <FONT face="Courier New"
1433 >CLASSORIGIN</FONT> attribute value from that defined in
1434 the Superclass.
1435 <LI>Any Property, Method or Qualifier previously
1436 defined in the Subclass but not defined in the Superclass, and which is not
1437 present in the <FONT face="Courier New"><FONT
1438 face="Courier New">ModifiedClass</FONT></FONT>
1439 parameter, is removed from the Subclass.
1440 <LI>If a Property is specified in the <FONT
1441 face="Courier New">ModifiedClass</FONT>
1442 parameter, the value assigned to that property therein (including NULL)
1443 becomes the default value of the property for the Subclass.
1444 <LI>If a Property or Method of the Superclass is not
1445 specified in the Subclass, then that Property or Method is inherited
1446 without modification by the Subclass (so that any previous changes to such
1447 an Element in the Subclass are lost).
1448 <LI>If a Qualifier in the Superclass is not
1449 specified in the Subclass, and the Qualifier is defined in the Superclass
1450 karl 1.1 with a <FONT face="Courier New">TOSUBCLASS</FONT>
1451 attribute value of <FONT face="Courier New"
1452 >true</FONT>, then the Qualifier MUST still be present
1453 in the resulting modified Subclass (it is not possible to remove a
1454 propagated Qualifier from a Subclass).
1455 <LI>Any Qualifier propagated from the Superclass cannot
1456 be modified in the Subclass if the <FONT face="Courier New"
1457 >OVERRIDABLE</FONT> attribute of that Qualifier was set
1458 to <FONT face="Courier New">false</FONT> in the
1459 Superclass. It is a Client error to specify such a Qualifier in the <FONT
1460 face="Courier New">ModifiedClass</FONT> with a
1461 different definition to that in the Superclass (where definition encompasses
1462 the name, type and flavor attribute settings of the <FONT
1463 face="Courier New"><QUALIFIER></FONT> element,
1464 and the value of the Qualifier).
1465 <LI>Any Qualifiers defined in the Superclass with a
1466 <FONT face="Courier New">TOSUBCLASS</FONT> attribute
1467 value of <FONT face="Courier New">false</FONT>
1468 MUST NOT be propagated to the Subclass.</LI></UL></LI></UL>
1469 <P>If successful, the specified Class MUST have been
1470 updated by the CIM Server. </P>
1471 karl 1.1 <P>The request to modify the Class MUST fail if the Server
1472 cannot update any existing Subclasses or Instances of that Class in a consistent
1473 manner.</P>
1474 <P>If unsuccessful, one of the following status
1475 codes MUST be returned by this method, where the first applicable error in
1476 the list (starting with the first element of the list, and working down)
1477 is the error returned. Any additional method-specific interpretation of the
1478 error in is given in parentheses.</P>
1479 <UL>
1480 <LI>CIM_ERR_ACCESS_DENIED
1481 <LI>CIM_ERR_NOT_SUPPORTED
1482 <LI>CIM_ERR_INVALID_NAMESPACE
1483 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1484 duplicate, unrecognized or otherwise incorrect parameters)
1485 <LI>CIM_ERR_NOT_FOUND (the CIM Class does not
1486 exist)
1487 <LI>CIM_ERR_INVALID_SUPERCLASS (the putative CIM Class
1488 declares a non-existent or incorrect superclass)
1489 <LI>CIM_ERR_CLASS_HAS_CHILDREN (the modification could
1490 not be performed because it was not possible to update the subclasses of the
1491 Class in a consistent fashion)
1492 karl 1.1 <LI>CIM_ERR_CLASS_HAS_INSTANCES (the modification could
1493 not be performed because it was not possible to update the instances of
1494 the Class in a consistent fashion)
1495 <LI>CIM_ERR_FAILED (some other unspecified error
1496 occurred)</LI></UL>
1497 <P><A href="#top" >Back to contents</A></P>
1498 <H3>2.4.8. <A name=SecModifyInstance>ModifyInstance</A></H3>
1499 <P>This operation is used to modify an existing CIM
1500 Instance in the target Namespace. The Instance MUST already exist.</P>
1501 <P>
1502 <TABLE border=1 class=Definition>
1503 <THEAD>
1504 <TR>
1505 <TD><FONT face=Verdana><STRONG
1506 > ModifyInstance</STRONG></FONT></TD></TR></THEAD>
1507 <TBODY>
1508 <TR>
1509 <TD> void <STRONG
1510 >ModifyInstance</STRONG> (<BR
1511 >
1512 [IN] <A href="#sec_defnamedinstance" ><namedInstance></A> ModifiedInstance<BR
1513 karl 1.1 > )</TD></TR></TBODY></TABLE>
1514 <P>The <FONT face="Courier New">ModifiedInstance</FONT> input parameter identifies the
1515 name of the Instance to be modified, and defines the set of changes (which MUST
1516 be correct amendments to the Instance as defined by the CIM
1517 Specification [1]) to be made to the current Instance definition. </P>
1518 <P>In processing the modifcation of the Instance, the
1519 following rules MUST be conformed to by the CIM Server:</P>
1520 <UL>
1521 <LI>Any <FONT face="Courier New"
1522 >CLASSORIGIN</FONT> and <FONT face="Courier New"
1523 >PROPAGATED</FONT> attributes in the <FONT
1524 face="Courier New">ModifiedInstance</FONT> MUST be
1525 ignored by the Server.
1526 <LI>The Class MUST exist, and the Client MUST NOT change
1527 the name of the Class in the modified Instance. The Server MUST ensure that:
1528 <UL>
1529 <LI>Any Qualifiers in the Instance not defined in
1530 the Class are created as new elements of the Instance.
1531 <LI>All Properties of the Instance preserve their
1532 <FONT face="Courier New">CLASSORIGIN</FONT> attribute
1533 value from that defined in the Class.
1534 karl 1.1 <LI>Any Qualifier previously defined in
1535 the Instance but not defined in the Class, and which is not present in
1536 the <FONT face="Courier New"><FONT face="Courier New"
1537 >ModifiedInstance</FONT></FONT> parameter, is removed
1538 from the Instance.
1539 <LI>If a Property is specified in the <FONT
1540 face="Courier New">ModifiedInstance</FONT>
1541 parameter, the value assigned to that property therein (including
1542 NULL) becomes the value of the property for the Instance. Note that it is a
1543 Client error to specify a Property that does not belong to the Class.
1544 <LI>If a Property of the Class is not specified in
1545 the Instance, then that Property is inherited without modification by the
1546 Instance (so that any previous changes to that Property in
1547 the Instance are lost).
1548 <LI>Any Qualifiers defined in the Class with a
1549 <FONT face="Courier New">TOINSTANCE</FONT> attribute
1550 value of <FONT face="Courier New">true</FONT> appear in
1551 the Instance (it is not possible remove a propagated Qualifier from an
1552 Instance. Qualifiers in the Class with a <FONT face="Courier New"
1553 >TOINSTANCE</FONT> attribute value of <FONT
1554 face="Courier New">false</FONT> MUST NOT be propagated
1555 karl 1.1 to the Instance.
1556 <LI>Any Qualifier propagated from the Class cannot be
1557 modified by the Server if the <FONT face="Courier New"
1558 >OVERRIDABLE</FONT> attribute of that Qualifier was set
1559 to <FONT face="Courier New">false</FONT> in the Class.
1560 It is a Client error to specify such a Qualifier in the <FONT
1561 face="Courier New">ModifiedInstance</FONT> with a
1562 different definition to that in the Class (where definition encompasses the
1563 name, type and flavor attribute settings of the <FONT
1564 face="Courier New"><QUALIFIER></FONT> element,
1565 and the value of the Qualifier).
1566 <LI>Any Qualifier propagated from the Class cannot be
1567 modified in the Instance if the <FONT face="Courier New"
1568 >OVERRIDABLE</FONT> attribute of that Qualifier was set
1569 to <FONT face="Courier New">false</FONT> in the Class.
1570 It is a Client error to specify such a Qualifier in the <FONT
1571 face="Courier New">ModifiedInstance</FONT> with a
1572 different definition to that in the Class (where definition encompasses the
1573 name, type and flavor attribute settings of the <FONT
1574 face="Courier New"><QUALIFIER></FONT> element,
1575 and the value of the Qualifier).</LI></UL></LI></UL>
1576 karl 1.1 <P>If successful, the specified Instance MUST have
1577 been updated by the CIM Server. </P>
1578 <P>If unsuccessful, one of the following status
1579 codes MUST be returned by this method, where the first applicable error in
1580 the list (starting with the first element of the list, and working down)
1581 is the error returned. Any additional method-specific interpretation of the
1582 error in is given in parentheses.</P>
1583 <UL>
1584 <LI>CIM_ERR_ACCESS_DENIED
1585 <LI>CIM_ERR_NOT_SUPPORTED
1586 <LI>CIM_ERR_INVALID_NAMESPACE
1587 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1588 duplicate, unrecognized or otherwise incorrect parameters)
1589 <LI>CIM_ERR_INVALID_CLASS (the CIM Class of which this is
1590 to be a new Instance does not exist)
1591 <LI>CIM_ERR_NOT_FOUND (the CIM Instance does not
1592 exist)
1593 <LI>CIM_ERR_FAILED (some other unspecified error
1594 occurred)</LI></UL>
1595 <P><A href="#top" >Back to contents</A></P>
1596 <H3>2.4.9. <A name=SecEnumerateClasses></a><A name=DefEnumerateClasses>EnumerateClasses</A></H3>
1597 karl 1.1 <P>This operation is used to enumerate subclasses of a CIM
1598 Class in the target Namespace.</P>
1599 <P>
1600 <TABLE border=1 class=Definition>
1601 <THEAD>
1602 <TR>
1603 <TD><FONT face=Verdana><STRONG
1604 > EnumerateClasses</STRONG></FONT></TD></TR></THEAD>
1605 <TBODY>
1606 <TR>
1607 <TD> <A href="sec_defclass" ><class>*</A> <STRONG
1608 >EnumerateClasses</STRONG> (<BR
1609 >
1610 [IN,OPTIONAL,NULL] <A href="#def_className" ><className></A> ClassName=NULL,<BR
1611 > [IN,OPTIONAL]
1612 boolean DeepInheritance = false,<BR
1613 > [IN,OPTIONAL]
1614 boolean LocalOnly = true,<BR
1615 > [IN,OPTIONAL]
1616 boolean IncludeQualifiers = true,<BR
1617 > [IN,OPTIONAL]
1618 karl 1.1 boolean IncludeClassOrigin = false<BR
1619 > )</TD></TR></TBODY></TABLE>
1620 <P>The <FONT face="Courier New">ClassName</FONT> input parameter defines the Class that is
1621 the basis for the enumeration. </P>
1622 <P>If the <FONT face="Courier New">DeepInheritance</FONT> input parameter is <FONT
1623 face="Courier New">true</FONT>, this specifies that
1624 all subclasses of the specified Class should be returned (if the <FONT
1625 face="Courier New">ClassName</FONT> input parameter is
1626 absent, this implies that all Classes in the target Namespace should be
1627 returned). If <FONT face="Courier New">false</FONT>,
1628 only immediate child subclasses are returned (if the <FONT
1629 face="Courier New">ClassName</FONT> input parameter is
1630 NULL, this implies that all base Classes in the target Namespace should be
1631 returned). </P>
1632 <P>If the <FONT face="Courier New">LocalOnly</FONT> input parameter is <FONT
1633 face="Courier New">true</FONT>, it specifies that, for each
1634 returned Class, only elements (properties, methods and qualifiers) overriden
1635 within the definition of that Class are included [1]. If <FONT
1636 face="Courier New">false</FONT>, all elements are
1637 returned. This parameter therefore effects a CIM Server-side mechanism to
1638 filter certain elements of the returned object based on whether or not they have
1639 karl 1.1 been propagated from the parent Class (as defined by the <FONT
1640 face="Courier New">PROPAGATED</FONT> attribute).</P>
1641 <P>If the <FONT face="Courier New">IncludeQualifiers</FONT> input parameter is <FONT
1642 face="Courier New">true</FONT>, this specifies that all
1643 Qualifiers for each Class (including Qualifiers on the Class and on any
1644 returned Properties, Methods or Method Parameters) MUST be included as <FONT
1645 face="Courier New"><QUALIFIER></FONT> elements in the
1646 response. If false no <FONT face="Courier New"><QUALIFIER></FONT> elements are present
1647 in each returned Class.</P>
1648 <P>If the <FONT face="Courier New">IncludeClassOrigin</FONT> input parameter is <FONT
1649 face="Courier New">true</FONT>, this specifies that the
1650 <FONT face="Courier New">CLASSORIGIN</FONT> attribute MUST
1651 be present on all appropriate elements in each returned Class. If false, no
1652 <FONT face="Courier New">CLASSORIGIN</FONT> attributes are
1653 present in each returned Class.</P>
1654 <P>If successful, the method returns zero or
1655 more Classes that meet the required criteria.</P>
1656 <P>If unsuccessful, one of the following status
1657 codes MUST be returned by this method, where the first applicable error in
1658 the list (starting with the first element of the list, and working down)
1659 is the error returned. Any additional method-specific interpretation of the
1660 karl 1.1 error in is given in parentheses.</P>
1661 <UL>
1662 <LI>CIM_ERR_ACCESS_DENIED
1663 <LI>CIM_ERR_NOT_SUPPORTED
1664 <LI>CIM_ERR_INVALID_NAMESPACE
1665 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1666 duplicate, unrecognized or otherwise incorrect parameters)
1667 <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the
1668 basis for this enumeration does not exist)
1669 <LI>CIM_ERR_FAILED (some other unspecified error
1670 occurred)</LI></UL>
1671 <P><A href="#top" >Back to contents</A></P>
1672 <H3>2.4.10. <A name=SecEnumerateClassNames>EnumerateClassNames</A></H3>
1673 <P>This operation is used to enumerate the names of
1674 subclasses of a CIM Class in the target Namespace.</P>
1675 <P>
1676 <TABLE border=1 class=Definition>
1677 <THEAD>
1678 <TR>
1679 <TD><FONT face=Verdana><STRONG
1680 > EnumerateClassNames</STRONG></FONT></TD></TR></THEAD>
1681 karl 1.1 <TBODY>
1682 <TR>
1683 <TD> <A href="#def_className" ><className>*</A> <STRONG
1684 >EnumerateClassNames</STRONG> (<BR
1685 >
1686 [IN,OPTIONAL,NULL] <A href="#def_className" ><className></A> ClassName = NULL,<BR
1687 > [IN,OPTIONAL]
1688 boolean DeepInheritance = false<BR
1689 > )</TD></TR></TBODY></TABLE>
1690 <P>The <FONT face="Courier New">ClassName</FONT> input parameter defines the Class that is
1691 the basis for the enumeration. </P>
1692 <P>If the <FONT face="Courier New">DeepInheritance</FONT> input parameter is <FONT
1693 face="Courier New">true</FONT>, this specifies that
1694 the names of all subclasses of the specified Class should be returned (if the
1695 <FONT face="Courier New">ClassName</FONT> input parameter
1696 is absent, this implies that the names of all Classes in the target Namespace
1697 should be returned). If <FONT face="Courier New">false</FONT>, only the names of immediate child
1698 subclasses are returned (if the <FONT face="Courier New">ClassName</FONT> input parameter is NULL, this implies that
1699 the names of all base Classes in the target Namespace should be returned). </P>
1700 <P>If successful, the method returns zero or
1701 more names of Classes that meet the requested criteria.</P>
1702 karl 1.1 <P>If unsuccessful, one of the following status
1703 codes MUST be returned by this method, where the first applicable error in
1704 the list (starting with the first element of the list, and working down)
1705 is the error returned. Any additional method-specific interpretation of the
1706 error in is given in parentheses.</P>
1707 <UL>
1708 <LI>CIM_ERR_ACCESS_DENIED
1709 <LI>CIM_ERR_NOT_SUPPORTED
1710 <LI>CIM_ERR_INVALID_NAMESPACE
1711 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1712 duplicate, unrecognized or otherwise incorrect parameters)
1713 <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the
1714 basis for this enumeration does not exist)
1715 <LI>CIM_ERR_FAILED (some other unspecified error
1716 occurred)</LI></UL>
1717 <P><A href="#top" >Back to contents</A></P>
1718 <H3>2.4.11. <A name=SecEnumerateInstances></a><A name=DefEnumerateInstances>EnumerateInstances</A></H3>
1719 <P>This operation is used to enumerate instances of a CIM
1720 Class in the target Namespace.</P>
1721 <P>
1722 <TABLE border=1 class=Definition>
1723 karl 1.1 <THEAD>
1724 <TR>
1725 <TD><FONT face=Verdana><STRONG
1726 > EnumerateInstances</STRONG></FONT></TD></TR></THEAD>
1727 <TBODY>
1728 <TR>
1729 <TD> <A href="#sec_defnamedinstance" ><namedInstance>*</A> <STRONG
1730 >EnumerateInstances</STRONG> (<BR
1731 >
1732 [IN] <A href="#def_className" ><className></A> ClassName,<BR
1733 > [IN,OPTIONAL]
1734 boolean LocalOnly = true,<BR
1735 >
1736 [IN,OPTIONAL] boolean DeepInheritance = true,<BR
1737 > [IN,OPTIONAL]
1738 boolean IncludeQualifiers = false,<BR
1739 > [IN,OPTIONAL]
1740 boolean IncludeClassOrigin = false,<BR
1741 >
1742 [IN,OPTIONAL,NULL] string PropertyList [] = NULL<BR
1743 > )</TD></TR></TBODY></TABLE>
1744 karl 1.1 <P>The <FONT face="Courier New">ClassName</FONT> input parameter defines the Class that is
1745 the basis for the enumeration. </P>
1746 <P>If the <FONT face="Courier New">LocalOnly</FONT> input parameter is <FONT
1747 face="Courier New">true</FONT>, this specifies that,
1748 for each returned Instance, only elements (properties and qualifiers) overriden
1749 within the definition of that Instance are included [1]. If
1750 <FONT face="Courier New">false</FONT>, all elements are
1751 returned. This parameter therefore effects a CIM Server-side mechanism to
1752 filter certain elements of the returned object based on whether or not they have
1753 been propagated from the parent Class (as defined by the <FONT
1754 face="Courier New">PROPAGATED</FONT> attribute).</P>
1755 <P>If the <FONT face="Courier New">DeepInheritance</FONT> input parameter is <FONT
1756 face="Courier New">true</FONT>, this specifies that,
1757 for each returned Instance of the Class, all properties of the Instance MUST
1758 be present (subject to constraints imposed by the other parameters),
1759 including any which were added by subclassing the specified Class. If <FONT
1760 face="Courier New">false</FONT>, each
1761 returned Instance includes only properties defined for the specified
1762 Class.</P>
1763 <P>If the <FONT face="Courier New">IncludeQualifiers</FONT> input parameter is <FONT
1764 face="Courier New">true</FONT>, this specifies that all
1765 karl 1.1 Qualifiers for each Instance (including Qualifiers on
1766 the Instance and on any returned Properties) MUST be included as <FONT
1767 face="Courier New"><QUALIFIER></FONT> elements in the
1768 response. If false no <FONT face="Courier New"><QUALIFIER></FONT> elements are present
1769 in each returned Instance.</P>
1770 <P>If the <FONT face="Courier New">IncludeClassOrigin</FONT> input parameter is <FONT
1771 face="Courier New">true</FONT>, this specifies that the
1772 <FONT face="Courier New">CLASSORIGIN</FONT> attribute MUST
1773 be present on all appropriate elements in each returned Instance. If false,
1774 no <FONT face="Courier New">CLASSORIGIN</FONT> attributes
1775 are present in each returned Instance.</P>
1776 <P>If the <FONT face="Courier New">PropertyList</FONT> input parameter is not <FONT
1777 face="Courier New">NULL</FONT>, the members of the array
1778 define one or more Property names. Each returned Instance MUST
1779 NOT include elements for any Properties missing from this list. Note
1780 that if <FONT face="Courier New">LocalOnly</FONT> is
1781 specified as <FONT face="Courier New">true</FONT> (or <FONT
1782 face="Courier New">DeepInheritance</FONT> is specified as
1783 <FONT face="Courier New">false</FONT>) this acts as an
1784 additional filter on the set of Properties returned (for example,
1785 if Property <FONT face="Courier New">A</FONT> is
1786 karl 1.1 included in the <FONT face="Courier New">PropertyList</FONT> but <FONT face="Courier New">LocalOnly</FONT> is set to true and <FONT
1787 face="Courier New">A</FONT> is not local to a
1788 returned Instance, then it will not be included in that Instance). If the
1789 <FONT face="Courier New">PropertyList</FONT> input
1790 parameter is an empty array this signifies that no Properties are included in
1791 each returned Instance. If the <FONT face="Courier New">PropertyList</FONT> input parameter is NULL this specifies
1792 that all Properties (subject to the conditions expressed by the other
1793 parameters) are included in each returned Instance.</P>
1794 <P>If the <FONT face="Courier New">PropertyList</FONT> contains duplicate elements, the
1795 Server MUST ignore the duplicates but otherwise process the request
1796 normally. If the <FONT face="Courier New">PropertyList</FONT> contains elements which are invalid
1797 Property names for any target Instance, the Server MUST ignore such entries
1798 but otherwise process the request normally.</P>
1799 <P>If successful, the method returns zero or
1800 more named Instances that meet the required criteria.</P>
1801 <P>If unsuccessful, one of the following status
1802 codes MUST be returned by this method, where the first applicable error in
1803 the list (starting with the first element of the list, and working down)
1804 is the error returned. Any additional method-specific interpretation of the
1805 error in is given in parentheses.</P>
1806 <UL>
1807 karl 1.1 <LI>CIM_ERR_ACCESS_DENIED
1808 <LI>CIM_ERR_NOT_SUPPORTED
1809 <LI>CIM_ERR_INVALID_NAMESPACE
1810 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1811 duplicate, unrecognized or otherwise incorrect parameters)
1812 <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the
1813 basis for this enumeration does not exist)
1814 <LI>CIM_ERR_FAILED (some other unspecified error
1815 occurred)</LI></UL>
1816 <P><A href="#top" >Back to contents</A></P>
1817 <H3>
1818 </h3>
1819 <H3>2.4.12. <A name=SecEnumerateInstanceNames>EnumerateInstanceNames</A></H3>
1820 <P>This operation is used to enumerate the names (model
1821 paths) of the instances of a CIM Class in the target Namespace.</P>
1822 <P>
1823 <TABLE border=1 class=Definition>
1824 <THEAD>
1825 <TR>
1826 <TD><FONT face=Verdana><STRONG
1827 > EnumerateInstanceNames</STRONG></FONT></TD></TR></THEAD>
1828 karl 1.1 <TBODY>
1829 <TR>
1830 <TD> <A href="#Def_instanceName" ><instanceName>*</A> <STRONG
1831 >EnumerateInstanceNames</STRONG> (<BR
1832 >
1833 [IN] <A href="#def_className" ><className></A> ClassName<BR
1834 > )</TD></TR></TBODY></TABLE>
1835 <P>The <FONT face="Courier New">ClassName</FONT> input parameter defines the Class that is
1836 the basis for the enumeration. </P>
1837 <P>If successful, the method returns zero or
1838 more names of Instances (model paths) that meet the requsted criteria.</P>
1839 <P>If unsuccessful, one of the following status
1840 codes MUST be returned by this method, where the first applicable error in
1841 the list (starting with the first element of the list, and working down)
1842 is the error returned. Any additional method-specific interpretation of the
1843 error in is given in parentheses.</P>
1844 <UL>
1845 <LI>CIM_ERR_ACCESS_DENIED
1846 <LI>CIM_ERR_NOT_SUPPORTED
1847 <LI>CIM_ERR_INVALID_NAMESPACE
1848 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1849 karl 1.1 duplicate, unrecognized or otherwise incorrect parameters)
1850 <LI>CIM_ERR_INVALID_CLASS (the CIM Class that is the
1851 basis for this enumeration does not exist)
1852 <LI>CIM_ERR_FAILED (some other unspecified error
1853 occurred)</LI></UL>
1854 <P><A href="#top" >Back to contents</A></P>
1855 <H3>
1856 </h3>
1857 <H3>2.4.13. <A name=SecExecQuery>ExecQuery</A></H3>
1858 <P>This operation is used to execute a query against the
1859 target Namespace.</P>
1860 <P>
1861 <TABLE border=1 class=Definition>
1862 <THEAD>
1863 <TR>
1864 <TD><FONT face=Verdana><STRONG
1865 > ExecQuery</STRONG></FONT></TD></TR></THEAD>
1866 <TBODY>
1867 <TR>
1868 <TD> <A href="#Def_objectArray" ><object>*</A> <STRONG
1869 >ExecQuery</STRONG> (<BR
1870 karl 1.1 >
1871 [IN] string QueryLanguage,<BR
1872 >
1873 [IN] string Query<BR> )</TD></TR></TBODY></TABLE>
1874 <P>The <FONT face="Courier New">QueryLanguage</FONT> input parameter defines the query
1875 language in which the Query parameter is expressed.</P>
1876 <P>The <FONT face="Courier New">Query</FONT> input parameter defines the query to be
1877 executed. </P>
1878 <P>Neither the Query language nor the format of the Query
1879 are defined by this specification. It is anticipated that Query languages
1880 will be submitted to the DMTF as separate proposals.</P>
1881 <P>A mechanism whereby <A href="#DefCIMServer" >CIM Servers</A> can declare
1882 which query languages they support (if any) is defined in <A href="#SecDeterminingCIMServerCapabilities" >Determining CIM Server
1883 Capabilities</A>.</P>
1884 <P>If successful, the method returns zero or more CIM
1885 Classes or Instances that correspond to the results set of the query.</P>
1886 <P>If unsuccessful, one of the following status
1887 codes MUST be returned by this method, where the first applicable error in
1888 the list (starting with the first element of the list, and working down)
1889 is the error returned. Any additional method-specific interpretation of the
1890 error in is given in parentheses.</P>
1891 karl 1.1 <UL>
1892 <LI>CIM_ERR_ACCESS_DENIED
1893 <LI>CIM_ERR_NOT_SUPPORTED
1894 <LI>CIM_ERR_INVALID_NAMESPACE
1895 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
1896 duplicate, unrecognized or otherwise incorrect parameters)
1897 <LI>CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED (the requested
1898 query language is not recognized)
1899 <LI>CIM_ERR_INVALID_QUERY (the query is not a valid
1900 query in the specified query language)
1901 <LI>CIM_ERR_FAILED (some other unspecified error
1902 occurred)</LI></UL>
1903 <P><A href="#top" >Back to contents</A></P>
1904 <H3>
1905 </h3>
1906 <H3>2.4.14. <A name=SecAssociators>Associators</A></H3>
1907 <P>This operation is used to enumerate CIM Objects (Classes
1908 or Instances) that are associated to a particular
1909 source CIM Object.</P>
1910 <P>
1911 <TABLE border=1 class=Definition>
1912 karl 1.1 <THEAD>
1913 <TR>
1914 <TD><FONT face=Verdana><STRONG
1915 > Associators</STRONG></FONT></TD></TR></THEAD>
1916 <TBODY>
1917 <TR>
1918 <TD> <A href="#Def_objectWithPathArray" ><objectWithPath>*</A>
1919 <STRONG>Associators</STRONG> (<BR
1920 >
1921 [IN] <A href="#Def_objectName" ><objectName></A> ObjectName,<BR
1922 >
1923 [IN,OPTIONAL,NULL] <A href="#def_className" ><className></A> AssocClass = NULL,<BR
1924 > [IN,OPTIONAL,NULL] <A href="#def_className" ><className></A> ResultClass =
1925 NULL,<BR
1926 >
1927 [IN,OPTIONAL,NULL] string Role = NULL,<BR
1928 >
1929 [IN,OPTIONAL,NULL] string ResultRole = NULL,<BR
1930 >
1931 [IN,OPTIONAL] boolean
1932 IncludeQualifiers = false,<BR
1933 karl 1.1 > [IN,OPTIONAL]
1934 boolean IncludeClassOrigin = false,<BR
1935 >
1936 [IN,OPTIONAL,NULL] string PropertyList [] = NULL<BR
1937 > )</TD></TR></TBODY></TABLE>
1938 <P>The <FONT face="Courier New">ObjectName</FONT> input parameter defines the source
1939 CIM Object whose associated Objects are to be returned. This may be
1940 either a Class name or Instance name (model path).</P>
1941 <P>The <FONT face="Courier New">AssocClass</FONT> input parameter, if not <FONT
1942 face="Courier New">NULL</FONT>, MUST be a valid CIM
1943 Association Class name. It acts as a filter on the returned set of Objects
1944 by mandating that each returned Object MUST be associated to the
1945 source Object via an Instance of this Class or one of its subclasses. </P>
1946 <P>The <FONT face="Courier New">ResultClass</FONT> input parameter, if not <FONT
1947 face="Courier New">NULL</FONT>, MUST be a valid CIM Class
1948 name. It acts as a filter on the returned set of Objects by mandating
1949 that each returned Object MUST be either an Instance of this Class (or one
1950 of its subclasses) or be this Class (or one of its subclasses).</P>
1951 <P>The <FONT face="Courier New">Role</FONT> input parameter, if not <FONT
1952 face="Courier New">NULL</FONT>, MUST be a
1953 valid Property name. It acts as a filter on the returned set
1954 karl 1.1 of Objects by mandating that each returned Object MUST be associated
1955 to the source Object via an Association in which the source Object
1956 plays the specified role (i.e. the name of the Property in the Association Class
1957 that refers to the source Object MUST match the value of this
1958 parameter).</P>
1959 <P>The <FONT face="Courier New">ResultRole</FONT> input parameter, if not <FONT
1960 face="Courier New">NULL</FONT>, MUST be a
1961 valid Property name. It acts as a filter on the returned set
1962 of Objects by mandating that each returned Object MUST be associated
1963 to the source Object via an Association in which the returned Object
1964 plays the specified role (i.e. the name of the Property in the Association Class
1965 that refers to the returned Object MUST match the value of this
1966 parameter).</P>
1967 <P>If the <FONT face="Courier New">IncludeQualifiers</FONT> input parameter is <FONT
1968 face="Courier New">true</FONT>, this specifies that all
1969 Qualifiers for each Object (including Qualifiers on the Object
1970 and on any returned Properties) MUST be included as <FONT face="Courier New"><QUALIFIER></FONT> elements in the response. If
1971 false no <FONT face="Courier New"><QUALIFIER></FONT> elements are present
1972 in each returned Object.</P>
1973 <P>If the <FONT face="Courier New">IncludeClassOrigin</FONT> input parameter is <FONT
1974 face="Courier New">true</FONT>, this specifies that the
1975 karl 1.1 <FONT face="Courier New">CLASSORIGIN</FONT> attribute MUST
1976 be present on all appropriate elements in each returned Object. If false,
1977 no <FONT face="Courier New">CLASSORIGIN</FONT> attributes
1978 are present in each returned Object.</P>
1979 <P>If the <FONT face="Courier New">PropertyList</FONT> input parameter is not <FONT
1980 face="Courier New">NULL</FONT>, the members of the array
1981 define one or more Property names. Each returned Object MUST NOT
1982 include elements for any Properties missing from this list. Note that
1983 if <FONT face="Courier New">LocalOnly</FONT> is specified
1984 as <FONT face="Courier New">true</FONT> (or <FONT
1985 face="Courier New">DeepInheritance</FONT> is specified as
1986 <FONT face="Courier New">false</FONT>) this acts as an
1987 additional filter on the set of Properties returned (for example,
1988 if Property <FONT face="Courier New">A</FONT> is
1989 included in the <FONT face="Courier New">PropertyList</FONT> but <FONT face="Courier New">LocalOnly</FONT> is set to true and <FONT
1990 face="Courier New">A</FONT> is not local to a
1991 returned Instance, then it will not be included in that Instance). If the
1992 <FONT face="Courier New">PropertyList</FONT> input
1993 parameter is an empty array this signifies that no Properties are included in
1994 each returned Object. If the <FONT face="Courier New">PropertyList</FONT> input parameter is NULL this specifies
1995 that all Properties (subject to the conditions expressed by the other
1996 karl 1.1 parameters) are included in each returned Object.</P>
1997 <P>If the <FONT face="Courier New">PropertyList</FONT> contains duplicate elements, the
1998 Server MUST ignore the duplicates but otherwise process the request
1999 normally. If the <FONT face="Courier New">PropertyList</FONT> contains elements which are invalid
2000 Property names for any target Object, the Server MUST ignore such entries
2001 but otherwise process the request normally.</P>
2002 <P>Clients SHOULD NOT explicitly specify properties in the
2003 <FONT face="Courier New">PropertyList</FONT> parameter
2004 unless they have specified a non-NULL value for the <FONT face="Courier New">ResultClass</FONT> parameter.</P>
2005 <P>If successful, the method returns zero or more CIM
2006 Classes or Instances meeting the requested criteria. Since it is possible
2007 for CIM Objects from different hosts or namespaces to be associated, each
2008 returned Object includes location information.</P>
2009 <P>If unsuccessful, one of the following status
2010 codes MUST be returned by this method, where the first applicable error in
2011 the list (starting with the first element of the list, and working down)
2012 is the error returned. Any additional method-specific interpretation of the
2013 error in is given in parentheses.</P>
2014 <UL>
2015 <LI>CIM_ERR_ACCESS_DENIED
2016 <LI>CIM_ERR_NOT_SUPPORTED
2017 karl 1.1 <LI>CIM_ERR_INVALID_NAMESPACE
2018 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
2019 duplicate, unrecognized or otherwise incorrect parameters)
2020 <LI>CIM_ERR_FAILED (some other unspecified error
2021 occurred)</LI></UL>
2022 <P><A href="#top" >Back to contents</A></P>
2023 <H3>
2024 </h3>
2025 <H3>2.4.15. <A name=SecAssociatorNames>AssociatorNames</A></H3>
2026 <P>This operation is used to enumerate the names of CIM
2027 Objects (Classes or Instances) that are associated to a particular
2028 source CIM Object.</P>
2029 <P>
2030 <TABLE border=1 class=Definition>
2031 <THEAD>
2032 <TR>
2033 <TD><FONT face=Verdana><STRONG
2034 > AssociatorNames</STRONG></FONT></TD></TR></THEAD>
2035 <TBODY>
2036 <TR>
2037 <TD> <A href="#Def_objectPathArray" ><objectPath>*</A> <STRONG
2038 karl 1.1 >AssociatorNames</STRONG> (<BR
2039 >
2040 [IN] <A href="#Def_objectName" ><objectName></A> ObjectName,<BR
2041 >
2042 [IN,OPTIONAL,NULL] <A href="#def_className" ><className></A> AssocClass = NULL,<BR
2043 > [IN,OPTIONAL,NULL] <A href="#def_className" ><className></A> ResultClass =
2044 NULL,<BR
2045 >
2046 [IN,OPTIONAL,NULL] string Role = NULL,<BR
2047 >
2048 [IN,OPTIONAL,NULL] string ResultRole = NULL<BR
2049 > )</TD></TR></TBODY></TABLE>
2050 <P>The <FONT face="Courier New">ObjectName</FONT> input parameter defines the source
2051 CIM Object whose associated names are to be returned. This is either a
2052 Class name or Instance name (model path).</P>
2053 <P>The <FONT face="Courier New">AssocClass</FONT> input parameter, if not <FONT
2054 face="Courier New">NULL</FONT>, MUST be a valid CIM
2055 Association Class name. It acts as a filter on the returned set of names by
2056 mandating that each returned name identifies an Object that MUST be
2057 associated to the source Object via an Instance of this Class or one of its
2058 subclasses. </P>
2059 karl 1.1 <P>The <FONT face="Courier New">ResultClass</FONT> input parameter, if not <FONT
2060 face="Courier New">NULL</FONT>, MUST be a valid CIM Class
2061 name. It acts as a filter on the returned set of names by mandating
2062 that each returned name identifies an Object that MUST be either an
2063 Instance of this Class (or one of its subclasses) or be this Class (or one of
2064 its subclasses).</P>
2065 <P>The <FONT face="Courier New">Role</FONT> input parameter, if not <FONT
2066 face="Courier New">NULL</FONT>, MUST be a
2067 valid Property name. It acts as a filter on the returned set of names
2068 by mandating that each returned name identifies an Object that MUST be
2069 associated to the source Object via an Association in which the
2070 source Object plays the specified role (i.e. the name of the Property in
2071 the Association Class that refers to the source Object MUST match the
2072 value of this parameter).</P>
2073 <P>The <FONT face="Courier New">ResultRole</FONT> input parameter, if not <FONT
2074 face="Courier New">NULL</FONT>, MUST be a
2075 valid Property name. It acts as a filter on the returned set of names
2076 by mandating that each returned name identifies an Object that MUST be
2077 associated to the source Object via an Association in which the named
2078 returned Object plays the specified role (i.e. the name of the Property in
2079 the Association Class that refers to the returned Object MUST
2080 karl 1.1 match the value of this parameter).</P>
2081 <P>If successful, the method returns zero or
2082 more full CIM Class paths or Instance paths of Objects meeting the
2083 requested criteria. Since it is possible for CIM Objects from different
2084 hosts or namespaces to be associated, each returned path is an
2085 absolute path that includes host and namespace information.</P>
2086 <P>If unsuccessful, one of the following status
2087 codes MUST be returned by this method, where the first applicable error in
2088 the list (starting with the first element of the list, and working down)
2089 is the error returned. Any additional method-specific interpretation of the
2090 error in is given in parentheses.</P>
2091 <UL>
2092 <LI>CIM_ERR_ACCESS_DENIED
2093 <LI>CIM_ERR_NOT_SUPPORTED
2094 <LI>CIM_ERR_INVALID_NAMESPACE
2095 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
2096 duplicate, unrecognized or otherwise incorrect parameters)
2097 <LI>CIM_ERR_FAILED (some other unspecified error
2098 occurred)</LI></UL>
2099 <P><A href="#top" >Back to contents</A></P>
2100 <H3>
2101 karl 1.1 </h3>
2102 <H3>2.4.16. <A name=SecReferencesMethod>References</A></H3>
2103 <P>This operation is used to enumerate the association
2104 objects that refer to a particular target CIM Object (Class or
2105 Instance).</P>
2106 <P>
2107 <TABLE border=1 class=Definition>
2108 <THEAD>
2109 <TR>
2110 <TD><FONT face=Verdana><STRONG
2111 > References</STRONG></FONT></TD></TR></THEAD>
2112 <TBODY>
2113 <TR>
2114 <TD> <A href="#Def_objectWithPathArray" ><objectWithPath>*</A> <STRONG
2115 >References</STRONG> (<BR
2116 >
2117 [IN] <A href="#Def_objectName" ><objectName></A> ObjectName,<BR
2118 > [IN,OPTIONAL,NULL] <A href="#def_className" ><className></A> ResultClass =
2119 NULL,<BR
2120 >
2121 [IN,OPTIONAL,NULL] string Role = NULL,<BR
2122 karl 1.1 > [IN,OPTIONAL]
2123 boolean IncludeQualifiers = false,<BR
2124 > [IN,OPTIONAL]
2125 boolean IncludeClassOrigin = false,<BR
2126 >
2127 [IN,OPTIONAL,NULL] string PropertyList [] = NULL<BR
2128 > )</TD></TR></TBODY></TABLE>
2129 <P>The <FONT face="Courier New">ObjectName</FONT> input parameter defines the target
2130 CIM Object whose referring Objects are to be returned. This
2131 is either a Class name or Instance name (model path). </P>
2132 <P>The <FONT face="Courier New">ResultClass</FONT> input parameter, if not <FONT
2133 face="Courier New">NULL</FONT>, MUST be a valid CIM Class
2134 name. It acts as a filter on the returned set of Objects by mandating
2135 that each returned Object MUST be an Instance of this Class (or
2136 one of its subclasses), or this Class (or one of its subclasses).</P>
2137 <P>The <FONT face="Courier New">Role</FONT> input parameter, if not <FONT
2138 face="Courier New">NULL</FONT>, MUST be a
2139 valid Property name. It acts as a filter on the returned set
2140 of Objects by mandating that each returned Objects MUST refer to the
2141 target Object via a Property whose name matches the value of this
2142 parameter.</P>
2143 karl 1.1 <P>If the <FONT face="Courier New">IncludeQualifiers</FONT> input parameter is <FONT
2144 face="Courier New">true</FONT>, this specifies that all
2145 Qualifiers for each Object (including Qualifiers on the Object
2146 and on any returned Properties) MUST be included as <FONT face="Courier New"><QUALIFIER></FONT> elements in the response. If
2147 false no <FONT face="Courier New"><QUALIFIER></FONT> elements are present
2148 in each returned Object.</P>
2149 <P>If the <FONT face="Courier New">IncludeClassOrigin</FONT> input parameter is <FONT
2150 face="Courier New">true</FONT>, this specifies that the
2151 <FONT face="Courier New">CLASSORIGIN</FONT> attribute MUST
2152 be present on all appropriate elements in each returned Object. If false,
2153 no <FONT face="Courier New">CLASSORIGIN</FONT> attributes
2154 are present in each returned Object.</P>
2155 <P>If the <FONT face="Courier New">PropertyList</FONT> input parameter is not <FONT
2156 face="Courier New">NULL</FONT>, the members of the array
2157 define one or more Property names. Each returned Object MUST NOT
2158 include elements for any Properties missing from this list. Note that
2159 if <FONT face="Courier New">LocalOnly</FONT> is specified
2160 as <FONT face="Courier New">true</FONT> (or <FONT
2161 face="Courier New">DeepInheritance</FONT> is specified as
2162 <FONT face="Courier New">false</FONT>) this acts as an
2163 additional filter on the set of Properties returned (for example,
2164 karl 1.1 if Property <FONT face="Courier New">A</FONT> is
2165 included in the <FONT face="Courier New">PropertyList</FONT> but <FONT face="Courier New">LocalOnly</FONT> is set to true and <FONT
2166 face="Courier New">A</FONT> is not local to a
2167 returned Instance, then it will not be included in that Instance). If the
2168 <FONT face="Courier New">PropertyList</FONT> input
2169 parameter is an empty array this signifies that no Properties are included in
2170 each returned Object. If the <FONT face="Courier New">PropertyList</FONT> input parameter is NULL this specifies
2171 that all Properties (subject to the conditions expressed by the other
2172 parameters) are included in each returned Object.</P>
2173 <P>If the <FONT face="Courier New">PropertyList</FONT> contains duplicate elements, the
2174 Server MUST ignore the duplicates but otherwise process the request
2175 normally. If the <FONT face="Courier New">PropertyList</FONT> contains elements which are invalid
2176 Property names for any target Object, the Server MUST ignore such entries
2177 but otherwise process the request normally.</P>
2178 <P>Clients SHOULD NOT explicitly specify properties in the
2179 <FONT face="Courier New">PropertyList</FONT> parameter
2180 unless they have specified a non-NULL value for the <FONT face="Courier New">ResultClass</FONT> parameter.</P>
2181 <P>If successful, the method returns zero or more CIM
2182 Classes or Instances meeting the requested criteria. Since it is possible
2183 for CIM Objects from different hosts or namespaces to be associated, each
2184 returned Object includes location information.</P>
2185 karl 1.1 <P>If unsuccessful, one of the following status
2186 codes MUST be returned by this method, where the first applicable error in
2187 the list (starting with the first element of the list, and working down)
2188 is the error returned. Any additional method-specific interpretation of the
2189 error in is given in parentheses.</P>
2190 <UL>
2191 <LI>CIM_ERR_ACCESS_DENIED
2192 <LI>CIM_ERR_NOT_SUPPORTED
2193 <LI>CIM_ERR_INVALID_NAMESPACE
2194 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
2195 duplicate, unrecognized or otherwise incorrect parameters)
2196 <LI>CIM_ERR_FAILED (some other unspecified error
2197 occurred)</LI></UL>
2198 <P><A href="#top" >Back to contents</A></P>
2199 <H3>
2200 </h3>
2201 <H3>2.4.17. <A name=SecReferenceNames>ReferenceNames</A></H3>
2202 <P>This operation is used to enumerate the
2203 association objects that refer to a particular target CIM Object
2204 (Class or Instance).</P>
2205 <P>
2206 karl 1.1 <TABLE border=1 class=Definition>
2207 <THEAD>
2208 <TR>
2209 <TD><FONT face=Verdana><STRONG
2210 > ReferenceNames</STRONG></FONT></TD></TR></THEAD>
2211 <TBODY>
2212 <TR>
2213 <TD> <A href="#Def_objectPathArray" ><objectPath>*</A> <STRONG
2214 >ReferenceNames</STRONG> (<BR
2215 >
2216 [IN] <A href="#Def_objectName" ><objectName></A> ObjectName,<BR
2217 > [IN,OPTIONAL,NULL] <A href="#def_className" ><className></A> ResultClass =
2218 NULL,<BR
2219 >
2220 [IN,OPTIONAL,NULL] string Role = NULL<BR
2221 > )</TD></TR></TBODY></TABLE>
2222 <P>The <FONT face="Courier New">ObjectName</FONT> input parameter defines the target
2223 CIM Object whose referring object names are to be
2224 returned. It may be either a Class name or an Instance name (model
2225 path).</P>
2226 <P>The <FONT face="Courier New">ResultClass</FONT> input parameter, if not <FONT
2227 karl 1.1 face="Courier New">NULL</FONT>, MUST be a valid CIM Class
2228 name. It acts as a filter on the returned set of Object Names by
2229 mandating that each returned Object Name MUST identify an
2230 Instance of this Class (or one of its subclasses), or this Class (or one of its
2231 subclasses).</P>
2232 <P>The <FONT face="Courier New">Role</FONT> input parameter, if not <FONT
2233 face="Courier New">NULL</FONT>, MUST be a
2234 valid Property name. It acts as a filter on the returned set of Object
2235 Names by mandating that each returned Object Name MUST identify
2236 an Object that refers to the target Instance via a Property whose name
2237 matches the value of this parameter.</P>
2238 <P>If successful, the method returns the names of zero or
2239 more full CIM Class paths or Instance paths of Objects meeting the
2240 requested criteria. Since it is possible for CIM Objects from different
2241 hosts or namespaces to be associated, each returned path is an
2242 absolute path that includes host and namespace information.</P>
2243 <P>If unsuccessful, one of the following status
2244 codes MUST be returned by this method, where the first applicable error in
2245 the list (starting with the first element of the list, and working down)
2246 is the error returned. Any additional method-specific interpretation of the
2247 error in is given in parentheses.</P>
2248 karl 1.1 <UL>
2249 <LI>CIM_ERR_ACCESS_DENIED
2250 <LI>CIM_ERR_NOT_SUPPORTED
2251 <LI>CIM_ERR_INVALID_NAMESPACE
2252 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
2253 duplicate, unrecognized or otherwise incorrect parameters)
2254 <LI>CIM_ERR_FAILED (some other unspecified error
2255 occurred)</LI></UL>
2256 <P><A href="#top" >Back to contents</A></P>
2257 <H3>
2258 </h3>
2259 <H3>2.4.18. <A name=SecGetProperty>GetProperty</A></H3>
2260 <P style="COLOR: black">This operation is used to retrieve
2261 a single property value from a CIM Instance in the target Namespace.</P>
2262 <P>
2263 <TABLE border=1 class=Definition>
2264 <THEAD>
2265 <TR>
2266 <TD><FONT face=Verdana><STRONG
2267 > GetProperty</STRONG></FONT></TD></TR></THEAD>
2268 <TBODY>
2269 karl 1.1 <TR>
2270 <TD style="COLOR: black"> <A href="#Def_propertyValue" ><propertyValue>?</A> <STRONG
2271 >GetProperty</STRONG> (<BR
2272 >
2273 [IN] <A href="#Def_instanceName" ><instanceName></A>
2274 InstanceName,<BR
2275 >
2276 [IN] string PropertyName<BR
2277 > )</TD></TR></TBODY></TABLE>
2278 <P>The <FONT face="Courier New">InstanceName</FONT> input parameter specifies the name
2279 of the Instance (model path) from which the Property value is
2280 requested.</P>
2281 <P>The <FONT face="Courier New">PropertyName</FONT> input parameter specifies the name of
2282 the Property whose value is to be returned.</P>
2283 <P>If successful, the return value specifies the value of
2284 the requested Property. If the value is NULL then no element is returned.</P>
2285 <P>If unsuccessful, one of the following status
2286 codes MUST be returned by this method, where the first applicable error in
2287 the list (starting with the first element of the list, and working down)
2288 is the error returned. Any additional method-specific interpretation of the
2289 error in is given in parentheses.</P>
2290 karl 1.1 <UL>
2291 <LI>CIM_ERR_ACCESS_DENIED
2292 <LI>CIM_ERR_INVALID_NAMESPACE
2293 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
2294 duplicate, unrecognized or otherwise incorrect parameters)
2295 <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist
2296 in the specified namespace)
2297 <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the
2298 requested CIM Instance does not exist in the specified namespace)
2299 <LI>CIM_ERR_NO_SUCH_PROPERTY (the CIM Instance does
2300 exist, but the requested Property does not)
2301 <LI>CIM_ERR_FAILED (some other unspecified error
2302 occurred)</LI></UL>
2303 <P><A href="#top" >Back to contents</A></P>
2304 <H3>
2305 </h3>
2306 <H3>2.4.19. <A name=SecSetProperty>SetProperty</A></H3>
2307 <P>This operation is used to set a single property
2308 value in a CIM Instance in the target Namespace.</P>
2309 <P>
2310 <TABLE border=1 class=Definition>
2311 karl 1.1 <THEAD>
2312 <TR>
2313 <TD><FONT face=Verdana><STRONG
2314 > SetProperty</STRONG></FONT></TD></TR></THEAD>
2315 <TBODY>
2316 <TR>
2317 <TD> void <STRONG
2318 >SetProperty</STRONG> (<BR
2319 >
2320 [IN] <A href="#Def_instanceName" ><instanceName></A>
2321 InstanceName,<BR
2322 >
2323 [IN] string PropertyName,<BR
2324 >
2325 [IN,OPTIONAL,NULL] <A href="#Def_propertyValue" ><propertyValue></A> NewValue =
2326 NULL<BR> )</TD></TR></TBODY></TABLE>
2327 <P>The <FONT face="Courier New">InstanceName</FONT> input parameter specifies the name
2328 of the Instance (model path) for which the Property value is to be
2329 updated.</P>
2330 <P>The <FONT face="Courier New">PropertyName</FONT> input parameter specifies the name of
2331 the Property whose value is to be updated.</P>
2332 karl 1.1 <P>The <FONT face="Courier New">NewValue</FONT> input parameter specifies the new value for
2333 the Property (which may be NULL).</P>
2334 <P>If unsuccessful, one of the following status
2335 codes MUST be returned by this method, where the first applicable error in
2336 the list (starting with the first element of the list, and working down)
2337 is the error returned. Any additional method-specific interpretation of the
2338 error in is given in parentheses.</P>
2339 <UL>
2340 <LI>CIM_ERR_ACCESS_DENIED
2341 <LI>CIM_ERR_NOT_SUPPORTED
2342 <LI>CIM_ERR_INVALID_NAMESPACE
2343 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
2344 duplicate, unrecognized or otherwise incorrect parameters)
2345 <LI>CIM_ERR_INVALID_CLASS (the CIM Class does not exist
2346 in the specified namespace)
2347 <LI>CIM_ERR_NOT_FOUND (the CIM Class does exist, but the
2348 requested CIM Instance does not exist in the specified namespace)
2349 <LI>CIM_ERR_NO_SUCH_PROPERTY (the CIM Instance does
2350 exist, but the requested Property does not)
2351 <LI>CIM_ERR_TYPE_MISMATCH (the supplied value is
2352 incompatible with the type of the Property)
2353 karl 1.1 <LI>CIM_ERR_FAILED (some other unspecified error
2354 occurred)</LI></UL>
2355 <P><A href="#top" >Back to contents</A></P>
2356 <H3>
2357 </h3>
2358 <H3>2.4.20. <A name=SecGetQualifier></a><A
2359 name=SecGetQualifier>GetQualifier</A></H3>
2360 <P>This operation is used to retrieve a single
2361 Qualifier declaration from the target Namespace. </P>
2362 <P>
2363 <TABLE border=1 class=Definition>
2364 <THEAD>
2365 <TR>
2366 <TD><FONT face=Verdana><STRONG
2367 > GetQualifier</STRONG></FONT></TD></TR></THEAD>
2368 <TBODY>
2369 <TR>
2370 <TD> <A href="#Def_qualifierDecl" ><qualifierDecl></A> <STRONG
2371 >GetQualifier</STRONG> (<BR
2372 >
2373 [IN] string QualifierName<BR
2374 karl 1.1 > )</TD></TR></TBODY></TABLE>
2375 <P>The <FONT face="Courier New">QualifierName</FONT> input parameter identifies the
2376 Qualifier whose declaration to be retrieved.</P>
2377 <P>If successful, the method returns the Qualifier
2378 declaration for the named Qualifier.</P>
2379 <P>If unsuccessful, one of the following status
2380 codes MUST be returned by this method, where the first applicable error in
2381 the list (starting with the first element of the list, and working down)
2382 is the error returned. Any additional method-specific interpretation of the
2383 error in is given in parentheses.</P>
2384 <UL>
2385 <LI>CIM_ERR_ACCESS_DENIED
2386 <LI>CIM_ERR_NOT_SUPPORTED
2387 <LI>CIM_ERR_INVALID_NAMESPACE
2388 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
2389 duplicate, unrecognized or otherwise incorrect parameters)
2390 <LI>CIM_ERR_NOT_FOUND (the requested Qualifier
2391 declaration did not exist)
2392 <LI>CIM_ERR_FAILED (some other unspecified error
2393 occurred)</LI></UL>
2394 <P><A href="#top" >Back to contents</A></P>
2395 karl 1.1 <H3>
2396 </h3>
2397 <H3>2.4.21. <A name=SecSetQualifier>SetQualifier</A></H3>
2398 <P>This operation is used to create or update a
2399 single Qualifier declaration in the target Namespace. If the
2400 Qualifier declaration already exists it is overwritten.</P>
2401 <P>
2402 <TABLE border=1 class=Definition>
2403 <THEAD>
2404 <TR>
2405 <TD><FONT face=Verdana><STRONG
2406 > SetQualifier</STRONG></FONT></TD></TR></THEAD>
2407 <TBODY>
2408 <TR>
2409 <TD> void <STRONG
2410 >SetQualifier</STRONG> (<BR
2411 >
2412 [IN] <A href="#Def_qualifierDecl" ><qualifierDecl></A>
2413 QualifierDeclaration<BR> )</TD></TR></TBODY></TABLE>
2414 <P>The <FONT face="Courier New">QualifierDeclaration</FONT> input parameter defines the
2415 Qualifier Declaration to be added to the Namespace.</P>
2416 karl 1.1 <P>If successful, the Qualifier declaration MUST have been
2417 added to the target Namespace. If a Qualifier declaration with the same
2418 Qualifier name already existed, then it MUST have been replaced by the new
2419 declaration.</P>
2420 <P>If unsuccessful, one of the following status
2421 codes MUST be returned by this method, where the first applicable error in
2422 the list (starting with the first element of the list, and working down)
2423 is the error returned. Any additional method-specific interpretation of the
2424 error in is given in parentheses.</P>
2425 <UL>
2426 <LI>CIM_ERR_ACCESS_DENIED
2427 <LI>CIM_ERR_NOT_SUPPORTED
2428 <LI>CIM_ERR_INVALID_NAMESPACE
2429 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
2430 duplicate, unrecognized or otherwise incorrect parameters)
2431 <LI>CIM_ERR_FAILED (some other unspecified error
2432 occurred)</LI></UL>
2433 <P><A href="#top" >Back to contents</A></P>
2434 <H3>2.4.22. <A name=SecDeleteQualifier>DeleteQualifier</A></H3>
2435 <P>This operation is used to delete a single
2436 Qualifier declaration from the target Namespace. </P>
2437 karl 1.1 <P>
2438 <TABLE border=1 class=Definition>
2439 <THEAD>
2440 <TR>
2441 <TD><FONT face=Verdana><STRONG
2442 > DeleteQualifier</STRONG></FONT></TD></TR></THEAD>
2443 <TBODY>
2444 <TR>
2445 <TD> void <STRONG
2446 >DeleteQualifier</STRONG> (<BR
2447 >
2448 [IN] string QualifierName<BR
2449 > )</TD></TR></TBODY></TABLE>
2450 <P>The <FONT face="Courier New">QualifierName</FONT> input parameter identifies the
2451 Qualifier whose declaration to be deleted.</P>
2452 <P>If successful, the specified Qualifier declaration MUST
2453 have been deleted from the Namespace.</P>
2454 <P>If unsuccessful, one of the following status
2455 codes MUST be returned by this method, where the first applicable error in
2456 the list (starting with the first element of the list, and working down)
2457 is the error returned. Any additional method-specific interpretation of the
2458 karl 1.1 error in is given in parentheses.</P>
2459 <UL>
2460 <LI>CIM_ERR_ACCESS_DENIED
2461 <LI>CIM_ERR_NOT_SUPPORTED
2462 <LI>CIM_ERR_INVALID_NAMESPACE
2463 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
2464 duplicate, unrecognized or otherwise incorrect parameters)
2465 <LI>CIM_ERR_NOT_FOUND (the requested Qualifier
2466 declaration did not exist)
2467 <LI>CIM_ERR_FAILED (some other unspecified error
2468 occurred)</LI></UL>
2469 <P><A href="#top" >Back to contents</A></P>
2470 <H3>2.4.23. <A name=SecEnumerateQualifiers>EnumerateQualifiers</A></H3>
2471 <P>This operation is used to enumerate Qualifier
2472 declarations from the target Namespace. </P>
2473 <P>
2474 <TABLE border=1 class=Definition>
2475 <THEAD>
2476 <TR>
2477 <TD><FONT face=Verdana><STRONG
2478 > EnumerateQualifiers</STRONG></FONT></TD></TR></THEAD>
2479 karl 1.1 <TBODY>
2480 <TR>
2481 <TD> <A href="#Def_qualifierDecl" ><qualifierDecl>*</A> <STRONG
2482 >EnumerateQualifiers</STRONG> (<BR
2483 > )</TD></TR></TBODY></TABLE>
2484 <P>If successful, the method returns zero or
2485 more Qualifier declarations.</P>
2486 <P>If unsuccessful, one of the following status
2487 codes MUST be returned by this method, where the first applicable error in
2488 the list (starting with the first element of the list, and working down)
2489 is the error returned. Any additional method-specific interpretation of the
2490 error in is given in parentheses.</P>
2491 <UL>
2492 <LI>CIM_ERR_ACCESS_DENIED
2493 <LI>CIM_ERR_NOT_SUPPORTED
2494 <LI>CIM_ERR_INVALID_NAMESPACE
2495 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
2496 duplicate, unrecognized or otherwise incorrect parameters)
2497 <LI>CIM_ERR_FAILED (some other unspecified error
2498 occurred)</LI></UL>
2499 <P><A href="#top" >Back to contents</A></P>
2500 karl 1.1 <H2>2.5. <A name=SecNamespaceManipulation>Namespace Manipulation</A></H2>
2501 <P>There are no <A href="#DefIntrinsic" >intrinsic</A> methods defined
2502 specifically for the purpose of manipulating CIM Namespaces. However, the
2503 modelling of a CIM Namespace using the class <FONT face="Courier New">__Namespace</FONT>, together with the requirement that the
2504 <FONT face="Courier New">root</FONT> Namespace MUST be
2505 supported by all CIM Servers, implies that all Namespace operations can be
2506 supported.</P>
2507 <P>For example:</P>
2508 <UL style="MARGIN-RIGHT: 0px">
2509 <LI>Enumeration of all child Namespaces of a
2510 particular Namespace is realized by calling the intrinsic method <A href="#SecEnumerateInstanceNames" >EnumerateInstanceNames</A> against
2511 the parent Namespace, specifying a value for the ClassName
2512 parameter of <FONT face="Courier New"
2513 >__Namespace</FONT>.
2514 <LI>Creation of a child Namespace is realized by calling
2515 the intrinsic method <A href="#SecCreateInstance" >CreateInstance</A> against the
2516 parent Namespace, specifying a value for the NewInstance parameter
2517 which defines a valid instance of the class <FONT face="Courier New"
2518 >__Namespace</FONT> and whose <FONT face="Courier New"
2519 >Name</FONT> property is the desired name of the new
2520 Namespace.</LI></UL>
2521 karl 1.1 <H2><A name=SecFunctionalProfiles>2.6.
2522 Functional Profiles</A></H2>
2523 <P>This section partitions the <A href="#SecIntrinsicMethods" >intrinsic methods</A> into
2524 functional groups for the purpose of establishing conformance.</P>
2525 <P>Support for a particular group does <EM>not</EM> guarantee that all invocations of any method in
2526 that group will succeed. Rather, the exclusion of a group is a declaration
2527 that any attempt to call a method in that group will always return <A href="#DefCimErrNotSupported" >CIM_ERR_NOT_SUPPORTED</A>.</P>
2528 <P>Mechanisms by which a <A href="#DefCIMServer" >CIM Server</A> may declare
2529 the functional groups that it supports are defined in the section on <A href="#SecDeterminingCIMServerCapabilities" >Determining CIM Server
2530 Capabilities</A>.</P>
2531 <P>In order to limit the number of different profiles that
2532 may be supported by a CIM Server, each functional group has a dependency on
2533 another group (with the exception of the Basic Read functional group). If
2534 functional group G<SUB>1</SUB> has a dependency on
2535 functional group G<SUB>2</SUB>, then a CIM Server which
2536 supports G<SUB>1</SUB> MUST also support G<SUB>2</SUB>. </P>
2537 <P>The dependency relation is transitive, so that if G<SUB>1</SUB> depends on G<SUB>2</SUB>, and
2538 G<SUB>2</SUB> depends on G<SUB>3</SUB>, then G<SUB>1</SUB> depends on
2539 G<SUB>3</SUB>. It is also anti-symmetric, so that if G<SUB>1</SUB> depends on G<SUB>2</SUB> then
2540 G<SUB>2</SUB> cannot depend on G<SUB>1</SUB>.</P>
2541 <P>Using these rules, the table below defines a rooted
2542 karl 1.1 directed tree of dependencies with the Basic Read dependency representing the
2543 root node. </P>
2544 <P>For example, a CIM Server which supports the Schema
2545 Manipulation functional group MUST also support the Instance Manipulation, Basic
2546 Write and Basic Read.</P>
2547 <P>
2548 <TABLE border=1 borderColor=teal cellPadding=5 cellSpacing=1 width="100%">
2549 <TBODY>
2550 <TR>
2551 <TD>
2552 <P align=center><STRONG><FONT
2553 size=3>Functional Group</FONT></STRONG> </P></TD>
2554 <TD>
2555 <P align=center><FONT size=3
2556 ><STRONG
2557 >Dependency</STRONG></FONT></P></TD>
2558 <TD>
2559 <P align=center><FONT size=3
2560 ><STRONG
2561 >Methods</STRONG></FONT></P></TD></TR>
2562 <TR>
2563 karl 1.1 <TD><FONT size=2><A
2564 name=DefBasicRead><FONT size=2
2565 >Basic Read</FONT></A></FONT></TD>
2566 <TD><EM><FONT size=2
2567 >none</FONT></EM></TD>
2568 <TD><FONT size=2><A href="#SecGetProperty" >GetClass<BR
2569 >EnumerateClasses<BR
2570 >EnumerateClassNames<BR
2571 >GetInstance<BR
2572 >EnumerateInstances<BR
2573 >EnumerateInstanceNames<BR
2574 >GetProperty</A></FONT></TD></TR>
2575 <TR>
2576 <TD><FONT size=2><A
2577 name=DefBasicWrite><FONT size=2
2578 >Basic Write</FONT></A></FONT></TD>
2579 <TD><FONT size=2>Basic
2580 Read</FONT></TD>
2581 <TD><FONT size=2><A href="#SecSetProperty" >SetProperty</A></FONT></TD></TR>
2582 <TR>
2583 <TD><FONT size=2><A
2584 karl 1.1 name=DefSchemaManipulation><FONT size=2
2585 >Schema Manipulation</FONT></A></FONT></TD>
2586 <TD><FONT size=2>Instance
2587 Manipulation</FONT></TD>
2588 <TD><A href="#SecDeleteClass" ><FONT size=2
2589 >CreateClass<BR>ModifyClass<BR
2590 >DeleteClass</FONT></A></TD></TR>
2591 <TR>
2592 <TD><FONT size=2><A
2593 name=DefInstanceManipulation><FONT size=2
2594 >Instance Manipulation</FONT></A></FONT></TD>
2595 <TD><FONT size=2>Basic
2596 Write</FONT></TD>
2597 <TD><A href="#SecModifyInstance" ><FONT size=2
2598 >CreateInstance<BR
2599 >ModifyInstance<BR
2600 >DeleteInstance</FONT></A></TD></TR>
2601 <TR>
2602 <TD><FONT size=2><A
2603 name=DefAssociationTraversal><FONT size=2
2604 >Association Traversal</FONT></A></FONT></TD>
2605 karl 1.1 <TD><FONT size=2>Basic
2606 Read</FONT></TD>
2607 <TD><A href="#SecReferenceNames" ><FONT size=2
2608 >Associators<BR
2609 >AssociatorNames<BR>References<BR
2610 >ReferenceNames</FONT></A></TD></TR>
2611 <TR>
2612 <TD><FONT size=2><A
2613 name=DefQueryExecution><FONT size=2
2614 >Query Execution</FONT></A></FONT></TD>
2615 <TD><FONT size=2>Basic
2616 Read</FONT></TD>
2617 <TD><A href="#SecExecQuery" ><FONT size=2
2618 >ExecQuery</FONT></A></TD></TR>
2619 <TR>
2620 <TD><FONT size=2><A
2621 name=DefQualifierDeclaration><FONT size=2
2622 >Qualifier Declaration</FONT></A></FONT></TD>
2623 <TD><FONT size=2>Schema
2624 Manipulation</FONT></TD>
2625 <TD><FONT size=2><A href="#SecEnumerateQualifiers" >GetQualifier<BR
2626 karl 1.1 >SetQualifier<BR
2627 >DeleteQualifier<BR
2628 >EnumerateQualifiers</A></FONT></TD></TR></TBODY></TABLE>
2629 <P><A href="#top" >Back to contents</A></P>
2630 <H2><A name=SecExtrinsicMethodInvocation>2.7. Extrinsic Method Invocation</A></H2>
2631 <P>Any <A href="#DefCIMServer" >CIM Server</A> is assumed to support extrinsic
2632 methods. Extrinsic methods are defined by the Schema supported by the Cim
2633 Server. If a Cim Server does not support extrinsic method invocations, it MUST
2634 (subject to the considerations described in the rest of this section) return the
2635 error code CIM_ERR_NOT_SUPPORTED to any request to execute an extrinsic method.
2636 This allows a <A href="#DefCIMClient" >CIM client</A> to determine that all attempts to
2637 execute extrinsic methods will fail.</P>
2638 <P>If the Cim Server is unable to perform the extrinsic
2639 method invocation, one of the following status codes MUST be returned by the
2640 CimServer, where the first applicable error in the list (starting with the first
2641 element of the list, and working down) is the error returned. Any additional
2642 specific interpretation of the error is given in parentheses.
2643 <UL>
2644 <LI>CIM_ERR_ACCESS_DENIED
2645 <LI>CIM_ERR_NOT_SUPPORTED (the CimServer does not support
2646 extrinsic method invocations)
2647 karl 1.1 <LI>CIM_ERR_INVALID_NAMESPACE
2648 <LI>CIM_ERR_INVALID_PARAMETER (including missing,
2649 duplicate, unrecognized or otherwise incorrect parameters)
2650 <LI>CIM_ERR_NOT_FOUND (the target CIM Class or instance
2651 does not exist in the specified namespace)
2652 <LI>CIM_ERR_METHOD_NOT_FOUND
2653 <LI>CIM_ERR_METHOD_NOT_AVAILABLE (the CimServer is unable
2654 to honor the invocation request)
2655 <LI>CIM_ERR_FAILED (some other unspecified error
2656 occurred)</LI></UL>
2657 <P><A href="#top" >Back to contents</A></P>
2658 <H1>3. <A name=SecEncapsulationOfCIMOperations></A>Encapsulation of CIM Operations</H1>
2659 <P>All CIM Operation requests MUST be made
2660 using either an HTTP M-POST or POST message, with the preferred mechanism
2661 being the use of M-POST. The use of other HTTP Methods to invoke CIM Operations
2662 is outside the scope of this specification.</P>
2663 <P>All CIM Operation responses are carried in the
2664 corresponding HTTP Response message to the M-POST or POST request.</P>
2665 <P>In the remainder of this document:</P>
2666 <UL>
2667 <LI><A name=DefCIMOperationRequest
2668 karl 1.1 ></A>the term <EM>CIM Operation
2669 Request</EM> is a convenient shorthand for an HTTP M-POST or POST request
2670 message that includes an XML entity body which defines an <A href="#DefOperationRequestMessage" >Operation Request Message</A>,
2671 and;
2672 <LI><A name=DefCIMOperationResponse
2673 ></A>the term <EM>CIM Operation
2674 Response</EM> is a convenient shorthand for an HTTP response message, issued
2675 in response to a CIM Operation Request, that includes an entity body which
2676 defines an <A href="#DefOperationResponseMessage" >Operation Response
2677 Message</A>. Note that an HTTP response to a CIM Operation Request
2678 is <EM>not always</EM> a CIM Operation Response; for
2679 example a "505 HTTP Version Not Supported" response would not be a CIM
2680 Operation Response.</LI></UL>
2681 <P>Where it is necessary to distinguish requirements
2682 between the use of M-POST and POST, these will be explicitly defined.</P>
2683 <P>The extension mechanism used in this document is based
2684 on the HTTP Extension Framework [9]. A goal of the framework is to allow a
2685 decentralized naming mechanism whereby parties can introduce additional HTTP
2686 Headers without fear of conflicting interpretation of a given Header name.</P>
2687 <P>It is not the intention of this document to replicate
2688 information in that document concerning the required behavior of entities that
2689 karl 1.1 implement this framework; suffice it to say that conforming CIM implementations
2690 of this specification protocol MUST abide by all requirements in that
2691 document.</P>
2692 <P><A href="#top" >Back to contents</A></P>
2693 <H2><A name=SecCIMClientsAndServers>3.1. CIM Clients and Servers</A></H2>
2694 <P>The following definitions are used throughout the
2695 remainder of this document:</P>
2696 <UL>
2697 <LI><A name=DefCIMClient></A>A <EM
2698 >CIM client</EM> is an HTTP client that issues <A href="#DefCIMOperationRequest" >CIM Operation Requests</A> and
2699 receives and processes <A href="#DefCIMOperationResponse" >CIM Operation Responses</A>.
2700 <LI><A name=DefCIMServer></A>A <EM
2701 >CIM server</EM> is an an HTTP server that receives and
2702 processes CIM Operation Requests and issues CIM Operation Responses.</LI></UL>
2703 <P>An HTTP client/server MAY be capable of acting as
2704 both a CIM client and a CIM server.</P>
2705 <P><A href="#top" >Back to contents</A></P>
2706 <H2><A name=SecUseOfMPOSTAndPOST>3.2.
2707 Use of M-POST and POST</A></H2>
2708 <P>A <A href="#DefCIMClient" >CIM client</A> attempting a CIM Operation
2709 invocation conformant to this specification MUST first try the invocation using
2710 karl 1.1 the HTTP method "M-POST". </P>
2711 <UL>
2712 <LI>If the M-POST invocation fails with an HTTP status of
2713 "501 Not Implemented" or "510 Not Extended", then the client SHOULD retry the
2714 request using the HTTP method “POST” with the appropriate modifications
2715 (described in <A href="#SecNamingOfExtensionHeaders" >Naming of Extension
2716 Headers</A>). The intention is that POST should only be used as a
2717 fallback mechanism in environments where firewalls or proxies do not yet have
2718 the ability to understand M-POST requests.
2719 <LI>If the M-POST invocation fails with an HTTP status of
2720 "405 Method Not Allowed", then the client SHOULD fail the request.
2721 <LI>For all other status codes the client MUST act in
2722 accordance with standard HTTP [6,7].</LI></UL>
2723 <P>This extended invocation mechanism allows Internet
2724 proxies & firewalls greater filtering control and administrative flexibility
2725 over CIM Operation invocations.</P>
2726 <P>In the case of a client receiving a 501 or 510 status in
2727 response to an M-POST request, then in subsequent invocations to the same HTTP
2728 server, the client MAY omit the attempt at M-POST invocations for a
2729 suitable period, thus avoiding the need for an extra round trip on each and
2730 every method invocation. The details of the caching strategy employed by
2731 karl 1.1 the client are outside of the scope of this specification.</P>
2732 <P>Given this algorithm, firewalls can if they wish
2733 effectively force the use of M-POST for CIM Operation invocations by
2734 prohibiting POST invocations containing the Extension Header <A href="#SecCIMOperation" >CIMOperation</A>. </P>
2735 <H3><A name=SecUseOfTheExtHeader>3.2.1. Use of the Ext Header</A></H3>
2736 <P>If a <A href="#DefCIMServer" >CIM Server</A> receives a valid M-POST request,
2737 and has fulfilled all mandatory extension header declarations in the request,
2738 then it MUST include in the response the "Ext" header defined by [9]. This
2739 must be protected by the appropriate <A href="#SecCache-Control" >Cache-Control</A>
2740 directive.</P>
2741 <P><A href="#top" >Back to contents</A></P>
2742 <H2><A name=SecExtensionHeadersDefinedForCIM>3.3. Extension Headers Defined for CIM Operation Requests
2743 and Responses</A></H2>
2744 <P>This section describes the extension headers used to
2745 specify CIM operational semantics in the HTTP Header of an M-POST or POST
2746 message.</P>
2747 <P>Any <A href="#DefCIMOperationRequest" >CIM Operation
2748 Request</A> or <A href="#DefCIMOperationResponse" >CIM Operation Response</A> MUST include
2749 the following CIM extension header:</P>
2750 <UL>
2751 <LI><A href="#SecCIMOperation" >CIMOperation</A> </LI></UL>
2752 karl 1.1 <P>Any <A href="#DefCIMOperationRequest" >CIM Operation
2753 Request</A> MUST include one and only one of the following CIM extension
2754 header sets:</P>
2755 <UL style="MARGIN-RIGHT: 0px">
2756 <LI><A href="#SecCIMMethod" >CIMMethod</A> and <A href="#SecCIMObject" >CIMObject</A>, or
2757 <LI><A href="#SecCIMBatch" >CIMBatch</A></LI></UL>
2758 <P>An HTTP reponse with an error status code to a CIM
2759 Operation Request MAY include the following CIM extension header:</P>
2760 <UL style="MARGIN-RIGHT: 0px">
2761 <LI><A href="#SecCIMError" >CIMError</A> </LI></UL>
2762 <P>All CIM Operation Requests and Responses MAY
2763 include the following CIM extension header:</P>
2764 <UL>
2765 <LI><A href="#SecCIMProtocolVersion" >CIMProtocolVersion</A></LI></UL>
2766 <P><A href="#top" >Back to contents</A></P>
2767 <H3><A name=SecNamingOfExtensionHeaders>3.3.1. Naming of Extension Headers</A></H3>
2768 <P>In M-POST request messages (and their responses), CIM
2769 extension headers MUST be declared using the name space prefix allotted by the
2770 "Man" extension header (in accordance with [9]) that refers to the name space
2771 "<A href="http://www.dmtf.org/cim/mapping/http/v1.0peration">http://www.dmtf.org/cim/mapping/http/v1.0</A>". </P>
2772 <P>The full format of the "Man" header declaration for this
2773 karl 1.1 specification is:</P>
2774 <P>
2775 <TABLE class=Definition id=TABLE2 style="LEFT: 26px; TOP: 4179px">
2776 <TBODY>
2777 <TR>
2778 <TD
2779 >Man
2780 = "Man" ":" "<A href="http://www.dmtf.org/cim/mapping/http/v1.0"
2781 >http://www.dmtf.org/cim/mapping/http/v1.0</A>"</TD></TR>
2782 <TR>
2783 <TD
2784 > ";"
2785 "ns" "=" header-prefix</TD></TR>
2786 <TR>
2787 <TD>header-prefix =
2788 2*DIGIT</TD></TR></TBODY></TABLE>
2789 <P>This header-prefix SHOULD be generated at random on a
2790 per-HTTP message basis, and SHOULD NOT necessarily be a specific number.</P>
2791 <P>In accordance with [9], all POST request messages (and
2792 their responses) MUST NOT include such a mandatory extension declaration. In
2793 POST request messages (and their responses), name space prefixes MUST NOT be
2794 karl 1.1 used.</P>
2795 <P><STRONG>Example 1</STRONG> </P>
2796 <P>Using M-POST:</P>
2797 <P>
2798 <TABLE class=Example id=TABLE5>
2799 <TBODY>
2800 <TR>
2801 <TD>M-POST /cimom HTTP/1.1</TD></TR>
2802 <TR>
2803 <TD>Man: <A
2804 href="http://www.dmtf.org./cim/mapping/http/v1.0peration"
2805 >http://www.dmtf.org./cim/mapping/http/v1.0</A> ;
2806 ns=23</TD></TR>
2807 <TR>
2808 <TD>23-CIMOperation: MethodCall</TD></TR>
2809 <TR>
2810 <TD>...</TD></TR></TBODY></TABLE>
2811 <P><STRONG>Example 2</STRONG> </P>
2812 <P>Using POST:</P>
2813 <P>
2814 <TABLE class=Example>
2815 karl 1.1 <TBODY>
2816 <TR>
2817 <TD>POST /cimom HTTP/1.1</TD></TR>
2818 <TR>
2819 <TD>CIMOperation: MethodCall</TD></TR>
2820 <TR>
2821 <TD>...</TD></TR></TBODY></TABLE>
2822 <P><A href="#top" >Back to contents</A></P>
2823 <H3>3.3.2. <A name=SecEncodingOfCIMNamesWithinHTTPHeaders></A>Encoding of CIM Element Names within HTTP Headers</H3>
2824 <P><A name=DefCIMIdentifier></A>CIM
2825 element (class, property, qualifier, method or method parameter) names
2826 are natively Unicode, and may use UCS-2 characters unsuitable for inclusion
2827 within an HTTP message header. In order to encode CIM element names
2828 represented in Unicode to values within HTTP Headers, the following mapping MUST
2829 be used:</P>
2830 <UL>
2831 <LI>Encode the full Unicode CIM element name using UTF-8
2832 [15], and then;
2833 <LI>Apply the standard URI [16, section 2] escaping
2834 mechanism to the resulting string to escape any characters that are
2835 unsafe within an HTTP Header, using the ""%" HEX HEX" convention).</LI></UL>
2836 karl 1.1 <P>The token <STRONG>CIMIdentifier</STRONG>, where used in this document,
2837 represents a CIM element name to which this transformation has been applied.</P>
2838 <P>One characteristic of this mapping is that CIM elements
2839 that are named with an ASCII representation will appear in ASCII in the
2840 resultant URL.</P>
2841 <P><STRONG>Examples</STRONG> </P>
2842 <P>
2843 <TABLE border=1 cellPadding=10 class=Example id=TABLE6>
2844 <TBODY>
2845 <TR>
2846 <TD>
2847 <P>CIM_LogicalElement is unchanged under this
2848 transformation</P></TD></TR>
2849 <TR>
2850 <TD>
2851 <P>The class named using the UCS-2 sequence
2852 representing the Hangul characters for the Korean word "hangugo"
2853 (D55C, AD6D, C5B4) becomes </P>
2854 <P>
2855 %ED%95%9C%EA%B5%AD%EC%96%B4=10</P>
2856 <P>after UTF-8 transformation and escaping all
2857 karl 1.1 characters with their % HEX HEX equivalent. </P></TD></TR></TBODY></TABLE>
2858 <P><A href="#top" >Back to contents</A></P>
2859 <H3>3.3.3. <A
2860 name=SecEncodingOfCIMObjectPathsWithinHTTPHeaders></A>Encoding of CIM Object Paths within HTTP Headers</H3>
2861 <P>This section describes the mapping that MUST be applied
2862 in order to represent CIM object paths, as described within an <A href="#DefOperationRequestMessage" >Operation Request Message</A> using
2863 the <LOCALNAMESPACEPATH>, <LOCALCLASSPATH> or
2864 <LOCALINSTANCEPATH> elements, in a format that is safe for
2865 representation within an HTTP header. </P>
2866 <P>If the element to be transformed is a
2867 <LOCALNAMESPACEPATH> element, the algorithm is as follows:</P>
2868 <OL>
2869 <LI>For the first NAMESPACE subelement, output the
2870 textual content of that element.
2871 <LI>For each subsequent NAMESPACE subelement, output the
2872 forward slash character (/) followed by the textual content of that NAMESPACE
2873 element. </LI></OL>
2874 <P>If the element to be transformed is a
2875 <LOCALCLASSPATH> element, the algorithm is as follows:</P>
2876 <OL>
2877 <LI>Transform the <LOCALNAMESPACEPATH>
2878 karl 1.1 subelement using the rules described above, and output a colon character (:).
2879 <LI>Output the value of the <FONT face="Courier New"
2880 >NAME</FONT> attribute of the <CLASSNAME>
2881 subelement.</LI></OL>
2882 <P>If the element to be transformed is an
2883 <LOCALINSTANCEPATH> element, the algorithm is as follows:</P>
2884 <OL>
2885 <LI>Transform the <LOCALNAMESPACEPATH>
2886 subelement using the rules described above, and output a colon character (:).
2887 <LI>Output the value of the <FONT face="Courier New"
2888 >CLASSNAME</FONT> attribute of the <INSTANCENAME>
2889 subelement.
2890 <LI>If there is at least one <KEYBINDING>
2891 subelement under the <INSTANCENAME> subelement, then for each such
2892 subelement:
2893 <UL>
2894 <LI>Output a period character (.) if this is the first
2895 <KEYBINDING> subelement, and a comma (,) otherwise.
2896 <LI>Output the value of the <FONT face="Courier New"
2897 >NAME</FONT> attribute, followed by an equals character
2898 (=).
2899 karl 1.1 <LI>If there is a <KEYVALUE>
2900 subelement, output the textual element content of that element, subject to
2901 the following transformation:
2902 <UL>
2903 <LI>If the <FONT face="Courier New"
2904 >VALUETYPE</FONT> attribute is numeric or
2905 boolean, the output is identical to the content of the element.
2906 <LI>If the <FONT face="Courier New"
2907 >VALUETYPE</FONT> attribute is string, the output is
2908 obtained by enclosing the content of the element in double quote (")
2909 characters, and escaping any double quote characters within the value with
2910 a preceding backslash (\) character. </LI></UL>
2911 <LI>If there is a <VALUE.REFERENCE>
2912 subelement
2913 <UL>
2914 <LI>output a double quote character (").
2915 <LI>apply the process recursively to the
2916 <CLASSPATH> or <INSTANCEPATH> subelement of the
2917 <VALUE.REFERENCE> element, escaping any double quote character or
2918 backslash character thereby generated with a preceding backslash (\)
2919 character.
2920 karl 1.1 <LI>output a closing double quote character
2921 (").</LI></UL></LI></UL>
2922 <LI>If there is no <KEYBINDING> subelement but
2923 there is a <KEYVALUE> or <VALUE.REFERENCE> subelement under the
2924 <INSTANCENAME> subelement, then:
2925 <UL>
2926 <LI>Output an equals character (=).
2927 <LI>Output the transformed value of the
2928 <KEYVALUE> or <VALUE.REFERENCE>, using the same rules as
2929 described above.</LI></UL>
2930 <LI>If there were no <KEYBINDING> subelements, or
2931 no <KEYVALUE> or <VALUE.REFERENCE> subelement, under the
2932 <INSTANCENAME> subelement then output the string "=@" to indicate a
2933 singleton instance.</LI></OL>
2934 <P>Finally, after applying the above rules to the
2935 <LOCALNAMESPACEPATH>, <LOCALCLASSPATH> or <LOCALINSTANCEPATH>
2936 element, transform the entire output string into URI-safe format as
2937 follows: </P>
2938 <OL>
2939 <LI>Encode the string using UTF-8 [15] if it is not
2940 already in this format, and then;
2941 karl 1.1 <LI>Apply the standard URI [16, section 2] escaping
2942 mechanism to the resulting string to escape any characters that are
2943 unsafe within an HTTP Header, using the ""%" HEX HEX" convention).</LI></OL>
2944 <P><A name=DefCIMObjectPath></A>The
2945 token <STRONG>CIMObjectPath</STRONG>, where used in this
2946 document, represents a <LOCALNAMESPACEPATH>, <LOCALCLASSPATH> or
2947 <LOCALINSTANCEPATH> element to which the above transformation has been
2948 applied.</P>
2949 <P><A href="#top" >Back to contents</A></P>
2950 <H3>3.3.4. <A name=SecCIMOperation></A>CIMOperation</H3>
2951 <P>This header MUST be present in all <A href="#DefCIMOperationRequest" >CIM Operation Request</A> and <A href="#DefCIMOperationResponse" >CIM Operation Response</A>
2952 messages. It identifies the HTTP message as carrying a CIM Operation
2953 request or response.</P>
2954 <P>
2955 <TABLE class=Definition>
2956 <TBODY>
2957 <TR>
2958 <TD>CIMOperation = "CIMOperation" ":"
2959 ("MethodCall" | "MethodResponse")</TD></TR></TBODY></TABLE>
2960 <P>A <A href="#DefCIMClient" >CIM Client</A> MUST include this header, with
2961 the value "MethodCall", in all CIM Operation Requests that it issues. A <A href="#DefCIMServer" >CIM
2962 karl 1.1 Server</A> MUST include this header in all CIM Operation Responses, with
2963 the value "MethodResponse", that it issues.</P>
2964 <P>If a CIM Server receives CIM Operation request with this
2965 header, but with a missing value or a value that is not "MethodCall", then it
2966 MUST fail the request with status "400 Bad Request". The CIM
2967 Server MUST include a <A href="#SecCIMError" >CIMError</A> header in the response with a value of
2968 <FONT face="Courier New">unsupported-operation</FONT>.</P>
2969 <P>If a CIM Server receives a CIM Operation request without
2970 this header, it MUST NOT process it as if it were a CIM Operation Request.
2971 The status code returned by the CIM Server in response to such a request is
2972 outside of the scope of this specification.</P>
2973 <P>If a CIM Client receives a response to a CIM Operation
2974 Request without this header (or if this header has a value which is not
2975 "MethodResponse"), it SHOULD discard the response, and take appropriate measures
2976 to publicize the fact that it has received an incorrect response. The
2977 details as to how this is done are outside of the scope of this
2978 specification.</P>
2979 <P>This header affords a simple mechanism by which firewall
2980 or proxy administrators can make global administrative decisions on all CIM
2981 Operations.</P>
2982 <P><A href="#top" >Back to contents</A></P>
2983 karl 1.1 <H3>3.3.5. <A name=SecCIMProtocolVersion></A>CIMProtocolVersion</H3>
2984 <P>This header MAY be present in any <A href="#DefCIMOperationRequest" >CIM Operation Request</A> or <A href="#DefCIMOperationResponse" >CIM Operation Response</A>
2985 message. The header identifies the version of the CIM mapping onto
2986 HTTP being used by the sending entity.</P>
2987 <P>
2988 <TABLE class=Definition id=TABLE3>
2989 <TBODY>
2990 <TR>
2991 <TD>CIMProtocolVersion = "CIMProtocolVersion" ":"
2992 1*DIGIT "." 1*DIGIT </TD></TR></TBODY></TABLE>
2993 <P>If the header is omitted, then a value of 1.0 MUST
2994 be assummed.</P>
2995 <P>The major and minor numbers MUST be treated
2996 as independent integers which MAY be incremented higher than a single
2997 digit. Therefore version x<SUB>1</SUB>.y<SUB>1</SUB> is lower than x<SUB>2</SUB>.y<SUB>2</SUB> if and only
2998 if:</P>
2999 <UL>
3000 <LI>x<SUB>1</SUB> is less than x<SUB
3001 >2</SUB>, or;
3002 <LI>x<SUB>1</SUB> equals x<SUB
3003 >2</SUB>, and y<SUB>1</SUB> is less
3004 karl 1.1 than y<SUB>2</SUB></LI></UL>
3005 <P>If a <A href="#DefCIMServer" >CIM Server</A> receives an CIM Operation Request
3006 for which the value of this header indicates a version that it does not support,
3007 then it MUST respond in the manner defined in the section on <A href="#SecErrors" >Errors</A>.
3008 </P>
3009 <P>Otherwise, if a CIM Server receives an CIM Operation
3010 Request for which the value of this header does not match the value of the <FONT
3011 face="Courier New">PROTOCOLVERSION</FONT> attribute of
3012 the <MESSAGE> element within the Operation Request, then it MUST fail the
3013 request and return a status of "400 Bad Request" (and MUST include a <A href="#SecCIMError" >CIMError</A> header in the response with a value of
3014 <FONT face="Courier New">unsupported-protocol-version</FONT>), subject to the
3015 considerations specified in <A href="#SecErrors" >Errors</A>.</P>
3016 <P><A href="#top" >Back to contents</A></P>
3017 <H3>3.3.6. <A name=SecCIMMethod></A>CIMMethod</H3>
3018 <P>This header MUST be present in any <A href="#DefCIMOperationRequest" >CIM Operation Request</A> message that
3019 contains a <A href="#DefSimpleOperationRequest" >Simple Operation Request</A>.
3020 </P>
3021 <P>It MUST NOT be present in any <A href="#DefCIMOperationResponse" >CIM Operation Response</A> message, nor
3022 in any <A href="#DefCIMOperationRequest" >CIM Operation Request</A> message that
3023 is not a Simple Operation Request.</P>
3024 <P>The header identifies the name of
3025 karl 1.1 the CIM method to be invoked, encoded in an <A href="#SecEncodingOfCIMNamesWithinHTTPHeaders" >HTTP-safe
3026 representation</A>. Firewalls and proxies may use this header to
3027 carry out routing and forwarding decisions based on the CIM method to be
3028 invoked.</P>
3029 <P>The name of the CIM method within a Simple Operation
3030 Request is defined to be the value of the <FONT face="Courier New">NAME</FONT> attribute of the <METHODCALL> or
3031 <IMETHODCALL> element.</P>
3032 <P>
3033 <TABLE class=Definition id=TABLE4>
3034 <TBODY>
3035 <TR>
3036 <TD>CIMMethod = "CIMMethod" ":"
3037 MethodName</TD></TR>
3038 <TR>
3039 <TD>MethodName = <A href="#DefCIMIdentifier" >CIMIdentifier</A>
3040 </TD></TR></TBODY></TABLE>
3041 <P>If a <A href="#DefCIMServer" >CIM Server</A> receives a CIM Operation
3042 Request for which either:</P>
3043 <UL style="MARGIN-RIGHT: 0px">
3044 <LI>The CIMMethod header is present but has an invalid
3045 value, or;
3046 karl 1.1 <LI>The CIMMethod header is not present but the Operation
3047 Request Message is a <A href="#DefSimpleOperationRequest" >Simple
3048 Operation Request</A>, or;
3049 <LI>The CIMMethod header is present but the Operation
3050 Request Message is not a Simple Operation Request, or;
3051 <LI>The CIMMethod header is present, the Operation
3052 Request Message is a Simple Operation Request, but the CIMIdentifier value
3053 (when unencoded) does not match the unique method name within the Simple
3054 Operation Request,</LI></UL>
3055 <P>then it MUST fail the request and return a status of
3056 "400 Bad Request" (and MUST include a <A href="#SecCIMError" >CIMError</A> header in the
3057 response with a value of <FONT face="Courier New">header-mismatch</FONT>), subject to the considerations
3058 specified in <A href="#SecErrors" >Errors</A>.</P>
3059 <P>Note that this verification provides a <EM>basic </EM>level of assurance that any intermediate
3060 firewall or proxy was not acting on misleading information when it decided to
3061 forward the request based on the content of the CIMMethod header.
3062 Additional securing of HTTP messages against modification in transit (such as
3063 the encryption of the payload or appending of a digital signature thereto) would
3064 be required to provide a higher degree of integrity.</P>
3065 <P><A href="#top" >Back to contents</A></P>
3066 <H3>3.3.7.<A name=SecCIMObject></A>
3067 karl 1.1 CIMObject</H3>
3068 <P>This header MUST be present in any <A href="#DefCIMOperationRequest" >CIM Operation Request</A> message that
3069 contains a <A href="#DefSimpleOperationRequest" >Simple Operation Request</A>.
3070 </P>
3071 <P>It MUST NOT be present in any <A href="#DefCIMOperationResponse" >CIM Operation Response</A> message, nor
3072 in any <A href="#DefCIMOperationRequest" >CIM Operation Request</A> message that
3073 that is not a Simple Operation Request.</P>
3074 <P>The header identifies the CIM object (which
3075 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
3076 invoked, using a CIM object path encoded in an <A href="#SecEncodingOfCIMObjectPathsWithinHTTPHeaders" >HTTP-safe
3077 representation</A>. Firewalls and proxies may use this header to
3078 carry out routing and forwarding decisions based on the CIM object that is the
3079 target of a method invocation.</P>
3080 <P>
3081 <TABLE class=Definition>
3082 <TBODY>
3083 <TR>
3084 <TD>CIMObject = "CIMObject"
3085 ":" ObjectPath</TD></TR>
3086 <TR>
3087 <TD>ObjectPath = <A href="#DefCIMObjectPath" >CIMObjectPath</A></TD></TR></TBODY></TABLE>
3088 karl 1.1 <P>The ObjectPath value is constructed by applying the
3089 algorithm defined in <A href="#SecEncodingOfCIMObjectPathsWithinHTTPHeaders" >Encoding CIM
3090 Object Paths</A> to either:</P>
3091 <UL>
3092 <LI>The <LOCALNAMESPACEPATH> subelement of the
3093 <IMETHODCALL> element, or;
3094 <LI>The <LOCALCLASSPATH> or
3095 <LOCALINSTANCEPATH> subelement of the <METHODCALL> element</LI></UL>
3096 <P>within the CIM Operation Request.</P>
3097 <P>If a <A href="#DefCIMServer" >CIM Server</A> receives a CIM Operation
3098 Request for which either:</P>
3099 <UL style="MARGIN-RIGHT: 0px">
3100 <LI>The CIMObject header is present but has an invalid
3101 value, or:
3102 <LI>The CIMObject header is not present but the Operation
3103 Request Message is a <A href="#DefSimpleOperationRequest" >Simple
3104 Operation Request</A>, or;
3105 <LI>The CIMObject header is present but the Operation
3106 Request Message is not a Simple Operation Request, or;
3107 <LI>The CIMObject header is present, Operation
3108 Request Message is a Simple Operation Request, but the ObjectPath
3109 karl 1.1 value does not match (where <EM>match </EM>is defined in
3110 the section on <A href="#SecEncodingOfCIMObjectPathsWithinHTTPHeaders" >Encoding CIM
3111 Object Paths</A>) the Operation Request Message,</LI></UL>
3112 <P>then it MUST fail the request and return a status of
3113 "400 Bad Request" (and MUST include a <A href="#SecCIMError" >CIMError</A> header in the
3114 response with a value of <FONT face="Courier New">header-mismatch</FONT>), subject to the considerations
3115 specified in <A href="#SecErrors" >Errors</A>.</P>
3116 <P>Note that this verification provides a <EM>basic </EM>level of assurance that any intermediate
3117 firewall or proxy was not acting on misleading information when it decided to
3118 forward the request based on the content of the CIMObject header.
3119 Additional securing of HTTP messages against modification in transit (such as
3120 the encryption of the payload or appending of a digital signature thereto) would
3121 be required to provide a higher degree of integrity.</P>
3122 <P><A href="#top" >Back to contents</A></P>
3123 <H3><A name=SecCIMBatch>3.3.8.
3124 CIMBatch</A></H3>
3125 <P>This header MUST be present in any <A href="#DefCIMOperationRequest" >CIM Operation Request</A> message that
3126 contains a <A href="#DefMultipleOperationRequest" >Multiple Operation
3127 Request</A>. </P>
3128 <P>It MUST NOT be present in any <A href="#DefCIMOperationResponse" >CIM Operation Response</A> message, nor
3129 in any <A href="#DefCIMOperationRequest" >CIM Operation Request</A> message that
3130 karl 1.1 is not a Multiple Operation Request.</P>
3131 <P>The header identifies the encapsulated Operation Request
3132 Message as containing multiple method invocations. Firewalls and
3133 proxies may use this header to carry out routing and forwarding decisions
3134 for batched CIM method invocations.</P>
3135 <P>
3136 <TABLE class=Definition>
3137 <TBODY>
3138 <TR>
3139 <TD>CIMBatch = "CIMBatch" </TD></TR></TBODY></TABLE>
3140 <P>If a <A href="#DefCIMServer" >CIM Server</A> receives a CIM Operation
3141 Request for which either:</P>
3142 <UL style="MARGIN-RIGHT: 0px">
3143 <LI>The CIMBatch header is present but has an invalid
3144 value, or:
3145 <LI>The CIMBatch header is not present but the Operation
3146 Request Message is a Multiple Operation Request, or;
3147 <LI>The CIMBatch header is present but the Operation
3148 Request Message is not a Multiple Operation Request,</LI></UL>
3149 <P>then it MUST fail the request and return a status of
3150 "400 Bad Request" (and MUST include a <A href="#SecCIMError" >CIMError</A> header in the
3151 karl 1.1 response with a value of <FONT face="Courier New">header-mismatch</FONT>), subject to the considerations
3152 specified in <A href="#SecErrors" >Errors</A>.</P>
3153 <P>Note that this verification provides a <EM>basic </EM>level of assurance that any intermediate
3154 firewall or proxy was not acting on misleading information when it decided to
3155 forward the request based on the content of the CIMBatch header.
3156 Additional securing of HTTP messages against modification in transit (such as
3157 the encryption of the payload or appending of a digital signature thereto) would
3158 be required to provide a higher degree of integrity.</P>
3159 <P>If a CIM Server receives a CIM Operation
3160 Request for which the CIMBatch header is present, but the Server does not
3161 support Multiple Operations, then it MUST fail the request and return
3162 a status of "501 Not Implemented". Firewalls or Proxies MAY also employ
3163 this mechanism to compel a <A href="#DefCIMClient" >CIM Client</A> to use Simple Operation Requests
3164 rather than Multiple Operation Requests.</P>
3165 <P>A CIM Client that receives a response of "501 Not
3166 Implemented" to a Multiple Operation Request SHOULD resubmit that request as a
3167 series of Simple Operation Requests. </P>
3168 <P><A href="#top" >Back to contents</A></P>
3169 <H3><A name=SecCIMError>3.3.9.</A>
3170 CIMError</H3>
3171 <P>This header MAY be present in any HTTP response to
3172 karl 1.1 a <A href="#DefCIMOperationRequest" >CIM Operation Request</A> message that
3173 is not a <A href="#DefCIMOperationResponse" >CIM Operation Response</A>. </P>
3174 <P>It MUST NOT be present in any <A href="#DefCIMOperationResponse" >CIM Operation Response</A> message, nor
3175 in any <A href="#DefCIMOperationRequest" >CIM Operation Request</A>.</P>
3176 <P>The header provides further CIM specific diagnostic
3177 information in the case that the <A href="#DefCIMServer" >CIM Server</A> encountered a fundamental error
3178 during processing of the CIM Operation Request, and is intended to assist
3179 Clients to further disambiguate errors that have the same HTTP status code.</P>
3180 <P>
3181 <TABLE class=Definition>
3182 <TBODY>
3183 <TR>
3184 <TD>
3185 <P>CIMError = "CIMError" ":" cim-error</P>
3186 <P>cim-error = "unsupported-protocol-version" |<BR
3187 >
3188 "multiple-requests-unsupported" |<BR
3189 > "unsupported-cim-version"
3190 |<BR
3191 >
3192 "unsupported-dtd-version" |<BR
3193 karl 1.1 >
3194 "request-not-valid" |<BR
3195 > "request-not-well-formed"
3196 |<BR
3197 >
3198 "request-not-loosely-valid" |<BR
3199 >
3200 "header-mismatch" |<BR
3201 > "unsupported-<FONT
3202 face="Courier New">operation"</FONT></P></TD></TR></TBODY></TABLE>
3203 <P><A href="#top" >Back to contents</A></P>
3204 <H1><A name=SecHTTPRequirementsAndUsage>4. HTTP Requirements & Usage</A></H1>
3205 <H2><A name=SecHTTPSupport>4.1. HTTP
3206 Support</A></H2>
3207 <P>It is RECOMMENDED that <A href="#DefCIMClient" >CIM clients</A> and <A href="#DefCIMServer" >CIM
3208 servers</A> support HTTP/1.1 [7]. CIM clients and servers MAY support
3209 HTTP/1.0 instead. CIM clients and servers MUST NOT be limited to any
3210 version of HTTP earlier than 1.0.</P>
3211 <P>It should be noted that the current revised draft [10]
3212 of RFC 2068 clarifies and corrects ambiguities and errors in that RFC.
3213 </P>
3214 karl 1.1 <P>CIM Clients and Servers that make use of extension
3215 headers as defined in this specification MUST conform to the requirements
3216 defined in [9] for their use.</P>
3217 <P><A href="#top" >Back to contents</A></P>
3218 <H2><A name=SecUseOfStandardHeaders>4.2. Use of Standard Headers</A></H2>
3219 <P>Unless otherwise stated herein, <A href="#DefCIMClient" >CIM clients</A> and <A href="#DefCIMServer" >CIM
3220 servers</A> MUST comply with the requirements on the use of headers described in
3221 [6,7]. This section defines only any <EM>additional
3222 </EM>requirements on CIM clients and servers with respect to the use of standard
3223 HTTP headers [6,7] within a <A href="#DefCIMOperationRequest" >CIM Operation
3224 Request</A> or <A href="#DefCIMOperationResponse" >CIM Operation Response</A>. </P>
3225 <P>Note that headers defined in RFC 2068 [7] but deprecated
3226 from [10] (e.g. Public, Content-Base) SHOULD NOT be used by CIM clients and
3227 servers.</P>
3228 <P><EM></EM></P>
3229 <H3><A name=SecAccept>4.2.1.
3230 Accept</A></H3>
3231 <P>If a <A href="#DefCIMClient" >CIM client</A> includes an Accept header in a
3232 request, it MUST specify a value which allows the Server to return an entity
3233 body of "text/xml" or "application/xml" in the response.</P>
3234 <P>A <A href="#DefCIMServer" >CIM server</A> MUST accept any value for this
3235 karl 1.1 header which states that "text/xml" or "application/xml" is an acceptable type
3236 for an response entity. A server SHOULD return "406 Not Acceptable"
3237 if the Accept header indicates that neither of these content types are
3238 acceptable.</P>
3239 <P>If a CIM server decides to accept a request to return an
3240 entity of type other than "text/xml" or "application/xml", the nature of the
3241 response is outside of the domain of this specification.</P>
3242 <P><A href="#top" >Back to contents</A> </P>
3243 <H3><A name=SecAccept-Charset>4.2.2.
3244 Accept-Charset</A></H3>
3245 <P>If a <A href="#DefCIMClient" >CIM client</A> includes an Accept-Charset header
3246 in a request, it MUST specify a value which allows the Server to return an
3247 entity body using the character set "utf-8".</P>
3248 <P>A <A href="#DefCIMServer" >CIM server</A> MUST accept any value for this
3249 header which implies that "utf-8" is an acceptable character set for an response
3250 entity. A server SHOULD return "406 Not Acceptable" if the
3251 Accept-Charset header indicates that this character set is not
3252 acceptable.</P>
3253 <P>If a CIM server decides to accept a request to return an
3254 entity using a character set other than "utf-8", the nature of the response
3255 is outside of the domain of this specification.</P>
3256 karl 1.1 <P>See <A href="#SecInternationalizationConsiderations" >Internationalization
3257 Considerations</A> for more details.</P>
3258 <P><A href="#top" >Back to contents</A> </P>
3259 <H3><A name=SecAccept-Encoding>4.2.3.
3260 Accept-Encoding</A></H3>
3261 <P>If a <A href="#DefCIMClient" >CIM client</A> includes an Accept-Encoding header
3262 in a request, it MUST specify a value which allows the Server to use the
3263 "identity" encoding.</P>
3264 <P>A <A href="#DefCIMServer" >CIM Server</A> MUST accept any value for this
3265 header which implies that "identity" is an acceptable encoding for the response
3266 entity. A server MAY return "406 Not Acceptable" if the
3267 Accept-Encoding header indicates that the this encoding is not acceptable.</P>
3268 <P><A href="#top" >Back to contents</A> </P>
3269 <H3><A name=SecAccept-Language>4.2.4.
3270 Accept-Language</A></H3>
3271 <P>If a CIM Client includes an Accept-Language header in a
3272 request, it SHOULD specify a value which allows the Server to return an entity
3273 in the language of its' own choosing. This is accomplished by
3274 including in the list of acceptable language ranges the special range "*".</P>
3275 <P>CIM Servers MAY support multiple languages if they so
3276 choose.</P>
3277 karl 1.1 <P>See <A href="#SecInternationalizationConsiderations" >Internationalization
3278 Considerations </A>for more details.</P>
3279 <P><A href="#top" >Back to contents</A> </P>
3280 <H3><A name=SecAccept-Ranges>4.2.5.
3281 Accept-Ranges</A></H3>
3282 <P><A href="#DefCIMClient" >CIM clients</A> MUST NOT include this header in a
3283 request. A <A href="#DefCIMServer" >CIM Server</A> MUST reject a request that includes
3284 an Accept-Range header with a status of "406 Not Acceptable".</P>
3285 <P><A href="#top" >Back to contents</A> </P>
3286 <H3><A name=SecAllow>4.2.6.
3287 Allow</A></H3>
3288 <P>If a <A href="#DefCIMServer" >CIM Server</A> is returning a "405 Method Not
3289 Allowed" response to a CIM Operations Request then the Allow header MUST include
3290 either M-POST or POST. Whether it includes any other HTTP methods is
3291 outside the scope of this specification.</P>
3292 <P><A href="#top" >Back to contents</A> </P>
3293 <H3><A name=SecAuthorization>4.2.7.
3294 Authorization</A></H3>
3295 <P>See the section on <A href="#SecSecurityConsiderations" >Security
3296 Considerations</A> for more details. </P>
3297 <P><A href="#top" >Back to contents</A> </P>
3298 karl 1.1 <H3>4.2.8. <A name=SecCache-Control></A>Cache-Control</H3>
3299 <P>In general a <A href="#DefCIMOperationRequest" >CIM Operation
3300 Request</A> may consist of a mixture of CIM method invocations, some of which
3301 may be eminently cachable (e.g. the Manufacturer label on a Disk Drive), and
3302 some of which may be decidedly uncachable (e.g. format a Disk Drive). </P>
3303 <P>Furthermore, the encapsulation of such multiple
3304 method invocations within an HTTP POST or M-POST means that if a CIM Operation
3305 Request has any effect on an HTTP cache it is likely to be one of invalidating
3306 cached responses for the target CIM Server. Indeed HTTP/1.1[7] stipulates
3307 that by default POST responses are not cachable unless the server indicates
3308 otherwise using an appropriate Cache-Control or Expires header.</P>
3309 <P>For these reasons, <A href="#DefCIMOperationResponse" >CIM Operation
3310 Responses</A> SHOULD NOT be considered cachable. A <A href="#DefCIMServer" >CIM
3311 Server</A> SHOULD NOT include a Cache-Control header in a CIM Operation
3312 Response which might indicate to a cache that the response could be
3313 cached. </P>
3314 <P>If the CIM Server is responding to a CIM Operation
3315 Request coveyed within an M-POST request, then in accordance with [9] the
3316 Server MUST include a no-cache control directive to prevent inadvertant caching
3317 of the "Ext" header. For example:</P>
3318 <P>
3319 karl 1.1 <TABLE class=Example id=TABLE2>
3320 <TBODY>
3321 <TR>
3322 <TD>HTTP/1.1 200 OK</TD></TR>
3323 <TR>
3324 <TD>Ext:</TD></TR>
3325 <TR>
3326 <TD>Cache-Control: no-cache</TD>
3327 <TR>
3328 <TD>...</TD></TR></TBODY></TABLE>
3329 <P><A href="#top" >Back to contents</A></P>
3330 <H3><A name=SecConnection>4.2.9.
3331 Connection</A></H3>
3332 <P>It is RECOMMENDED that </P>
3333 <UL style="MARGIN-RIGHT: 0px">
3334 <LI><A href="#DefCIMClient" >CIM clients</A> should avoid the use of the
3335 "Connection: close" header unless it is known in advance that this is the only
3336 request likely to be sent out on that connection.
3337 <LI><A href="#DefCIMServer" >CIM servers</A> support persistant connections
3338 wherever possible. </LI></UL>
3339 <P>Timeout mechanisms SHOULD be employed to remove
3340 karl 1.1 idle connections on both client and server, the details of which are outside the
3341 domain of this specification. Clients SHOULD be cautious in retrying
3342 requests, especially if they are not idempotent (e.g. method invocation). </P>
3343 <P>CIM clients and servers SHOULD support pipelining [7,
3344 section 1.1.2.2] if possible, but be aware of the requirements defined in
3345 [7]. In particular, attention is drawn to the following requirement from
3346 [7]:</P>
3347 <BLOCKQUOTE style="MARGIN-RIGHT: 0px">
3348 <P><EM>Clients SHOULD NOT pipeline
3349 requests using non-idempotent methods or non-idempotent sequences of
3350 methods...A client wishing to send a non-idempotent request SHOULD wait to
3351 send that request until it has received the response status for the previous
3352 request. </EM></P></BLOCKQUOTE>
3353 <P><A href="#top" >Back to contents</A></P>
3354 <H3><A name=SecContent-Encoding>4.2.10. Content-Encoding</A></H3>
3355 <P>If a <A href="#DefCIMClient" >CIM client</A> includes a Content-Encoding
3356 header in a request, it SHOULD specify a value of "identity", unless it has
3357 good reason to believe that the Server can accept another encoding.</P>
3358 <P><A href="#top" >Back to contents</A> </P>
3359 <H3>4.2.11. <A name=SecContentLanguage>Content-Language</A></H3>
3360 <P>See <A href="#SecInternationalizationConsiderations" >Internationalization
3361 karl 1.1 Considerations</A> for more details.</P>
3362 <P><A href="#top" >Back to contents</A></P>
3363 <H3><A name=SecContent-Range>4.2.12.
3364 Content-Range</A></H3>
3365 <P><A href="#DefCIMClient" >CIM clients</A> and <A href="#DefCIMServer" >CIM servers</A> MUST NOT use
3366 this header.</P>
3367 <P><A href="#top" >Back to contents</A> </P>
3368 <H3><A name=SecContent-Type>4.2.13.
3369 Content-Type</A></H3>
3370 <P><A href="#DefCIMClient" >CIM clients</A> and <A href="#DefCIMServer" >CIM servers</A> MUST specify
3371 (and accept) a value for this header of either "text/xml" or "application/xml"
3372 as defined in [18]. </P>
3373 <P><A href="#top" >Back to contents</A> </P>
3374 <H3><A name=SecExpires>4.2.14.
3375 Expires</A></H3>
3376 <P>For the same reasons described in <A href="#SecCache-Control" >Cache-Control</A>, a <A href="#DefCIMServer" >CIM Server</A> SHOULD NOT
3377 include an Expires header in a CIM Operation Response which might indicate to a
3378 cache that the response could be cached.</P>
3379 <P><A href="#top" >Back to contents</A> </P>
3380 <H3><A name=SecIf-Range>4.2.15.
3381 If-Range</A></H3>
3382 karl 1.1 <P><A href="#DefCIMClient" >CIM clients</A> and <A href="#DefCIMServer" >CIM servers</A> MUST NOT use
3383 this header.</P>
3384 <P><A href="#top" >Back to contents</A> </P>
3385 <H3><A name=SecProxy-Authenticate>4.2.16. Proxy-Authenticate</A></H3>
3386 <P>See the section on <A href="#SecSecurityConsiderations" >Security
3387 Considerations</A> for more details. </P>
3388 <P><A href="#top" >Back to contents</A> </P>
3389 <H3><A name=SecRange>4.2.17.
3390 Range</A></H3>
3391 <P><A href="#DefCIMClient" >CIM clients</A> and <A href="#DefCIMServer" >CIM servers</A> MUST NOT use
3392 this header.</P>
3393 <P><A href="#top" >Back to contents</A> </P>
3394 <H3><A name=SecWWW-Authenticate>4.2.18. WWW-Authenticate</A></H3>
3395 <P>See the section on <A href="#SecSecurityConsiderations" >Security
3396 Considerations</A> for more details. </P>
3397 <P><A href="#top" >Back to contents</A></P>
3398 <H2>4.3. <A name=SecErrors></A>Errors
3399 and Status Codes</H2>
3400 <P>This section defines how <A href="#DefCIMServer" >CIM Servers</A> MUST handle
3401 errors that occur in the processing of a <A href="#DefCIMOperationRequest" >CIM Operation
3402 Request</A>. This specification does not introduce any new HTTP response status
3403 karl 1.1 codes.</P>
3404 <P>If there is an error in processing the HTTP
3405 Request-Line or standard HTTP Headers then the CIM Server MUST take the
3406 appropriate action as dictated by its conformance to the relevant version of
3407 HTTP [6,7].</P>
3408 <P>Otherwise, if there are any mandatory extension
3409 declarations which the server does not support it MUST respond with a "510 Not
3410 Extended" status according to [9].</P>
3411 <P>Otherwise, the Server MUST process the request in
3412 accordance with the relevant version of HTTP [6,7] and the additional rules
3413 defined in this document.</P>
3414 <P>Assuming that the HTTP request is otherwise correct, the
3415 CIM Server MUST use the following status codes when processing the CIM Extension
3416 Headers:</P>
3417 <BLOCKQUOTE style="MARGIN-RIGHT: 0px">
3418 <P><STRONG>501 Not
3419 Implemented</STRONG> One of the following occured:</P>
3420 <UL>
3421 <LI>The <A href="#SecCIMProtocolVersion" >CIMProtocolVersion</A> extension
3422 header specified in the request specifies a version of the CIM Mapping
3423 onto HTTP which is not supported by this CIM Server. The CIM
3424 karl 1.1 Server MUST include a <A href="#SecCIMError" >CIMError</A> header in the response with a
3425 value of <FONT face="Courier New"
3426 >unsupported-protocol-version.</FONT>
3427 <LI>The Client specified a <A href="#DefMultipleOperationRequest" >Multiple Operation Request</A>
3428 and the CIM Server does not support such requests. The CIM Server MUST
3429 include a <A href="#SecCIMError" >CIMError</A> header in the response with a
3430 value of <FONT face="Courier New"
3431 >multiple-requests-unsupported.</FONT>
3432 <LI>The <FONT face="Courier New"
3433 >CIMVERSION</FONT> attribute in the Operation Request
3434 was not set to a value of "2.0". The CIM Server MUST include a <A href="#SecCIMError" >CIMError</A> header in the response with a
3435 value of <FONT face="Courier New"
3436 >unsupported-cim-version.</FONT>
3437 <LI>The <FONT face="Courier New"
3438 >DTDVERSION</FONT> attribute in the Operation Request
3439 was not set to a value of "2.0". The CIM Server MUST include a <A href="#SecCIMError" >CIMError</A> header in the response with a
3440 value of <FONT face="Courier New"
3441 >unsupported-dtd-version.</FONT></LI></UL>
3442 <P><STRONG>401 Unauthorized</STRONG>
3443 The CIM Server is configured to require that a client authenticate itself
3444 before it can issue CIM Operation Requests to the Server.</P>
3445 karl 1.1 <P><STRONG>403 Forbidden</STRONG>
3446 The CIM Server does not allow the client to perform CIM Operations. The
3447 CIM Server MAY alternatively respond with a "404 Not Found" if it does not
3448 wish to reveal this information to the client.</P>
3449 <P><STRONG>407 Proxy Authentication
3450 Required</STRONG> The CIM Server is configured to require that the proxy
3451 authenticate itself before it can issue CIM Operation Requests on behalf of a
3452 CIM Client to the Server.</P></BLOCKQUOTE>
3453 <P>Assuming that the CIM Extension Headers are correct,
3454 then a validating CIM Server (one which is enforcing validity of the Operation
3455 Request Message with respect to the CIM XML DTD) MUST use the following status
3456 code when processing the entity body containing the CIM Operation request.</P>
3457 <BLOCKQUOTE style="MARGIN-RIGHT: 0px">
3458 <P><STRONG>400 Bad Request</STRONG>
3459 The entity body defining the CIM Operation request was not well-formed or not
3460 valid with respect to the CIM XML DTD. The CIM Server MUST include a <A href="#SecCIMError" >CIMError</A> header in the response with a value
3461 of <FONT face="Courier New"
3462 >request-not-well-formed</FONT> or <FONT
3463 face="Courier New">request-not-valid</FONT> (as
3464 appropriate).</P></BLOCKQUOTE>
3465 <P>A loosely-validating CIM Server (one that is only
3466 karl 1.1 enforcing that the CIM Operation Request be <A href="#DefLooselyValid" >loosely valid</A>) MAY
3467 reject an Operation Request Message that is not loosely valid with an HTTP
3468 status code of 400 (Bad Request) before further processing, in which case the
3469 CIM Server MUST include a <A href="#SecCIMError" >CIMError</A> header in the response with a value of
3470 <FONT face="Courier New">request-not-loosely-valid</FONT>.
3471 </P>
3472 <P>A loosely-validating CIM Server MUST reject an
3473 Operation Request Message that is not well-formed with an HTTP status code of
3474 400 (Bad Request), in which case the CIM Server MUST include a <A href="#SecCIMError" >CIMError</A> header in the response with a value of
3475 <FONT face="Courier New">request-not-well-formed</FONT>.
3476 </P>
3477 <P>A loosely-validating CIM Server MUST NOT
3478 reject an invalid (in the XML sense) Operation Request Message that is loosely
3479 valid.</P>
3480 <P>A loosely-validating CIM Server MUST ultimately
3481 signal an error to the CIM Client if the Operation Request Message is not
3482 loosely valid (i.e. is missing required content, or for which the required
3483 content is incorrect, such as an attribute with an invalid value according
3484 to the CIM XML DTD). It is not mandated to reject an Operation
3485 Request before processing, for to do otherwise would compel the Server into
3486 checking the complete request before processing could begin and this
3487 karl 1.1 would be as expensive as requiring that the Server fully validate the
3488 request. Therefore a loosely-validating Server
3489 MAY elect to begin processing the request and issuing a response (with an
3490 HTTP success status code) before checking that the entire request is loosely
3491 valid.</P>
3492 <P>A CIM Client may determine whether a CIM Server is
3493 validating or loosely-validating via the <A href="#SecCIMValidation" >CIMValidation</A> header
3494 mechanism.</P>
3495 <P>Assuming that the CIM operation request was correctly
3496 formed (in the manner described above), the CIM Server MUST process the request
3497 accordingly and return a <A href="#DefCIMOperationResponse" >CIM Operation Response</A>
3498 response. </P>
3499 <P>The entity body MUST be a correct <A href="#DefOperationResponseMessage" >Operation Response Message</A> for
3500 that request. </P>
3501 <P>If the CIM Operation Response contains an entity which
3502 is a <A href="#DefSimpleOperationResponse" >Simple Operation Response</A> then
3503 the response status must be <STRONG>200 OK</STRONG>.
3504 Otherwise the response status MUST be <STRONG>207
3505 Multistatus</STRONG> . </P>
3506 <P><A href="#top" >Back to contents</A></P>
3507 <H2>4.4. <A name=SecSecurityConsiderations></A>Security Considerations</H2>
3508 karl 1.1 <P><A href="#DefCIMClient" >CIM Clients</A> and <A href="#DefCIMServer" >CIM Servers</A> MAY elect not
3509 to use authentication, but only in environments where lack of security is not an
3510 issue.</P>
3511 <P>Basic Authentication is described in [6,7]. Digest
3512 Authentication is defined in [12]. Both authentication schemes
3513 are covered in a consolidated document [14] which also makes a number of
3514 improvements to the original specification of Digest Authentication.</P>
3515 <P>Basic Authentication provides a very rudimentary level
3516 of authentication, with the major weakness that the client password is sent over
3517 the wire in unencrypted form. </P>
3518 <P>For this reason <A href="#DefCIMClient" >CIM Clients</A> and <A href="#DefCIMServer" >CIM
3519 Servers</A> MUST NOT use Basic Authentication other than in the
3520 context of a highly secure environment (for example, if used in conjunction
3521 with SSL, or in a physically secure private network). CIM Servers MUST NOT
3522 send Basic Authentication credentials in a WWW-Authenticate header other than in
3523 the context of a highly secure environment.</P>
3524 <P>Conforming applications SHOULD support the Digest
3525 authentication scheme. Since Digest authentication verifies that both parties
3526 share a common secret, without having to send that secret in the clear, it
3527 is more secure than Basic authentication. However, CIM Clients and CIM
3528 Servers that require more robust protection SHOULD use encyption mechanisms such
3529 karl 1.1 as SSL or SHTTP.</P>
3530 <P>CIM Clients and CIM Servers using Basic or Digest
3531 Authentication MUST comply with the requirements set forth in [6,7,12,14].
3532 This specification describes only <EM>additional</EM>
3533 requirements on CIM Clients and CIM Servers when using these authentication
3534 schemes.</P>
3535 <P>CIM Servers SHOULD require that CIM Clients authenticate
3536 themselves. This specification does not mandate this as it is recognized
3537 that in some circumstances the CIM Server may not require or wish the overhead
3538 of employing authentication. CIM Servers SHOULD consider carefully the
3539 performance/security tradeoffs in determining how often to issue challenges to
3540 CIM Clients.</P>
3541 <P>A CIM Server that returns a "401 Unauthorized" response
3542 to a CIM Operation Request SHOULD include in the WWW-Authenticate
3543 response-header either the "Basic" or "Digest" authentication values (but not
3544 both). This specification does not mandate use of Basic or Digest
3545 Authentication as it is recognized that in some circumstances the CIM Server may
3546 use bespoke authentication mechanisms not covered by [14]. Similar
3547 considerations apply to the use of the Proxy-Authorization header in "407
3548 Proxy Authentication Required".</P>
3549 <P><A href="#top" >Back to contents</A></P>
3550 karl 1.1 <H2>4.5. <A name=SecDeterminingCIMServerCapabilities></A>Determining CIM Server Capabilities</H2>
3551 <P>The OPTIONS method MAY be used by a client to
3552 determine the CIM capabilities (if any) of the target server. A <A href="#DefCIMServer" >CIM
3553 Server</A> MAY support the OPTIONS method (for example, CIM Servers supporting
3554 only HTTP/1.0 would not support OPTIONS).</P>
3555 <P>In order to support the ability for a Server
3556 to declare its CIM capabilities in a manner independent of HTTP, it is the
3557 intention of the DMTF to publish a CIM Schema (in a separate document)
3558 describing such capabilities. In particular this mechanism would allow Servers
3559 that do not support the OPTIONS method to declare their capabilities to a
3560 Client.</P>
3561 <P>If a CIM Server supports the OPTIONS method, it
3562 SHOULD:</P>
3563 <UL>
3564 <LI>Return the CIM Extension Header <A href="#SecCIMProtocolVersion" >CIMProtocolVersion</A> in the
3565 response. This provides a way for a client to discover the version of
3566 the CIM HTTP mapping supported by the CIM Server.
3567 <LI>Return the CIM Extension Header <A href="#SecCIMSupportedFunctionalGroups" >CIMSupportedFunctionalGroups</A>
3568 in the response. This provides a way for a client to discover the CIM
3569 Operations supported by the CIM Server.
3570 <LI>Return the CIM Extension Header <A href="#SecCIMSupportsMultipleOperations" >CIMSupportsMultipleOperations</A>
3571 karl 1.1 in the response. This provides a way for the client to discover whether
3572 the CIM Server can support <A href="#DefMultipleOperationRequest" >Multiple
3573 Operation Requests</A>.</LI></UL>
3574 <P>In addition, if the CIM Server supports one or more
3575 query languages, it SHOULD:</P>
3576 <UL>
3577 <LI>Return the CIM Extension Header <A href="#SecCIMSupportedQueryLanguages" >CIMSupportedQueryLanguages</A>
3578 in the response. This allows the client to discover the query languages
3579 supported by the CIM Server.</LI></UL>
3580 <P>In addition, if the CIM Server runs in a fixed
3581 validation mode, it SHOULD:</P>
3582 <UL>
3583 <LI>Return the CIM Extension Header <A href="#SecCIMValidation" >CIMValidation</A> in the response.
3584 This allows the client to determine whether the CIM Server is strictly
3585 validating or loosely validating.</LI></UL>
3586 <P>If the <A href="#SecCIMProtocolVersion" >CIMProtocolVersion</A>, <A href="#SecCIMSupportedFunctionalGroups" >CIMSupportedFunctionalGroups</A>,
3587 <A href="#SecCIMSupportsMultipleOperations" >CIMSupportsMultipleOperations</A>, <A href="#SecCIMValidation" >CIMValidation</A> or <A href="#SecCIMSupportedQueryLanguages" >CIMSupportedQueryLanguages</A> extension
3588 headers are included in the response, the CIM Server MUST declare them
3589 as Optional extension headers using the "Opt" header defined in [9].</P>
3590 <P>The full format of the "Opt" header declaration for this
3591 specification is:</P>
3592 karl 1.1 <P>
3593 <TABLE class=Definition id=TABLE2 style="LEFT: 26px; TOP: 4180px">
3594 <TBODY>
3595 <TR>
3596 <TD
3597 >Opt
3598 = "Opt" ":" "<A href="http://www.dmtf.org/cim/mapping/http/v1.0"
3599 >http://www.dmtf.org/cim/mapping/http/v1.0</A>"</TD></TR>
3600 <TR>
3601 <TD
3602 > ";"
3603 "ns" "=" header-prefix</TD></TR>
3604 <TR>
3605 <TD>header-prefix =
3606 2*DIGIT</TD></TR></TBODY></TABLE>
3607 <P>This header-prefix SHOULD be generated at random on a
3608 per-HTTP message basis, and SHOULD NOT necessarily be a specific number.</P>
3609 <P>For example the following is a fragment of a legitimate
3610 OPTIONS response from a CIM Server:</P>
3611 <P>
3612 <TABLE class=Example id=TABLE2>
3613 karl 1.1 <TBODY>
3614 <TR>
3615 <TD>HTTP/1.1 200 OK</TD></TR>
3616 <TR>
3617 <TD>Opt: <A
3618 href="http://www.dmtf.org/cim/mapping/http/v1.0"
3619 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
3620 ns=77</TD></TR>
3621 <TR>
3622 <TD>77-CIMProtocolVersion: 1.0</TD>
3623 <TR>
3624 <TD>77-CIMSupportedFunctionalGroups: basic-read</TD></TR>
3625 <TR>
3626 <TD>77-CIMBatch</TD></TR>
3627 <TR>
3628 <TD>77-CIMSupportedQueryLanguages: wql</TD></TR>
3629 <TR>
3630 <TD>...</TD></TR></TBODY></TABLE>
3631 <P><A href="#top" >Back to contents</A></P>
3632 <H3>4.5.1. <A name=SecCIMSupportedFunctionalGroups>CIMSupportedFunctionalGroups</A></H3>
3633 <P>The CIMSupportedFunctionalGroups extension header SHOULD
3634 karl 1.1 be returned by a <A href="#DefCIMServer" >CIM Server</A> in any OPTIONS response. It
3635 MUST NOT be returned in any other scenario.</P>
3636 <P>This header is defined as follows:</P>
3637 <P>
3638 <TABLE class=Definition>
3639 <TBODY>
3640 <TR>
3641 <TD>CIMSupportedFunctionalGroups =
3642 "CIMSupportedFunctionalGroups" ":" 1#functional-group<BR
3643 ><BR
3644 >functional-group = "<A href="#DefBasicRead" >basic-read</A>" |<BR
3645 >
3646 "<A href="#DefBasicWrite" >basic-write</A>" |<BR
3647 >
3648 "<A href="#DefSchemaManipulation" >schema-manipulation</A>" |<BR
3649 > "<A href="#DefInstanceManipulation" >instance-manipulation</A>" |<BR
3650 > "<A href="#DefQualifierDeclaration" >qualifier-declaration</A>" |<BR
3651 >
3652 "<A href="#DefAssociationTraversal" >association-traversal</A>" |<BR
3653 >
3654 "<A href="#DefQueryExecution" >query-execution</A>"</TD></TR></TBODY></TABLE>
3655 karl 1.1 <P>The functional group definitions correspond directly to
3656 those listed in <A href="#SecFunctionalProfiles" >Functional Profiles</A>. All CIM
3657 Servers MUST support the basic-read functional group. All <A href="#DefCIMClient" >CIM
3658 Clients</A> MAY assume that any CIM Server supports the basic-read functional
3659 group.</P>
3660 <P>The list of functional groups returned by a CIM Server
3661 MUST contain the basic-read group, and MUST NOT contain any duplicates.
3662 CIM Clients MUST ignore any duplicate entries in the functional-group list.</P>
3663 <P>If a functional group is included in the list, then the
3664 CIM Client MUST assume that all other groups on which it depends (according to
3665 the rules defined in <A href="#SecFunctionalProfiles" >Functional Profiles</A>) are also
3666 supported. A CIM Server SHOULD NOT explicitly include a functional group
3667 in the list whose presence may be inferred implicitly by a dependency.</P>
3668 <P>For example the following HTTP response message
3669 indicates that the CIM Server supports instance-manipulation,
3670 association-traversal, basic-write and basic-read.</P>
3671 <P>
3672 <TABLE class=Example id=TABLE2>
3673 <TBODY>
3674 <TR>
3675 <TD>HTTP/1.1 200 OK</TD></TR>
3676 karl 1.1 <TR>
3677 <TD>Opt: <A
3678 href="http://www.dmtf.org/cim/mapping/http/v1.0"
3679 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
3680 ns=77</TD></TR>
3681 <TR>
3682 <TD>77-CIMProtocolVersion: 1.0</TD>
3683 <TR>
3684 <TD>77-CIMSupportedFunctionalGroups:
3685 association-traversal, instance-manipulation</TD></TR>
3686 <TR>
3687 <TD>...</TD></TR></TBODY></TABLE>
3688 <P>Support for a functional group does <EM>not</EM> imply that any method from that group will always
3689 succeed. Rather, the absence (whether explicit or implied) of the
3690 functional group from this header is an indication to the CIM Client that
3691 methods in that group will <EM>never</EM> succeed.</P>
3692 <P><A href="#top" >Back to contents</A></P>
3693 <H3><A name=SecCIMSupportsMultipleOperations>4.5.2. CIMSupportsMultipleOperations</A></H3>
3694 <P>The CIMSupportsMultipleOperations extension
3695 header MUST be returned in an OPTIONS response by any <A href="#DefCIMServer" >CIM
3696 Server</A> that supports <A href="#DefMultipleOperationRequest" >Multiple
3697 karl 1.1 Operation Requests</A>. It MUST NOT be returned in any other
3698 circumstances.</P>
3699 <P>This header is defined as follows:</P>
3700 <P>
3701 <TABLE class=Definition>
3702 <TBODY>
3703 <TR>
3704 <TD>CIMSupportsMultipleOperations =
3705 "CIMSupportsMultipleOperations"</TD></TR></TBODY></TABLE>
3706 <P>The presence of this header indicates that the Server
3707 can accept and process Multiple Operation Requests. The absence of this
3708 header indicates that the Server can only accept and process <A href="#DefSimpleOperationRequest" >Simple Operation Requests</A>.</P>
3709 <P><A href="#top" >Back to contents</A></P>
3710 <H3>4.5.3. <A name=SecCIMSupportedQueryLanguages>CIMSupportedQueryLanguages</A></H3>
3711 <P>The CIMSupportedQueryLanguages extension header SHOULD
3712 be returned by a <A href="#DefCIMServer" >CIM Server</A> that supports at least one query
3713 language in any OPTIONS response. It MUST NOT be returned in any other
3714 scenario.</P>
3715 <P>This header is defined as follows (<FONT
3716 face="Courier New">token</FONT> has the meaning conferred
3717 by [7, section 2.2]:</P>
3718 karl 1.1 <P>
3719 <TABLE class=Definition>
3720 <TBODY>
3721 <TR>
3722 <TD>CIMSupportedQueryLanguages =
3723 "CIMSupportedQueryLanguages" ":" 1#query-language<BR
3724 ><BR
3725 >query-language
3726 = token</TD></TR></TBODY></TABLE>
3727 <P>The query-language value MUST be treated as
3728 case-insensitive. It is anticipated that query languages will be submitted
3729 for approval to the DMTF, and each submission will define a value for this token
3730 to enable it to be specified in this header.</P>
3731 <P><A href="#top" >Back to contents</A></P>
3732 <H3><A name=SecCIMValidation>4.5.4.
3733 CIMValidation</A></H3>
3734 <P>The CIMValidation extension header MAY be returned
3735 by a <A href="#DefCIMServer" >CIM Server</A> to provide information concerning
3736 the level of validation of <A href="#DefCIMOperationRequest" >CIM Operation
3737 Request</A> messages.</P>
3738 <P>This header is defined as follows:</P>
3739 karl 1.1 <P>
3740 <TABLE class=Definition>
3741 <TBODY>
3742 <TR>
3743 <TD>CIMValidation = "CIMValidation"
3744 ":" validation-level<BR
3745 >validation-level = "validating" |<BR
3746 > "loosely-validating"</TD></TR></TBODY></TABLE>
3747 <P>A validation-level of <FONT face="Courier New">validating</FONT> indicates that the CIM Server will always
3748 apply strict validation of each CIM Operation Request. A validation-level of
3749 <FONT face="Courier New">loosely-validating</FONT>
3750 indicates that the CIM Server will apply <A href="#DefLooselyValid" >loose
3751 validation</A> of each CIM Operation Request.</P>
3752 <P>In the absence of this header, a CIM Client SHOULD
3753 assume that the CIM Server operates in strict validation mode.</P>
3754 <P><A href="#top" >Back to contents</A></P>
3755 <H2><A name=SecOtherHTTPMethods>4.6.
3756 Other HTTP Methods</A></H2>
3757 <P>This specification does not in any way define or
3758 constrain the manner in which a CIM Client or Server uses any HTTP Method other
3759 than those explicitly referred to herein.</P>
3760 karl 1.1 <P><A href="#top" >Back to contents</A></P>
3761 <H2><A name=SecDiscoveryAndAddressing>4.7. Discovery and Addressing</A></H2>
3762 <P>The target URI of the <A href="#DefCIMOperationRequest" >CIM Operation
3763 Request</A> is defined to be the location of the <A href="#DefCIMServer" >CIM Server</A>. This
3764 specification does not constrain the format of this URI other than it be a valid
3765 URI [13] for the purposes of describing an HTTP-addressable resource.</P>
3766 <P>An HTTP Server which supports the CIM Mapping
3767 defined herein, and which supports the OPTIONS method, SHOULD include the
3768 following CIM extension header in an OPTIONS response:</P>
3769 <UL>
3770 <LI>CIMOM</LI></UL>
3771 <P>This header is defined as follows:</P>
3772 <P>
3773 <TABLE class=Definition>
3774 <TBODY>
3775 <TR>
3776 <TD>CIMOM =
3777 "CIMOM" ":" (absoluteURI | relativeURI)</TD></TR></TBODY></TABLE>
3778 <P>The terms absoluteURI and relativeURI are taken from
3779 [7]; they indicate the location of the CIM Server for this HTTP Server.</P>
3780 <P>If the CIMOM extension header is included in the
3781 karl 1.1 response, the CIM Server MUST declare it an Optional extension header in an
3782 analagous fashion to that described in the section on <A href="#SecDeterminingCIMServerCapabilities" >Determining CIM Server
3783 Capabilities</A>.</P>
3784 <P>A <A href="#DefCIMClient" >CIM Client</A> that wishes to communicate with a
3785 CIM Server on an HTTP Server SHOULD try an OPTIONS request to that HTTP
3786 Server. If the OPTIONS request fails, or the response does not include the
3787 CIM-CIMOM extension header, then the CIM Client MAY assume that the value of
3788 CIM-CIMOM is the relative URI <STRONG>cimom</STRONG>.</P>
3789 <P>Other discovery mechanisms are outside the scope of
3790 this version of the specification.</P>
3791 <P><U>Example 1</U></P>
3792 <P>This example shows an HTTP Server located
3793 at <A href="http://www.dmtf.org">http://www.dmtf.org</A> issuing an OPTIONS response to
3794 an HTTP client to indicate that its CIM Server is located at <A
3795 href="http://www.dmtf.org/access/cimom">http://www.dmtf.org/access/cimom</A>.</P>
3796 <P>
3797 <TABLE class=Example id=TABLE2>
3798 <TBODY>
3799 <TR>
3800 <TD>HTTP/1.1 200 OK</TD></TR>
3801 <TR>
3802 karl 1.1 <TD>Opt: <A
3803 href="http://www.dmtf.org/cim/mapping/http/v1.0"
3804 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
3805 ns=48</TD></TR>
3806 <TR>
3807 <TD>48-CIMOM: /access/cimom</TD>
3808 <TR>
3809 <TD>...</TD></TR></TBODY></TABLE>
3810 <P><U>Example 2</U></P>
3811 <P>If an HTTP Server located at <A
3812 href="http://www.dmtf.org">http://www.dmtf.org</A> responds
3813 with a "501 Not Implemented" to an OPTIONS request from a CIM
3814 Client, the CIM client may then try to contact the CIM Server at <A
3815 href="http://www.dmtf.org/cimom">http://www.dmtf.org/cimom</A>.</P>
3816 <P><A href="#top" >Back to contents</A></P>
3817 <H2>4.8. <A name=SecInternationalizationConsiderations></a><A name=SecInternationalizationConsiderations>Internationalization Considerations</A></H2>
3818 <P>This section defines the capabilities of the CIM
3819 HTTP Mapping with respect to IETF policy guidelines on character sets and
3820 languages [19].</P>
3821 <P>In this specification, human-readable fields can be
3822 found within a response or request entity body. In all cases, any
3823 karl 1.1 human-readable content is encoded using XML (which has explicit provisions for
3824 character set tagging and encoding) and requires that XML processors read XML
3825 elements encoded, at minimum, using the UTF-8 [15] encoding of the ISO 10646
3826 multilingual plane. </P>
3827 <P>XML examples in this specification demonstrate use of
3828 the charset parameter of the Content-Type header, as defined in [10], as well as
3829 the XML <FONT face="Courier New">encoding</FONT> attribute
3830 on the <?xml> processing instruction, which together provide charset
3831 identification information for MIME and XML processors. This specification
3832 mandates that conforming applications MUST support at least the "utf-8" charset
3833 encoding [19] in the Content-Type header, and the "utf-8" value for the XML
3834 <FONT face="Courier New">encoding</FONT>
3835 attribute. </P>
3836 <P>XML also provides a language tagging capability for
3837 specifying the language of the contents of a particular XML element, based on
3838 use of IANA registered language tags [20] in the <FONT face="Courier New">xml:lang</FONT> attribute of an XML element to identify the
3839 language of its content and attributes. The XML CIM DTD [2,11] does not
3840 declare this attribute on any of the XML elements, and therefore conforming
3841 applications MUST NOT use this attribute as otherwise the XML document
3842 would not be valid with respect to that DTD.</P>
3843 <P>This specification defines a number of names of
3844 karl 1.1 HTTP headers and their values. These are constructed using standard
3845 encoding practices so as to always have an HTTP-safe ASCII
3846 representation. Since these headers are not in general visible to users
3847 they do not need to support encoding in multiple character sets.</P>
3848 <P>The XML DTD for CIM [2,11] introduces a number of XML
3849 element names. Similarly these are not visible to an end user and do not
3850 need to support multiple character set encodings.</P>
3851 <P>The CIM model [1] defines the subset of the Unicode
3852 character set that can be used to name CIM elements (Classes, Instances,
3853 Methods, Properties, Qualifiers and Method Parameters). In general these
3854 appear as the value of XML attributes or as element content, and in general
3855 would not be displayed to end users.</P>
3856 <P>Values of CIM Properties and Qualifiers, and error
3857 message descriptions MAY be localizable, but there is no mandate on CIM Servers
3858 to support this. Negotiation and notification of language settings is
3859 effected in this mapping using the standard <A href="#SecAcceptLanguage" >Accept-Language</A> and <A href="#SecContentLanguage" >Content-Language</A> headers defined in
3860 [7].</P>
3861 <P><A name=SecReferences></A></P>
3862 <H1>5. References</H1>
3863 <OL>
3864 <LI><A name=RefCIM></A>"Common
3865 karl 1.1 Information Model (CIM) Specification", Version 2.2, DMTF, 14th June 1999 (<A
3866 href="http://dmtf.org/spec/cim_schema_v201.html"
3867 >http://dmtf.org/spec/cim_schema_v22.pdf</A>)
3868 <LI>"Specification for the Representation of CIM in XML",
3869 Version 2.0, DMTF, 20<SUP>th</SUP> July 1999 (<A
3870 href="http://www.dmtf.org/spec/CIM_XML_Mapping20.htm"
3871 >http://www.dmtf.org/spec/CIM_XML_Mapping20.htm</A>)
3872 <LI>"Extensible Markup Language (XML)", Version 1.0, W3C
3873 Recommendation (<A href="http://www.w3.org/TR/REC-xml"
3874 >http://www.w3.org/TR/REC-xml</A>)
3875 <LI><A name=NamespaceRef
3876 ></A>"Namespaces in XML", 14<SUP
3877 >th</SUP> January 1999, W3C Recommendation (<A
3878 href="http://www.w3.org/TR/REC-xml-names"
3879 >http://www.w3.org/TR/REC-xml-names</A>)
3880 <LI><A name=RefXMLWP></A>"XML as a
3881 Representation for Management Information - A White Paper", Version 1.0,
3882 DMTF, September 15<SUP>th</SUP> 1998 (<A
3883 href="http://www.dmtf.org/spec/xmlw.html"
3884 >http://www.dmtf.org/spec/xmlw.html</A>)
3885 <LI><A name=RefCSS1></A>"Hypertext
3886 karl 1.1 Transfer Protocol -- HTTP/1.0", IETF RFC 1945, May 1996 (<A
3887 href="http://www.ietf.org/rfc/rfc1945.txt"
3888 >http://www.ietf.org/rfc/rfc1945.txt</A>)
3889 <LI><A name=RefCSS2></A>"Hypertext
3890 Transfer Protocol -- HTTP/1.1", IETF RFC 2068, January 1997 (<U
3891 ><FONT color=#0000ff><A
3892 href="http://www.ietf.org/rfc/rfc2068.txt"
3893 >http://www.ietf.org/rfc/rfc2068.txt</A></FONT></U>)
3894 <LI><A name=RefXSL></A>"Key words
3895 for use in RFCs to Indicate Requirement Levels", IETF RFC
3896 2119, March 1997 (<A href="http://www.ietf.org/rfc/rfc2119.txt"
3897 >http://www.ietf.org/rfc/rfc2119.txt</A>)
3898 <LI><A name=RefDOM></A>"HTTP
3899 Extension Framework", IETF Internet Draft, March 15<SUP
3900 >th</SUP> 1999 (<A
3901 href="http://ietf.org/internet-drafts/draft-frystyk-http-extensions-03.txt"
3902 >http://ietf.org/internet-drafts/draft-frystyk-http-extensions-03.txt</A>)
3903
3904 <LI><A name=RefCSS2></A>"Hypertext
3905 Transfer Protocol -- HTTP/1.1", IETF Internet Draft, 18<SUP
3906 >th</SUP> November 1998 (<U
3907 karl 1.1 ><FONT color=#0000ff><A
3908 href="http://ietf.org/internet-drafts/draft-ietf-http-v11-spec-rev-06.txt"
3909 >http://ietf.org/internet-drafts/draft-ietf-http-v11-spec-rev-06.txt</A></FONT></U>
3910 <A href="http://ietf.org/internet-drafts/draft-ietf-http-v11-spec-rev-06.txt"
3911 ></A>)
3912 <LI>"CIM XML DTD", Version 2.0, DMTF, 20<SUP
3913 >th</SUP> July 1999 ( <A
3914 href="http://www.dmtf.org/spec/cim_dtd_V20.txt"
3915 >http://www.dmtf.org/spec/cim_dtd_V20.txt</A>)
3916 <LI>"An Extension to HTTP : Digest Access
3917 Authentication", IETF RFC 2069, January 1997 (<U
3918 ><FONT color=#0000ff><A
3919 href="http://www.ietf.org/rfc/rfc1945.txt"
3920 >http://www.ietf.org/rfc/rfc1945.txt</A></FONT></U>)
3921 <LI>"Uniform Resource Identifiers (URI): Generic Syntax",
3922 IETF RFC 2396, 12<SUP>th</SUP> August 1998 (<A
3923 href="http://www.ietf.org/rfc/rfc2396.txt"
3924 >http://www.ietf.org/rfc/rfc2396.txt</A>)
3925 <LI>"HTTP Authentication: Basic and Digest Access
3926 Authentication", IETF Internet Draft, September 2<SUP
3927 >nd</SUP> 1998 (<U><FONT
3928 karl 1.1 color=#0000ff><A
3929 href="http://ietf.org/internet-drafts/draft-ietf-http-authentication-03.txt"
3930 >http://ietf.org/internet-drafts/draft-ietf-http-authentication-03.txt</A></FONT></U>)
3931
3932 <LI>"UTF-8, a transformation format of Unicode and ISO
3933 10646", RFC 2279, January 1998 (<A href="http://www.ietf.org/rfc/rfc2279.txt"
3934 >http://www.ietf.org/rfc/rfc2279.txt</A>)
3935 <LI>"Uniform Resource Identifiers (URI): Generic Syntax",
3936 IETF RFC 2396, 12<SUP>th</SUP> August 1998 (<A
3937 href="http://www.ietf.org/rfc/rfc2396.txt"
3938 >http://www.ietf.org/rfc/rfc2396.txt</A>)
3939 <LI>"XSL Transformations (XSLT)", Version 1.0,
3940 W3C Working Draft, 21<SUP>st</SUP> April 1999 (<A
3941 href="http://www.w3.org/TR/WD-xsltl"
3942 >http://www.w3.org/TR/WD-xslt</A>)
3943 <LI>"XML Media Types", IETF Informational RFC 2376, July
3944 1998 (<A href="http://www.ietf.org/rfc/rfc2376.txt"
3945 >http://www.ietf.org/rfc/rfc2376.txt</A>)
3946 <LI>"IETF Policy on Character Sets and Languages", IETF
3947 Best Current Practice RFC 2277, January 1998 (<A
3948 href="http://www.ietf.org/rfc/rfc2277.txt"
3949 karl 1.1 >http://www.ietf.org/rfc/rfc2277.txt</A>)
3950 <LI>"Tags for the Identification of Languages", IETF
3951 Standards Track RFC 1766, March 1995 (<A
3952 href="http://www.ietf.org/rfc/rfc1766.txt"
3953 >http://www.ietf.org/rfc/rfc1766.txt</A>)
3954 <LI>"XML Schema Part 1: Structures", W3C Working Draft
3955 6<SUP>th</SUP> May 1999 (<A
3956 href="http://www.w3.org/TR/xmlschema-1/"
3957 >http://www.w3.org/TR/xmlschema-1/</A>)</LI></OL>
3958 <P><A href="#top" >Back to contents</A></P>
3959 <H1><A name=SecAppendixA>Appendix A
3960 </A>- Examples of Message Exchanges</H1>
3961 <P>This section illustrates the protocol defined in this
3962 document by providing examples of valid HTTP request/response exchanges.</P>
3963 <P>For the purposes of clarity additional white space has
3964 been included in the examples, but such white space is not an intrinsic part of
3965 such XML documents. </P>
3966 <H2><A name=SecRetrievalOfASingleClassDefinition>A.1. Retrieval of a Single Class Definition</A></H2>
3967 <P>The following HTTP request illustrates how a client
3968 would request the class CIM_VideoBIOSElement.</P>
3969 <P>
3970 karl 1.1 <TABLE class=Example id=TABLE2>
3971 <TBODY>
3972 <TR>
3973 <TD>M-POST /cimom HTTP/1.1</TD></TR>
3974 <TR>
3975 <TD>HOST: <A href="http://www.erewhon.com"
3976 >www.erewhon.com</A></TD></TR>
3977 <TR>
3978 <TD>Content-Type: application/xml;
3979 charset="utf-8"</TD></TR>
3980 <TR>
3981 <TD>Content-Length: xxxx</TD></TR>
3982 <TR>
3983 <TD>Man: <A
3984 href="http://www.dmtf.org/cim/mapping/http/v1.0"
3985 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
3986 ns=73</TD></TR>
3987 <TR>
3988 <TD>73-CIMOperation: MethodCall</TD>
3989 <TR>
3990 <TD>73-CIMMethod: GetClass</TD></TR>
3991 karl 1.1 <TR>
3992 <TD>73-CIMObject: root/cimv2</TD></TR>
3993 <TR>
3994 <TD></TD></TR>
3995 <TR>
3996 <TD><?xml version="1.0" encoding="utf-8"
3997 ?></TD></TR>
3998 <TR>
3999 <TD><CIM CIMVERSION="2.0"
4000 DTDVERSION="2.0"></TD></TR>
4001 <TR>
4002 <TD> <MESSAGE ID="87872"
4003 PROTOCOLVERSION="1.0"></TD></TR>
4004 <TR>
4005 <TD> <SIMPLEREQ></TD></TR>
4006 <TR>
4007 <TD> <IMETHODCALL
4008 NAME="GetClass"></TD></TR>
4009 <TR>
4010 <TD>
4011 <LOCALNAMESPACEPATH></TD></TR>
4012 karl 1.1 <TR>
4013 <TD> <NAMESPACE
4014 NAME="root"/></TD></TR>
4015 <TR>
4016 <TD> <NAMESPACE
4017 NAME="cimv20"/></TD></TR>
4018 <TR>
4019 <TD>
4020 </LOCALNAMESPACEPATH></TD></TR>
4021 <TR>
4022 <TD> <IPARAMVALUE
4023 NAME="ClassName"><CLASSNAME
4024 NAME="CIM_VideoBIOSElement"/></IPARAMVALUE></TD></TR>
4025 <TR>
4026 <TD> <IPARAMVALUE
4027 NAME="LocalOnly"><VALUE>FALSE</VALUE></IPARAMVALUE></TD></TR>
4028 <TR>
4029 <TD> </IMETHODCALL></TD></TR>
4030 <TR>
4031 <TD> </SIMPLEREQ></TD></TR>
4032 <TR>
4033 karl 1.1 <TD> </MESSAGE></TD></TR>
4034 <TR>
4035 <TD></CIM></TD></TR></TBODY></TABLE>
4036 <P>The following is an HTTP response to the above request
4037 indicating success of the requested operation. For clarity of exposition
4038 the complete definition of the returned <CLASS> element has not been
4039 shown.</P>
4040 <P>
4041 <TABLE class=Example id=TABLE2>
4042 <TBODY>
4043 <TR>
4044 <TD>HTTP/1.1 200 OK</TD></TR>
4045 <TR>
4046 <TD>Content-Type: application/xml;
4047 charset="utf-8"</TD></TR>
4048 <TR>
4049 <TD>Content-Length: xxxx</TD></TR>
4050 <TR>
4051 <TD>Ext:</TD></TR>
4052 <TR>
4053 <TD>Cache-Control: no-cache</TD></TR>
4054 karl 1.1 <TR>
4055 <TD>Man: <A
4056 href="http://www.dmtf.org/cim/mapping/http/v1.0"
4057 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
4058 ns=73</TD></TR>
4059 <TR>
4060 <TD>73-CIMOperation: MethodResponse</TD>
4061 <TR>
4062 <TD></TD></TR>
4063 <TR>
4064 <TD><?xml version="1.0" encoding="utf-8"
4065 ?></TD></TR>
4066 <TR>
4067 <TD><CIM CIMVERSION="2.0"
4068 DTDVERSION="2.0"></TD></TR>
4069 <TR>
4070 <TD> <MESSAGE ID="87872"
4071 PROTOCOLVERSION="1.0"></TD></TR>
4072 <TR>
4073 <TD> <SIMPLERSP></TD></TR>
4074 <TR>
4075 karl 1.1 <TD> <IMETHODRESPONSE
4076 NAME="GetClass"></TD></TR>
4077 <TR>
4078 <TD> <IRETURNVALUE></TD></TR>
4079 <TR>
4080 <TD> <CLASS
4081 NAME="CIM_VideoBIOSElement" SUPERCLASS="CIM_SoftwareElement"></TD></TR>
4082 <TR>
4083 <TD> ...</TD></TR>
4084 <TR>
4085 <TD>
4086 </CLASS></TD></TR>
4087 <TR>
4088 <TD> </IRETURNVALUE></TD></TR>
4089 <TR>
4090 <TD> </IMETHODRESPONSE></TD></TR>
4091 <TR>
4092 <TD> </SIMPLERSP></TD></TR>
4093 <TR>
4094 <TD> </MESSAGE></TD></TR>
4095 <TR>
4096 karl 1.1 <TD></CIM></TD></TR></TBODY></TABLE>
4097 <P><A href="#top" >Back to contents</A></P>
4098 <H2><A name=SecRetrievalOfASingleInstanceDefinition>A.2. Retrieval of a Single Instance
4099 Definition</A></H2>
4100 <P>The following HTTP request illustrates how a client
4101 would request the instance MyClass.MyKey="S3".</P>
4102 <P>
4103 <TABLE class=Example id=TABLE2>
4104 <TBODY>
4105 <TR>
4106 <TD>M-POST /cimom HTTP/1.1</TD></TR>
4107 <TR>
4108 <TD>HOST: <A href="http://www.erewhon.com"
4109 >www.erewhon.com</A></TD></TR>
4110 <TR>
4111 <TD>Content-Type: application/xml;
4112 charset="utf-8"</TD></TR>
4113 <TR>
4114 <TD>Content-Length: xxxx</TD></TR>
4115 <TR>
4116 <TD>Man: <A
4117 karl 1.1 href="http://www.dmtf.org/cim/mapping/http/v1.0"
4118 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
4119 ns=73</TD></TR>
4120 <TR>
4121 <TD>73-CIMOperation: MethodCall</TD>
4122 <TR>
4123 <TD>73-CIMMethod: GetInstance</TD></TR>
4124 <TR>
4125 <TD>73-CIMObject: root/cimv2</TD></TR>
4126 <TR>
4127 <TD></TD></TR>
4128 <TR>
4129 <TD><?xml version="1.0" encoding="utf-8"
4130 ?></TD></TR>
4131 <TR>
4132 <TD><CIM CIMVERSION="2.0"
4133 DTDVERSION="1.1"></TD></TR>
4134 <TR>
4135 <TD> <MESSAGE ID="87855"
4136 PROTOCOLVERSION="1.0"></TD></TR>
4137 <TR>
4138 karl 1.1 <TD> <SIMPLEREQ></TD></TR>
4139 <TR>
4140 <TD> <IMETHODCALL
4141 NAME="GetInstance"></TD></TR>
4142 <TR>
4143 <TD>
4144 <LOCALNAMESPACEPATH></TD></TR>
4145 <TR>
4146 <TD> <NAMESPACE
4147 NAME="root"/></TD></TR>
4148 <TR>
4149 <TD> <NAMESPACE
4150 NAME="myNamespace"/></TD></TR>
4151 <TR>
4152 <TD>
4153 </LOCALNAMESPACEPATH></TD></TR>
4154 <TR>
4155 <TD> <IPARAMVALUE
4156 NAME="InstanceName"></TD></TR>
4157 <TR>
4158 <TD> <INSTANCENAME
4159 karl 1.1 CLASSNAME="MyClass"></TD></TR>
4160 <TR>
4161 <TD>
4162 <KEYBINDING
4163 NAME="MyKey"><KEYVALUE>S3</KEYVALUE></KEYBINDING></TD></TR>
4164 <TR>
4165 <TD>
4166 </INSTANCENAME></TD></TR>
4167 <TR>
4168 <TD> </IPARAMVALUE></TD></TR>
4169 <TR>
4170 <TD> <IPARAMVALUE
4171 NAME="LocalOnly"><VALUE>FALSE</VALUE></IPARAMVALUE></TD></TR>
4172 <TR>
4173 <TD> </IMETHODCALL></TD></TR>
4174 <TR>
4175 <TD> </SIMPLEREQ></TD></TR>
4176 <TR>
4177 <TD> </MESSAGE></TD></TR>
4178 <TR>
4179 <TD></CIM></TD></TR></TBODY></TABLE>
4180 karl 1.1 <P>The following is an HTTP response to the above request
4181 indicating an error due to the specified instance not being found.</P>
4182 <P>
4183 <TABLE class=Example id=TABLE2>
4184 <TBODY>
4185 <TR>
4186 <TD>HTTP/1.1 200 OK</TD></TR>
4187 <TR>
4188 <TD>Content-Type: application/xml;
4189 charset="utf-8"</TD></TR>
4190 <TR>
4191 <TD>Content-Length: xxxx</TD></TR>
4192 <TR>
4193 <TD>Ext:</TD></TR>
4194 <TR>
4195 <TD>Cache-Control: no-cache</TD></TR>
4196 <TR>
4197 <TD>Man: <A
4198 href="http://www.dmtf.org/cim/mapping/http/v1.0"
4199 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
4200 ns=73</TD></TR>
4201 karl 1.1 <TR>
4202 <TD>73-CIMOperation: MethodResponse</TD>
4203 <TR>
4204 <TD></TD></TR>
4205 <TR>
4206 <TD><?xml version="1.0" encoding="utf-8"
4207 ?></TD></TR>
4208 <TR>
4209 <TD><CIM CIMVERSION="2.0"
4210 DTDVERSION="2.0"></TD></TR>
4211 <TR>
4212 <TD> <MESSAGE ID="87885"
4213 PROTOCOLVERSION="1.0"></TD></TR>
4214 <TR>
4215 <TD> <SIMPLERSP></TD></TR>
4216 <TR>
4217 <TD> <IMETHODRESPONSE
4218 NAME="GetInstance"></TD></TR>
4219 <TR>
4220 <TD> <ERROR CODE="6"
4221 DESCRIPTION="Instance of MyClass not found"/></TD></TR>
4222 karl 1.1 <TR>
4223 <TD> </IMETHODRESPONSE></TD></TR>
4224 <TR>
4225 <TD> </SIMPLERSP></TD></TR>
4226 <TR>
4227 <TD> </MESSAGE></TD></TR>
4228 <TR>
4229 <TD></CIM></TD></TR></TBODY></TABLE>
4230 <P><A href="#top" >Back to contents</A></P>
4231 <H2><A name=SecDeletionOfASingleClassDefinition>A.3. Deletion of a Single Class Definition</A></H2>
4232 <P>The following HTTP request illustrates how a client
4233 would delete the class CIM_VideoBIOSElement.</P>
4234 <P>
4235 <TABLE class=Example id=TABLE2>
4236 <TBODY>
4237 <TR>
4238 <TD>M-POST /cimom HTTP/1.1</TD></TR>
4239 <TR>
4240 <TD>HOST: <A href="http://www.erewhon.com"
4241 >www.erewhon.com</A></TD></TR>
4242 <TR>
4243 karl 1.1 <TD>Content-Type: application/xml;
4244 charset="utf-8"</TD></TR>
4245 <TR>
4246 <TD>Content-Length: xxxx</TD></TR>
4247 <TR>
4248 <TD>Man: <A
4249 href="http://www.dmtf.org/cim/mapping/http/v1.0"
4250 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
4251 ns=73</TD></TR>
4252 <TR>
4253 <TD>73-CIMOperation: MethodCall</TD>
4254 <TR>
4255 <TD>73-CIMMethod: DeleteClass</TD></TR>
4256 <TR>
4257 <TD>73-CIMObject: root/cimv2</TD></TR>
4258 <TR>
4259 <TD></TD></TR>
4260 <TR>
4261 <TD><?xml version="1.0" encoding="utf-8"
4262 ?></TD></TR>
4263 <TR>
4264 karl 1.1 <TD><CIM CIMVERSION="2.0"
4265 DTDVERSION="2.0"></TD></TR>
4266 <TR>
4267 <TD> <MESSAGE ID="87872"
4268 PROTOCOLVERSION="1.0"></TD></TR>
4269 <TR>
4270 <TD> <SIMPLEREQ></TD></TR>
4271 <TR>
4272 <TD> <IMETHODCALL
4273 NAME="DeleteClass"></TD></TR>
4274 <TR>
4275 <TD
4276 > <LOCALNAMESPACEPATH></TD></TR>
4277 <TR>
4278 <TD> <NAMESPACE
4279 NAME="root"/></TD></TR>
4280 <TR>
4281 <TD> <NAMESPACE
4282 NAME="cimv20"/></TD></TR>
4283 <TR>
4284 <TD>
4285 karl 1.1 </LOCALNAMESPACEPATH></TD></TR>
4286 <TR>
4287 <TD> <IPARAMVALUE
4288 NAME="ClassName"><CLASSNAME
4289 NAME="CIM_VideoBIOSElement"/></IPARAMVALUE></TD></TR>
4290 <TR>
4291 <TD> </IMETHODCALL></TD></TR>
4292 <TR>
4293 <TD> </SIMPLEREQ></TD></TR>
4294 <TR>
4295 <TD> </MESSAGE></TD></TR>
4296 <TR>
4297 <TD></CIM></TD></TR></TBODY></TABLE>
4298 <P>The following is an HTTP response to the above request
4299 indicating failure of the above operation due to the inability to delete
4300 instances of the Class.</P>
4301 <P>
4302 <TABLE class=Example id=TABLE2>
4303 <TBODY>
4304 <TR>
4305 <TD>HTTP/1.1 200 OK</TD></TR>
4306 karl 1.1 <TR>
4307 <TD>Content-Type: application/xml;
4308 charset="utf-8"</TD></TR>
4309 <TR>
4310 <TD>Content-Length: xxxx</TD></TR>
4311 <TR>
4312 <TD>Ext:</TD></TR>
4313 <TR>
4314 <TD>Cache-Control: no-cache</TD></TR>
4315 <TR>
4316 <TD>Man: <A
4317 href="http://www.dmtf.org/cim/mapping/http/v1.0"
4318 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
4319 ns=73</TD></TR>
4320 <TR>
4321 <TD>73-CIMOperation: MethodResponse</TD>
4322 <TR>
4323 <TD></TD></TR>
4324 <TR>
4325 <TD><?xml version="1.0" encoding="utf-8"
4326 ?></TD></TR>
4327 karl 1.1 <TR>
4328 <TD><CIM CIMVERSION="2.0"
4329 DTDVERSION="2.0"></TD></TR>
4330 <TR>
4331 <TD> <MESSAGE
4332 ID="87872" PROTOCOLVERSION="1.0"></TD></TR>
4333 <TR>
4334 <TD> <SIMPLERSP></TD></TR>
4335 <TR>
4336 <TD> <IMETHODRESPONSE
4337 NAME="DeleteClass"></TD></TR>
4338 <TR>
4339 <TD> <ERROR CODE="9"
4340 DESCRIPTION="Class has non-deletable instances"/></TD></TR>
4341 <TR>
4342 <TD> </IMETHODRESPONSE></TD></TR>
4343 <TR>
4344 <TD> </SIMPLERSP></TD></TR>
4345 <TR>
4346 <TD> </MESSAGE></TD></TR>
4347 <TR>
4348 karl 1.1 <TD></CIM></TD></TR></TBODY></TABLE>
4349 <P><A href="#top" >Back to contents</A></P>
4350 <H2><A name=SecDeletionOfASingleInstanceDefinition>A.4. Deletion of a Single Instance
4351 Definition</A></H2>
4352 <P>The following HTTP request illustrates how a client
4353 would delete the instance MyClass.MyKey="S3".</P>
4354 <P>
4355 <TABLE class=Example id=TABLE2>
4356 <TBODY>
4357 <TR>
4358 <TD>M-POST /cimom HTTP/1.1</TD></TR>
4359 <TR>
4360 <TD>HOST: <A href="http://www.erewhon.com"
4361 >www.erewhon.com</A></TD></TR>
4362 <TR>
4363 <TD>Content-Type: application/xml;
4364 charset="utf-8"</TD></TR>
4365 <TR>
4366 <TD>Content-Length: xxxx</TD></TR>
4367 <TR>
4368 <TD>Man: <A
4369 karl 1.1 href="http://www.dmtf.org/cim/mapping/http/v1.0"
4370 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
4371 ns=73</TD></TR>
4372 <TR>
4373 <TD>73-CIMOperation: MethodCall</TD>
4374 <TR>
4375 <TD>73-CIMMethod: DeleteInstance</TD></TR>
4376 <TR>
4377 <TD>73-CIMObject: root/cimv2</TD></TR>
4378 <TR>
4379 <TD></TD></TR>
4380 <TR>
4381 <TD><?xml version="1.0" encoding="utf-8"
4382 ?></TD></TR>
4383 <TR>
4384 <TD><CIM CIMVERSION="2.0"
4385 DTDVERSION="2.0"></TD></TR>
4386 <TR>
4387 <TD> <MESSAGE ID="87872"
4388 PROTOCOLVERSION="1.0"></TD></TR>
4389 <TR>
4390 karl 1.1 <TD> <SIMPLEREQ></TD></TR>
4391 <TR>
4392 <TD> <IMETHODCALL
4393 NAME="DeleteInstance"></TD></TR>
4394 <TR>
4395 <TD>
4396 <LOCALNAMESPACEPATH></TD></TR>
4397 <TR>
4398 <TD> <NAMESPACE
4399 NAME="root"/></TD></TR>
4400 <TR>
4401 <TD> <NAMESPACE
4402 NAME="myNamespace"/></TD></TR>
4403 <TR>
4404 <TD>
4405 </LOCALNAMESPACEPATH></TD></TR>
4406 <TR>
4407 <TD> <IPARAMVALUE
4408 NAME="InstancePath"></TD></TR>
4409 <TR>
4410 <TD> <INSTANCENAME
4411 karl 1.1 CLASSNAME="MyClass"></TD></TR>
4412 <TR>
4413 <TD>
4414 <KEYBINDING NAME="MyKey"></TD></TR>
4415 <TR>
4416 <TD>
4417 <KEYVALUE>S3</KEYVALUE></TD></TR>
4418 <TR>
4419 <TD
4420 > </KEYBINDING></TD></TR>
4421 <TR>
4422 <TD>
4423 </INSTANCENAME></TD></TR>
4424 <TR>
4425 <TD> </IPARAMVALUE></TD></TR>
4426 <TR>
4427 <TD> </IMETHODCALL></TD></TR>
4428 <TR>
4429 <TD> </SIMPLEREQ></TD></TR>
4430 <TR>
4431 <TD> </MESSAGE></TD></TR>
4432 karl 1.1 <TR>
4433 <TD></CIM></TD></TR></TBODY></TABLE>
4434 <P>The following is an HTTP response to the above request
4435 indicating success of the above operation.</P>
4436 <P>
4437 <TABLE class=Example id=TABLE2>
4438 <TBODY>
4439 <TR>
4440 <TD>HTTP/1.1 200 OK</TD></TR>
4441 <TR>
4442 <TD>Content-Type: application/xml;
4443 charset="utf-8"</TD></TR>
4444 <TR>
4445 <TD>Content-Length: xxxx</TD></TR>
4446 <TR>
4447 <TD>Ext:</TD></TR>
4448 <TR>
4449 <TD>Cache-Control: no-cache</TD></TR>
4450 <TR>
4451 <TD>Man: <A href="http://www.dmtf.org/cim/operation"
4452 >http://www.dmtf.org/cim/operation</A> ; ns=73</TD></TR>
4453 karl 1.1 <TR>
4454 <TD>73-CIMOperation: MethodResponse</TD>
4455 <TR>
4456 <TD></TD></TR>
4457 <TR>
4458 <TD><?xml version="1.0" encoding="utf-8"
4459 ?></TD></TR>
4460 <TR>
4461 <TD><CIM CIMVERSION="2.0"
4462 DTDVERSION="2.0"></TD></TR>
4463 <TR>
4464 <TD> <MESSAGE ID="87872"
4465 PROTOCOLVERSION="1.0"></TD></TR>
4466 <TR>
4467 <TD> <SIMPLERSP></TD></TR>
4468 <TR>
4469 <TD> <IMETHODRESPONSE
4470 NAME="DeleteInstance"/></TD></TR>
4471 <TR>
4472 <TD> </SIMPLERSP></TD></TR>
4473 <TR>
4474 karl 1.1 <TD> </MESSAGE></TD></TR>
4475 <TR>
4476 <TD></CIM></TD></TR></TBODY></TABLE>
4477 <P><A href="#top" >Back to contents</A></P>
4478 <H2><A name=SecCreationOfASingleClassDefinition>A.5. Creation of a Single Class Definition</A></H2>
4479 <P>The following HTTP request illustrates how a client
4480 would create the class MySchema_VideoBIOSElement as a subclass of
4481 CIM_VideoBIOSElement. For clarity of exposition most of the submitted
4482 <CLASS> element is omitted from the example.</P>
4483 <P>
4484 <TABLE class=Example id=TABLE2>
4485 <TBODY>
4486 <TR>
4487 <TD>M-POST /cimom HTTP/1.1</TD></TR>
4488 <TR>
4489 <TD>HOST: <A href="http://www.erewhon.com"
4490 >www.erewhon.com</A></TD></TR>
4491 <TR>
4492 <TD>Content-Type: application/xml;
4493 charset="utf-8"</TD></TR>
4494 <TR>
4495 karl 1.1 <TD>Content-Length: xxxx</TD></TR>
4496 <TR>
4497 <TD>Man: <A
4498 href="http://www.dmtf.org/cim/mapping/http/v1.0"
4499 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
4500 ns=73</TD></TR>
4501 <TR>
4502 <TD>73-CIMOperation: MethodCall</TD>
4503 <TR>
4504 <TD>73-CIMMethod: CreateClass</TD></TR>
4505 <TR>
4506 <TD>73-CIMObject: root/cimv2</TD></TR>
4507 <TR>
4508 <TD></TD></TR>
4509 <TR>
4510 <TD><?xml version="1.0" encoding="utf-8"
4511 ?></TD></TR>
4512 <TR>
4513 <TD><CIM CIMVERSION="2.0"
4514 DTDVERSION="2.0"></TD></TR>
4515 <TR>
4516 karl 1.1 <TD> <MESSAGE ID="87872"
4517 PROTOCOLVERSION="1.0"></TD></TR>
4518 <TR>
4519 <TD> <SIMPLEREQ></TD></TR>
4520 <TR>
4521 <TD> <IMETHODCALL
4522 NAME="CreateClass"></TD></TR>
4523 <TR>
4524 <TD>
4525 <LOCALNAMESPACEPATH></TD></TR>
4526 <TR>
4527 <TD> <NAMESPACE
4528 NAME="root"/></TD></TR>
4529 <TR>
4530 <TD> <NAMESPACE
4531 NAME="cimv2"/></TD></TR>
4532 <TR>
4533 <TD>
4534 </LOCALNAMESPACEPATH></TD></TR>
4535 <TR>
4536 <TD> <IPARAMVALUE
4537 karl 1.1 NAME="NewClass"></TD></TR>
4538 <TR>
4539 <TD> <CLASS
4540 NAME="MySchema_VideoBIOSElement"
4541 SUPERCLASS="CIM_VideoBIOSElement"></TD></TR>
4542 <TR>
4543 <TD> ...</TD></TR>
4544 <TR>
4545 <TD> </CLASS></TD></TR>
4546 <TR>
4547 <TD> </IPARAMVALUE></TD></TR>
4548 <TR>
4549 <TD> </IMETHODCALL></TD></TR>
4550 <TR>
4551 <TD> </SIMPLEREQ></TD></TR>
4552 <TR>
4553 <TD> </MESSAGE></TD></TR>
4554 <TR>
4555 <TD></CIM></TD></TR></TBODY></TABLE>
4556 <P>The following is an HTTP response to the above request
4557 indicating success of the above operation.</P>
4558 karl 1.1 <P>
4559 <TABLE class=Example id=TABLE2>
4560 <TBODY>
4561 <TR>
4562 <TD>HTTP/1.1 200 OK</TD></TR>
4563 <TR>
4564 <TD>Content-Type: application/xml;
4565 charset="utf-8"</TD></TR>
4566 <TR>
4567 <TD>Content-Length: xxxx</TD></TR>
4568 <TR>
4569 <TD>Ext:</TD></TR>
4570 <TR>
4571 <TD>Cache-Control: no-cache</TD></TR>
4572 <TR>
4573 <TD>Man: <A
4574 href="http://www.dmtf.org/cim/mapping/http/v1.0"
4575 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
4576 ns=73</TD></TR>
4577 <TR>
4578 <TD>73-CIMOperation: MethodResponse</TD>
4579 karl 1.1 <TR>
4580 <TD></TD></TR>
4581 <TR>
4582 <TD><?xml version="1.0" encoding="utf-8"
4583 ?></TD></TR>
4584 <TR>
4585 <TD><CIM CIMVERSION="2.0"
4586 DTDVERSION="2.0"></TD></TR>
4587 <TR>
4588 <TD> <MESSAGE ID="87872"
4589 PROTOCOLVERSION="1.0"></TD></TR>
4590 <TR>
4591 <TD> <SIMPLERSP></TD></TR>
4592 <TR>
4593 <TD> <IMETHODRESPONSE
4594 NAME="CreateClass"/></TD></TR>
4595 <TR>
4596 <TD> </SIMPLERSP></TD></TR>
4597 <TR>
4598 <TD> </MESSAGE></TD></TR>
4599 <TR>
4600 karl 1.1 <TD></CIM></TD></TR></TBODY></TABLE>
4601 <P><A href="#top" >Back to contents</A></P>
4602 <H2><A name=SecCreationOfASingleInstanceDefinition>A.6. Creation of a Single Instance
4603 Definition</A></H2>
4604 <P>The following HTTP request illustrates how a client
4605 would create an instance of the class MySchema_VideoBIOSElement. For
4606 clarity of exposition most of the submitted <INSTANCE> element is omitted
4607 from the example.</P>
4608 <P>
4609 <TABLE class=Example id=TABLE2>
4610 <TBODY>
4611 <TR>
4612 <TD>M-POST /cimom HTTP/1.1</TD></TR>
4613 <TR>
4614 <TD>HOST: <A href="http://www.erewhon.com"
4615 >www.erewhon.com</A></TD></TR>
4616 <TR>
4617 <TD>Content-Type: application/xml;
4618 charset="utf-8"</TD></TR>
4619 <TR>
4620 <TD>Content-Length: xxxx</TD></TR>
4621 karl 1.1 <TR>
4622 <TD>Man: <A
4623 href="http://www.dmtf.org/cim/mapping/http/v1.0"
4624 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
4625 ns=73</TD></TR>
4626 <TR>
4627 <TD>73-CIMOperation: MethodCall</TD>
4628 <TR>
4629 <TD>73-CIMMethod: CreateInstance</TD></TR>
4630 <TR>
4631 <TD>73-CIMObject: root/cimv2</TD></TR>
4632 <TR>
4633 <TD></TD></TR>
4634 <TR>
4635 <TD><?xml version="1.0" encoding="utf-8"
4636 ?></TD></TR>
4637 <TR>
4638 <TD><CIM CIMVERSION="2.0"
4639 DTDVERSION="2.0"></TD></TR>
4640 <TR>
4641 <TD> <MESSAGE ID="87872"
4642 karl 1.1 PROTOCOLVERSION="1.0"></TD></TR>
4643 <TR>
4644 <TD> <SIMPLEREQ></TD></TR>
4645 <TR>
4646 <TD> <IMETHODCALL
4647 NAME="CreateInstance"></TD></TR>
4648 <TR>
4649 <TD>
4650 <LOCALNAMESPACEPATH></TD></TR>
4651 <TR>
4652 <TD> <NAMESPACE
4653 NAME="root"/></TD></TR>
4654 <TR>
4655 <TD> <NAMESPACE
4656 NAME="cimv20"/></TD></TR>
4657 <TR>
4658 <TD> </LOCALNAMESPACEPATH></TD></TR>
4659 <TR>
4660 <TD> <IPARAMVALUE
4661 NAME="NewInstance"></TD></TR>
4662 <TR>
4663 karl 1.1 <TD> <INSTANCE
4664 CLASSNAME="CIM_VideoBIOSElement"></TD></TR>
4665 <TR>
4666 <TD> ...</TD></TR>
4667 <TR>
4668 <TD> </INSTANCE></TD></TR>
4669 <TR>
4670 <TD> </IPARAMVALUE></TD></TR>
4671 <TR>
4672 <TD> </IMETHODCALL></TD></TR>
4673 <TR>
4674 <TD> </SIMPLEREQ></TD></TR>
4675 <TR>
4676 <TD> </MESSAGE></TD></TR>
4677 <TR>
4678 <TD></CIM></TD></TR></TBODY></TABLE>
4679 <P>The following is an HTTP response to the above request
4680 indicating success of the above operation.</P>
4681 <P>
4682 <TABLE class=Example id=TABLE2>
4683 <TBODY>
4684 karl 1.1 <TR>
4685 <TD>HTTP/1.1 200 OK</TD></TR>
4686 <TR>
4687 <TD>Content-Type: application/xml;
4688 charset="utf-8"</TD></TR>
4689 <TR>
4690 <TD>Content-Length: xxxx</TD></TR>
4691 <TR>
4692 <TD>Ext:</TD></TR>
4693 <TR>
4694 <TD>Cache-Control: no-cache</TD></TR>
4695 <TR>
4696 <TD>Man: <A
4697 href="http://www.dmtf.org/cim/mapping/http/v1.0"
4698 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
4699 ns=73</TD></TR>
4700 <TR>
4701 <TD>73-CIMOperation: MethodResponse</TD>
4702 <TR>
4703 <TD></TD></TR>
4704 <TR>
4705 karl 1.1 <TD><?xml version="1.0" encoding="utf-8"
4706 ?></TD></TR>
4707 <TR>
4708 <TD><CIM CIMVERSION="2.0"
4709 DTDVERSION="2.0"></TD></TR>
4710 <TR>
4711 <TD> <MESSAGE ID="87872"
4712 PROTOCOLVERSION="1.0"></TD></TR>
4713 <TR>
4714 <TD> <SIMPLERSP></TD></TR>
4715 <TR>
4716 <TD> <IMETHODRESPONSE
4717 NAME="CreateInstance"></TD></TR>
4718 <TR>
4719 <TD> <IRETURNVALUE></TD></TR>
4720 <TR>
4721 <TD> <INSTANCENAME
4722 CLASSNAME="MySchema_VideoBIOSElement"></TD></TR>
4723 <TR>
4724 <TD>
4725 <KEYBINDING NAME="Name"></TD></TR>
4726 karl 1.1 <TR>
4727 <TD>
4728 <KEYVALUE>S4</KEYVALUE></TD></TR>
4729 <TR>
4730 <TD>
4731 </KEYBINDING></TD></TR>
4732 <TR>
4733 <TD>
4734 </INSTANCENAME></TD></TR>
4735 <TR>
4736 <TD> </IRETURNVALUE></TD></TR>
4737 <TR>
4738 <TD> </IRETURNVALUE></TD></TR>
4739 <TR>
4740 <TD> </SIMPLERSP></TD></TR>
4741 <TR>
4742 <TD> </MESSAGE></TD></TR>
4743 <TR>
4744 <TD></CIM></TD></TR></TBODY></TABLE>
4745 <P><A href="#top" >Back to contents</A></P>
4746 <H2><A name=SecCreationOfASingleInstanceDefinition>A.7. </A><A name=#SecEnumerationOfClasses>Enumeration of Class Names</A></H2>
4747 karl 1.1 <P>The following HTTP request illustrates how a client
4748 would enumerate the names of all subclasses of the class
4749 CIM_SoftwareElement. </P>
4750 <P>
4751 <TABLE class=Example id=TABLE2>
4752 <TBODY>
4753 <TR>
4754 <TD>M-POST /cimom HTTP/1.1</TD></TR>
4755 <TR>
4756 <TD>HOST: <A href="http://www.erewhon.com"
4757 >www.erewhon.com</A></TD></TR>
4758 <TR>
4759 <TD>Content-Type: application/xml;
4760 charset="utf-8"</TD></TR>
4761 <TR>
4762 <TD>Content-Length: xxxx</TD></TR>
4763 <TR>
4764 <TD>Man: <A
4765 href="http://www.dmtf.org/cim/mapping/http/v1.0"
4766 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
4767 ns=73</TD></TR>
4768 karl 1.1 <TR>
4769 <TD>73-CIMOperation: MethodCall</TD>
4770 <TR>
4771 <TD>73-CIMMethod: EnumerateClassNames</TD></TR>
4772 <TR>
4773 <TD>73-CIMObject: root/cimv2</TD></TR>
4774 <TR>
4775 <TD></TD></TR>
4776 <TR>
4777 <TD><?xml version="1.0" encoding="utf-8"
4778 ?></TD></TR>
4779 <TR>
4780 <TD><CIM CIMVERSION="2.0"
4781 DTDVERSION="2.0"></TD></TR>
4782 <TR>
4783 <TD> <MESSAGE ID="87872"
4784 PROTOCOLVERSION="1.0"></TD></TR>
4785 <TR>
4786 <TD> <SIMPLEREQ></TD></TR>
4787 <TR>
4788 <TD> <IMETHODCALL
4789 karl 1.1 NAME="EnumerateClassNames"></TD></TR>
4790 <TR>
4791 <TD>
4792 <LOCALNAMESPACEPATH></TD></TR>
4793 <TR>
4794 <TD> <NAMESPACE
4795 NAME="root"/></TD></TR>
4796 <TR>
4797 <TD> <NAMESPACE
4798 NAME="cimv20"/></TD></TR>
4799 <TR>
4800 <TD> </LOCALNAMESPACEPATH></TD></TR>
4801 <TR>
4802 <TD> <IPARAMVALUE
4803 NAME="ClassName"><CLASSNAME
4804 NAME="CIM_SoftwareElement"/></IPARAMVALUE></TD></TR>
4805 <TR>
4806 <TD> <IPARAMVALUE
4807 NAME="DeepInheritance"><VALUE>FALSE</VALUE></IPARAMVALUE></TD></TR>
4808 <TR>
4809 <TD> </IMETHODCALL></TD></TR>
4810 karl 1.1 <TR>
4811 <TD> </SIMPLEREQ></TD></TR>
4812 <TR>
4813 <TD> </MESSAGE></TD></TR>
4814 <TR>
4815 <TD></CIM></TD></TR></TBODY></TABLE>
4816 <P>The following is an HTTP response to the above request
4817 indicating success of the above operation, and returning the names of the
4818 requested subclasses.</P>
4819 <P>
4820 <TABLE class=Example id=TABLE2>
4821 <TBODY>
4822 <TR>
4823 <TD>HTTP/1.1 200 OK</TD></TR>
4824 <TR>
4825 <TD>Content-Type: application/xml;
4826 charset="utf-8"</TD></TR>
4827 <TR>
4828 <TD>Content-Length: xxxx</TD></TR>
4829 <TR>
4830 <TD>Ext:</TD></TR>
4831 karl 1.1 <TR>
4832 <TD>Cache-Control: no-cache</TD></TR>
4833 <TR>
4834 <TD>Man: <A
4835 href="http://www.dmtf.org/cim/mapping/http/v1.0"
4836 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
4837 ns=73</TD></TR>
4838 <TR>
4839 <TD>73-CIMOperation: MethodResponse</TD>
4840 <TR>
4841 <TD></TD></TR>
4842 <TR>
4843 <TD><?xml version="1.0" encoding="utf-8"
4844 ?></TD></TR>
4845 <TR>
4846 <TD><CIM CIMVERSION="2.0"
4847 DTDVERSION="2.0"></TD></TR>
4848 <TR>
4849 <TD> <MESSAGE ID="87872"
4850 PROTOCOLVERSION="1.0"></TD></TR>
4851 <TR>
4852 karl 1.1 <TD> <SIMPLERSP></TD></TR>
4853 <TR>
4854 <TD> <IMETHODRESPONSE
4855 NAME="EnumerateClassNames"></TD></TR>
4856 <TR>
4857 <TD> <IRETURNVALUE></TD></TR>
4858 <TR>
4859 <TD> <CLASSNAME
4860 NAME="CIM_BIOSElement"/></TD></TR>
4861 <TR>
4862 <TD> <CLASSNAME
4863 NAME="CIM_VideoBOISElement"/></TD></TR>
4864 <TR>
4865 <TD> </IRETURNVALUE></TD></TR>
4866 <TR>
4867 <TD> </IMETHODRESPONSE></TD></TR>
4868 <TR>
4869 <TD> </SIMPLERSP></TD></TR>
4870 <TR>
4871 <TD> </MESSAGE></TD></TR>
4872 <TR>
4873 karl 1.1 <TD></CIM></TD></TR></TBODY></TABLE>
4874 <P><A href="#top" >Back to contents</A></P>
4875 <H2><A name=SecCreationOfASingleInstanceDefinition>A.8. </A><A name=SecEnumerationOfInstances>Enumeration of Instances</A></H2>
4876 <P>The following HTTP request illustrates how a client
4877 would enumerate all instances of the class CIM_LogicalDisk. For clarity of
4878 exposition most of the returned Instances are omitted from the
4879 example.</P>
4880 <P>
4881 <TABLE class=Example id=TABLE2>
4882 <TBODY>
4883 <TR>
4884 <TD>M-POST /cimom HTTP/1.1</TD></TR>
4885 <TR>
4886 <TD>HOST: <A href="http://www.erewhon.com"
4887 >www.erewhon.com</A></TD></TR>
4888 <TR>
4889 <TD>Content-Type: application/xml;
4890 charset="utf-8"</TD></TR>
4891 <TR>
4892 <TD>Content-Length: xxxx</TD></TR>
4893 <TR>
4894 karl 1.1 <TD>Man: <A href="http://www.dmtf.org/cim/operation"
4895 >http://www.dmtf.org/cim/operation</A> ; ns=73</TD></TR>
4896 <TR>
4897 <TD>73-CIMOperation: MethodCall</TD>
4898 <TR>
4899 <TD>73-CIMMethod: EnumerateInstances</TD></TR>
4900 <TR>
4901 <TD>73-CIMObject: root/cimv2</TD></TR>
4902 <TR>
4903 <TD></TD></TR>
4904 <TR>
4905 <TD><?xml version="1.0" encoding="utf-8"
4906 ?></TD></TR>
4907 <TR>
4908 <TD><CIM CIMVERSION="2.0"
4909 DTDVERSION="2.0"></TD></TR>
4910 <TR>
4911 <TD> <MESSAGE ID="87872"
4912 PROTOCOLVERSION="1.0"></TD></TR>
4913 <TR>
4914 <TD> <SIMPLEREQ></TD></TR>
4915 karl 1.1 <TR>
4916 <TD> <IMETHODCALL
4917 NAME="EnumerateInstances"></TD></TR>
4918 <TR>
4919 <TD>
4920 <LOCALNAMESPACEPATH></TD></TR>
4921 <TR>
4922 <TD> <NAMESPACE
4923 NAME="root"/></TD></TR>
4924 <TR>
4925 <TD> <NAMESPACE
4926 NAME="cimv20"/></TD></TR>
4927 <TR>
4928 <TD> </LOCALNAMESPACEPATH></TD></TR>
4929 <TR>
4930 <TD> <IPARAMVALUE
4931 NAME="ClassName"><CLASSNAME
4932 NAME="CIM_LogicalDisk"/></IPARAMVALUE></TD></TR>
4933 <TR>
4934 <TD> <IPARAMVALUE
4935 NAME="LocalOnly"><VALUE>TRUE</VALUE></IPARAMVALUE></TD></TR>
4936 karl 1.1 <TR>
4937 <TD> <IPARAMVALUE
4938 NAME="DeepInheritance"><VALUE>TRUE</VALUE></IPARAMVALUE></TD></TR>
4939 <TR>
4940 <TD> </IMETHODCALL></TD></TR>
4941 <TR>
4942 <TD> </SIMPLEREQ></TD></TR>
4943 <TR>
4944 <TD> </MESSAGE></TD></TR>
4945 <TR>
4946 <TD></CIM></TD></TR></TBODY></TABLE>
4947 <P>The following is an HTTP response to the above request
4948 indicating success of the above operation, returning the requested
4949 instances.</P>
4950 <P>
4951 <TABLE class=Example id=TABLE2>
4952 <TBODY>
4953 <TR>
4954 <TD>HTTP/1.1 200 OK</TD></TR>
4955 <TR>
4956 <TD>Content-Type: application/xml;
4957 karl 1.1 charset="utf-8"</TD></TR>
4958 <TR>
4959 <TD>Content-Length: xxxx</TD></TR>
4960 <TR>
4961 <TD>Ext:</TD></TR>
4962 <TR>
4963 <TD>Cache-Control: no-cache</TD></TR>
4964 <TR>
4965 <TD>Man: <A
4966 href="http://www.dmtf.org/cim/mapping/http/v1.0"
4967 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
4968 ns=73</TD></TR>
4969 <TR>
4970 <TD>73-CIMOperation: MethodResponse</TD>
4971 <TR>
4972 <TD></TD></TR>
4973 <TR>
4974 <TD><?xml version="1.0" encoding="utf-8"
4975 ?></TD></TR>
4976 <TR>
4977 <TD><CIM CIMVERSION="2.0"
4978 karl 1.1 DTDVERSION="2.0"></TD></TR>
4979 <TR>
4980 <TD> <MESSAGE ID="87872"
4981 PROTOCOLVERSION="1.0"></TD></TR>
4982 <TR>
4983 <TD> <SIMPLERSP></TD></TR>
4984 <TR>
4985 <TD> <IMETHODRESPONSE
4986 NAME="EnumerateInstances"></TD></TR>
4987 <TR>
4988 <TD> <IRETURNVALUE></TD></TR>
4989 <TR>
4990 <TD>
4991 <VALUE.NAMEDINSTANCE></TD></TR>
4992 <TR>
4993 <TD> <INSTANCENAME
4994 CLASSNAME="Erewhon_LogicalDisk"></TD></TR>
4995 <TR>
4996 <TD> ...</TD></TR>
4997 <TR>
4998 <TD>
4999 karl 1.1 </INSTANCENAME></TD></TR>
5000 <TR>
5001 <TD> <INSTANCE
5002 CLASSNAME="Erewhon_LogicalDisk"></TD></TR>
5003 <TR>
5004 <TD> ...</TD></TR>
5005 <TR>
5006 <TD>
5007 </INSTANCE></TD></TR>
5008 <TR>
5009 <TD>
5010 </VALUE.NAMEDINSTANCE></TD></TR>
5011 <TR>
5012 <TD> ...</TD></TR>
5013 <TR>
5014 <TD>
5015 <VALUE.NAMEDINSTANCE></TD></TR>
5016 <TR>
5017 <TD> <INSTANCENAME
5018 CLASSNAME="Foobar_LogicalDisk"></TD></TR>
5019 <TR>
5020 karl 1.1 <TD> ...</TD></TR>
5021 <TR>
5022 <TD>
5023 </INSTANCENAME></TD></TR>
5024 <TR>
5025 <TD> <INSTANCE
5026 CLASSNAME="Foobar_LogicalDisk"></TD></TR>
5027 <TR>
5028 <TD> ...</TD></TR>
5029 <TR>
5030 <TD>
5031 </INSTANCE></TD></TR>
5032 <TR>
5033 <TD>
5034 </VALUE.NAMEINSTANCE></TD></TR>
5035 <TR>
5036 <TD> </IRETURNVALUE></TD></TR>
5037 <TR>
5038 <TD> </IMETHODRESPONSE></TD></TR>
5039 <TR>
5040 <TD> </SIMPLERSP></TD></TR>
5041 karl 1.1 <TR>
5042 <TD> </MESSAGE></TD></TR>
5043 <TR>
5044 <TD></CIM></TD></TR></TBODY></TABLE>
5045 <P><A href="#top" >Back to contents</A></P>
5046 <H2><A name=SecCreationOfASingleInstanceDefinition>A.9. </A><A name=SecRetrievalOfASingleProperty></a><A name=SecEnumerationOfInstances>Retrieval of a Single Property</A></H2>
5047 <P>The following HTTP request illustrates how a client
5048 would retrieve the FreeSpace property from the Instance
5049 MyDisk.DeviceID="C:".</P>
5050 <P>
5051 <TABLE class=Example id=TABLE2>
5052 <TBODY>
5053 <TR>
5054 <TD>M-POST /cimom HTTP/1.1</TD></TR>
5055 <TR>
5056 <TD>HOST: <A href="http://www.erewhon.com"
5057 >www.erewhon.com</A></TD></TR>
5058 <TR>
5059 <TD>Content-Type: application/xml;
5060 charset="utf-8"</TD></TR>
5061 <TR>
5062 karl 1.1 <TD>Content-Length: xxxx</TD></TR>
5063 <TR>
5064 <TD>Man: <A href="http://www.dmtf.org/cim/operation"
5065 >http://www.dmtf.org/cim/operation</A> ; ns=73</TD></TR>
5066 <TR>
5067 <TD>73-CIMOperation: MethodCall</TD>
5068 <TR>
5069 <TD>73-CIMMethod: GetProperty</TD></TR>
5070 <TR>
5071 <TD>73-CIMObject: root/cimv2</TD></TR>
5072 <TR>
5073 <TD></TD></TR>
5074 <TR>
5075 <TD><?xml version="1.0" encoding="utf-8"
5076 ?></TD></TR>
5077 <TR>
5078 <TD><CIM CIMVERSION="2.0"
5079 DTDVERSION="2.0"></TD></TR>
5080 <TR>
5081 <TD> <MESSAGE ID="87872"
5082 PROTOCOLVERSION="1.0"></TD></TR>
5083 karl 1.1 <TR>
5084 <TD> <SIMPLEREQ></TD></TR>
5085 <TR>
5086 <TD> <IMETHODCALL
5087 NAME="GetProperty"></TD></TR>
5088 <TR>
5089 <TD>
5090 <LOCALNAMESPACEPATH></TD></TR>
5091 <TR>
5092 <TD> <NAMESPACE
5093 NAME="root"/></TD></TR>
5094 <TR>
5095 <TD> <NAMESPACE
5096 NAME="myNamespace"/></TD></TR>
5097 <TR>
5098 <TD> </LOCALNAMESPACEPATH></TD></TR>
5099 <TR>
5100 <TD> <IPARAMVALUE
5101 NAME="InstanceName"></TD></TR>
5102 <TR>
5103 <TD> <INSTANCENAME
5104 karl 1.1 CLASSNAME="MyDisk"></TD></TR>
5105 <TR>
5106 <TD> <KEYBINDING
5107 NAME="DeviceID"><KEYVALUE>C:</KEYVALUE></KEYBINDING></TD></TR>
5108 <TR>
5109 <TD
5110 > </INSTANCENAME></TD></TR>
5111 <TR>
5112 <TD> </IPARAMVALUE></TD></TR>
5113 <TR>
5114 <TD> <IPARAMVALUE
5115 NAME="PropertyName"><VALUE>FreeSpace</VALUE></IPARAMVALUE></TD></TR>
5116 <TR>
5117 <TD> </IMETHODCALL></TD></TR>
5118 <TR>
5119 <TD> </SIMPLEREQ></TD></TR>
5120 <TR>
5121 <TD> </MESSAGE></TD></TR>
5122 <TR>
5123 <TD></CIM></TD></TR></TBODY></TABLE>
5124 <P>The following is an HTTP response to the above request
5125 karl 1.1 indicating success of the above operation, returning the requested
5126 value.</P>
5127 <P>
5128 <TABLE class=Example id=TABLE2>
5129 <TBODY>
5130 <TR>
5131 <TD>HTTP/1.1 200 OK</TD></TR>
5132 <TR>
5133 <TD>Content-Type: application/xml;
5134 charset="utf-8"</TD></TR>
5135 <TR>
5136 <TD>Content-Length: xxxx</TD></TR>
5137 <TR>
5138 <TD>Ext:</TD></TR>
5139 <TR>
5140 <TD>Cache-Control: no-cache</TD></TR>
5141 <TR>
5142 <TD>Man: <A
5143 href="http://www.dmtf.org/cim/mapping/http/v1.0"
5144 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
5145 ns=73</TD></TR>
5146 karl 1.1 <TR>
5147 <TD>73-CIMOperation: MethodResponse</TD>
5148 <TR>
5149 <TD></TD></TR>
5150 <TR>
5151 <TD><?xml version="1.0" encoding="utf-8"
5152 ?></TD></TR>
5153 <TR>
5154 <TD><CIM CIMVERSION="2.0"
5155 DTDVERSION="2.0"></TD></TR>
5156 <TR>
5157 <TD> <MESSAGE ID="87872"
5158 PROTOCOLVERSION="1.0"></TD></TR>
5159 <TR>
5160 <TD> <SIMPLERSP></TD></TR>
5161 <TR>
5162 <TD> <IMETHODRESPONSE
5163 NAME="GetProperty"></TD></TR>
5164 <TR>
5165 <TD> <IRETURNVALUE></TD></TR>
5166 <TR>
5167 karl 1.1 <TD>
5168 <VALUE>6752332</VALUE></TD></TR>
5169 <TR>
5170 <TD> </IRETURNVALUE></TD></TR>
5171 <TR>
5172 <TD> </IMETHODRESPONSE></TD></TR>
5173 <TR>
5174 <TD> </SIMPLERSP></TD></TR>
5175 <TR>
5176 <TD> </MESSAGE></TD></TR>
5177 <TR>
5178 <TD></CIM></TD></TR></TBODY></TABLE>
5179 <P><A href="#top" >Back to contents</A></P>
5180 <H2><A name=SecCreationOfASingleInstanceDefinition>A.10. </A><A name=SecExecutionOfAnExtrinsicMethod>Execution of an Extrinsic Method</A></A></H2>
5181 <P>The following HTTP request illustrates how a client
5182 would execute the SetPowerState method on the Instance
5183 MyDisk.DeviceID="C:".</P>
5184 <P>
5185 <TABLE class=Example id=TABLE2>
5186 <TBODY>
5187 <TR>
5188 karl 1.1 <TD>M-POST /cimom HTTP/1.1</TD></TR>
5189 <TR>
5190 <TD>HOST: <A href="http://www.erewhon.com"
5191 >www.erewhon.com</A></TD></TR>
5192 <TR>
5193 <TD>Content-Type: application/xml;
5194 charset="utf-8"</TD></TR>
5195 <TR>
5196 <TD>Content-Length: xxxx</TD></TR>
5197 <TR>
5198 <TD>Man: <A
5199 href="http://www.dmtf.org/cim/mapping/http/v1.0"
5200 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
5201 ns=73</TD></TR>
5202 <TR>
5203 <TD>73-CIMOperation: MethodCall</TD>
5204 <TR>
5205 <TD>73-CIMMethod: SetPowerState</TD></TR>
5206 <TR>
5207 <TD>73-CIMObject:
5208 root/cimv2:Win32_LogicalDisk="C:"</TD></TR>
5209 karl 1.1 <TR>
5210 <TD></TD></TR>
5211 <TR>
5212 <TD><?xml version="1.0" encoding="utf-8"
5213 ?></TD></TR>
5214 <TR>
5215 <TD><CIM CIMVERSION="2.0"
5216 DTDVERSION="2.0"></TD></TR>
5217 <TR>
5218 <TD> <MESSAGE ID="87872"
5219 PROTOCOLVERSION="1.0"></TD></TR>
5220 <TR>
5221 <TD> <SIMPLEREQ></TD></TR>
5222 <TR>
5223 <TD> <METHODCALL
5224 NAME="SetPowerState"></TD></TR>
5225 <TR>
5226 <TD>
5227 <LOCALINSTANCEPATH></TD></TR>
5228 <TR>
5229 <TD>
5230 karl 1.1 <LOCALNAMESPACEPATH></TD></TR>
5231 <TR>
5232 <TD> <NAMESPACE
5233 NAME="root"/></TD></TR>
5234 <TR>
5235 <TD> <NAMESPACE
5236 NAME="myNamespace"/></TD></TR>
5237 <TR>
5238 <TD>
5239 </LOCALNAMESPACEPATH></TD></TR>
5240 <TR>
5241 <TD> <INSTANCENAME
5242 CLASSNAME="MyDisk"></TD></TR>
5243 <TR>
5244 <TD> <KEYBINDING
5245 NAME="C:"><KEYVALUE>C:</KEYVALUE></KEYBINDING></TD></TR>
5246 <TR>
5247 <TD
5248 > </INSTANCENAME></TD></TR>
5249 <TR>
5250 <TD>
5251 karl 1.1 </LOCALINSTANCEPATH></TD></TR>
5252 <TR>
5253 <TD> <PARAMVALUE
5254 NAME="PowerState"><VALUE>1</VALUE></PARAMVALUE></TD></TR>
5255 <TR>
5256 <TD> <PARAMVALUE
5257 NAME="Time"><VALUE>00000001132312.000000:000</VALUE></PARAMVALUE></TD></TR>
5258 <TR>
5259 <TD> </METHODCALL>
5260 </TD></TR>
5261 <TR>
5262 <TD> </SIMPLEREQ></TD></TR>
5263 <TR>
5264 <TD> </MESSAGE></TD></TR>
5265 <TR>
5266 <TD></CIM></TD></TR></TBODY></TABLE>
5267 <P>The following is an HTTP response to the above request
5268 indicating success of the above operation.</P>
5269 <P>
5270 <TABLE class=Example id=TABLE2>
5271 <TBODY>
5272 karl 1.1 <TR>
5273 <TD>HTTP/1.1 200 OK</TD></TR>
5274 <TR>
5275 <TD>Content-Type: application/xml;
5276 charset="utf-8"</TD></TR>
5277 <TR>
5278 <TD>Content-Length: xxxx</TD></TR>
5279 <TR>
5280 <TD>Ext:</TD></TR>
5281 <TR>
5282 <TD>Cache-Control: no-cache</TD></TR>
5283 <TR>
5284 <TD>Man: <A
5285 href="http://www.dmtf.org/cim/mapping/http/v1.0"
5286 >http://www.dmtf.org/cim/mapping/http/v1.0</A> ;
5287 ns=73</TD></TR>
5288 <TR>
5289 <TD>73-CIMOperation: MethodResponse</TD>
5290 <TR>
5291 <TD></TD></TR>
5292 <TR>
5293 karl 1.1 <TD><?xml version="1.0" encoding="utf-8"
5294 ?></TD></TR>
5295 <TR>
5296 <TD><CIM CIMVERSION="2.0"
5297 DTDVERSION="2.0"></TD></TR>
5298 <TR>
5299 <TD> <MESSAGE ID="87872"
5300 PROTOCOLVERSION="1.0"></TD></TR>
5301 <TR>
5302 <TD> <SIMPLERSP></TD></TR>
5303 <TR>
5304 <TD> <METHODRESPONSE
5305 NAME="SetPowerState"></TD></TR>
5306 <TR>
5307 <TD> <RETURNVALUE></TD></TR>
5308 <TR>
5309 <TD>
5310 <VALUE>0</VALUE></TD></TR>
5311 <TR>
5312 <TD> </RETURNVALUE></TD></TR>
5313 <TR>
5314 karl 1.1 <TD> </METHODRESPONSE></TD></TR>
5315 <TR>
5316 <TD> </SIMPLERSP></TD></TR>
5317 <TR>
5318 <TD> </MESSAGE></TD></TR>
5319 <TR>
5320 <TD></CIM></TD></TR></TBODY></TABLE>
5321 <P><A href="#top" >Back to contents</A></P></BODY></HTML>
|