(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 stringToSignedInteger(
170 kumpf       1.51         const char* stringValue,
171                          Sint64& x);
172 mike        1.18 
173                      static Boolean stringToUnsignedInteger(
174 kumpf       1.51         const char* stringValue,
175                          Uint64& x);
176 mike        1.18 
177                      static CIMValue stringToValue(
178 kumpf       1.51         Uint32 lineNumber,
179                          const char* valueString,
180                          CIMType type);
181 mike        1.18 
182 karl        1.20     /* getValueElement - Gets the CIMType and CIMValue for a single
183                          XML Value element.  It expects <VALUE> as the start tag.
184 kumpf       1.51         @return Returns True if the value element exists
185 karl        1.20     */
186 mike        1.18     static Boolean getValueElement(
187 kumpf       1.51         XmlParser& parser,
188                          CIMType type,
189                          CIMValue& value);
190 mike        1.18 
191                      static Boolean getStringValueElement(
192 kumpf       1.51         XmlParser& parser,
193                          String& str,
194                          Boolean required);
195 mike        1.18 
196                      static CIMValue stringArrayToValue(
197 kumpf       1.51         Uint32 lineNumber,
198                          const Array<const char*>& array,
199                          CIMType type);
200 mike        1.18 
201                      static Boolean getValueArrayElement(
202 kumpf       1.51         XmlParser& parser,
203                          CIMType type,
204                          CIMValue& value);
205 mike        1.18 
206 kumpf       1.37     static CIMFlavor getFlavor(
207 kumpf       1.51         XmlEntry& entry,
208                          Uint32 lineNumber,
209                          const char* tagName);
210 mike        1.18 
211 kumpf       1.36     static CIMScope getOptionalScope(
212 kumpf       1.51         XmlParser& parser);
213 mike        1.18 
214                      static Boolean getQualifierElement(
215 kumpf       1.51         XmlParser& parser,
216                          CIMQualifier& qualifier);
217 mike        1.18 
218                      static Boolean getPropertyElement(
219 kumpf       1.51         XmlParser& parser,
220                          CIMProperty& property);
221 mike        1.18 
222                      static Boolean getArraySizeAttribute(
223 kumpf       1.51         Uint32 lineNumber,
224                          const XmlEntry& entry,
225                          const char* tagName,
226                          Uint32& value);
227 mike        1.18 
228                      static Boolean getPropertyArrayElement(
229 kumpf       1.51         XmlParser& parser,
230                          CIMProperty& property);
231 mike        1.18 
232                      static Boolean getHostElement(
233 kumpf       1.51         XmlParser& parser,
234                          String& host);
235 mike        1.18 
236                      static Boolean getNameSpaceElement(
237 kumpf       1.51         XmlParser& parser,
238                          CIMName& nameSpaceComponent);
239 mike        1.18 
240                      static Boolean getLocalNameSpacePathElement(
241 kumpf       1.51         XmlParser& parser,
242                          String& nameSpace);
243 mike        1.18 
244                      static Boolean getNameSpacePathElement(
245 kumpf       1.51         XmlParser& parser,
246                          String& host,
247                          String& nameSpace);
248 mike        1.18 
249                      static Boolean getClassNameElement(
250 kumpf       1.51         XmlParser& parser,
251                          CIMName& className,
252                          Boolean required = false);
253 mike        1.18 
254 kumpf       1.39     static CIMKeyBinding::Type getValueTypeAttribute(
255 kumpf       1.51         Uint32 lineNumber,
256                          const XmlEntry& entry,
257                          const char* elementName);
258 mike        1.18 
259                      static Boolean getKeyValueElement(
260 kumpf       1.51         XmlParser& parser,
261                          CIMKeyBinding::Type& type,
262                          String& value);
263 mike        1.18 
264                      static Boolean getKeyBindingElement(
265 kumpf       1.51         XmlParser& parser,
266                          CIMName& name,
267                          String& value,
268                          CIMKeyBinding::Type& type);
269 mike        1.18 
270                      static Boolean getInstanceNameElement(
271 kumpf       1.51         XmlParser& parser,
272                          String& className,
273                          Array<CIMKeyBinding>& keyBindings);
274 mike        1.18 
275                      static Boolean getInstanceNameElement(
276 kumpf       1.51         XmlParser& parser,
277                          CIMObjectPath& instanceName);
278 mike        1.18 
279                      static Boolean getInstancePathElement(
280 kumpf       1.51         XmlParser& parser,
281                          CIMObjectPath& reference);
282 mike        1.18 
283                      static Boolean getLocalInstancePathElement(
284 kumpf       1.51         XmlParser& parser,
285                          CIMObjectPath& reference);
286 mike        1.18 
287                      static Boolean getClassPathElement(
288 kumpf       1.51         XmlParser& parser,
289                          CIMObjectPath& reference);
290 mike        1.18 
291                      static Boolean getLocalClassPathElement(
292 kumpf       1.51         XmlParser& parser,
293                          CIMObjectPath& reference);
294 mike        1.18 
295                      static Boolean getValueReferenceElement(
296 kumpf       1.51         XmlParser& parser,
297                          CIMObjectPath& reference);
298 mike        1.18 
299 kumpf       1.23     static Boolean getValueReferenceArrayElement(
300 kumpf       1.51         XmlParser& parser,
301                          CIMValue& value);
302 kumpf       1.23 
303 mike        1.18     static Boolean getPropertyReferenceElement(
304 kumpf       1.51         XmlParser& parser,
305                          CIMProperty& property);
306 mike        1.18 
307                      static Boolean getParameterElement(
308 kumpf       1.51         XmlParser& parser,
309                          CIMParameter& parameter);
310 mike        1.18 
311                      static Boolean getParameterArrayElement(
312 kumpf       1.51         XmlParser& parser,
313                          CIMParameter& parameter);
314 mike        1.18 
315                      static Boolean getParameterReferenceElement(
316 kumpf       1.51         XmlParser& parser,
317                          CIMParameter& parameter);
318 mike        1.18 
319 kumpf       1.21     static Boolean getParameterReferenceArrayElement(
320 kumpf       1.51         XmlParser& parser,
321                          CIMParameter& parameter);
322 kumpf       1.21 
323 mike        1.18     static Boolean getQualifierDeclElement(
324 kumpf       1.51         XmlParser& parser,
325                          CIMQualifierDecl& qualifierDecl);
326 mike        1.18 
327                      static Boolean getMethodElement(
328 kumpf       1.51         XmlParser& parser,
329                          CIMMethod& method);
330 mike        1.18 
331                      static Boolean getClassElement(
332 kumpf       1.51         XmlParser& parser,
333                          CIMClass& cimClass);
334 mike        1.18 
335                      static Boolean getInstanceElement(
336 kumpf       1.51         XmlParser& parser,
337                          CIMInstance& cimInstance);
338 mike        1.18 
339 mike        1.19     static Boolean getNamedInstanceElement(
340 kumpf       1.51         XmlParser& parser,
341                          CIMInstance& namedInstance);
342 mike        1.19 
343 mike        1.18     static void getObject(XmlParser& parser, CIMClass& x);
344                  
345                      static void getObject(XmlParser& parser, CIMInstance& x);
346                  
347                      static void getObject(XmlParser& parser, CIMQualifierDecl& x);
348                  
349                      static Boolean getMessageStartTag(
350 kumpf       1.51         XmlParser& parser,
351                          String& id,
352                          String& protocolVersion);
353 mike        1.18 
354                      static Boolean getIMethodCallStartTag(
355 kumpf       1.51         XmlParser& parser,
356                          const char*& name);
357 mike        1.18 
358                      static Boolean getIMethodResponseStartTag(
359 kumpf       1.46         XmlParser& parser,
360                          const char*& name,
361                          Boolean& isEmptyTag);
362 mike        1.18 
363                      static Boolean getIParamValueTag(
364 kumpf       1.51         XmlParser& parser,
365                          const char*& name,
366                          Boolean& isEmptyTag);
367 kumpf       1.45 
368                      static void rejectNullIParamValue(
369                          XmlParser& parser,
370                          Boolean isEmptyTag,
371                          const char* paramName);
372 mike        1.18 
373                      static Boolean getPropertyValue(
374 kumpf       1.51         XmlParser& parser,
375                          CIMValue& cimValue);
376 mike        1.18 
377                      static Boolean getBooleanValueElement(
378 kumpf       1.51         XmlParser& parser,
379                          Boolean& result,
380                          Boolean required = false);
381 mike        1.18 
382                      static Boolean getErrorElement(
383 kumpf       1.51         XmlParser& parser,
384                          CIMException& cimException,
385                          Boolean required = false);
386 mike        1.18 
387 kumpf       1.25     static Boolean getValueObjectElement(
388 kumpf       1.51         XmlParser& parser,
389                          CIMObject& object);
390 kumpf       1.25 
391                      static Boolean getValueObjectWithPathElement(
392 kumpf       1.51         XmlParser& parser,
393                          CIMObject& objectWithPath);
394 kumpf       1.25 
395                      static Boolean getValueObjectWithLocalPathElement(
396 kumpf       1.51         XmlParser& parser,
397                          CIMObject& objectWithPath);
398 kumpf       1.25 
399                      static void getObjectArray(
400 kumpf       1.51         XmlParser& parser,
401                          Array<CIMObject>& objectArray);
402 mike        1.18 
403                      static Boolean getObjectNameElement(
404 kumpf       1.51         XmlParser& parser,
405                          CIMObjectPath& objectName);
406 mike        1.18 
407                      static Boolean getObjectPathElement(
408 kumpf       1.51         XmlParser& parser,
409                          CIMObjectPath& objectPath);
410 mike        1.19 
411                      static Boolean getEMethodCallStartTag(
412 kumpf       1.51         XmlParser& parser,
413                          const char*& name);
414 mike        1.19 
415                      static Boolean getEMethodResponseStartTag(
416 kumpf       1.46         XmlParser& parser,
417                          const char*& name,
418                          Boolean& isEmptyTag);
419 mike        1.19 
420 kumpf       1.42     static Boolean getEParamValueTag(
421 kumpf       1.51         XmlParser& parser,
422                          const char*& name);
423 kumpf       1.42 
424 mike        1.19     static Boolean getMethodCallStartTag(
425 kumpf       1.51         XmlParser& parser,
426                          const char*& name);
427 mike        1.19 
428                      static Boolean getMethodResponseStartTag(
429 kumpf       1.46         XmlParser& parser,
430                          const char*& name,
431                          Boolean& isEmptyTag);
432 mike        1.19 
433 kumpf       1.21     static Boolean getParamValueElement(
434 kumpf       1.51         XmlParser& parser,
435                          CIMParamValue& paramValue);
436 mike        1.18 
437 kumpf       1.22     static Boolean getReturnValueElement(
438 kumpf       1.51         XmlParser& parser,
439                          CIMValue& returnValue);
440 kumpf       1.22 
441 karl        1.52     static Boolean isSupportedCIMVersion(
442                          const char* cimVersion);
443                  
444                      static Boolean isSupportedProtocolVersion(
445                          const String& protocolVersion);
446                  
447                      static Boolean isSupportedDTDVersion(
448                          const char* dtdVersion);
449 mike        1.18 private:
450                  
451 kumpf       1.51     XmlReader()
452                      {
453 mike        1.18 
454                      }
455                  };
456                  
457                  PEGASUS_NAMESPACE_END
458                  
459                  #endif /* Pegasus_XmlReader_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2