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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2