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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2