From 01d98593fe9db1ae0c5e0ae3f7ccb6b1621c8c4c Mon Sep 17 00:00:00 2001 From: PeiYong Zhang <peiyongz@apache.org> Date: Thu, 14 Feb 2002 15:17:31 +0000 Subject: [PATCH] getEnumString() git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@173498 13f79535-47bb-0310-9956-ffa450edef68 --- samples/SEnumVal/SEnumVal.cpp | 16 ++++++++++++++++ .../datatype/AbstractNumericFacetValidator.cpp | 17 ++++++++++++++--- .../datatype/AbstractNumericFacetValidator.hpp | 9 +++++++-- .../datatype/AbstractStringValidator.cpp | 12 ++++++++++-- .../datatype/AbstractStringValidator.hpp | 9 +++++++-- .../datatype/AnySimpleTypeDatatypeValidator.cpp | 13 +++++++++++-- .../datatype/AnySimpleTypeDatatypeValidator.hpp | 2 ++ .../datatype/BooleanDatatypeValidator.cpp | 12 ++++++++++-- .../datatype/BooleanDatatypeValidator.hpp | 2 ++ .../validators/datatype/DatatypeValidator.hpp | 6 ++++++ .../datatype/UnionDatatypeValidator.cpp | 11 +++++++++-- .../datatype/UnionDatatypeValidator.hpp | 9 +++++++-- 12 files changed, 101 insertions(+), 17 deletions(-) diff --git a/samples/SEnumVal/SEnumVal.cpp b/samples/SEnumVal/SEnumVal.cpp index 3e982bf3b..773dfe10d 100644 --- a/samples/SEnumVal/SEnumVal.cpp +++ b/samples/SEnumVal/SEnumVal.cpp @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.7 2002/02/14 15:14:58 peiyongz + * getEnumString() + * * Revision 1.6 2002/02/01 22:41:28 peiyongz * sane_include * @@ -485,6 +488,19 @@ void processDatatypeValidator( const DatatypeValidator* dtValidator, bool margin } } + // Enumerations + const RefVectorOf<XMLCh>* enums = dtValidator->getEnumString(); + if (enums) + { + cout << "Enumeration:\t\t\n"; + + int enumLength = enums->size(); + for ( int i = 0; i < enumLength; i++) + { + cout << "\t" << StrX( enums->elementAt(i)) << "\n"; + } + + } } void processContentSpecNode( const ContentSpecNode* cSpecNode, bool margin ) diff --git a/src/xercesc/validators/datatype/AbstractNumericFacetValidator.cpp b/src/xercesc/validators/datatype/AbstractNumericFacetValidator.cpp index 8c892e955..fcfc7d1c1 100644 --- a/src/xercesc/validators/datatype/AbstractNumericFacetValidator.cpp +++ b/src/xercesc/validators/datatype/AbstractNumericFacetValidator.cpp @@ -57,8 +57,11 @@ /* * $Id$ * $Log$ - * Revision 1.1 2002/02/01 22:22:39 peiyongz - * Initial revision + * Revision 1.2 2002/02/14 15:17:31 peiyongz + * getEnumString() + * + * Revision 1.1.1.1 2002/02/01 22:22:39 peiyongz + * sane_include * * Revision 1.6 2001/12/13 16:48:29 peiyongz * Avoid dangling pointer @@ -140,6 +143,9 @@ AbstractNumericFacetValidator::~AbstractNumericFacetValidator() //~RefVectorOf will delete all adopted elements if (!fEnumerationInherited && fEnumeration) delete fEnumeration; + + if (!fEnumerationInherited && fStrEnumeration) + delete fStrEnumeration; } AbstractNumericFacetValidator::AbstractNumericFacetValidator( @@ -170,7 +176,7 @@ void AbstractNumericFacetValidator::init(RefVectorOf<XMLCh>* const enums) { fStrEnumeration = enums; // save the literal value - Janitor<RefVectorOf<XMLCh> > janStrEnum(fStrEnumeration); + // which is needed for getEnumString() if (enums) { @@ -781,6 +787,11 @@ void AbstractNumericFacetValidator::inheritFacet() } +const RefVectorOf<XMLCh>* AbstractNumericFacetValidator::getEnumString() const +{ + return (fEnumerationInherited? getBaseValidator()->getEnumString() : fStrEnumeration ); +} + /** * End of file AbstractNumericFacetValidator::cpp */ diff --git a/src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp b/src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp index 41187cf1e..de8d7e6ba 100644 --- a/src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp +++ b/src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp @@ -57,8 +57,11 @@ /* * $Id$ * $Log$ - * Revision 1.1 2002/02/01 22:22:39 peiyongz - * Initial revision + * Revision 1.2 2002/02/14 15:17:31 peiyongz + * getEnumString() + * + * Revision 1.1.1.1 2002/02/01 22:22:39 peiyongz + * sane_include * * Revision 1.3 2001/11/22 20:23:20 peiyongz * _declspec(dllimport) and inline warning C4273 @@ -92,6 +95,8 @@ public: //@} + virtual const RefVectorOf<XMLCh>* getEnumString() const; + protected: AbstractNumericFacetValidator(DatatypeValidator* const baseValidator diff --git a/src/xercesc/validators/datatype/AbstractStringValidator.cpp b/src/xercesc/validators/datatype/AbstractStringValidator.cpp index 775bf954b..f4802f27d 100644 --- a/src/xercesc/validators/datatype/AbstractStringValidator.cpp +++ b/src/xercesc/validators/datatype/AbstractStringValidator.cpp @@ -56,8 +56,11 @@ /* * $Log$ - * Revision 1.1 2002/02/01 22:22:39 peiyongz - * Initial revision + * Revision 1.2 2002/02/14 15:17:31 peiyongz + * getEnumString() + * + * Revision 1.1.1.1 2002/02/01 22:22:39 peiyongz + * sane_include * * Revision 1.7 2001/12/13 16:48:29 peiyongz * Avoid dangling pointer @@ -653,6 +656,11 @@ void AbstractStringValidator::checkContent( const XMLCh* const content, bool asB } +const RefVectorOf<XMLCh>* AbstractStringValidator::getEnumString() const +{ + return getEnumeration(); +} + /** * End of file AbstractStringValidator.cpp */ diff --git a/src/xercesc/validators/datatype/AbstractStringValidator.hpp b/src/xercesc/validators/datatype/AbstractStringValidator.hpp index fc7ee2a6b..a5497b4b7 100644 --- a/src/xercesc/validators/datatype/AbstractStringValidator.hpp +++ b/src/xercesc/validators/datatype/AbstractStringValidator.hpp @@ -57,8 +57,11 @@ /* * $Id$ * $Log$ - * Revision 1.1 2002/02/01 22:22:40 peiyongz - * Initial revision + * Revision 1.2 2002/02/14 15:17:31 peiyongz + * getEnumString() + * + * Revision 1.1.1.1 2002/02/01 22:22:40 peiyongz + * sane_include * * Revision 1.9 2001/12/13 16:48:29 peiyongz * Avoid dangling pointer @@ -117,6 +120,8 @@ public: //@} + virtual const RefVectorOf<XMLCh>* getEnumString() const; + // ----------------------------------------------------------------------- // Validation methods // ----------------------------------------------------------------------- diff --git a/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.cpp b/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.cpp index 78f801d2a..747183ca0 100644 --- a/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.cpp +++ b/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.cpp @@ -56,8 +56,11 @@ /* * $Log$ - * Revision 1.1 2002/02/01 22:22:40 peiyongz - * Initial revision + * Revision 1.2 2002/02/14 15:17:31 peiyongz + * getEnumString() + * + * Revision 1.1.1.1 2002/02/01 22:22:40 peiyongz + * sane_include * * Revision 1.1 2001/08/24 17:12:01 knoaman * Add support for anySimpleType. @@ -105,6 +108,12 @@ AnySimpleTypeDatatypeValidator::newInstance(RefHashTableOf<KVStringPair>* const // to satisfy some compilers return 0; } + +const RefVectorOf<XMLCh>* AnySimpleTypeDatatypeValidator::getEnumString() const +{ + return 0; +} + /** * End of file AnySimpleTypeDatatypeValidator.cpp */ diff --git a/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp b/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp index 0d83a017b..1b188ae39 100644 --- a/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp +++ b/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp @@ -87,6 +87,8 @@ public: //@} + virtual const RefVectorOf<XMLCh>* getEnumString() const; + // ----------------------------------------------------------------------- // Getter methods // ----------------------------------------------------------------------- diff --git a/src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp b/src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp index 3b39b4174..a63bc3da4 100644 --- a/src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp +++ b/src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp @@ -56,8 +56,11 @@ /* * $Log$ - * Revision 1.1 2002/02/01 22:22:40 peiyongz - * Initial revision + * Revision 1.2 2002/02/14 15:17:31 peiyongz + * getEnumString() + * + * Revision 1.1.1.1 2002/02/01 22:22:40 peiyongz + * sane_include * * Revision 1.7 2001/10/02 18:59:29 peiyongz * Invalid_Facet_Tag to display the tag name @@ -222,6 +225,11 @@ int BooleanDatatypeValidator::compare(const XMLCh* const lValue return 1; } +const RefVectorOf<XMLCh>* BooleanDatatypeValidator::getEnumString() const +{ + return 0; +} + /** * End of file BooleanDatatypeValidator.cpp */ diff --git a/src/xercesc/validators/datatype/BooleanDatatypeValidator.hpp b/src/xercesc/validators/datatype/BooleanDatatypeValidator.hpp index e30b2fd62..d7353ba6d 100644 --- a/src/xercesc/validators/datatype/BooleanDatatypeValidator.hpp +++ b/src/xercesc/validators/datatype/BooleanDatatypeValidator.hpp @@ -84,6 +84,8 @@ public: //@} + virtual const RefVectorOf<XMLCh>* getEnumString() const; + // ----------------------------------------------------------------------- // Getter methods // ----------------------------------------------------------------------- diff --git a/src/xercesc/validators/datatype/DatatypeValidator.hpp b/src/xercesc/validators/datatype/DatatypeValidator.hpp index 94131f731..c625e1d3e 100644 --- a/src/xercesc/validators/datatype/DatatypeValidator.hpp +++ b/src/xercesc/validators/datatype/DatatypeValidator.hpp @@ -193,6 +193,12 @@ public: */ virtual bool isAtomic() const; + /** + * Returns the datatype enumeration if any is set. + * Derived class shall provide their own copy. + */ + virtual const RefVectorOf<XMLCh>* getEnumString() const = 0; + //@} // ----------------------------------------------------------------------- diff --git a/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp b/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp index 5948528ea..13cbab4b8 100644 --- a/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp +++ b/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp @@ -57,8 +57,11 @@ /* * $Id$ * $Log$ - * Revision 1.1 2002/02/01 22:22:42 peiyongz - * Initial revision + * Revision 1.2 2002/02/14 15:17:31 peiyongz + * getEnumString() + * + * Revision 1.1.1.1 2002/02/01 22:22:42 peiyongz + * sane_include * * Revision 1.5 2001/10/02 18:59:29 peiyongz * Invalid_Facet_Tag to display the tag name @@ -385,6 +388,10 @@ int UnionDatatypeValidator::compare(const XMLCh* const lValue return -1; } +const RefVectorOf<XMLCh>* UnionDatatypeValidator::getEnumString() const +{ + return getEnumeration(); +} /** * End of file UnionDatatypeValidator.cpp */ diff --git a/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp b/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp index b9eb4481a..8d91b50d2 100644 --- a/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp +++ b/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp @@ -57,8 +57,11 @@ /* * $Id$ * $Log$ - * Revision 1.1 2002/02/01 22:22:43 peiyongz - * Initial revision + * Revision 1.2 2002/02/14 15:17:31 peiyongz + * getEnumString() + * + * Revision 1.1.1.1 2002/02/01 22:22:43 peiyongz + * sane_include * * Revision 1.9 2001/12/13 16:48:29 peiyongz * Avoid dangling pointer @@ -132,6 +135,8 @@ public: //@} + virtual const RefVectorOf<XMLCh>* getEnumString() const; + // ----------------------------------------------------------------------- // Getter methods // ----------------------------------------------------------------------- -- GitLab