(file) Return to XmlReader.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

  1 karl  1.50 //%2006////////////////////////////////////////////////////////////////////////
  2 mike  1.18 //
  3 karl  1.47 // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
  4            // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
  5            // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
  6 karl  1.43 // IBM Corp.; EMC Corporation, The Open Group.
  7 karl  1.47 // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
  8            // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
  9 karl  1.48 // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 10            // EMC Corporation; VERITAS Software Corporation; The Open Group.
 11 karl  1.50 // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
 12            // EMC Corporation; Symantec Corporation; The Open Group.
 13 mike  1.18 //
 14            // Permission is hereby granted, free of charge, to any person obtaining a copy
 15 kumpf 1.33 // of this software and associated documentation files (the "Software"), to
 16            // deal in the Software without restriction, including without limitation the
 17            // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 18 mike  1.18 // sell copies of the Software, and to permit persons to whom the Software is
 19            // furnished to do so, subject to the following conditions:
 20            // 
 21 kumpf 1.33 // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
 22 mike  1.18 // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
 23            // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 24 kumpf 1.33 // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 25            // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 26            // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 27 mike  1.18 // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 28            // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 29            //
 30            //==============================================================================
 31            //
 32            //%/////////////////////////////////////////////////////////////////////////////
 33            
 34            #ifndef Pegasus_XmlReader_h
 35            #define Pegasus_XmlReader_h
 36            
 37            #include <Pegasus/Common/Config.h>
 38            #include <Pegasus/Common/XmlParser.h>
 39            #include <Pegasus/Common/CIMFlavor.h>
 40            #include <Pegasus/Common/CIMScope.h>
 41 kumpf 1.30 #include <Pegasus/Common/CIMType.h>
 42 kumpf 1.28 #include <Pegasus/Common/CIMObjectPath.h>
 43 kumpf 1.34 #include <Pegasus/Common/Linkage.h>
 44 mike  1.18 
 45            PEGASUS_NAMESPACE_BEGIN
 46            
 47            class CIMQualifier;
 48            class CIMQualifierDecl;
 49            class CIMClass;
 50            class CIMInstance;
 51            class CIMProperty;
 52            class CIMParameter;
 53            class CIMMethod;
 54            class CIMObject;
 55 mike  1.19 class CIMParamValue;
 56 kumpf 1.29 class CIMValue;
 57 mike  1.18 
 58            class PEGASUS_COMMON_LINKAGE XmlReader
 59            {
 60            public:
 61            
 62 kumpf 1.26     static void getXmlDeclaration(
 63 kumpf 1.51         XmlParser& parser,
 64                    const char*& xmlVersion,
 65                    const char*& xmlEncoding);
 66            
 67                static Boolean testXmlDeclaration(
 68                    XmlParser& parser,
 69                    XmlEntry& entry);
 70 mike  1.18 
 71                static void expectStartTag(
 72 kumpf 1.51         XmlParser& parser,
 73                    XmlEntry& entry,
 74                    const char* tagName);
 75 mike  1.18 
 76                static void expectEndTag(
 77 kumpf 1.51         XmlParser& parser,
 78                    const char* tagName);
 79 mike  1.18 
 80                static void expectStartTagOrEmptyTag(
 81 kumpf 1.51         XmlParser& parser,
 82                    XmlEntry& entry,
 83                    const char* tagName);
 84 mike  1.18 
 85 kumpf 1.44     static void skipElement(
 86 kumpf 1.51         XmlParser& parser,
 87                    XmlEntry& entry);
 88 kumpf 1.44 
 89 mike  1.18     static Boolean expectContentOrCData(
 90 kumpf 1.51         XmlParser& parser,
 91                    XmlEntry& entry);
 92 mike  1.19 
 93 mike  1.18     static Boolean testStartTag(
 94 kumpf 1.51         XmlParser& parser,
 95                    XmlEntry& entry,
 96                    const char* tagName);
 97 mike  1.18 
 98                static Boolean testEndTag(
 99 kumpf 1.51         XmlParser& parser,
100                    const char* tagName);
101 mike  1.18 
102                static Boolean testStartTagOrEmptyTag(
103 kumpf 1.51         XmlParser& parser,
104                    XmlEntry& entry,
105                    const char* tagName);
106 kumpf 1.44 
107                static Boolean testStartTagOrEmptyTag(
108 kumpf 1.51         XmlParser& parser,
109                    XmlEntry& entry);
110 mike  1.18 
111                static Boolean testContentOrCData(
112 kumpf 1.51         XmlParser& parser,
113                    XmlEntry& entry);
114 mike  1.18 
115 kumpf 1.24     static void getCimStartTag(
116 kumpf 1.51         XmlParser& parser,
117                    const char*& cimVersion,
118                    const char*& dtdVersion);
119 mike  1.18 
120 kumpf 1.40     static CIMName getCimNameAttribute(
121 kumpf 1.51         Uint32 lineNumber,
122                    const XmlEntry& entry,
123                    const char* elementName,
124                    Boolean acceptNull = false);
125 mike  1.18 
126                static String getClassNameAttribute(
127 kumpf 1.51         Uint32 lineNumber,
128                    const XmlEntry& entry,
129                    const char* elementName);
130 mike  1.18 
131 kumpf 1.35     static CIMName getClassOriginAttribute(
132 kumpf 1.51         Uint32 lineNumber,
133                    const XmlEntry& entry,
134                    const char* tagName);
135 mike  1.18 
136 dave.sudlik 1.49     static String getEmbeddedObjectAttribute(
137 kumpf       1.51         Uint32 lineNumber,
138                          const XmlEntry& entry,
139                          const char* tagName);
140 dave.sudlik 1.49 
141 kumpf       1.35     static CIMName getReferenceClassAttribute(
142 kumpf       1.51         Uint32 lineNumber,
143                          const XmlEntry& entry,
144                          const char* elementName);
145 mike        1.18 
146 kumpf       1.35     static CIMName getSuperClassAttribute(
147 kumpf       1.51         Uint32 lineNumber,
148                          const XmlEntry& entry,
149                          const char* tagName);
150 mike        1.18 
151 kumpf       1.38     static Boolean getCimTypeAttribute(
152 kumpf       1.51         Uint32 lineNumber,
153                          const XmlEntry& entry,
154 kumpf       1.38         CIMType& cimType,  // Output parameter
155 kumpf       1.51         const char* tagName,
156                          const char* attributeName = "TYPE",
157                          Boolean required = true);
158 mike        1.18 
159                      static Boolean getCimBooleanAttribute(
160 kumpf       1.51         Uint32 lineNumber,
161                          const XmlEntry& entry,
162                          const char* tagName,
163                          const char* attributeName,
164                          Boolean defaultValue,
165                          Boolean required);
166 mike        1.18 
167 kumpf       1.41     static String decodeURICharacters(String uriString);
168                  
169 mike        1.18     static Boolean stringToReal(
170 kumpf       1.51         const char* stringValue,
171                          Real64& x);
172 mike        1.18 
173                      static Boolean stringToSignedInteger(
174 kumpf       1.51         const char* stringValue,
175                          Sint64& x);
176 mike        1.18 
177                      static Boolean stringToUnsignedInteger(
178 kumpf       1.51         const char* stringValue,
179                          Uint64& x);
180 mike        1.18 
181                      static CIMValue stringToValue(
182 kumpf       1.51         Uint32 lineNumber,
183                          const char* valueString,
184                          CIMType type);
185 mike        1.18 
186 karl        1.20     /* getValueElement - Gets the CIMType and CIMValue for a single
187                          XML Value element.  It expects <VALUE> as the start tag.
188 kumpf       1.51         @return Returns True if the value element exists
189 karl        1.20     */
190 mike        1.18     static Boolean getValueElement(
191 kumpf       1.51         XmlParser& parser,
192                          CIMType type,
193                          CIMValue& value);
194 mike        1.18 
195                      static Boolean getStringValueElement(
196 kumpf       1.51         XmlParser& parser,
197                          String& str,
198                          Boolean required);
199 mike        1.18 
200                      static CIMValue stringArrayToValue(
201 kumpf       1.51         Uint32 lineNumber,
202                          const Array<const char*>& array,
203                          CIMType type);
204 mike        1.18 
205                      static Boolean getValueArrayElement(
206 kumpf       1.51         XmlParser& parser,
207                          CIMType type,
208                          CIMValue& value);
209 mike        1.18 
210 kumpf       1.37     static CIMFlavor getFlavor(
211 kumpf       1.51         XmlEntry& entry,
212                          Uint32 lineNumber,
213                          const char* tagName);
214 mike        1.18 
215 kumpf       1.36     static CIMScope getOptionalScope(
216 kumpf       1.51         XmlParser& parser);
217 mike        1.18 
218                      static Boolean getQualifierElement(
219 kumpf       1.51         XmlParser& parser,
220                          CIMQualifier& qualifier);
221 mike        1.18 
222                      static Boolean getPropertyElement(
223 kumpf       1.51         XmlParser& parser,
224                          CIMProperty& property);
225 mike        1.18 
226                      static Boolean getArraySizeAttribute(
227 kumpf       1.51         Uint32 lineNumber,
228                          const XmlEntry& entry,
229                          const char* tagName,
230                          Uint32& value);
231 mike        1.18 
232                      static Boolean getPropertyArrayElement(
233 kumpf       1.51         XmlParser& parser,
234                          CIMProperty& property);
235 mike        1.18 
236                      static Boolean getHostElement(
237 kumpf       1.51         XmlParser& parser,
238                          String& host);
239 mike        1.18 
240                      static Boolean getNameSpaceElement(
241 kumpf       1.51         XmlParser& parser,
242                          CIMName& nameSpaceComponent);
243 mike        1.18 
244                      static Boolean getLocalNameSpacePathElement(
245 kumpf       1.51         XmlParser& parser,
246                          String& nameSpace);
247 mike        1.18 
248                      static Boolean getNameSpacePathElement(
249 kumpf       1.51         XmlParser& parser,
250                          String& host,
251                          String& nameSpace);
252 mike        1.18 
253                      static Boolean getClassNameElement(
254 kumpf       1.51         XmlParser& parser,
255                          CIMName& className,
256                          Boolean required = false);
257 mike        1.18 
258 kumpf       1.39     static CIMKeyBinding::Type getValueTypeAttribute(
259 kumpf       1.51         Uint32 lineNumber,
260                          const XmlEntry& entry,
261                          const char* elementName);
262 mike        1.18 
263                      static Boolean getKeyValueElement(
264 kumpf       1.51         XmlParser& parser,
265                          CIMKeyBinding::Type& type,
266                          String& value);
267 mike        1.18 
268                      static Boolean getKeyBindingElement(
269 kumpf       1.51         XmlParser& parser,
270                          CIMName& name,
271                          String& value,
272                          CIMKeyBinding::Type& type);
273 mike        1.18 
274                      static Boolean getInstanceNameElement(
275 kumpf       1.51         XmlParser& parser,
276                          String& className,
277                          Array<CIMKeyBinding>& keyBindings);
278 mike        1.18 
279                      static Boolean getInstanceNameElement(
280 kumpf       1.51         XmlParser& parser,
281                          CIMObjectPath& instanceName);
282 mike        1.18 
283                      static Boolean getInstancePathElement(
284 kumpf       1.51         XmlParser& parser,
285                          CIMObjectPath& reference);
286 mike        1.18 
287                      static Boolean getLocalInstancePathElement(
288 kumpf       1.51         XmlParser& parser,
289                          CIMObjectPath& reference);
290 mike        1.18 
291                      static Boolean getClassPathElement(
292 kumpf       1.51         XmlParser& parser,
293                          CIMObjectPath& reference);
294 mike        1.18 
295                      static Boolean getLocalClassPathElement(
296 kumpf       1.51         XmlParser& parser,
297                          CIMObjectPath& reference);
298 mike        1.18 
299                      static Boolean getValueReferenceElement(
300 kumpf       1.51         XmlParser& parser,
301                          CIMObjectPath& reference);
302 mike        1.18 
303 kumpf       1.23     static Boolean getValueReferenceArrayElement(
304 kumpf       1.51         XmlParser& parser,
305                          CIMValue& value);
306 kumpf       1.23 
307 mike        1.18     static Boolean getPropertyReferenceElement(
308 kumpf       1.51         XmlParser& parser,
309                          CIMProperty& property);
310 mike        1.18 
311                      static Boolean getParameterElement(
312 kumpf       1.51         XmlParser& parser,
313                          CIMParameter& parameter);
314 mike        1.18 
315                      static Boolean getParameterArrayElement(
316 kumpf       1.51         XmlParser& parser,
317                          CIMParameter& parameter);
318 mike        1.18 
319                      static Boolean getParameterReferenceElement(
320 kumpf       1.51         XmlParser& parser,
321                          CIMParameter& parameter);
322 mike        1.18 
323 kumpf       1.21     static Boolean getParameterReferenceArrayElement(
324 kumpf       1.51         XmlParser& parser,
325                          CIMParameter& parameter);
326 kumpf       1.21 
327 mike        1.18     static Boolean getQualifierDeclElement(
328 kumpf       1.51         XmlParser& parser,
329                          CIMQualifierDecl& qualifierDecl);
330 mike        1.18 
331                      static Boolean getMethodElement(
332 kumpf       1.51         XmlParser& parser,
333                          CIMMethod& method);
334 mike        1.18 
335                      static Boolean getClassElement(
336 kumpf       1.51         XmlParser& parser,
337                          CIMClass& cimClass);
338 mike        1.18 
339                      static Boolean getInstanceElement(
340 kumpf       1.51         XmlParser& parser,
341                          CIMInstance& cimInstance);
342 mike        1.18 
343 mike        1.19     static Boolean getNamedInstanceElement(
344 kumpf       1.51         XmlParser& parser,
345                          CIMInstance& namedInstance);
346 mike        1.19 
347 mike        1.18     static void getObject(XmlParser& parser, CIMClass& x);
348                  
349                      static void getObject(XmlParser& parser, CIMInstance& x);
350                  
351                      static void getObject(XmlParser& parser, CIMQualifierDecl& x);
352                  
353                      static Boolean getMessageStartTag(
354 kumpf       1.51         XmlParser& parser,
355                          String& id,
356                          String& protocolVersion);
357 mike        1.18 
358                      static Boolean getIMethodCallStartTag(
359 kumpf       1.51         XmlParser& parser,
360                          const char*& name);
361 mike        1.18 
362                      static Boolean getIMethodResponseStartTag(
363 kumpf       1.46         XmlParser& parser,
364                          const char*& name,
365                          Boolean& isEmptyTag);
366 mike        1.18 
367                      static Boolean getIParamValueTag(
368 kumpf       1.51         XmlParser& parser,
369                          const char*& name,
370                          Boolean& isEmptyTag);
371 kumpf       1.45 
372                      static void rejectNullIParamValue(
373                          XmlParser& parser,
374                          Boolean isEmptyTag,
375                          const char* paramName);
376 mike        1.18 
377                      static Boolean getPropertyValue(
378 kumpf       1.51         XmlParser& parser,
379                          CIMValue& cimValue);
380 mike        1.18 
381                      static Boolean getBooleanValueElement(
382 kumpf       1.51         XmlParser& parser,
383                          Boolean& result,
384                          Boolean required = false);
385 mike        1.18 
386                      static Boolean getErrorElement(
387 kumpf       1.51         XmlParser& parser,
388                          CIMException& cimException,
389                          Boolean required = false);
390 mike        1.18 
391 kumpf       1.25     static Boolean getValueObjectElement(
392 kumpf       1.51         XmlParser& parser,
393                          CIMObject& object);
394 kumpf       1.25 
395                      static Boolean getValueObjectWithPathElement(
396 kumpf       1.51         XmlParser& parser,
397                          CIMObject& objectWithPath);
398 kumpf       1.25 
399                      static Boolean getValueObjectWithLocalPathElement(
400 kumpf       1.51         XmlParser& parser,
401                          CIMObject& objectWithPath);
402 kumpf       1.25 
403                      static void getObjectArray(
404 kumpf       1.51         XmlParser& parser,
405                          Array<CIMObject>& objectArray);
406 mike        1.18 
407                      static Boolean getObjectNameElement(
408 kumpf       1.51         XmlParser& parser,
409                          CIMObjectPath& objectName);
410 mike        1.18 
411                      static Boolean getObjectPathElement(
412 kumpf       1.51         XmlParser& parser,
413                          CIMObjectPath& objectPath);
414 mike        1.19 
415                      static Boolean getEMethodCallStartTag(
416 kumpf       1.51         XmlParser& parser,
417                          const char*& name);
418 mike        1.19 
419                      static Boolean getEMethodResponseStartTag(
420 kumpf       1.46         XmlParser& parser,
421                          const char*& name,
422                          Boolean& isEmptyTag);
423 mike        1.19 
424 kumpf       1.42     static Boolean getEParamValueTag(
425 kumpf       1.51         XmlParser& parser,
426                          const char*& name);
427 kumpf       1.42 
428 mike        1.19     static Boolean getMethodCallStartTag(
429 kumpf       1.51         XmlParser& parser,
430                          const char*& name);
431 mike        1.19 
432                      static Boolean getMethodResponseStartTag(
433 kumpf       1.46         XmlParser& parser,
434                          const char*& name,
435                          Boolean& isEmptyTag);
436 mike        1.19 
437 kumpf       1.21     static Boolean getParamValueElement(
438 kumpf       1.51         XmlParser& parser,
439                          CIMParamValue& paramValue);
440 mike        1.18 
441 kumpf       1.22     static Boolean getReturnValueElement(
442 kumpf       1.51         XmlParser& parser,
443                          CIMValue& returnValue);
444 kumpf       1.22 
445 karl        1.51.4.1     static Boolean isSupportedCIMVersion(
446                              const char* cimVersion);
447                      
448                          static Boolean isSupportedProtocolVersion(
449                              const String& protocolVersion);
450                      
451                          static Boolean isSupportedDTDVersion(
452                              const char* dtdVersion);
453 mike        1.18     private:
454                      
455 kumpf       1.51         XmlReader()
456                          {
457 mike        1.18     
458                          }
459                      };
460                      
461                      PEGASUS_NAMESPACE_END
462                      
463                      #endif /* Pegasus_XmlReader_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2