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

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2