diff --git a/src/xercesc/internal/IGXMLScanner2.cpp b/src/xercesc/internal/IGXMLScanner2.cpp
index f4290e5c968062fb12f42445fbc4ec293273be15..dbd912ea9e28da6c203ae114a9d606cec57db5f9 100644
--- a/src/xercesc/internal/IGXMLScanner2.cpp
+++ b/src/xercesc/internal/IGXMLScanner2.cpp
@@ -1203,7 +1203,7 @@ void IGXMLScanner::scanRawAttrListforNameSpaces(const RefVectorOf<KVStringPair>*
 
 void IGXMLScanner::parseSchemaLocation(const XMLCh* const schemaLocationStr)
 {
-    RefVectorOf<XMLCh>* schemaLocation = XMLString::tokenizeString(schemaLocationStr);
+    BaseRefVectorOf<XMLCh>* schemaLocation = XMLString::tokenizeString(schemaLocationStr);
     unsigned int size = schemaLocation->size();
     if (size % 2 != 0 ) {
         emitError(XMLErrs::BadSchemaLocation);
diff --git a/src/xercesc/internal/SGXMLScanner.cpp b/src/xercesc/internal/SGXMLScanner.cpp
index 9d6e97be05f0bdc1494c98ea8703ded9888e6f45..8d976b1ba2fcdcf85b267a0c7a4a952530d2a16f 100644
--- a/src/xercesc/internal/SGXMLScanner.cpp
+++ b/src/xercesc/internal/SGXMLScanner.cpp
@@ -2916,7 +2916,7 @@ void SGXMLScanner::scanRawAttrListforNameSpaces(const RefVectorOf<KVStringPair>*
 
 void SGXMLScanner::parseSchemaLocation(const XMLCh* const schemaLocationStr)
 {
-    RefVectorOf<XMLCh>* schemaLocation = XMLString::tokenizeString(schemaLocationStr);
+    BaseRefVectorOf<XMLCh>* schemaLocation = XMLString::tokenizeString(schemaLocationStr);
     unsigned int size = schemaLocation->size();
     if (size % 2 != 0 ) {
         emitError(XMLErrs::BadSchemaLocation);
diff --git a/src/xercesc/util/XMLString.cpp b/src/xercesc/util/XMLString.cpp
index fe01848e0ffeea82f265b7401061ab08be4b389c..d16be63d2165b4d7b5f80a2d3d357a3dd0c8ab70 100644
--- a/src/xercesc/util/XMLString.cpp
+++ b/src/xercesc/util/XMLString.cpp
@@ -71,6 +71,7 @@
 #include <xercesc/util/NumberFormatException.hpp>
 #include <xercesc/util/Janitor.hpp>
 #include <xercesc/util/PlatformUtils.hpp>
+#include <xercesc/util/RefArrayVectorOf.hpp>
 #include <xercesc/util/RuntimeException.hpp>
 #include <xercesc/util/TransService.hpp>
 #include <xercesc/util/TranscodingException.hpp>
@@ -1466,13 +1467,13 @@ void XMLString::subString(XMLCh* const targetStr, const XMLCh* const srcStr
     targetStr[copySize] = 0;
 }
 
-RefVectorOf<XMLCh>* XMLString::tokenizeString(const XMLCh* const tokenizeSrc)
+BaseRefVectorOf<XMLCh>* XMLString::tokenizeString(const XMLCh* const tokenizeSrc)
 {
     XMLCh* orgText = replicate(tokenizeSrc);
     ArrayJanitor<XMLCh> janText(orgText);
     XMLCh* tokenizeStr = orgText;
 
-    RefVectorOf<XMLCh>* tokenStack = new RefVectorOf<XMLCh>(16, true);
+    RefArrayVectorOf<XMLCh>* tokenStack = new RefArrayVectorOf<XMLCh>(16, true);
 
     unsigned int len = stringLen(tokenizeStr);
     unsigned int skip;
diff --git a/src/xercesc/util/XMLString.hpp b/src/xercesc/util/XMLString.hpp
index a266099ee4ec5e152caa2a5d8e09e3d73025fd74..57d343f4ee2940a446d78786159efb8f54f274cc 100644
--- a/src/xercesc/util/XMLString.hpp
+++ b/src/xercesc/util/XMLString.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.10  2002/12/18 14:17:54  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.9  2002/12/04 02:32:43  knoaman
  * #include cleanup.
  *
@@ -210,12 +213,11 @@
 #if !defined(XMLSTRING_HPP)
 #define XMLSTRING_HPP
 
-#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/BaseRefVectorOf.hpp>
 
 XERCES_CPP_NAMESPACE_BEGIN
 
 class XMLLCPTranscoder;
-
 /**
   * Class for representing native character strings and handling common string
   * operations
@@ -1259,7 +1261,7 @@ public:
       * @param tokenizeSrc String to be tokenized
       * @return a vector of all the tokenized string
       */
-    static RefVectorOf<XMLCh>* tokenizeString(const XMLCh* const tokenizeSrc);
+    static BaseRefVectorOf<XMLCh>* tokenizeString(const XMLCh* const tokenizeSrc);
 
     /** Find is the string appears in the enum list
       * @param toFind the string to be found
diff --git a/src/xercesc/util/XMLStringTokenizer.cpp b/src/xercesc/util/XMLStringTokenizer.cpp
index cd4492c3b50316f44f6f3cdfb11f2230c50946b6..ce029377d6f17bb2b5d74f6c582cc200149b35e3 100644
--- a/src/xercesc/util/XMLStringTokenizer.cpp
+++ b/src/xercesc/util/XMLStringTokenizer.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:54  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 15:22:05  tng
  * C++ Namespace Support.
  *
@@ -97,7 +100,7 @@ XMLStringTokenizer::XMLStringTokenizer(const XMLCh* const srcStr)
         fDelimeters = XMLString::replicate(fgDelimeters);
 
         if (fStringLen > 0) {
-            fTokens = new RefVectorOf<XMLCh>(4, true);
+            fTokens = new RefArrayVectorOf<XMLCh>(4, true);
         }
     }
     catch(...) {
@@ -117,7 +120,7 @@ XMLStringTokenizer::XMLStringTokenizer(const XMLCh* const srcStr,
         fDelimeters = XMLString::replicate(delim);
 
         if (fStringLen > 0) {
-            fTokens = new RefVectorOf<XMLCh>(4, true);
+            fTokens = new RefArrayVectorOf<XMLCh>(4, true);
         }
     }
     catch(...) {
diff --git a/src/xercesc/util/XMLStringTokenizer.hpp b/src/xercesc/util/XMLStringTokenizer.hpp
index ab764c9b369ea0bd888db1219cc61c0d3ace6afd..f4613477331deaeb0a32cff0500b85f64ce9c050 100644
--- a/src/xercesc/util/XMLStringTokenizer.hpp
+++ b/src/xercesc/util/XMLStringTokenizer.hpp
@@ -61,7 +61,7 @@
 #if !defined(XMLSTRINGTOKENIZER_HPP)
 #define XMLSTRINGTOKENIZER_HPP
 
-#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/RefArrayVectorOf.hpp>
 #include <xercesc/util/XMLString.hpp>
 
 XERCES_CPP_NAMESPACE_BEGIN
@@ -188,7 +188,7 @@ private:
     int                 fStringLen;
 	XMLCh*              fString;
     XMLCh*              fDelimeters;
-	RefVectorOf<XMLCh>* fTokens;
+	RefArrayVectorOf<XMLCh>* fTokens;
 };
 
 
diff --git a/src/xercesc/validators/DTD/DTDScanner.cpp b/src/xercesc/validators/DTD/DTDScanner.cpp
index 4145069c4b9ffcda833485d47e8332b27fafd880..e44edc01ca37186cc58f2cb56a7cda14c3c0490f 100644
--- a/src/xercesc/validators/DTD/DTDScanner.cpp
+++ b/src/xercesc/validators/DTD/DTDScanner.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.18  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.17  2002/12/04 02:47:25  knoaman
  * scanner re-organization.
  *
@@ -709,7 +712,7 @@ DTDScanner::scanAttDef(DTDElementDecl& parentElem, XMLBuffer& bufToUse)
             const XMLCh fgDefault[] = { chLatin_d, chLatin_e, chLatin_f, chLatin_a, chLatin_u, chLatin_l, chLatin_t, chNull };
             bool ok = false;
             if (decl->getType() == XMLAttDef::Enumeration) {
-                RefVectorOf<XMLCh>* enumVector = XMLString::tokenizeString(decl->getEnumeration());
+                BaseRefVectorOf<XMLCh>* enumVector = XMLString::tokenizeString(decl->getEnumeration());
                 int size = enumVector->size();
                 ok = (size == 1 &&
                      (XMLString::equals(enumVector->elementAt(0), fgDefault) ||
diff --git a/src/xercesc/validators/datatype/AbstractNumericFacetValidator.cpp b/src/xercesc/validators/datatype/AbstractNumericFacetValidator.cpp
index 43d9434c8a78515dffe2596b0b54ecc407b40e89..1acccd8895298e5aec1f9631a98ef639af4c3146 100644
--- a/src/xercesc/validators/datatype/AbstractNumericFacetValidator.cpp
+++ b/src/xercesc/validators/datatype/AbstractNumericFacetValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.7  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.6  2002/11/26 22:19:15  peiyongz
  * Schema Errata E2-16 maxExclusive
  *
@@ -186,7 +189,7 @@ AbstractNumericFacetValidator::AbstractNumericFacetValidator(
 //
 //  P1. Enumeration
 //
-void AbstractNumericFacetValidator::init(RefVectorOf<XMLCh>* const enums)
+void AbstractNumericFacetValidator::init(RefArrayVectorOf<XMLCh>* const enums)
 {
 
     fStrEnumeration = enums; // save the literal value
@@ -839,7 +842,7 @@ void AbstractNumericFacetValidator::inheritFacet()
 
 }
 
-const RefVectorOf<XMLCh>* AbstractNumericFacetValidator::getEnumString() const
+const RefArrayVectorOf<XMLCh>* AbstractNumericFacetValidator::getEnumString() const
 {
 	return (fEnumerationInherited? getBaseValidator()->getEnumString() : fStrEnumeration );
 }
diff --git a/src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp b/src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp
index 97bdb3a522889fdc6abb7bbaab8e9713040a4ff2..0b89411a12b2d4efa5c132e76c99465abadcd58e 100644
--- a/src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp
+++ b/src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.5  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.4  2002/11/04 14:53:27  tng
  * C++ Namespace Support.
  *
@@ -85,7 +88,7 @@
 #define ABSTRACT_NUMERIC_FACET_VALIDATOR_HPP
 
 #include <xercesc/validators/datatype/DatatypeValidator.hpp>
-#include <xercesc/util/RefVectorOf.hpp>
+#include <xercesc/util/RefArrayVectorOf.hpp>
 #include <xercesc/util/XMLNumber.hpp>
 
 XERCES_CPP_NAMESPACE_BEGIN
@@ -104,7 +107,7 @@ public:
 
 	//@}
 
-	virtual const RefVectorOf<XMLCh>* getEnumString() const;
+	virtual const RefArrayVectorOf<XMLCh>* getEnumString() const;
 
 protected:
 
@@ -113,7 +116,7 @@ protected:
                                 , const int                           finalSet
                                 , const ValidatorType                 type);
 
-    void init(RefVectorOf<XMLCh>*  const enums);
+    void init(RefArrayVectorOf<XMLCh>*  const enums);
 
     //
     // Abstract interface
@@ -183,7 +186,7 @@ protected:
     XMLNumber*               fMinExclusive;
 
     RefVectorOf<XMLNumber>*  fEnumeration;    // save the actual value
-    RefVectorOf<XMLCh>*      fStrEnumeration;
+    RefArrayVectorOf<XMLCh>*      fStrEnumeration;
 
 private:
 
diff --git a/src/xercesc/validators/datatype/AbstractNumericValidator.hpp b/src/xercesc/validators/datatype/AbstractNumericValidator.hpp
index b39d7d476136922b5c37ddaa8dea84a4aa9bdd4a..b62c53866e77ee4aab771e11265aaee1249d9052 100644
--- a/src/xercesc/validators/datatype/AbstractNumericValidator.hpp
+++ b/src/xercesc/validators/datatype/AbstractNumericValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:27  tng
  * C++ Namespace Support.
  *
@@ -103,7 +106,7 @@ protected:
                            , const int                           finalSet
                            , const ValidatorType                 type);
 
-    inline void init(RefVectorOf<XMLCh>*  const enums);
+    inline void init(RefArrayVectorOf<XMLCh>*  const enums);
 
     //
     // Abstract interface
@@ -122,7 +125,7 @@ private:
 
 };
 
-inline void AbstractNumericValidator::init(RefVectorOf<XMLCh>*  const enums)
+inline void AbstractNumericValidator::init(RefArrayVectorOf<XMLCh>*  const enums)
 {
     AbstractNumericFacetValidator::init(enums);
 }
diff --git a/src/xercesc/validators/datatype/AbstractStringValidator.cpp b/src/xercesc/validators/datatype/AbstractStringValidator.cpp
index 01e5b11ba0d6a9a943e25aa95d8e4f2733325003..16de3dc5b0a3e540af63452635842de8650f42cc 100644
--- a/src/xercesc/validators/datatype/AbstractStringValidator.cpp
+++ b/src/xercesc/validators/datatype/AbstractStringValidator.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.7  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.6  2002/11/04 14:53:27  tng
  * C++ Namespace Support.
  *
@@ -168,7 +171,7 @@ AbstractStringValidator::AbstractStringValidator(
     // assigneAdditionalFacet(), inheritAdditionalFacet().
 }
 
-void AbstractStringValidator::init(RefVectorOf<XMLCh>*           const enums)
+void AbstractStringValidator::init(RefArrayVectorOf<XMLCh>*           const enums)
 {
 
     if (enums)
@@ -670,7 +673,7 @@ void AbstractStringValidator::checkContent( const XMLCh* const content, bool asB
 
 }
 
-const RefVectorOf<XMLCh>* AbstractStringValidator::getEnumString() const
+const RefArrayVectorOf<XMLCh>* AbstractStringValidator::getEnumString() const
 {
 	return getEnumeration();
 }
diff --git a/src/xercesc/validators/datatype/AbstractStringValidator.hpp b/src/xercesc/validators/datatype/AbstractStringValidator.hpp
index c4d2cba0eb86bf2ed358e8f9611666a46933672c..95f6bd686edbe1851cdb01c46426f02a419359fc 100644
--- a/src/xercesc/validators/datatype/AbstractStringValidator.hpp
+++ b/src/xercesc/validators/datatype/AbstractStringValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.5  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.4  2002/11/04 14:53:27  tng
  * C++ Namespace Support.
  *
@@ -129,7 +132,7 @@ public:
 
 	//@}
 
-	virtual const RefVectorOf<XMLCh>* getEnumString() const;
+	virtual const RefArrayVectorOf<XMLCh>* getEnumString() const;
 
     // -----------------------------------------------------------------------
     // Validation methods
@@ -166,7 +169,7 @@ protected:
                           , const int                           finalSet
                           , const ValidatorType                 type);
 
-    void init(RefVectorOf<XMLCh>*           const enums);
+    void init(RefArrayVectorOf<XMLCh>*           const enums);
 
     //
     // Abstract interface
@@ -204,7 +207,7 @@ public:
 
     inline unsigned int         getMinLength() const;
 
-    inline RefVectorOf<XMLCh>*  getEnumeration() const;
+    inline RefArrayVectorOf<XMLCh>*  getEnumeration() const;
 
 protected:
 // -----------------------------------------------------------------------
@@ -217,7 +220,7 @@ protected:
 
     inline void                 setMinLength(unsigned int);
 
-    inline void                 setEnumeration(RefVectorOf<XMLCh>*, bool);
+    inline void                 setEnumeration(RefArrayVectorOf<XMLCh>*, bool);
 
 private:
 
@@ -233,7 +236,7 @@ private:
      unsigned int         fMaxLength;
      unsigned int         fMinLength;
      bool                 fEnumerationInherited;
-     RefVectorOf<XMLCh>*  fEnumeration;
+     RefArrayVectorOf<XMLCh>*  fEnumeration;
 };
 
 // -----------------------------------------------------------------------
@@ -255,7 +258,7 @@ inline unsigned int AbstractStringValidator::getMinLength() const
     return fMinLength;
 }
 
-inline RefVectorOf<XMLCh>* AbstractStringValidator:: getEnumeration() const
+inline RefArrayVectorOf<XMLCh>* AbstractStringValidator:: getEnumeration() const
 {
     return fEnumeration;
 }
@@ -279,7 +282,7 @@ inline void AbstractStringValidator::setMinLength(unsigned int newMinLength)
     fMinLength = newMinLength;
 }
 
-inline void AbstractStringValidator::setEnumeration(RefVectorOf<XMLCh>* enums
+inline void AbstractStringValidator::setEnumeration(RefArrayVectorOf<XMLCh>* enums
                                            , bool                inherited)
 {
     if (enums)
diff --git a/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.cpp b/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.cpp
index 6f1786c18d69d6fab958f617777c7c94d2924d07..0ec11e50ab8a0a39fcd9588f826bba37f5d932c3 100644
--- a/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.4  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.3  2002/11/04 14:53:27  tng
  * C++ Namespace Support.
  *
@@ -100,7 +103,7 @@ AnySimpleTypeDatatypeValidator::~AnySimpleTypeDatatypeValidator()
 // ---------------------------------------------------------------------------
 DatatypeValidator*
 AnySimpleTypeDatatypeValidator::newInstance(RefHashTableOf<KVStringPair>* const facets,
-                                            RefVectorOf<XMLCh>* const enums,
+                                            RefArrayVectorOf<XMLCh>* const enums,
                                             const int finalSet) {
 
     // We own them, so we will delete them first
@@ -113,7 +116,7 @@ AnySimpleTypeDatatypeValidator::newInstance(RefHashTableOf<KVStringPair>* const
     return 0;
 }
 
-const RefVectorOf<XMLCh>* AnySimpleTypeDatatypeValidator::getEnumString() const
+const RefArrayVectorOf<XMLCh>* AnySimpleTypeDatatypeValidator::getEnumString() const
 {
 	return 0;
 }
diff --git a/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp b/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp
index 9f760be19bec02259d315dfbc785d8a5d619cf63..ae1b44dfa37c7463b57b962035229a2f74f0df4b 100644
--- a/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp
@@ -88,7 +88,7 @@ public:
 
 	//@}
 
-	virtual const RefVectorOf<XMLCh>* getEnumString() const;
+	virtual const RefArrayVectorOf<XMLCh>* getEnumString() const;
 
     // -----------------------------------------------------------------------
     // Getter methods
@@ -154,7 +154,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
 	DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const,
-                                   RefVectorOf<XMLCh>* const enums,
+                                   RefArrayVectorOf<XMLCh>* const enums,
                                    const int finalSet);
 };
 
diff --git a/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp b/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp
index 5a76dff2800e4f4d10eca17e82c8e9b4c646337a..adf7d5675946107dd9cb229cea552d15ede079e1 100644
--- a/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:27  tng
  * C++ Namespace Support.
  *
@@ -136,7 +139,7 @@ AnyURIDatatypeValidator::~AnyURIDatatypeValidator()
 AnyURIDatatypeValidator::AnyURIDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :AbstractStringValidator(baseValidator, facets, finalSet, DatatypeValidator::AnyURI)
 ,fTempURI(0)
@@ -154,7 +157,7 @@ AnyURIDatatypeValidator::AnyURIDatatypeValidator(
 
 DatatypeValidator* AnyURIDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new AnyURIDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/AnyURIDatatypeValidator.hpp b/src/xercesc/validators/datatype/AnyURIDatatypeValidator.hpp
index 40017fef5fb5e65fc10295ef15944ffb488d8519..9e7edb787882102bb60f3151d46a7edce18eb8b7 100644
--- a/src/xercesc/validators/datatype/AnyURIDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/AnyURIDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:27  tng
  * C++ Namespace Support.
  *
@@ -115,7 +118,7 @@ public:
 
     AnyURIDatatypeValidator(DatatypeValidator*            const baseValidator
                           , RefHashTableOf<KVStringPair>* const facets
-                          , RefVectorOf<XMLCh>*           const enums
+                          , RefArrayVectorOf<XMLCh>*           const enums
                           , const int                           finalSet);
 
     virtual ~AnyURIDatatypeValidator();
@@ -127,7 +130,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/Base64BinaryDatatypeValidator.cpp b/src/xercesc/validators/datatype/Base64BinaryDatatypeValidator.cpp
index 8d2519e3c6f6ea16549e8d8a3ef3dfcd9bc43f32..429b1a1b8505a813146043ede72fea52fe8d1452 100644
--- a/src/xercesc/validators/datatype/Base64BinaryDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/Base64BinaryDatatypeValidator.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -124,7 +127,7 @@ Base64BinaryDatatypeValidator::~Base64BinaryDatatypeValidator()
 Base64BinaryDatatypeValidator::Base64BinaryDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :AbstractStringValidator(baseValidator, facets, finalSet, DatatypeValidator::Base64Binary)
 {
@@ -133,7 +136,7 @@ Base64BinaryDatatypeValidator::Base64BinaryDatatypeValidator(
 
 DatatypeValidator* Base64BinaryDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new Base64BinaryDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/Base64BinaryDatatypeValidator.hpp b/src/xercesc/validators/datatype/Base64BinaryDatatypeValidator.hpp
index 0e8f27ea305000cf6e4c805038fcaf2c3ef41742..c0ead5f49398131f8234ecfda634d56a520aac5d 100644
--- a/src/xercesc/validators/datatype/Base64BinaryDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/Base64BinaryDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -92,7 +95,7 @@ public:
 
     Base64BinaryDatatypeValidator(DatatypeValidator*            const baseValidator
                                 , RefHashTableOf<KVStringPair>* const facets
-                                , RefVectorOf<XMLCh>*           const enums
+                                , RefArrayVectorOf<XMLCh>*           const enums
                                 , const int                           finalSet);
 
     virtual ~Base64BinaryDatatypeValidator();
@@ -104,7 +107,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp b/src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp
index 8528c23eca399392f6ee16de2992ed142263dc0c..a5da5d2013398a47768a80bafbf1bb5c020974ee 100644
--- a/src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.6  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.5  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -119,7 +122,7 @@ const XMLCh fgValueSpace[][32] =
 BooleanDatatypeValidator::BooleanDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :DatatypeValidator(baseValidator, facets, finalSet, DatatypeValidator::Boolean)
 {
@@ -238,7 +241,7 @@ int BooleanDatatypeValidator::compare(const XMLCh* const lValue
     return 1;
 }
 
-const RefVectorOf<XMLCh>* BooleanDatatypeValidator::getEnumString() const
+const RefArrayVectorOf<XMLCh>* BooleanDatatypeValidator::getEnumString() const
 {
 	return 0;
 }
diff --git a/src/xercesc/validators/datatype/BooleanDatatypeValidator.hpp b/src/xercesc/validators/datatype/BooleanDatatypeValidator.hpp
index 6ec331192959b3946844f4fc4d827f4f4d056b80..a2c5fd308033691160c219f9551167ae3262348b 100644
--- a/src/xercesc/validators/datatype/BooleanDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/BooleanDatatypeValidator.hpp
@@ -79,14 +79,14 @@ public:
 
     BooleanDatatypeValidator(DatatypeValidator*            const baseValidator
                            , RefHashTableOf<KVStringPair>* const facets
-                           , RefVectorOf<XMLCh>*           const enums
+                           , RefArrayVectorOf<XMLCh>*           const enums
                            , const int                           finalSet);
 
     virtual ~BooleanDatatypeValidator();
 
 	//@}
 
-	virtual const RefVectorOf<XMLCh>* getEnumString() const;
+	virtual const RefArrayVectorOf<XMLCh>* getEnumString() const;
 
     // -----------------------------------------------------------------------
     // Getter methods
@@ -137,7 +137,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                 , RefVectorOf<XMLCh>*           const enums
+                                 , RefArrayVectorOf<XMLCh>*           const enums
                                  , const int                           finalSet);
 
 private:
@@ -174,7 +174,7 @@ inline BooleanDatatypeValidator::~BooleanDatatypeValidator()
 
 inline DatatypeValidator* BooleanDatatypeValidator::newInstance(
                                     RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new BooleanDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/DatatypeValidator.hpp b/src/xercesc/validators/datatype/DatatypeValidator.hpp
index 2afbdcba7ddb1577abcbf848411daa9e53a2ff46..a9985f55ea0dc1febeb89e7de63343c925e9f622 100644
--- a/src/xercesc/validators/datatype/DatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/DatatypeValidator.hpp
@@ -198,7 +198,7 @@ public:
       * Returns the datatype enumeration if any is set.
 	  * Derived class shall provide their own copy.
       */
-	virtual const RefVectorOf<XMLCh>* getEnumString() const = 0;
+	virtual const RefArrayVectorOf<XMLCh>* getEnumString() const = 0;
 
     //@}
 
@@ -258,7 +258,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
 	virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const,
-                                           RefVectorOf<XMLCh>* const enums,
+                                           RefArrayVectorOf<XMLCh>* const enums,
                                            const int finalSet) = 0;
 
 protected:
diff --git a/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp b/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
index a09695bfc4abfe0825c5caf1fe519c7f6bd06d77..953c5b6e67ed8f50d62887b0aac5f0dea868e6cc 100644
--- a/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
+++ b/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.9  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.8  2002/12/02 16:01:24  gareth
  * Fix to bug #12188. NCNAME validator now has a base validator of NAME. Patch by Peter Volchek.
  *
@@ -680,7 +683,7 @@ DatatypeValidator*
 DatatypeValidatorFactory::createDatatypeValidator(const XMLCh* const typeName,
 		                                          DatatypeValidator* const baseValidator,
                                                   RefHashTableOf<KVStringPair>* const facets,
-                                                  RefVectorOf<XMLCh>* const enums,
+                                                  RefArrayVectorOf<XMLCh>* const enums,
                                                   const bool derivedByList,
                                                   const int finalSet,
                                                   const bool userDefined)
diff --git a/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp b/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp
index 3acd8c9738910c6b1da1c16191516ef4084461b6..cb5714db9587d29eb4448201cbc04fdd8125b7e8 100644
--- a/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp
+++ b/src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp
@@ -94,7 +94,7 @@ XERCES_CPP_NAMESPACE_BEGIN
 // ---------------------------------------------------------------------------
 typedef RefHashTableOf<KVStringPair> KVStringPairHashTable;
 typedef RefHashTableOf<DatatypeValidator> DVHashTable;
-typedef RefVectorOf<XMLCh> XMLChRefVector;
+typedef RefArrayVectorOf<XMLCh> XMLChRefVector;
 
 
 class VALIDATORS_EXPORT DatatypeValidatorFactory
@@ -190,7 +190,7 @@ public:
      DatatypeValidator* createDatatypeValidator(const XMLCh* const,
                                                DatatypeValidator* const,
                                                RefHashTableOf<KVStringPair>* const,
-                                               RefVectorOf<XMLCh>* const enums,
+                                               RefArrayVectorOf<XMLCh>* const enums,
                                                const bool,
                                                const int = 0,
                                                const bool = true);
diff --git a/src/xercesc/validators/datatype/DateDatatypeValidator.cpp b/src/xercesc/validators/datatype/DateDatatypeValidator.cpp
index 0f27d8c42c357fabd9454c05dee2637e0c82d4cc..69ce0eea5de0ec31636dc9e4f987344b7371a611 100644
--- a/src/xercesc/validators/datatype/DateDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/DateDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -91,7 +94,7 @@ DateDatatypeValidator::DateDatatypeValidator()
 DateDatatypeValidator::DateDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :DateTimeValidator(baseValidator, facets, finalSet, DatatypeValidator::Date)
 {
@@ -103,7 +106,7 @@ DateDatatypeValidator::~DateDatatypeValidator()
 
 DatatypeValidator* DateDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new DateDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/DateDatatypeValidator.hpp b/src/xercesc/validators/datatype/DateDatatypeValidator.hpp
index e9180ee7724e8dd9fc5b2628fe92380f06356e84..6522c2de7dc77dec015e7951a078fd5555f83b14 100644
--- a/src/xercesc/validators/datatype/DateDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/DateDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -89,7 +92,7 @@ public:
 
     DateDatatypeValidator(DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet);
 
     ~DateDatatypeValidator();
@@ -102,7 +105,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp b/src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp
index 174e977bdb9aea8d16a0af1575c14ae1bc31d8ee..0f519f8f3188519dcd080796e8ea9ce8d75955ed 100644
--- a/src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -91,7 +94,7 @@ DateTimeDatatypeValidator::DateTimeDatatypeValidator()
 DateTimeDatatypeValidator::DateTimeDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :DateTimeValidator(baseValidator, facets, finalSet, DatatypeValidator::DateTime)
 {
@@ -103,7 +106,7 @@ DateTimeDatatypeValidator::~DateTimeDatatypeValidator()
 
 DatatypeValidator* DateTimeDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new DateTimeDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/DateTimeDatatypeValidator.hpp b/src/xercesc/validators/datatype/DateTimeDatatypeValidator.hpp
index 913172b4c07e9d684df0c62c14cfa503886c1b48..e12473b15b5fd610b410632fd4ed3ab9c6054da7 100644
--- a/src/xercesc/validators/datatype/DateTimeDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/DateTimeDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -89,7 +92,7 @@ public:
 
     DateTimeDatatypeValidator(DatatypeValidator*            const baseValidator
                             , RefHashTableOf<KVStringPair>* const facets
-                            , RefVectorOf<XMLCh>*           const enums
+                            , RefArrayVectorOf<XMLCh>*           const enums
                             , const int                           finalSet);
 
     ~DateTimeDatatypeValidator();
@@ -102,7 +105,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/DayDatatypeValidator.cpp b/src/xercesc/validators/datatype/DayDatatypeValidator.cpp
index 320e08e34ec1001d5f7ebf22bcc7ec251671932a..f93d11ef66eb1015edeeebcd4b043ae64d245a2f 100644
--- a/src/xercesc/validators/datatype/DayDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/DayDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -91,7 +94,7 @@ DayDatatypeValidator::DayDatatypeValidator()
 DayDatatypeValidator::DayDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :DateTimeValidator(baseValidator, facets, finalSet, DatatypeValidator::Day)
 {
@@ -103,7 +106,7 @@ DayDatatypeValidator::~DayDatatypeValidator()
 
 DatatypeValidator* DayDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new DayDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/DayDatatypeValidator.hpp b/src/xercesc/validators/datatype/DayDatatypeValidator.hpp
index 42b7ab02552612e263761b0f5c5762ba9458b8aa..eb270f04b6c463008618ac85fb6d4d2524eef68a 100644
--- a/src/xercesc/validators/datatype/DayDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/DayDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -89,7 +92,7 @@ public:
 
     DayDatatypeValidator(DatatypeValidator*            const baseValidator
                        , RefHashTableOf<KVStringPair>* const facets
-                       , RefVectorOf<XMLCh>*           const enums
+                       , RefArrayVectorOf<XMLCh>*           const enums
                        , const int                           finalSet);
 
     ~DayDatatypeValidator();
@@ -101,7 +104,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp b/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp
index aaef6fd4d25f27cc55bf285e66b0032c482afb3c..0e89ad75f827004c1f484ea6faa6cd3e223c7945 100644
--- a/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.5  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.4  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -152,7 +155,7 @@ DecimalDatatypeValidator::DecimalDatatypeValidator()
 DecimalDatatypeValidator::DecimalDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :AbstractNumericValidator(baseValidator, facets, finalSet, DatatypeValidator::Decimal)
 , fTotalDigits(0)
@@ -180,7 +183,7 @@ int DecimalDatatypeValidator::compare(const XMLCh* const lValue
 
 DatatypeValidator* DecimalDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new DecimalDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/DecimalDatatypeValidator.hpp b/src/xercesc/validators/datatype/DecimalDatatypeValidator.hpp
index 5c114c9d68ce1b8a141aa4f84c388fadce9e228e..663ad3918a40deccea5616708d3412d916db3a3d 100644
--- a/src/xercesc/validators/datatype/DecimalDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/DecimalDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.4  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.3  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -103,7 +106,7 @@ public:
 
     DecimalDatatypeValidator(DatatypeValidator*            const baseValidator
                            , RefHashTableOf<KVStringPair>* const facets
-                           , RefVectorOf<XMLCh>*           const enums
+                           , RefArrayVectorOf<XMLCh>*           const enums
                            , const int                           finalSet);
 
     virtual ~DecimalDatatypeValidator();
@@ -132,7 +135,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp b/src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp
index c137cd7a6a4ac9061878287998e2d8c0103b7b38..3326107ecd2d2ab601eac33c41b5a1b58ce643c1 100644
--- a/src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -104,7 +107,7 @@ DoubleDatatypeValidator::DoubleDatatypeValidator()
 DoubleDatatypeValidator::DoubleDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :AbstractNumericValidator(baseValidator, facets, finalSet, DatatypeValidator::Double)
 {
@@ -130,7 +133,7 @@ int DoubleDatatypeValidator::compare(const XMLCh* const lValue
 
 DatatypeValidator* DoubleDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new DoubleDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/DoubleDatatypeValidator.hpp b/src/xercesc/validators/datatype/DoubleDatatypeValidator.hpp
index 55187bb06ddfe3d57c9846e8034470e1f4607f1d..5342594d1c7c5f78ca8785a3906d099ae796d780 100644
--- a/src/xercesc/validators/datatype/DoubleDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/DoubleDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -105,7 +108,7 @@ public:
 
     DoubleDatatypeValidator(DatatypeValidator*            const baseValidator
                           , RefHashTableOf<KVStringPair>* const facets
-                          , RefVectorOf<XMLCh>*           const enums
+                          , RefArrayVectorOf<XMLCh>*           const enums
                           , const int                           finalSet);
 
     virtual ~DoubleDatatypeValidator();
@@ -134,7 +137,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/DurationDatatypeValidator.cpp b/src/xercesc/validators/datatype/DurationDatatypeValidator.cpp
index 43b3b5d75ca06401dc82aa61fc132d1a137709d2..1288a009b0ea5cdba460d3b09b4bec517a2f6a82 100644
--- a/src/xercesc/validators/datatype/DurationDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/DurationDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -91,7 +94,7 @@ DurationDatatypeValidator::DurationDatatypeValidator()
 DurationDatatypeValidator::DurationDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :DateTimeValidator(baseValidator, facets, finalSet, DatatypeValidator::Duration)
 {
@@ -103,7 +106,7 @@ DurationDatatypeValidator::~DurationDatatypeValidator()
 
 DatatypeValidator* DurationDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new DurationDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/DurationDatatypeValidator.hpp b/src/xercesc/validators/datatype/DurationDatatypeValidator.hpp
index 39bdb3bb039a4c5c0f4109662a03530460658133..e411e9b20d64801bc6c41d687d74829d0206713e 100644
--- a/src/xercesc/validators/datatype/DurationDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/DurationDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -89,7 +92,7 @@ public:
 
     DurationDatatypeValidator(DatatypeValidator*            const baseValidator
                             , RefHashTableOf<KVStringPair>* const facets
-                            , RefVectorOf<XMLCh>*           const enums
+                            , RefArrayVectorOf<XMLCh>*           const enums
                             , const int                           finalSet);
 
     ~DurationDatatypeValidator();
@@ -102,7 +105,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/ENTITYDatatypeValidator.cpp b/src/xercesc/validators/datatype/ENTITYDatatypeValidator.cpp
index 7cbddd5b19e7985d69f1b744ada2fbfce4af7ed3..13218dc5033f13ec0793d5ba9d0127df1be445b9 100644
--- a/src/xercesc/validators/datatype/ENTITYDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/ENTITYDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.4  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.3  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -109,7 +112,7 @@ ENTITYDatatypeValidator::ENTITYDatatypeValidator()
 ENTITYDatatypeValidator::ENTITYDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :StringDatatypeValidator(baseValidator, facets, finalSet, DatatypeValidator::ENTITY)
 ,fEntityDeclPool(0)
@@ -122,7 +125,7 @@ ENTITYDatatypeValidator::~ENTITYDatatypeValidator()
 
 DatatypeValidator* ENTITYDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new ENTITYDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/ENTITYDatatypeValidator.hpp b/src/xercesc/validators/datatype/ENTITYDatatypeValidator.hpp
index 150f15540fa8dc1280cf107350ca5b9548230c1f..636fc3ffba4e1b9570a3a12f50a755fcbb8d2afa 100644
--- a/src/xercesc/validators/datatype/ENTITYDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/ENTITYDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -109,7 +112,7 @@ public:
 
     ENTITYDatatypeValidator(DatatypeValidator*            const baseValidator
                           , RefHashTableOf<KVStringPair>* const facets
-                          , RefVectorOf<XMLCh>*           const enums
+                          , RefArrayVectorOf<XMLCh>*           const enums
                           , const int                           finalSet);
 
     virtual ~ENTITYDatatypeValidator();
@@ -156,7 +159,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 // -----------------------------------------------------------------------
diff --git a/src/xercesc/validators/datatype/FloatDatatypeValidator.cpp b/src/xercesc/validators/datatype/FloatDatatypeValidator.cpp
index 8c6109613f75d2fd7d892f674c799829d3970da9..0956a7400cf40bc1d7fb330b46efd5a79d700393 100644
--- a/src/xercesc/validators/datatype/FloatDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/FloatDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -105,7 +108,7 @@ FloatDatatypeValidator::FloatDatatypeValidator()
 FloatDatatypeValidator::FloatDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :AbstractNumericValidator(baseValidator, facets, finalSet, DatatypeValidator::Float)
 {
@@ -131,7 +134,7 @@ int FloatDatatypeValidator::compare(const XMLCh* const lValue
 
 DatatypeValidator* FloatDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new FloatDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/FloatDatatypeValidator.hpp b/src/xercesc/validators/datatype/FloatDatatypeValidator.hpp
index 0f58aa51ef65b84220cde1eb62f39f990e68cd0d..28f58f6fff9f5e90fd567765f569aae1ed0c03a1 100644
--- a/src/xercesc/validators/datatype/FloatDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/FloatDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -106,7 +109,7 @@ public:
 
     FloatDatatypeValidator(DatatypeValidator*            const baseValidator
                          , RefHashTableOf<KVStringPair>* const facets
-                         , RefVectorOf<XMLCh>*           const enums
+                         , RefArrayVectorOf<XMLCh>*           const enums
                          , const int                           finalSet);
 
     virtual ~FloatDatatypeValidator();
@@ -135,7 +138,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/HexBinaryDatatypeValidator.cpp b/src/xercesc/validators/datatype/HexBinaryDatatypeValidator.cpp
index 4a84544a31f9faf0fe45e577c73484c4cd05b440..c19ac5885c4728d24ed1622741c57a5e5497088f 100644
--- a/src/xercesc/validators/datatype/HexBinaryDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/HexBinaryDatatypeValidator.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -124,7 +127,7 @@ HexBinaryDatatypeValidator::~HexBinaryDatatypeValidator()
 HexBinaryDatatypeValidator::HexBinaryDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :AbstractStringValidator(baseValidator, facets, finalSet, DatatypeValidator::HexBinary)
 {
@@ -133,7 +136,7 @@ HexBinaryDatatypeValidator::HexBinaryDatatypeValidator(
 
 DatatypeValidator* HexBinaryDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new HexBinaryDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/HexBinaryDatatypeValidator.hpp b/src/xercesc/validators/datatype/HexBinaryDatatypeValidator.hpp
index e005fbbe281cb9cc7cdb3b9978e7a36777be0a4d..723145580a7b6337a4fa633d5e224e265e3ae48f 100644
--- a/src/xercesc/validators/datatype/HexBinaryDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/HexBinaryDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -92,7 +95,7 @@ public:
 
     HexBinaryDatatypeValidator(DatatypeValidator*            const baseValidator
                              , RefHashTableOf<KVStringPair>* const facets
-                             , RefVectorOf<XMLCh>*           const enums
+                             , RefArrayVectorOf<XMLCh>*           const enums
                              , const int                           finalSet);
 
     virtual ~HexBinaryDatatypeValidator();
@@ -104,7 +107,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 
diff --git a/src/xercesc/validators/datatype/IDDatatypeValidator.cpp b/src/xercesc/validators/datatype/IDDatatypeValidator.cpp
index c6dde9ead1faa1fd87ca5a76ca166e73593eb78d..3298cec17110278bbc28a89ba512f149e57ead64 100644
--- a/src/xercesc/validators/datatype/IDDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/IDDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -104,7 +107,7 @@ IDDatatypeValidator::IDDatatypeValidator()
 IDDatatypeValidator::IDDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :StringDatatypeValidator(baseValidator, facets, finalSet, DatatypeValidator::ID)
 ,fIDRefList(0)
@@ -117,7 +120,7 @@ IDDatatypeValidator::~IDDatatypeValidator()
 
 DatatypeValidator* IDDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new IDDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/IDDatatypeValidator.hpp b/src/xercesc/validators/datatype/IDDatatypeValidator.hpp
index e013af4693645b0adee9724ccc5bc657ce301c74..bfe12c91e26fb48280609cdc461cd74bb4c8176a 100644
--- a/src/xercesc/validators/datatype/IDDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/IDDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -115,7 +118,7 @@ public:
 
     IDDatatypeValidator(DatatypeValidator*            const baseValidator
                       , RefHashTableOf<KVStringPair>* const facets
-                      , RefVectorOf<XMLCh>*           const enums
+                      , RefArrayVectorOf<XMLCh>*           const enums
                       , const int                           finalSet);
 
     virtual ~IDDatatypeValidator();
@@ -143,7 +146,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
     //@}
diff --git a/src/xercesc/validators/datatype/IDREFDatatypeValidator.cpp b/src/xercesc/validators/datatype/IDREFDatatypeValidator.cpp
index b9b4838bee428a27c660d28bd0d9e4fee7c3269e..df8e7544aa6dc6567819773c885f967304c31360 100644
--- a/src/xercesc/validators/datatype/IDREFDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/IDREFDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -102,7 +105,7 @@ IDREFDatatypeValidator::IDREFDatatypeValidator()
 IDREFDatatypeValidator::IDREFDatatypeValidator(
                                            DatatypeValidator*            const baseValidator
                                          , RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet)
 :StringDatatypeValidator(baseValidator, facets, finalSet, DatatypeValidator::IDREF)
 ,fIDRefList(0)
@@ -115,7 +118,7 @@ IDREFDatatypeValidator::~IDREFDatatypeValidator()
 
 DatatypeValidator* IDREFDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new IDREFDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/IDREFDatatypeValidator.hpp b/src/xercesc/validators/datatype/IDREFDatatypeValidator.hpp
index 18addb41ff093f0e52fc874cb047fadf4767fa0a..8158cb2249ae7d49c6671ac6dbc9427e58933406 100644
--- a/src/xercesc/validators/datatype/IDREFDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/IDREFDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -112,7 +115,7 @@ public:
 
     IDREFDatatypeValidator(DatatypeValidator*            const baseValidator
                          , RefHashTableOf<KVStringPair>* const facets
-                         , RefVectorOf<XMLCh>*           const enums
+                         , RefArrayVectorOf<XMLCh>*           const enums
                          , const int                           finalSet);
 
     virtual ~IDREFDatatypeValidator();
@@ -142,7 +145,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
     inline void setIDRefList(RefHashTableOf<XMLRefInfo>* fIDRefList);
diff --git a/src/xercesc/validators/datatype/ListDatatypeValidator.cpp b/src/xercesc/validators/datatype/ListDatatypeValidator.cpp
index 68cc883bcffd773a4221d52fa755efa4e66d490b..7626142abcd2f6f8614de4fc78c8d4f5ae9488c2 100644
--- a/src/xercesc/validators/datatype/ListDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/ListDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.7  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.6  2002/12/16 22:28:25  knoaman
  * Make isAtomic inline.
  *
@@ -128,7 +131,7 @@ ListDatatypeValidator::ListDatatypeValidator()
 ListDatatypeValidator::ListDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :AbstractStringValidator(baseValidator, facets, finalSet, DatatypeValidator::List)
 ,fContent(0)
@@ -151,7 +154,7 @@ ListDatatypeValidator::~ListDatatypeValidator()
 
 DatatypeValidator* ListDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new ListDatatypeValidator(this, facets, enums, finalSet);
@@ -162,10 +165,10 @@ int ListDatatypeValidator::compare(const XMLCh* const lValue
                                  , const XMLCh* const rValue)
 {
     DatatypeValidator* theItemTypeDTV = getItemTypeDTV();
-    RefVectorOf<XMLCh>* lVector = XMLString::tokenizeString(lValue);
-    Janitor<RefVectorOf<XMLCh> > janl(lVector);
-    RefVectorOf<XMLCh>* rVector = XMLString::tokenizeString(rValue);
-    Janitor<RefVectorOf<XMLCh> > janr(rVector);
+    BaseRefVectorOf<XMLCh>* lVector = XMLString::tokenizeString(lValue);
+    Janitor<BaseRefVectorOf<XMLCh> > janl(lVector);
+    BaseRefVectorOf<XMLCh>* rVector = XMLString::tokenizeString(rValue);
+    Janitor<BaseRefVectorOf<XMLCh> > janr(rVector);
 
     int lNumberOfTokens = lVector->size();
     int rNumberOfTokens = rVector->size();
@@ -190,23 +193,23 @@ int ListDatatypeValidator::compare(const XMLCh* const lValue
 void ListDatatypeValidator::validate( const XMLCh* const content)
 {
     setContent(content);
-    RefVectorOf<XMLCh>* tokenVector = XMLString::tokenizeString(content);
-    Janitor<RefVectorOf<XMLCh> > janName(tokenVector);
+    BaseRefVectorOf<XMLCh>* tokenVector = XMLString::tokenizeString(content);
+    Janitor<BaseRefVectorOf<XMLCh> > janName(tokenVector);
     checkContent(tokenVector, content, false);
 }
 
 void ListDatatypeValidator::checkContent( const XMLCh* const content, bool asBase)
 {
     setContent(content);
-    RefVectorOf<XMLCh>* tokenVector = XMLString::tokenizeString(content);
-    Janitor<RefVectorOf<XMLCh> > janName(tokenVector);
+    BaseRefVectorOf<XMLCh>* tokenVector = XMLString::tokenizeString(content);
+    Janitor<BaseRefVectorOf<XMLCh> > janName(tokenVector);
     checkContent(tokenVector, content, asBase);
 }
 
 //
 // here content is a list of items
 //
-void ListDatatypeValidator::checkContent( RefVectorOf<XMLCh>* tokenVector
+void ListDatatypeValidator::checkContent( BaseRefVectorOf<XMLCh>* tokenVector
                                         , const XMLCh* const content
                                         , bool asBase)
 {
@@ -324,12 +327,12 @@ void ListDatatypeValidator::checkContent( RefVectorOf<XMLCh>* tokenVector
 
 }
 
-bool ListDatatypeValidator::valueSpaceCheck(RefVectorOf<XMLCh>* tokenVector
+bool ListDatatypeValidator::valueSpaceCheck(BaseRefVectorOf<XMLCh>* tokenVector
                                           , const XMLCh* const  enumStr) const
 {
     DatatypeValidator* theItemTypeDTV = getItemTypeDTV();
-    RefVectorOf<XMLCh>* enumVector = XMLString::tokenizeString(enumStr);
-    Janitor<RefVectorOf<XMLCh> > janName(enumVector);
+    BaseRefVectorOf<XMLCh>* enumVector = XMLString::tokenizeString(enumStr);
+    Janitor<BaseRefVectorOf<XMLCh> > janName(enumVector);
 
     if (tokenVector->size() != enumVector->size())
         return false;
@@ -378,8 +381,8 @@ void ListDatatypeValidator::checkValueSpace(const XMLCh* const content)
 
 int ListDatatypeValidator::getLength(const XMLCh* const content) const
 {
-    RefVectorOf<XMLCh>* tokenVector = XMLString::tokenizeString(content);
-    Janitor<RefVectorOf<XMLCh> > janName(tokenVector);
+    BaseRefVectorOf<XMLCh>* tokenVector = XMLString::tokenizeString(content);
+    Janitor<BaseRefVectorOf<XMLCh> > janName(tokenVector);
 
     return tokenVector->size();
 }
@@ -409,7 +412,7 @@ void ListDatatypeValidator::inspectFacetBase()
                 for ( i = 0; i < enumLength; i++)
                 {
                     // ask the itemType for a complete check
-                    RefVectorOf<XMLCh>* tempList = XMLString::tokenizeString(getEnumeration()->elementAt(i));
+                    BaseRefVectorOf<XMLCh>* tempList = XMLString::tokenizeString(getEnumeration()->elementAt(i));
                     int tokenNumber = tempList->size();
 
                     try
diff --git a/src/xercesc/validators/datatype/ListDatatypeValidator.hpp b/src/xercesc/validators/datatype/ListDatatypeValidator.hpp
index a9de5af1dbf8f161d185b74312e69b44b22e85fc..9212ea3b563a78001b3f1bb8d87a7e08b341d3ad 100644
--- a/src/xercesc/validators/datatype/ListDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/ListDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.5  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.4  2002/12/16 22:28:25  knoaman
  * Make isAtomic inline.
  *
@@ -126,7 +129,7 @@ public:
 
     ListDatatypeValidator(DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet);
 
     virtual ~ListDatatypeValidator();
@@ -181,7 +184,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
     DatatypeValidator* getItemTypeDTV() const;
@@ -216,11 +219,11 @@ protected:
 
 private:
 
-    void checkContent(RefVectorOf<XMLCh>* tokenVector
+    void checkContent(BaseRefVectorOf<XMLCh>* tokenVector
                     , const XMLCh* const  content
                     , bool asBase);
 
-    bool valueSpaceCheck(RefVectorOf<XMLCh>* tokenVector
+    bool valueSpaceCheck(BaseRefVectorOf<XMLCh>* tokenVector
                        , const XMLCh* const  enumStr) const;
 
 // -----------------------------------------------------------------------
diff --git a/src/xercesc/validators/datatype/MonthDatatypeValidator.cpp b/src/xercesc/validators/datatype/MonthDatatypeValidator.cpp
index d1275bcf2d4147ce725249aa8743f5faef5e1527..6bd54a415e6bef389ef9bc9eee275518815a45bc 100644
--- a/src/xercesc/validators/datatype/MonthDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/MonthDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -91,7 +94,7 @@ MonthDatatypeValidator::MonthDatatypeValidator()
 MonthDatatypeValidator::MonthDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :DateTimeValidator(baseValidator, facets, finalSet, DatatypeValidator::Month)
 {
@@ -103,7 +106,7 @@ MonthDatatypeValidator::~MonthDatatypeValidator()
 
 DatatypeValidator* MonthDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new MonthDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/MonthDatatypeValidator.hpp b/src/xercesc/validators/datatype/MonthDatatypeValidator.hpp
index 1f719b7f791e692d3e4c3dfe4c46aba6ca5b8b6e..a70f25a55c33521e0d284cdf964c8c718bda61ed 100644
--- a/src/xercesc/validators/datatype/MonthDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/MonthDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -89,7 +92,7 @@ public:
 
     MonthDatatypeValidator(DatatypeValidator*            const baseValidator
                          , RefHashTableOf<KVStringPair>* const facets
-                         , RefVectorOf<XMLCh>*           const enums
+                         , RefArrayVectorOf<XMLCh>*           const enums
                          , const int                           finalSet);
 
     ~MonthDatatypeValidator();
@@ -102,7 +105,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp b/src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp
index 21fd9c7624e340eff38a72e1e5373a1c267a9613..ba5ca7fc307ed6c54e80c45d04420e67e4d61b35 100644
--- a/src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -91,7 +94,7 @@ MonthDayDatatypeValidator::MonthDayDatatypeValidator()
 MonthDayDatatypeValidator::MonthDayDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :DateTimeValidator(baseValidator, facets, finalSet, DatatypeValidator::MonthDay)
 {
@@ -103,7 +106,7 @@ MonthDayDatatypeValidator::~MonthDayDatatypeValidator()
 
 DatatypeValidator* MonthDayDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new MonthDayDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/MonthDayDatatypeValidator.hpp b/src/xercesc/validators/datatype/MonthDayDatatypeValidator.hpp
index cde8fe194bc9b40e4103b572f0170c1b35173180..3dd63fce57aee030ee5c7243a4b5e3beaf4b8536 100644
--- a/src/xercesc/validators/datatype/MonthDayDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/MonthDayDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -89,7 +92,7 @@ public:
 
     MonthDayDatatypeValidator(DatatypeValidator*            const baseValidator
                             , RefHashTableOf<KVStringPair>* const facets
-                            , RefVectorOf<XMLCh>*           const enums
+                            , RefArrayVectorOf<XMLCh>*           const enums
                             , const int                           finalSet);
 
     ~MonthDayDatatypeValidator();
@@ -102,7 +105,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/NCNameDatatypeValidator.cpp b/src/xercesc/validators/datatype/NCNameDatatypeValidator.cpp
index b2064e851fcbd4e5844e305ed3a7ee42271bc968..80ab8b26d91a6ae0580ac7531aa5c60656c36583 100644
--- a/src/xercesc/validators/datatype/NCNameDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/NCNameDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.4  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.3  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -98,7 +101,7 @@ NCNameDatatypeValidator::~NCNameDatatypeValidator()
 NCNameDatatypeValidator::NCNameDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :StringDatatypeValidator(baseValidator, facets, finalSet, DatatypeValidator::NCName)
 {
@@ -107,7 +110,7 @@ NCNameDatatypeValidator::NCNameDatatypeValidator(
 
 DatatypeValidator* NCNameDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new NCNameDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/NCNameDatatypeValidator.hpp b/src/xercesc/validators/datatype/NCNameDatatypeValidator.hpp
index e43da32dc020efc50e3cb7baa14f5ec023c2c879..d09902bbf94a0a7d68731cf517313929b6600fbe 100644
--- a/src/xercesc/validators/datatype/NCNameDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/NCNameDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -95,7 +98,7 @@ public:
 
     NCNameDatatypeValidator(DatatypeValidator*            const baseValidator
                           , RefHashTableOf<KVStringPair>* const facets
-                          , RefVectorOf<XMLCh>*           const enums
+                          , RefArrayVectorOf<XMLCh>*           const enums
                           , const int                           finalSet);
 
     virtual ~NCNameDatatypeValidator();
@@ -142,7 +145,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/NOTATIONDatatypeValidator.cpp b/src/xercesc/validators/datatype/NOTATIONDatatypeValidator.cpp
index 1937960c503b53384922fb39305cefdd2445bc87..16215452d994cf22fe22cfe8de1253fc10c7fe8c 100644
--- a/src/xercesc/validators/datatype/NOTATIONDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/NOTATIONDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -116,7 +119,7 @@ NOTATIONDatatypeValidator::~NOTATIONDatatypeValidator()
 NOTATIONDatatypeValidator::NOTATIONDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :AbstractStringValidator(baseValidator, facets, finalSet, DatatypeValidator::NOTATION)
 {
@@ -125,7 +128,7 @@ NOTATIONDatatypeValidator::NOTATIONDatatypeValidator(
 
 DatatypeValidator* NOTATIONDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new NOTATIONDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/NOTATIONDatatypeValidator.hpp b/src/xercesc/validators/datatype/NOTATIONDatatypeValidator.hpp
index 4233d3bc7b8ec90b9c491fecfb2389a7bfe1bf96..cfd98ab744310fcc2b5c95edba8d039e6ab23a6b 100644
--- a/src/xercesc/validators/datatype/NOTATIONDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/NOTATIONDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -103,7 +106,7 @@ public:
 
     NOTATIONDatatypeValidator(DatatypeValidator*            const baseValidator
                             , RefHashTableOf<KVStringPair>* const facets
-                            , RefVectorOf<XMLCh>*           const enums
+                            , RefArrayVectorOf<XMLCh>*           const enums
                             , const int                           finalSet);
 
     virtual ~NOTATIONDatatypeValidator();
@@ -115,7 +118,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/NameDatatypeValidator.cpp b/src/xercesc/validators/datatype/NameDatatypeValidator.cpp
index 4e3613f8f09961b6c0d6db7488fdd8e1c084644a..18f85b97db19bc0e2f9bead491908daac41c5f38 100644
--- a/src/xercesc/validators/datatype/NameDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/NameDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.4  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.3  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -101,7 +104,7 @@ NameDatatypeValidator::~NameDatatypeValidator()
 NameDatatypeValidator::NameDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :StringDatatypeValidator(baseValidator, facets, finalSet, DatatypeValidator::Name)
 {
@@ -110,7 +113,7 @@ NameDatatypeValidator::NameDatatypeValidator(
 
 DatatypeValidator* NameDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new NameDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/NameDatatypeValidator.hpp b/src/xercesc/validators/datatype/NameDatatypeValidator.hpp
index 32a80bdce080432af12b0a0202b9cc39f1f6ccfb..f98fb90b2839a2a7cf5e1e1ea5bbb60c048f54ae 100644
--- a/src/xercesc/validators/datatype/NameDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/NameDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -95,7 +98,7 @@ public:
 
     NameDatatypeValidator(DatatypeValidator*            const baseValidator
                           , RefHashTableOf<KVStringPair>* const facets
-                          , RefVectorOf<XMLCh>*           const enums
+                          , RefArrayVectorOf<XMLCh>*           const enums
                           , const int                           finalSet);
 
     virtual ~NameDatatypeValidator();
@@ -142,7 +145,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/QNameDatatypeValidator.cpp b/src/xercesc/validators/datatype/QNameDatatypeValidator.cpp
index e975e5ebeb6f7329f46c3e2a8104e0c91330f669..604a6198683bfdecb7a7163f2fe9eb3c72f9a404 100644
--- a/src/xercesc/validators/datatype/QNameDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/QNameDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -112,7 +115,7 @@ QNameDatatypeValidator::~QNameDatatypeValidator()
 QNameDatatypeValidator::QNameDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :AbstractStringValidator(baseValidator, facets, finalSet, DatatypeValidator::QName)
 {
@@ -121,7 +124,7 @@ QNameDatatypeValidator::QNameDatatypeValidator(
 
 DatatypeValidator* QNameDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new QNameDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/QNameDatatypeValidator.hpp b/src/xercesc/validators/datatype/QNameDatatypeValidator.hpp
index 7a1270139c326be2defb503acb53cd51f751a101..a3999606d59cc697307e273b6dc4a76ebe9131d9 100644
--- a/src/xercesc/validators/datatype/QNameDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/QNameDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -103,7 +106,7 @@ public:
 
     QNameDatatypeValidator(DatatypeValidator*            const baseValidator
                          , RefHashTableOf<KVStringPair>* const facets
-                         , RefVectorOf<XMLCh>*           const enums
+                         , RefArrayVectorOf<XMLCh>*           const enums
                          , const int                           finalSet);
 
     virtual ~QNameDatatypeValidator();
@@ -115,7 +118,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 protected:
 
diff --git a/src/xercesc/validators/datatype/StringDatatypeValidator.cpp b/src/xercesc/validators/datatype/StringDatatypeValidator.cpp
index 931a64a67d328244837e032008d7f5fdd3cfd20d..202fac8896a9ac82934c3edc11c2359affce0967 100644
--- a/src/xercesc/validators/datatype/StringDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/StringDatatypeValidator.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.4  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.3  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -141,7 +144,7 @@ StringDatatypeValidator::StringDatatypeValidator()
 StringDatatypeValidator::StringDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :AbstractStringValidator(baseValidator, facets, finalSet, DatatypeValidator::String)
 ,fWhiteSpace(DatatypeValidator::PRESERVE)
@@ -154,7 +157,7 @@ StringDatatypeValidator::~StringDatatypeValidator()
 
 DatatypeValidator* StringDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new StringDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/StringDatatypeValidator.hpp b/src/xercesc/validators/datatype/StringDatatypeValidator.hpp
index 037aa95b73931cd772858405750807bf083331df..8f5f22e7e75ef775bc68a9954901964990b6f854 100644
--- a/src/xercesc/validators/datatype/StringDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/StringDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -101,7 +104,7 @@ public:
 
     StringDatatypeValidator(DatatypeValidator*            const baseValidator
                           , RefHashTableOf<KVStringPair>* const facets
-                          , RefVectorOf<XMLCh>*           const enums
+                          , RefArrayVectorOf<XMLCh>*           const enums
                           , const int                           finalSet);
 
     virtual ~StringDatatypeValidator();
@@ -123,7 +126,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/TimeDatatypeValidator.cpp b/src/xercesc/validators/datatype/TimeDatatypeValidator.cpp
index ceb2a939b377e8389cd1f8a995896ce84b43e00e..24eb435d661182edb59c70baff10a24ec6b38efc 100644
--- a/src/xercesc/validators/datatype/TimeDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/TimeDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -91,7 +94,7 @@ TimeDatatypeValidator::TimeDatatypeValidator()
 TimeDatatypeValidator::TimeDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :DateTimeValidator(baseValidator, facets, finalSet, DatatypeValidator::Time)
 {
@@ -103,7 +106,7 @@ TimeDatatypeValidator::~TimeDatatypeValidator()
 
 DatatypeValidator* TimeDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new TimeDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/TimeDatatypeValidator.hpp b/src/xercesc/validators/datatype/TimeDatatypeValidator.hpp
index f6824cd0d60da700a5ad525a8881ce7a1bbc78f2..fed032697038d9ba02e6f6588716262ab78825ca 100644
--- a/src/xercesc/validators/datatype/TimeDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/TimeDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -90,7 +93,7 @@ public:
 
     TimeDatatypeValidator(DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet);
 
     ~TimeDatatypeValidator();
@@ -103,7 +106,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp b/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp
index aa21385a18088ee273970badde41ce06a2c6a8e4..a9123285384c98af2b73981f93c49b3f26fc869c 100644
--- a/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.6  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.5  2002/12/06 16:45:54  tng
  * header include cleanup.
  *
@@ -139,7 +142,7 @@ UnionDatatypeValidator::UnionDatatypeValidator(
 UnionDatatypeValidator::UnionDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :DatatypeValidator(baseValidator, facets, finalSet, DatatypeValidator::Union)
 ,fEnumerationInherited(false)
@@ -178,7 +181,7 @@ UnionDatatypeValidator::UnionDatatypeValidator(
 
 void UnionDatatypeValidator::init(DatatypeValidator*            const baseValidator
                                 , RefHashTableOf<KVStringPair>* const facets
-                                , RefVectorOf<XMLCh>*           const enums)
+                                , RefArrayVectorOf<XMLCh>*           const enums)
 {
     if (enums)
         setEnumeration(enums, false);
@@ -352,7 +355,7 @@ void UnionDatatypeValidator::checkContent(const XMLCh* const content, bool asBas
         // any of the member types, it is considerd valid.
         //
         RefVectorOf<DatatypeValidator>* memberDTV = getMemberTypeValidators();
-        RefVectorOf<XMLCh>* tmpEnum = getEnumeration();
+        RefArrayVectorOf<XMLCh>* tmpEnum = getEnumeration();
         unsigned int memberTypeNumber = memberDTV->size();
         unsigned int enumLength = tmpEnum->size();
 
@@ -398,7 +401,7 @@ int UnionDatatypeValidator::compare(const XMLCh* const lValue
     return -1;
 }
 
-const RefVectorOf<XMLCh>* UnionDatatypeValidator::getEnumString() const
+const RefArrayVectorOf<XMLCh>* UnionDatatypeValidator::getEnumString() const
 {
 	return getEnumeration();
 }
diff --git a/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp b/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp
index 6ae2ef50225a863425fc075cb56da26a2bdc008a..98ec94260fe4c016338cf3924c72b88fb3ba5b2e 100644
--- a/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.4  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.3  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -133,14 +136,14 @@ public:
     //
     UnionDatatypeValidator(DatatypeValidator*            const baseValidator
                          , RefHashTableOf<KVStringPair>* const facets
-                         , RefVectorOf<XMLCh>*           const enums
+                         , RefArrayVectorOf<XMLCh>*           const enums
                          , const int                           finalSet);
 
     virtual ~UnionDatatypeValidator();
 
 	//@}
 
-	virtual const RefVectorOf<XMLCh>* getEnumString() const;
+	virtual const RefArrayVectorOf<XMLCh>* getEnumString() const;
 
     // -----------------------------------------------------------------------
     // Getter methods
@@ -205,7 +208,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                 , RefVectorOf<XMLCh>*           const enums
+                                 , RefArrayVectorOf<XMLCh>*           const enums
                                  , const int                           finalSet);
 
     RefVectorOf<DatatypeValidator>* getMemberTypeValidators() const;
@@ -216,13 +219,13 @@ private:
 
     void init(DatatypeValidator*            const baseValidator
             , RefHashTableOf<KVStringPair>* const facets
-            , RefVectorOf<XMLCh>*           const enums);
+            , RefArrayVectorOf<XMLCh>*           const enums);
 
     void cleanUp();
 
-    RefVectorOf<XMLCh>*  getEnumeration() const;
+    RefArrayVectorOf<XMLCh>*  getEnumeration() const;
 
-    void                 setEnumeration(RefVectorOf<XMLCh>*, bool);
+    void                 setEnumeration(RefArrayVectorOf<XMLCh>*, bool);
 
 
     // -----------------------------------------------------------------------
@@ -236,13 +239,13 @@ private:
     //
     // -----------------------------------------------------------------------
      bool                 fEnumerationInherited;
-     RefVectorOf<XMLCh>*  fEnumeration;
+     RefArrayVectorOf<XMLCh>*  fEnumeration;
      RefVectorOf<DatatypeValidator>*  fMemberTypeValidators;
 };
 
 inline DatatypeValidator* UnionDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new UnionDatatypeValidator(this, facets, enums, finalSet);
@@ -263,12 +266,12 @@ inline void UnionDatatypeValidator::cleanUp()
         delete fMemberTypeValidators;
 }
 
-inline RefVectorOf<XMLCh>* UnionDatatypeValidator:: getEnumeration() const
+inline RefArrayVectorOf<XMLCh>* UnionDatatypeValidator:: getEnumeration() const
 {
     return fEnumeration;
 }
 
-inline void UnionDatatypeValidator::setEnumeration(RefVectorOf<XMLCh>* enums
+inline void UnionDatatypeValidator::setEnumeration(RefArrayVectorOf<XMLCh>* enums
                                                  , bool                inherited)
 {
     if (enums)
diff --git a/src/xercesc/validators/datatype/YearDatatypeValidator.cpp b/src/xercesc/validators/datatype/YearDatatypeValidator.cpp
index 5c903a38577ebebdf7367d143e2cd6a2dab3508e..92e589b9bda725e6d723a8aca64c070eadf14cf8 100644
--- a/src/xercesc/validators/datatype/YearDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/YearDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -91,7 +94,7 @@ YearDatatypeValidator::YearDatatypeValidator()
 YearDatatypeValidator::YearDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :DateTimeValidator(baseValidator, facets, finalSet, DatatypeValidator::Year)
 {
@@ -103,7 +106,7 @@ YearDatatypeValidator::~YearDatatypeValidator()
 
 DatatypeValidator* YearDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new YearDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/YearDatatypeValidator.hpp b/src/xercesc/validators/datatype/YearDatatypeValidator.hpp
index cc428fa7bee4d4782a271ceee6c4cb0c0bc88458..5d94c08082bf5c794961ebc9d4a0a6d5ee8e24b4 100644
--- a/src/xercesc/validators/datatype/YearDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/YearDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -89,7 +92,7 @@ public:
 
     YearDatatypeValidator(DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet);
 
     ~YearDatatypeValidator();
@@ -102,7 +105,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp b/src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp
index 82889acf9f085e1123b0b27588fd0eab7b4874ae..90a3fb271a67f393df3e36390a1eb3e91f8139cb 100644
--- a/src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -91,7 +94,7 @@ YearMonthDatatypeValidator::YearMonthDatatypeValidator()
 YearMonthDatatypeValidator::YearMonthDatatypeValidator(
                           DatatypeValidator*            const baseValidator
                         , RefHashTableOf<KVStringPair>* const facets
-                        , RefVectorOf<XMLCh>*           const enums
+                        , RefArrayVectorOf<XMLCh>*           const enums
                         , const int                           finalSet)
 :DateTimeValidator(baseValidator, facets, finalSet, DatatypeValidator::YearMonth)
 {
@@ -103,7 +106,7 @@ YearMonthDatatypeValidator::~YearMonthDatatypeValidator()
 
 DatatypeValidator* YearMonthDatatypeValidator::newInstance(
                                       RefHashTableOf<KVStringPair>* const facets
-                                    , RefVectorOf<XMLCh>*           const enums
+                                    , RefArrayVectorOf<XMLCh>*           const enums
                                     , const int                           finalSet)
 {
     return (DatatypeValidator*) new YearMonthDatatypeValidator(this, facets, enums, finalSet);
diff --git a/src/xercesc/validators/datatype/YearMonthDatatypeValidator.hpp b/src/xercesc/validators/datatype/YearMonthDatatypeValidator.hpp
index 9cf9608da4faa6acd76a947d44020f6b70a8845e..39e0939bb1a5b9b9fb9fc4ce37b4e179b158686c 100644
--- a/src/xercesc/validators/datatype/YearMonthDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/YearMonthDatatypeValidator.hpp
@@ -57,6 +57,9 @@
 /*
  * $Id$
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:55  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:53:28  tng
  * C++ Namespace Support.
  *
@@ -89,7 +92,7 @@ public:
 
     YearMonthDatatypeValidator(DatatypeValidator*            const baseValidator
                              , RefHashTableOf<KVStringPair>* const facets
-                             , RefVectorOf<XMLCh>*           const enums
+                             , RefArrayVectorOf<XMLCh>*           const enums
                              , const int                           finalSet);
 
     ~YearMonthDatatypeValidator();
@@ -102,7 +105,7 @@ public:
 	  * Used by the DatatypeValidatorFactory.
       */
     virtual DatatypeValidator* newInstance(RefHashTableOf<KVStringPair>* const facets
-                                         , RefVectorOf<XMLCh>*           const enums
+                                         , RefArrayVectorOf<XMLCh>*           const enums
                                          , const int                           finalSet);
 
 protected:
diff --git a/src/xercesc/validators/schema/TraverseSchema.cpp b/src/xercesc/validators/schema/TraverseSchema.cpp
index 23bcc02dc9dd7e5a4f67dc492e427e6fd07982d3..31ce97cc18e54e869b85a737351435a5dc082e8c 100644
--- a/src/xercesc/validators/schema/TraverseSchema.cpp
+++ b/src/xercesc/validators/schema/TraverseSchema.cpp
@@ -1661,7 +1661,7 @@ TraverseSchema::traverseAny(const DOMElement* const elem) {
     }
     else {
 
-        RefVectorOf<XMLCh>* nameSpaceTokens = XMLString::tokenizeString(nameSpace);
+        BaseRefVectorOf<XMLCh>* nameSpaceTokens = XMLString::tokenizeString(nameSpace);
         ValueVectorOf<unsigned int> uriList(8);
         ContentSpecNode* firstNode = 0;
         ContentSpecNode* secondNode = 0;
@@ -2861,7 +2861,7 @@ TraverseSchema::traverseByRestriction(const DOMElement* const rootElem,
 
         // Get facets if any existing
         RefHashTableOf<KVStringPair>* facets = 0;
-        RefVectorOf<XMLCh>*           enums = 0;
+        RefArrayVectorOf<XMLCh>*      enums = 0;
         XMLBuffer                     pattern(128);
         XMLCh                         fixedFlagStr[16];
         unsigned int                  fixedFlag = 0;
@@ -2898,7 +2898,7 @@ TraverseSchema::traverseByRestriction(const DOMElement* const rootElem,
                     // to get the qualified name first before adding it to the
                     // enum buffer
                     if (!enums) {
-                        enums = new RefVectorOf<XMLCh>(8, true);
+                        enums = new RefArrayVectorOf<XMLCh>(8, true);
                     }
 
                     if (baseValidator->getType() == DatatypeValidator::NOTATION) {
@@ -3301,7 +3301,7 @@ void TraverseSchema::traverseSimpleContentDecl(const XMLCh* const typeName,
             // Build up the facet info
             // ---------------------------------------------------------------
             RefHashTableOf<KVStringPair>*  facets = 0;
-            RefVectorOf<XMLCh>*            enums = 0;
+            RefArrayVectorOf<XMLCh>*       enums = 0;
             XMLBuffer                      pattern(128);
             XMLCh                          fixedFlagStr[16];
             unsigned int                   fixedFlag = 0;
@@ -3333,7 +3333,7 @@ void TraverseSchema::traverseSimpleContentDecl(const XMLCh* const typeName,
                     if (XMLString::equals(facetName, SchemaSymbols::fgELT_ENUMERATION)) {
 
                         if (!enums) {
-                            enums = new RefVectorOf<XMLCh>(8, true);
+                            enums = new RefArrayVectorOf<XMLCh>(8, true);
                         }
 
                         enums->addElement(XMLString::replicate(attValue));
diff --git a/src/xercesc/validators/schema/identity/FieldValueMap.cpp b/src/xercesc/validators/schema/identity/FieldValueMap.cpp
index e85a2c14b902af2550bbd810f76f9ad9072591a3..2b99c9cf7618b382be2be2d4b57d7f85ba4e6411 100644
--- a/src/xercesc/validators/schema/identity/FieldValueMap.cpp
+++ b/src/xercesc/validators/schema/identity/FieldValueMap.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/12/18 14:17:59  gareth
+ * Fix to bug #13438. When you eant a vector that calls delete[] on its members you should use RefArrayVectorOf.
+ *
  * Revision 1.2  2002/11/04 14:47:41  tng
  * C++ Namespace Support.
  *
@@ -96,7 +99,7 @@ FieldValueMap::FieldValueMap(const FieldValueMap& other)
 
             fFields = new ValueVectorOf<IC_Field*>(*(other.fFields));
             fValidators = new ValueVectorOf<DatatypeValidator*>(*(other.fValidators));
-            fValues = new RefVectorOf<XMLCh>(other.fFields->curCapacity());
+            fValues = new RefArrayVectorOf<XMLCh>(other.fFields->curCapacity());
 
             for (unsigned int i=0; i<valuesSize; i++) {
                 fValues->addElement(XMLString::replicate(other.fValues->elementAt(i)));
diff --git a/src/xercesc/validators/schema/identity/FieldValueMap.hpp b/src/xercesc/validators/schema/identity/FieldValueMap.hpp
index 30eddf2b4c5721f30ff66a120ba1c6a6e3e1d61d..0ee9fd1f5be959b82f7a8868cfff6f306cb069d6 100644
--- a/src/xercesc/validators/schema/identity/FieldValueMap.hpp
+++ b/src/xercesc/validators/schema/identity/FieldValueMap.hpp
@@ -71,6 +71,7 @@
 // ---------------------------------------------------------------------------
 #include <xercesc/util/XMLString.hpp>
 #include <xercesc/util/ValueVectorOf.hpp>
+#include <xercesc/util/RefArrayVectorOf.hpp>
 
 XERCES_CPP_NAMESPACE_BEGIN
 
@@ -123,7 +124,7 @@ private:
     // -----------------------------------------------------------------------
     ValueVectorOf<IC_Field*>*          fFields;
     ValueVectorOf<DatatypeValidator*>* fValidators;
-    RefVectorOf<XMLCh>*                fValues;
+    RefArrayVectorOf<XMLCh>*           fValues;
 };
 
 
@@ -199,7 +200,7 @@ inline void FieldValueMap::put(IC_Field* const key,
     if (!fFields) {
         fFields = new ValueVectorOf<IC_Field*>(4);
         fValidators = new ValueVectorOf<DatatypeValidator*>(4);
-        fValues = new RefVectorOf<XMLCh>(4);
+        fValues = new RefArrayVectorOf<XMLCh>(4);
     }
 
     int keyIndex = indexOf(key);
diff --git a/src/xercesc/validators/schema/identity/ValueStore.hpp b/src/xercesc/validators/schema/identity/ValueStore.hpp
index 7ae03911f4ed399625a19a9868be9890b856e81b..4f533339ccba9a2ab68b858f4c2cbf34dfbbf270 100644
--- a/src/xercesc/validators/schema/identity/ValueStore.hpp
+++ b/src/xercesc/validators/schema/identity/ValueStore.hpp
@@ -71,6 +71,7 @@
 //  Includes
 // ---------------------------------------------------------------------------
 #include <xercesc/validators/schema/identity/FieldValueMap.hpp>
+#include <xercesc/util/RefVectorOf.hpp>
 
 XERCES_CPP_NAMESPACE_BEGIN