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 11:54:23 UTC
svn commit: r359478 - in
/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype:
DatatypeValidatorFactory.cpp UnionDatatypeValidator.hpp
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: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org