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 2007/06/09 15:03:43 UTC
svn commit: r545741 -
/xerces/c/trunk/src/xercesc/validators/datatype/AbstractStringValidator.cpp
Author: cargilld
Date: Sat Jun 9 06:03:42 2007
New Revision: 545741
URL: http://svn.apache.org/viewvc?view=rev&rev=545741
Log:
Apply base whitespace facet to enumeration values. Patch from Gilbert Chan.
Modified:
xerces/c/trunk/src/xercesc/validators/datatype/AbstractStringValidator.cpp
Modified: xerces/c/trunk/src/xercesc/validators/datatype/AbstractStringValidator.cpp
URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/validators/datatype/AbstractStringValidator.cpp?view=diff&rev=545741&r1=545740&r2=545741
==============================================================================
--- xerces/c/trunk/src/xercesc/validators/datatype/AbstractStringValidator.cpp (original)
+++ xerces/c/trunk/src/xercesc/validators/datatype/AbstractStringValidator.cpp Sat Jun 9 06:03:42 2007
@@ -645,10 +645,39 @@
return getEnumeration();
}
-void AbstractStringValidator::normalizeEnumeration(MemoryManager* const)
+void AbstractStringValidator::normalizeEnumeration(MemoryManager* const manager)
{
- // default implementation: do nothing
- return;
+ AbstractStringValidator *pBaseValidator = (AbstractStringValidator*) getBaseValidator();
+
+ if (!fEnumeration || !pBaseValidator)
+ return;
+
+ int baseFacetsDefined = pBaseValidator->getFacetsDefined();
+ if ((baseFacetsDefined & DatatypeValidator::FACET_WHITESPACE) == 0)
+ return;
+
+ short whiteSpace = pBaseValidator->getWSFacet();
+
+ if ( whiteSpace == DatatypeValidator::PRESERVE )
+ {
+ return;
+ }
+ else if ( whiteSpace == DatatypeValidator::REPLACE )
+ {
+ int enumLength = getEnumeration()->size();
+ for ( int i=0; i < enumLength; i++)
+ {
+ XMLString::replaceWS(getEnumeration()->elementAt(i), manager);
+ }
+ }
+ else if ( whiteSpace == DatatypeValidator::COLLAPSE )
+ {
+ int enumLength = getEnumeration()->size();
+ for ( int i=0; i < enumLength; i++)
+ {
+ XMLString::collapseWS(getEnumeration()->elementAt(i), manager);
+ }
+ }
}
void AbstractStringValidator::normalizeContent(XMLCh* const, MemoryManager* const) const
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org