neilg 2003/11/28 12:20:55 Modified: c/src/xercesc/internal IGXMLScanner2.cpp SGXMLScanner.cpp c/src/xercesc/framework/psvi PSVIAttribute.cpp PSVIAttribute.hpp Log: make use of canonical representation in PSVIAttribute implementation Revision Changes Path 1.49 +10 -8 xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp Index: IGXMLScanner2.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp,v retrieving revision 1.48 retrieving revision 1.49 diff -u -r1.48 -r1.49 --- IGXMLScanner2.cpp 28 Nov 2003 19:54:31 -0000 1.48 +++ IGXMLScanner2.cpp 28 Nov 2003 20:20:54 -0000 1.49 @@ -580,7 +580,8 @@ actualAttDef = (SchemaAttDef *)attDefForWildCard; XSAttributeDeclaration *attrDecl = (XSAttributeDeclaration *)fModel->getXSObject(actualAttDef); PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(); - XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition *)fModel->getXSObject(actualAttDef->getDatatypeValidator()); + DatatypeValidator * attrDataType = actualAttDef->getDatatypeValidator(); + XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition *)fModel->getXSObject(attrDataType); if(attrValid != PSVIItem::VALIDITY_VALID) { toFill->reset( @@ -592,8 +593,8 @@ , 0 , actualAttDef->getValue() , false - , 0 , attrDecl + , 0 ); } else @@ -610,8 +611,8 @@ , memberType , actualAttDef->getValue() , false - , 0 , attrDecl + , (memberType)?attrValidator:attrDataType ); } } @@ -646,7 +647,7 @@ , 0 , false , 0 - , 0 + , attrValidator ); } } @@ -821,8 +822,9 @@ { PSVIAttribute *defAttrToFill = fPSVIAttrList->getPSVIAttributeToFill(); XSAttributeDeclaration *defAttrDecl = (XSAttributeDeclaration *)fModel->getXSObject((void *)curDef); + DatatypeValidator * attrDataType = ((SchemaAttDef *)curDef)->getDatatypeValidator(); XSSimpleTypeDefinition *defAttrType = - (XSSimpleTypeDefinition*)fModel->getXSObject(((SchemaAttDef *)curDef)->getDatatypeValidator()); + (XSSimpleTypeDefinition*)fModel->getXSObject(attrDataType); // would have occurred during validation of default value if(((SchemaValidator *)fValidator)->getErrorOccurred()) { @@ -835,8 +837,8 @@ , 0 , curDef->getValue() , true - , 0 , defAttrDecl + , 0 ); } else @@ -858,8 +860,8 @@ , defAttrMemberType , curDef->getValue() , true - , 0 , defAttrDecl + , (defAttrMemberType)?((SchemaValidator *)fValidator)->getMostRecentAttrValidator():attrDataType ); } } 1.59 +11 -9 xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp Index: SGXMLScanner.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp,v retrieving revision 1.58 retrieving revision 1.59 diff -u -r1.58 -r1.59 --- SGXMLScanner.cpp 28 Nov 2003 20:09:31 -0000 1.58 +++ SGXMLScanner.cpp 28 Nov 2003 20:20:54 -0000 1.59 @@ -2586,7 +2586,8 @@ actualAttDef = (SchemaAttDef *)attDefForWildCard; XSAttributeDeclaration *attrDecl = (XSAttributeDeclaration *)fModel->getXSObject(actualAttDef); PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(); - XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition *)fModel->getXSObject(actualAttDef->getDatatypeValidator()); + DatatypeValidator * attrDataType = actualAttDef->getDatatypeValidator(); + XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition *)fModel->getXSObject(attrDataType); if(attrValid != PSVIItem::VALIDITY_VALID) { toFill->reset( @@ -2598,8 +2599,8 @@ , 0 , actualAttDef->getValue() , false - , 0 , attrDecl + , 0 ); } else @@ -2616,8 +2617,8 @@ , memberType , actualAttDef->getValue() , false - , 0 , attrDecl + , (memberType)?attrValidator:attrDataType ); } } @@ -2637,7 +2638,7 @@ attrValidator = DatatypeValidatorFactory::getBuiltInRegistry()->get(SchemaSymbols::fgDT_ANYURI); if(getPSVIHandler()) { - PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(); + PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(); XSSimpleTypeDefinition *validatingType = (attrValidator) ? (XSSimpleTypeDefinition *)fModel->getXSObject(attrValidator) : 0; @@ -2652,7 +2653,7 @@ , 0 , false , 0 - , 0 + , attrValidator ); } } @@ -2789,8 +2790,9 @@ { PSVIAttribute *defAttrToFill = fPSVIAttrList->getPSVIAttributeToFill(); XSAttributeDeclaration *defAttrDecl = (XSAttributeDeclaration *)fModel->getXSObject((void *)curDef); + DatatypeValidator * attrDataType = ((SchemaAttDef *)curDef)->getDatatypeValidator(); XSSimpleTypeDefinition *defAttrType = - (XSSimpleTypeDefinition*)fModel->getXSObject(((SchemaAttDef *)curDef)->getDatatypeValidator()); + (XSSimpleTypeDefinition*)fModel->getXSObject(attrDataType); // would have occurred during validation of default value if(((SchemaValidator *)fValidator)->getErrorOccurred()) { @@ -2803,8 +2805,8 @@ , 0 , curDef->getValue() , true - , 0 , defAttrDecl + , 0 ); } else @@ -2826,8 +2828,8 @@ , defAttrMemberType , curDef->getValue() , true - , 0 , defAttrDecl + , (defAttrMemberType)?((SchemaValidator *)fValidator)->getMostRecentAttrValidator():attrDataType ); } } 1.4 +9 -2 xml-xerces/c/src/xercesc/framework/psvi/PSVIAttribute.cpp Index: PSVIAttribute.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/PSVIAttribute.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- PSVIAttribute.cpp 27 Nov 2003 06:10:32 -0000 1.3 +++ PSVIAttribute.cpp 28 Nov 2003 20:20:54 -0000 1.4 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.4 2003/11/28 20:20:54 neilg + * make use of canonical representation in PSVIAttribute implementation + * * Revision 1.3 2003/11/27 06:10:32 neilg * PSVIAttribute implementation * @@ -86,8 +89,8 @@ , XSSimpleTypeDefinition * memberType , const XMLCh * const defaultValue , const bool isSpecified - , const XMLCh * const canonicalValue , XSAttributeDeclaration * attrDecl + , DatatypeValidator *dv ) { fValidationContext = valContext; @@ -98,7 +101,11 @@ fMemberType = memberType; fDefaultValue = defaultValue; fIsSpecified = isSpecified; - fCanonicalValue = canonicalValue; + fMemoryManager->deallocate((void *)fCanonicalValue); + if(normalizedValue && dv) + fCanonicalValue = dv->getCanonicalRepresentation(normalizedValue, fMemoryManager); + else + fCanonicalValue = 0; fAttributeDecl = attrDecl; } 1.5 +9 -2 xml-xerces/c/src/xercesc/framework/psvi/PSVIAttribute.hpp Index: PSVIAttribute.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/PSVIAttribute.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- PSVIAttribute.hpp 27 Nov 2003 06:10:32 -0000 1.4 +++ PSVIAttribute.hpp 28 Nov 2003 20:20:54 -0000 1.5 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.5 2003/11/28 20:20:54 neilg + * make use of canonical representation in PSVIAttribute implementation + * * Revision 1.4 2003/11/27 06:10:32 neilg * PSVIAttribute implementation * @@ -75,6 +78,7 @@ #include <xercesc/framework/psvi/PSVIItem.hpp> #include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp> +#include <xercesc/validators/datatype/DatatypeValidator.hpp> XERCES_CPP_NAMESPACE_BEGIN @@ -162,8 +166,8 @@ , XSSimpleTypeDefinition * memberType , const XMLCh * const defaultValue , const bool isSpecified - , const XMLCh * const canonicalValue , XSAttributeDeclaration * attrDecl + , DatatypeValidator * dv ); /** @@ -190,7 +194,10 @@ // attribute declaration component that validated this attribute XSAttributeDeclaration * fAttributeDecl; }; -inline PSVIAttribute::~PSVIAttribute() {} +inline PSVIAttribute::~PSVIAttribute() +{ + fMemoryManager->deallocate((void *)fCanonicalValue); +} inline XSAttributeDeclaration *PSVIAttribute::getAttributeDeclaration() {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]