diff --git a/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp b/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp index 2eceddcd68d90edfbe0023b3fbf49d27d00dbd71..041f86fd2d65c96d5187c374f5b8fa77d2b491b1 100644 --- a/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp +++ b/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.29 2004/09/13 21:38:34 peiyongz + * getBuiltInBaseValidator + * * Revision 1.28 2004/09/08 13:56:52 peiyongz * Apache License Version 2.0 * @@ -775,6 +778,21 @@ XMLCanRepGroup::CanRepGroup DatatypeValidatorFactory::getCanRepGroup(const Datat return XMLCanRepGroup::String; } +DatatypeValidator* DatatypeValidatorFactory::getBuiltInBaseValidator(const DatatypeValidator* const dv) +{ + DatatypeValidator *curdv = (DatatypeValidator*)dv; + + while (curdv) + { + if (curdv == getBuiltInRegistry()->get(curdv->getTypeLocalName())) + return curdv; + else + curdv = curdv->getBaseValidator(); + } + + return 0; +} + // --------------------------------------------------------------------------- // DatatypeValidatorFactory: factory methods // --------------------------------------------------------------------------- diff --git a/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp b/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp index ff13122bdfb41c1db7489ae3fc438654ea5e1e68..4136ecee241d6762ffb6b8a8bde15790521ac21b 100644 --- a/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp +++ b/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp @@ -139,6 +139,8 @@ public: static XMLCanRepGroup::CanRepGroup getCanRepGroup(const DatatypeValidator* const); + static DatatypeValidator* getBuiltInBaseValidator(const DatatypeValidator* const); + // ----------------------------------------------------------------------- // Validator Factory methods // -----------------------------------------------------------------------