00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072 #if !defined(XMLENTITYDECL_HPP)
00073 #define XMLENTITYDECL_HPP
00074
00075 #include <xercesc/util/XMemory.hpp>
00076 #include <xercesc/util/PlatformUtils.hpp>
00077 #include <xercesc/util/XMLString.hpp>
00078 #include <xercesc/internal/XSerializable.hpp>
00079
00080 XERCES_CPP_NAMESPACE_BEGIN
00081
00100 class XMLEntityDecl : public XSerializable, public XMemory
00101 {
00102 public:
00103
00104
00105
00106
00109
00113 XMLEntityDecl(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00114
00121 XMLEntityDecl
00122 (
00123 const XMLCh* const entName
00124 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00125 );
00126
00135 XMLEntityDecl
00136 (
00137 const XMLCh* const entName
00138 , const XMLCh* const value
00139 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00140 );
00141
00150 XMLEntityDecl
00151 (
00152 const XMLCh* const entName
00153 , const XMLCh value
00154 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00155 );
00157
00160
00164 virtual ~XMLEntityDecl();
00165
00167
00168
00169
00170
00171
00172
00175
00183 virtual bool getDeclaredInIntSubset() const = 0;
00184
00190 virtual bool getIsParameter() const = 0;
00191
00197 virtual bool getIsSpecialChar() const = 0;
00198
00200
00201
00202
00203
00204
00205
00208
00213 unsigned int getId() const;
00214
00220 const XMLCh* getName() const;
00221
00226 const XMLCh* getNotationName() const;
00227
00232 const XMLCh* getPublicId() const;
00233
00238 const XMLCh* getSystemId() const;
00239
00243 const XMLCh* getBaseURI() const;
00244
00250 const XMLCh* getValue() const;
00251
00257 unsigned int getValueLen() const;
00258
00263 bool isExternal() const;
00264
00270 bool isUnparsed() const;
00271
00279 MemoryManager* getMemoryManager() const;
00280
00282
00283
00284
00285
00286
00287
00290
00299 void setName
00300 (
00301 const XMLCh* const entName
00302 );
00303
00310 void setNotationName(const XMLCh* const newName);
00311
00318 void setPublicId(const XMLCh* const newId);
00319
00329 void setSystemId(const XMLCh* const newId);
00330
00337 void setBaseURI(const XMLCh* const newId);
00338
00346 void setValue(const XMLCh* const newValue);
00347
00349
00350
00351 void setId(const unsigned int newId);
00352
00353
00354
00355
00356
00357
00360
00367 const XMLCh* getKey() const;
00368
00370
00371
00372
00373
00374 DECL_XSERIALIZABLE(XMLEntityDecl)
00375
00376 private :
00377
00378
00379
00380 XMLEntityDecl(const XMLEntityDecl&);
00381 XMLEntityDecl& operator=(XMLEntityDecl&);
00382
00383
00384
00385
00386
00387 void cleanUp();
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418 unsigned int fId;
00419 unsigned int fValueLen;
00420 XMLCh* fValue;
00421 XMLCh* fName;
00422 XMLCh* fNotationName;
00423 XMLCh* fPublicId;
00424 XMLCh* fSystemId;
00425 XMLCh* fBaseURI;
00426 MemoryManager* fMemoryManager;
00427 };
00428
00429
00430
00431
00432
00433 inline unsigned int XMLEntityDecl::getId() const
00434 {
00435 return fId;
00436 }
00437
00438 inline const XMLCh* XMLEntityDecl::getName() const
00439 {
00440 return fName;
00441 }
00442
00443 inline const XMLCh* XMLEntityDecl::getNotationName() const
00444 {
00445 return fNotationName;
00446 }
00447
00448 inline const XMLCh* XMLEntityDecl::getPublicId() const
00449 {
00450 return fPublicId;
00451 }
00452
00453 inline const XMLCh* XMLEntityDecl::getSystemId() const
00454 {
00455 return fSystemId;
00456 }
00457
00458 inline const XMLCh* XMLEntityDecl::getBaseURI() const
00459 {
00460 return fBaseURI;
00461 }
00462
00463 inline const XMLCh* XMLEntityDecl::getValue() const
00464 {
00465 return fValue;
00466 }
00467
00468 inline unsigned int XMLEntityDecl::getValueLen() const
00469 {
00470 return fValueLen;
00471 }
00472
00473 inline bool XMLEntityDecl::isExternal() const
00474 {
00475
00476 return ((fPublicId != 0) || (fSystemId != 0));
00477 }
00478
00479 inline bool XMLEntityDecl::isUnparsed() const
00480 {
00481
00482 return (fNotationName != 0);
00483 }
00484
00485 inline MemoryManager* XMLEntityDecl::getMemoryManager() const
00486 {
00487 return fMemoryManager;
00488 }
00489
00490
00491
00492
00493 inline void XMLEntityDecl::setId(const unsigned int newId)
00494 {
00495 fId = newId;
00496 }
00497
00498 inline void XMLEntityDecl::setNotationName(const XMLCh* const newName)
00499 {
00500 if (fNotationName)
00501 fMemoryManager->deallocate(fNotationName);
00502
00503 fNotationName = XMLString::replicate(newName, fMemoryManager);
00504 }
00505
00506 inline void XMLEntityDecl::setPublicId(const XMLCh* const newId)
00507 {
00508 if (fPublicId)
00509 fMemoryManager->deallocate(fPublicId);
00510
00511 fPublicId = XMLString::replicate(newId, fMemoryManager);
00512 }
00513
00514 inline void XMLEntityDecl::setSystemId(const XMLCh* const newId)
00515 {
00516 if (fSystemId)
00517 fMemoryManager->deallocate(fSystemId);
00518
00519 fSystemId = XMLString::replicate(newId, fMemoryManager);
00520 }
00521
00522 inline void XMLEntityDecl::setBaseURI(const XMLCh* const newId)
00523 {
00524 if (fBaseURI)
00525 fMemoryManager->deallocate(fBaseURI);
00526
00527 fBaseURI = XMLString::replicate(newId, fMemoryManager);
00528 }
00529
00530 inline void XMLEntityDecl::setValue(const XMLCh* const newValue)
00531 {
00532 if (fValue)
00533 fMemoryManager->deallocate(fValue);
00534
00535 fValue = XMLString::replicate(newValue, fMemoryManager);
00536 fValueLen = XMLString::stringLen(newValue);
00537 }
00538
00539
00540
00541
00542
00543 inline const XMLCh* XMLEntityDecl::getKey() const
00544 {
00545 return fName;
00546 }
00547
00548 XERCES_CPP_NAMESPACE_END
00549
00550 #endif