You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ca...@apache.org on 2005/12/28 12:02:32 UTC

svn commit: r359482 - in /xerces/c/trunk/src/xercesc/validators/datatype: DatatypeValidatorFactory.cpp UnionDatatypeValidator.hpp

Author: cargilld
Date: Wed Dec 28 03:02:30 2005
New Revision: 359482

URL: http://svn.apache.org/viewcvs?rev=359482&view=rev
Log:
Schema fixes for union of union and empty element.

Modified:
    xerces/c/trunk/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
    xerces/c/trunk/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp

Modified: xerces/c/trunk/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp?rev=359482&r1=359481&r2=359482&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp (original)
+++ xerces/c/trunk/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp Wed Dec 28 03:02:30 2005
@@ -337,8 +337,12 @@
                                 getDatatypeValidator(SchemaSymbols::fgDT_TOKEN),facets, 0, false, 0, false);
 
                 // Create 'NMTOKENS' datatype validator
+                facets = new RefHashTableOf<KVStringPair>(2);
+                facets->put((void*) SchemaSymbols::fgELT_MINLENGTH,
+                            new KVStringPair(SchemaSymbols::fgELT_MINLENGTH, XMLUni::fgValueOne));
+
                 createDatatypeValidator(XMLUni::fgNmTokensString,
-        	                     getDatatypeValidator(XMLUni::fgNmTokenString), 0, 0, true, 0, false);
+        	                     getDatatypeValidator(XMLUni::fgNmTokenString), facets, 0, true, 0, false);
 
                 // Create 'language' datatype validator
                 facets = new RefHashTableOf<KVStringPair>(3);
@@ -504,24 +508,33 @@
                 dv->setTypeName(XMLUni::fgEntityString, SchemaSymbols::fgURI_SCHEMAFORSCHEMA);
                 fBuiltInRegistry->put((void*) XMLUni::fgEntityString, dv);
 
+                facets = new RefHashTableOf<KVStringPair>(2);
+                facets->put((void*) SchemaSymbols::fgELT_MINLENGTH,
+                            new KVStringPair(SchemaSymbols::fgELT_MINLENGTH, XMLUni::fgValueOne));
+
                 // Create 'IDREFS' datatype validator
                 createDatatypeValidator
                 (
                     XMLUni::fgIDRefsString
                   , getDatatypeValidator(XMLUni::fgIDRefString)
-                  , 0
+                  , facets
                   , 0
                   , true
                   , 0
                   , false
                 );
 
+                facets = new RefHashTableOf<KVStringPair>(2);
+
+                facets->put((void*) SchemaSymbols::fgELT_MINLENGTH,
+                            new KVStringPair(SchemaSymbols::fgELT_MINLENGTH, XMLUni::fgValueOne));
+
                // Create 'ENTITIES' datatype validator
                createDatatypeValidator
                (
                    XMLUni::fgEntitiesString
                  , getDatatypeValidator(XMLUni::fgEntityString)
-                 , 0
+                 , facets
                  , 0
                  , true
                  , 0

Modified: xerces/c/trunk/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp
URL: http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp?rev=359482&r1=359481&r2=359482&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp (original)
+++ xerces/c/trunk/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp Wed Dec 28 03:02:30 2005
@@ -298,6 +298,9 @@
         unsigned int memberSize = fMemberTypeValidators->size();
 
         for (unsigned int i=0; i < memberSize; i++) {
+
+            if (fMemberTypeValidators->elementAt(i)->getType() == DatatypeValidator::Union)
+                return false;
             if (fMemberTypeValidators->elementAt(i)->isSubstitutableBy(toCheck)) {
                 return true;
             }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org