Author: cargilld
Date: Wed Dec 28 02:54:21 2005
New Revision: 359478

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

Modified:
    
xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
    
xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp

Modified: 
xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
URL: 
http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp?rev=359478&r1=359477&r2=359478&view=diff
==============================================================================
--- 
xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
 (original)
+++ 
xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp
 Wed Dec 28 02:54:21 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/branches/xerces-2.7/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp
URL: 
http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp?rev=359478&r1=359477&r2=359478&view=diff
==============================================================================
--- 
xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp
 (original)
+++ 
xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp
 Wed Dec 28 02:54:21 2005
@@ -337,6 +337,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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to