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]