peiyongz 2003/11/12 12:30:58 Modified: c/src/xercesc/validators/datatype DatatypeValidatorFactory.cpp Log: movd ID/IDREF/IDREFS/ENTITY/ENTITIES dv to BuiltInRegistry Revision Changes Path 1.21 +39 -43 xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp Index: DatatypeValidatorFactory.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- DatatypeValidatorFactory.cpp 6 Nov 2003 15:30:07 -0000 1.20 +++ DatatypeValidatorFactory.cpp 12 Nov 2003 20:30:58 -0000 1.21 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.21 2003/11/12 20:30:58 peiyongz + * movd ID/IDREF/IDREFS/ENTITY/ENTITIES dv to BuiltInRegistry + * * Revision 1.20 2003/11/06 15:30:07 neilg * first part of PSVI/schema component model implementation, thanks to David Cargill. This covers setting the PSVIHandler on parser objects, as well as implementing XSNotation, XSSimpleTypeDefinition, XSIDCDefinition, and most of XSWildcard, XSComplexTypeDefinition, XSElementDeclaration, XSAttributeDeclaration and XSAttributeUse. * @@ -755,6 +758,41 @@ getDatatypeValidator(SchemaSymbols::fgDT_NONNEGATIVEINTEGER), facets, 0, false, 0, false); + // Create 'ID', 'IDREF' and 'ENTITY' datatype validator + dv = new (fMemoryManager) IDDatatypeValidator(getDatatypeValidator(SchemaSymbols::fgDT_NCNAME), 0, 0, 0, fMemoryManager); + dv->setTypeName(XMLUni::fgIDString, SchemaSymbols::fgURI_SCHEMAFORSCHEMA); + fBuiltInRegistry->put((void*) XMLUni::fgIDString, dv); + + dv = new (fMemoryManager) IDREFDatatypeValidator(getDatatypeValidator(SchemaSymbols::fgDT_NCNAME), 0, 0, 0, fMemoryManager); + dv->setTypeName(XMLUni::fgIDRefString, SchemaSymbols::fgURI_SCHEMAFORSCHEMA); + fBuiltInRegistry->put((void*) XMLUni::fgIDRefString, dv); + + dv = new (fMemoryManager) ENTITYDatatypeValidator(getDatatypeValidator(SchemaSymbols::fgDT_NCNAME), 0, 0, 0, fMemoryManager); + dv->setTypeName(XMLUni::fgEntityString, SchemaSymbols::fgURI_SCHEMAFORSCHEMA); + fBuiltInRegistry->put((void*) XMLUni::fgEntityString, dv); + + // Create 'IDREFS' datatype validator + createDatatypeValidator + ( + XMLUni::fgIDRefsString + , getDatatypeValidator(XMLUni::fgIDRefString) + , 0 + , 0 + , false + , 0 + ); + + // Create 'ENTITIES' datatype validator + createDatatypeValidator + ( + XMLUni::fgEntitiesString + , getDatatypeValidator(XMLUni::fgEntityString) + , 0 + , 0 + , false + , 0 + ); + // register cleanup method builtInRegistryCleanup.registerCleanup(reinitRegistry); sBuiltInRegistryMutexRegistered = true; @@ -763,49 +801,7 @@ //todo: to move these to fBuiltInRegistry - // ID, IDREF IDREFS, ENTITY, ENTITIES DTV have specific data member - // and cannot be shared across threads - // So instead of storing them in the static fBuiltInRegistry, - // store them in local data fUserDefinedRegistry - if (fUserDefinedRegistry == 0) - fUserDefinedRegistry = new (fMemoryManager) RefHashTableOf<DatatypeValidator>(29, fMemoryManager); - - if (!getDatatypeValidator(XMLUni::fgIDRefsString)) { - - DatatypeValidator *dv = new (fMemoryManager) IDDatatypeValidator(getDatatypeValidator(SchemaSymbols::fgDT_NCNAME), 0, 0, 0, fMemoryManager); - dv->setTypeName(XMLUni::fgIDString, SchemaSymbols::fgURI_SCHEMAFORSCHEMA); - fUserDefinedRegistry->put((void*) XMLUni::fgIDString, dv); - - dv = new (fMemoryManager) IDREFDatatypeValidator(getDatatypeValidator(SchemaSymbols::fgDT_NCNAME), 0, 0, 0, fMemoryManager); - dv->setTypeName(XMLUni::fgIDRefString, SchemaSymbols::fgURI_SCHEMAFORSCHEMA); - fUserDefinedRegistry->put((void*) XMLUni::fgIDRefString, dv); - - dv = new (fMemoryManager) ENTITYDatatypeValidator(getDatatypeValidator(SchemaSymbols::fgDT_NCNAME), 0, 0, 0, fMemoryManager); - dv->setTypeName(XMLUni::fgEntityString, SchemaSymbols::fgURI_SCHEMAFORSCHEMA); - fUserDefinedRegistry->put((void*) XMLUni::fgEntityString, dv); - - // Create 'IDREFS' datatype validator - createDatatypeValidator - ( - XMLUni::fgIDRefsString - , getDatatypeValidator(XMLUni::fgIDRefString) - , 0 - , 0 - , true - , 0 - ); - - // Create 'ENTITIES' datatype validator - createDatatypeValidator - ( - XMLUni::fgEntitiesString - , getDatatypeValidator(XMLUni::fgEntityString) - , 0 - , 0 - , true - , 0 - ); - } + }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]