(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             class PEGASUS_COMMON_LINKAGE XmlReader
 57             {
 58             public:
 59             
 60 kumpf  1.26     static void getXmlDeclaration(
 61 kumpf  1.51         XmlParser& parser,
 62                     const char*& xmlVersion,
 63                     const char*& xmlEncoding);
 64             
 65                 static Boolean testXmlDeclaration(
 66                     XmlParser& parser,
 67                     XmlEntry& entry);
 68 mike   1.18 
 69                 static void expectStartTag(
 70 kumpf  1.51         XmlParser& parser,
 71                     XmlEntry& entry,
 72                     const char* tagName);
 73 mike   1.18 
 74                 static void expectEndTag(
 75 kumpf  1.51         XmlParser& parser,
 76                     const char* tagName);
 77 mike   1.18 
 78                 static void expectStartTagOrEmptyTag(
 79 kumpf  1.51         XmlParser& parser,
 80                     XmlEntry& entry,
 81                     const char* tagName);
 82 mike   1.18 
 83 kumpf  1.44     static void skipElement(
 84 kumpf  1.51         XmlParser& parser,
 85                     XmlEntry& entry);
 86 kumpf  1.44 
 87 mike   1.18     static Boolean expectContentOrCData(
 88 kumpf  1.51         XmlParser& parser,
 89                     XmlEntry& entry);
 90 mike   1.19 
 91 mike   1.18     static Boolean testStartTag(
 92 kumpf  1.51         XmlParser& parser,
 93                     XmlEntry& entry,
 94                     const char* tagName);
 95 mike   1.18 
 96                 static Boolean testEndTag(
 97 kumpf  1.51         XmlParser& parser,
 98                     const char* tagName);
 99 mike   1.18 
100                 static Boolean testStartTagOrEmptyTag(
101 kumpf  1.51         XmlParser& parser,
102                     XmlEntry& entry,
103                     const char* tagName);
104 kumpf  1.44 
105                 static Boolean testStartTagOrEmptyTag(
106 kumpf  1.51         XmlParser& parser,
107                     XmlEntry& entry);
108 mike   1.18 
109                 static Boolean testContentOrCData(
110 kumpf  1.51         XmlParser& parser,
111                     XmlEntry& entry);
112 mike   1.18 
113 kumpf  1.24     static void getCimStartTag(
114 kumpf  1.51         XmlParser& parser,
115                     const char*& cimVersion,
116                     const char*& dtdVersion);
117 mike   1.18 
118 kumpf  1.40     static CIMName getCimNameAttribute(
119 kumpf  1.51         Uint32 lineNumber,
120                     const XmlEntry& entry,
121                     const char* elementName,
122                     Boolean acceptNull = false);
123 mike   1.18 
124                 static String getClassNameAttribute(
125 kumpf  1.51         Uint32 lineNumber,
126                     const XmlEntry& entry,
127                     const char* elementName);
128 mike   1.18 
129 kumpf  1.35     static CIMName getClassOriginAttribute(
130 kumpf  1.51         Uint32 lineNumber,
131                     const XmlEntry& entry,
132                     const char* tagName);
133 mike   1.18 
134 thilo.boehm 1.54     typedef enum _embeddedObjectAttributeType
135                      {
136                          NO_EMBEDDED_OBJECT     = 0,
137                          EMBEDDED_OBJECT_ATTR   = 1,
138                          EMBEDDED_INSTANCE_ATTR = 2
139                      } EmbeddedObjectAttributeType;
140                  
141                      static EmbeddedObjectAttributeType getEmbeddedObjectAttribute(
142 kumpf       1.51         Uint32 lineNumber,
143                          const XmlEntry& entry,
144                          const char* tagName);
145 dave.sudlik 1.49 
146 kumpf       1.35     static CIMName getReferenceClassAttribute(
147 kumpf       1.51         Uint32 lineNumber,
148                          const XmlEntry& entry,
149                          const char* elementName);
150 mike        1.18 
151 kumpf       1.35     static CIMName getSuperClassAttribute(
152 kumpf       1.51         Uint32 lineNumber,
153                          const XmlEntry& entry,
154                          const char* tagName);
155 mike        1.18 
156 kumpf       1.38     static Boolean getCimTypeAttribute(
157 kumpf       1.51         Uint32 lineNumber,
158                          const XmlEntry& entry,
159 kumpf       1.38         CIMType& cimType,  // Output parameter
160 kumpf       1.51         const char* tagName,
161                          const char* attributeName = "TYPE",
162                          Boolean required = true);
163 mike        1.18 
164                      static Boolean getCimBooleanAttribute(
165 kumpf       1.51         Uint32 lineNumber,
166                          const XmlEntry& entry,
167                          const char* tagName,
168                          const char* attributeName,
169                          Boolean defaultValue,
170                          Boolean required);
171 mike        1.18 
172 kumpf       1.41     static String decodeURICharacters(String uriString);
173                  
174 mike        1.18     static Boolean stringToSignedInteger(
175 kumpf       1.51         const char* stringValue,
176                          Sint64& x);
177 mike        1.18 
178                      static Boolean stringToUnsignedInteger(
179 kumpf       1.51         const char* stringValue,
180                          Uint64& x);
181 mike        1.18 
182                      static CIMValue stringToValue(
183 kumpf       1.51         Uint32 lineNumber,
184                          const char* valueString,
185                          CIMType type);
186 mike        1.18 
187 karl        1.20     /* getValueElement - Gets the CIMType and CIMValue for a single
188                          XML Value element.  It expects <VALUE> as the start tag.
189 kumpf       1.51         @return Returns True if the value element exists
190 karl        1.20     */
191 mike        1.18     static Boolean getValueElement(
192 kumpf       1.51         XmlParser& parser,
193                          CIMType type,
194                          CIMValue& value);
195 mike        1.18 
196                      static Boolean getStringValueElement(
197 kumpf       1.51         XmlParser& parser,
198                          String& str,
199                          Boolean required);
200 mike        1.18 
201                      static CIMValue stringArrayToValue(
202 kumpf       1.51         Uint32 lineNumber,
203                          const Array<const char*>& array,
204                          CIMType type);
205 mike        1.18 
206                      static Boolean getValueArrayElement(
207 kumpf       1.51         XmlParser& parser,
208                          CIMType type,
209                          CIMValue& value);
210 mike        1.18 
211 kumpf       1.37     static CIMFlavor getFlavor(
212 kumpf       1.51         XmlEntry& entry,
213                          Uint32 lineNumber,
214                          const char* tagName);
215 mike        1.18 
216 kumpf       1.36     static CIMScope getOptionalScope(
217 kumpf       1.51         XmlParser& parser);
218 mike        1.18 
219                      static Boolean getQualifierElement(
220 kumpf       1.51         XmlParser& parser,
221                          CIMQualifier& qualifier);
222 mike        1.18 
223                      static Boolean getPropertyElement(
224 kumpf       1.51         XmlParser& parser,
225                          CIMProperty& property);
226 mike        1.18 
227                      static Boolean getArraySizeAttribute(
228 kumpf       1.51         Uint32 lineNumber,
229                          const XmlEntry& entry,
230                          const char* tagName,
231                          Uint32& value);
232 mike        1.18 
233                      static Boolean getPropertyArrayElement(
234 kumpf       1.51         XmlParser& parser,
235                          CIMProperty& property);
236 mike        1.18 
237                      static Boolean getHostElement(
238 kumpf       1.51         XmlParser& parser,
239                          String& host);
240 mike        1.18 
241                      static Boolean getNameSpaceElement(
242 kumpf       1.51         XmlParser& parser,
243                          CIMName& nameSpaceComponent);
244 mike        1.18 
245                      static Boolean getLocalNameSpacePathElement(
246 kumpf       1.51         XmlParser& parser,
247                          String& nameSpace);
248 mike        1.18 
249                      static Boolean getNameSpacePathElement(
250 kumpf       1.51         XmlParser& parser,
251                          String& host,
252                          String& nameSpace);
253 mike        1.18 
254                      static Boolean getClassNameElement(
255 kumpf       1.51         XmlParser& parser,
256                          CIMName& className,
257                          Boolean required = false);
258 mike        1.18 
259 kumpf       1.39     static CIMKeyBinding::Type getValueTypeAttribute(
260 kumpf       1.51         Uint32 lineNumber,
261                          const XmlEntry& entry,
262                          const char* elementName);
263 mike        1.18 
264                      static Boolean getKeyValueElement(
265 kumpf       1.51         XmlParser& parser,
266                          CIMKeyBinding::Type& type,
267                          String& value);
268 mike        1.18 
269                      static Boolean getKeyBindingElement(
270 kumpf       1.51         XmlParser& parser,
271                          CIMName& name,
272                          String& value,
273                          CIMKeyBinding::Type& type);
274 mike        1.18 
275                      static Boolean getInstanceNameElement(
276 kumpf       1.51         XmlParser& parser,
277                          String& className,
278                          Array<CIMKeyBinding>& keyBindings);
279 mike        1.18 
280                      static Boolean getInstanceNameElement(
281 kumpf       1.51         XmlParser& parser,
282                          CIMObjectPath& instanceName);
283 mike        1.18 
284                      static Boolean getInstancePathElement(
285 kumpf       1.51         XmlParser& parser,
286                          CIMObjectPath& reference);
287 mike        1.18 
288                      static Boolean getLocalInstancePathElement(
289 kumpf       1.51         XmlParser& parser,
290                          CIMObjectPath& reference);
291 mike        1.18 
292                      static Boolean getClassPathElement(
293 kumpf       1.51         XmlParser& parser,
294                          CIMObjectPath& reference);
295 mike        1.18 
296                      static Boolean getLocalClassPathElement(
297 kumpf       1.51         XmlParser& parser,
298                          CIMObjectPath& reference);
299 mike        1.18 
300                      static Boolean getValueReferenceElement(
301 kumpf       1.51         XmlParser& parser,
302                          CIMObjectPath& reference);
303 mike        1.18 
304 kumpf       1.23     static Boolean getValueReferenceArrayElement(
305 kumpf       1.51         XmlParser& parser,
306                          CIMValue& value);
307 kumpf       1.23 
308 mike        1.18     static Boolean getPropertyReferenceElement(
309 kumpf       1.51         XmlParser& parser,
310                          CIMProperty& property);
311 mike        1.18 
312                      static Boolean getParameterElement(
313 kumpf       1.51         XmlParser& parser,
314                          CIMParameter& parameter);
315 mike        1.18 
316                      static Boolean getParameterArrayElement(
317 kumpf       1.51         XmlParser& parser,
318                          CIMParameter& parameter);
319 mike        1.18 
320                      static Boolean getParameterReferenceElement(
321 kumpf       1.51         XmlParser& parser,
322                          CIMParameter& parameter);
323 mike        1.18 
324 kumpf       1.21     static Boolean getParameterReferenceArrayElement(
325 kumpf       1.51         XmlParser& parser,
326                          CIMParameter& parameter);
327 kumpf       1.21 
328 mike        1.18     static Boolean getQualifierDeclElement(
329 kumpf       1.51         XmlParser& parser,
330                          CIMQualifierDecl& qualifierDecl);
331 mike        1.18 
332                      static Boolean getMethodElement(
333 kumpf       1.51         XmlParser& parser,
334                          CIMMethod& method);
335 mike        1.18 
336                      static Boolean getClassElement(
337 kumpf       1.51         XmlParser& parser,
338                          CIMClass& cimClass);
339 mike        1.18 
340                      static Boolean getInstanceElement(
341 kumpf       1.51         XmlParser& parser,
342                          CIMInstance& cimInstance);
343 mike        1.18 
344 mike        1.19     static Boolean getNamedInstanceElement(
345 kumpf       1.51         XmlParser& parser,
346                          CIMInstance& namedInstance);
347 mike        1.19 
348 mike        1.18     static void getObject(XmlParser& parser, CIMClass& x);
349                  
350                      static void getObject(XmlParser& parser, CIMInstance& x);
351                  
352                      static void getObject(XmlParser& parser, CIMQualifierDecl& x);
353                  
354                      static Boolean getMessageStartTag(
355 kumpf       1.51         XmlParser& parser,
356                          String& id,
357                          String& protocolVersion);
358 mike        1.18 
359                      static Boolean getIMethodCallStartTag(
360 kumpf       1.51         XmlParser& parser,
361                          const char*& name);
362 mike        1.18 
363                      static Boolean getIMethodResponseStartTag(
364 kumpf       1.46         XmlParser& parser,
365                          const char*& name,
366                          Boolean& isEmptyTag);
367 mike        1.18 
368                      static Boolean getIParamValueTag(
369 kumpf       1.51         XmlParser& parser,
370                          const char*& name,
371                          Boolean& isEmptyTag);
372 kumpf       1.45 
373                      static void rejectNullIParamValue(
374                          XmlParser& parser,
375                          Boolean isEmptyTag,
376                          const char* paramName);
377 mike        1.18 
378                      static Boolean getPropertyValue(
379 kumpf       1.51         XmlParser& parser,
380                          CIMValue& cimValue);
381 mike        1.18 
382                      static Boolean getBooleanValueElement(
383 kumpf       1.51         XmlParser& parser,
384                          Boolean& result,
385                          Boolean required = false);
386 mike        1.18 
387                      static Boolean getErrorElement(
388 kumpf       1.51         XmlParser& parser,
389                          CIMException& cimException,
390                          Boolean required = false);
391 mike        1.18 
392 kumpf       1.25     static Boolean getValueObjectElement(
393 kumpf       1.51         XmlParser& parser,
394                          CIMObject& object);
395 kumpf       1.25 
396                      static Boolean getValueObjectWithPathElement(
397 kumpf       1.51         XmlParser& parser,
398                          CIMObject& objectWithPath);
399 kumpf       1.25 
400                      static Boolean getValueObjectWithLocalPathElement(
401 kumpf       1.51         XmlParser& parser,
402                          CIMObject& objectWithPath);
403 kumpf       1.25 
404                      static void getObjectArray(
405 kumpf       1.51         XmlParser& parser,
406                          Array<CIMObject>& objectArray);
407 mike        1.18 
408                      static Boolean getObjectNameElement(
409 kumpf       1.51         XmlParser& parser,
410                          CIMObjectPath& objectName);
411 mike        1.18 
412                      static Boolean getObjectPathElement(
413 kumpf       1.51         XmlParser& parser,
414                          CIMObjectPath& objectPath);
415 mike        1.19 
416                      static Boolean getEMethodCallStartTag(
417 kumpf       1.51         XmlParser& parser,
418                          const char*& name);
419 mike        1.19 
420                      static Boolean getEMethodResponseStartTag(
421 kumpf       1.46         XmlParser& parser,
422                          const char*& name,
423                          Boolean& isEmptyTag);
424 mike        1.19 
425 kumpf       1.42     static Boolean getEParamValueTag(
426 kumpf       1.51         XmlParser& parser,
427                          const char*& name);
428 kumpf       1.42 
429 mike        1.19     static Boolean getMethodCallStartTag(
430 kumpf       1.51         XmlParser& parser,
431                          const char*& name);
432 mike        1.19 
433                      static Boolean getMethodResponseStartTag(
434 kumpf       1.46         XmlParser& parser,
435                          const char*& name,
436                          Boolean& isEmptyTag);
437 mike        1.19 
438 kumpf       1.21     static Boolean getParamValueElement(
439 kumpf       1.51         XmlParser& parser,
440                          CIMParamValue& paramValue);
441 mike        1.18 
442 kumpf       1.22     static Boolean getReturnValueElement(
443 kumpf       1.51         XmlParser& parser,
444                          CIMValue& returnValue);
445 kumpf       1.22 
446 karl        1.52     static Boolean isSupportedCIMVersion(
447                          const char* cimVersion);
448                  
449                      static Boolean isSupportedProtocolVersion(
450                          const String& protocolVersion);
451                  
452                      static Boolean isSupportedDTDVersion(
453                          const char* dtdVersion);
454 mike        1.18 private:
455                  
456 kumpf       1.51     XmlReader()
457                      {
458 mike        1.18 
459                      }
460                  };
461                  
462                  PEGASUS_NAMESPACE_END
463                  
464                  #endif /* Pegasus_XmlReader_h */

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2