You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ne...@apache.org on 2003/12/20 07:29:01 UTC
cvs commit: xml-xerces/c/src/xercesc/internal IGXMLScanner2.cpp IGXMLScanner.cpp SGXMLScanner.cpp
neilg 2003/12/19 22:29:01
Modified: c/src/xercesc/internal IGXMLScanner2.cpp IGXMLScanner.cpp
SGXMLScanner.cpp
Log:
add attribute names to PSVIAttributeList and fix some problems with calculation of canonical values in element content
Revision Changes Path
1.54 +7 -3 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.53
retrieving revision 1.54
diff -u -r1.53 -r1.54
--- IGXMLScanner2.cpp 19 Dec 2003 07:20:03 -0000 1.53
+++ IGXMLScanner2.cpp 20 Dec 2003 06:29:00 -0000 1.54
@@ -593,7 +593,7 @@
if(actualAttDef)
{
XSAttributeDeclaration *attrDecl = (XSAttributeDeclaration *)fModel->getXSObject(actualAttDef);
- PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill();
+ PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(suffPtr, fURIStringPool->getValueForId(uriId));
DatatypeValidator * attrDataType = actualAttDef->getDatatypeValidator();
XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition *)fModel->getXSObject(attrDataType);
if(attrValid != PSVIItem::VALIDITY_VALID)
@@ -647,7 +647,7 @@
attrValidator = DatatypeValidatorFactory::getBuiltInRegistry()->get(SchemaSymbols::fgDT_ANYURI);
if(getPSVIHandler() && fGrammarType == Grammar::SchemaGrammarType)
{
- PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill();
+ PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(suffPtr, fURIStringPool->getValueForId(uriId));
XSSimpleTypeDefinition *validatingType = (attrValidator)
? (XSSimpleTypeDefinition *)fModel->getXSObject(attrValidator)
: 0;
@@ -835,7 +835,11 @@
retCount++;
if(getPSVIHandler() && fGrammarType == Grammar::SchemaGrammarType)
{
- PSVIAttribute *defAttrToFill = fPSVIAttrList->getPSVIAttributeToFill();
+ QName *attName = ((SchemaAttDef *)curDef)->getAttName();
+ PSVIAttribute *defAttrToFill = fPSVIAttrList->getPSVIAttributeToFill
+ (
+ attName->getLocalPart(), fURIStringPool->getValueForId( attName->getURI())
+ );
XSAttributeDeclaration *defAttrDecl = (XSAttributeDeclaration *)fModel->getXSObject((void *)curDef);
DatatypeValidator * attrDataType = ((SchemaAttDef *)curDef)->getDatatypeValidator();
XSSimpleTypeDefinition *defAttrType =
1.53 +8 -1 xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp
Index: IGXMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- IGXMLScanner.cpp 19 Dec 2003 07:20:03 -0000 1.52
+++ IGXMLScanner.cpp 20 Dec 2003 06:29:00 -0000 1.53
@@ -3472,13 +3472,20 @@
}
XSTypeDefinition* typeDef = 0;
+ bool isMixed = false;
if (fPSVIElemContext.fCurrentTypeInfo)
+ {
typeDef = (XSTypeDefinition*) fModel->getXSObject(fPSVIElemContext.fCurrentTypeInfo);
+ SchemaElementDecl::ModelTypes modelType = (SchemaElementDecl::ModelTypes)fPSVIElemContext.fCurrentTypeInfo->getContentType();
+ isMixed = (modelType == SchemaElementDecl::Mixed_Simple
+ || modelType == SchemaElementDecl::Mixed_Complex);
+ }
else if (fPSVIElemContext.fCurrentDV)
typeDef = (XSTypeDefinition*) fModel->getXSObject(fPSVIElemContext.fCurrentDV);
XMLCh* canonicalValue = 0;
- if (fPSVIElemContext.fNormalizedValue )
+ if (fPSVIElemContext.fNormalizedValue && !isMixed &&
+ validity == PSVIElement::VALIDITY_VALID)
{
if (memberDV)
canonicalValue = (XMLCh*) memberDV->getCanonicalRepresentation(fPSVIElemContext.fNormalizedValue, fMemoryManager);
1.70 +15 -4 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.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- SGXMLScanner.cpp 19 Dec 2003 07:20:03 -0000 1.69
+++ SGXMLScanner.cpp 20 Dec 2003 06:29:00 -0000 1.70
@@ -2690,7 +2690,7 @@
if(actualAttDef)
{
XSAttributeDeclaration *attrDecl = (XSAttributeDeclaration *)fModel->getXSObject(actualAttDef);
- PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill();
+ PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(suffPtr, fURIStringPool->getValueForId(uriId));
DatatypeValidator * attrDataType = actualAttDef->getDatatypeValidator();
XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition *)fModel->getXSObject(attrDataType);
if(attrValid != PSVIItem::VALIDITY_VALID)
@@ -2744,7 +2744,7 @@
attrValidator = DatatypeValidatorFactory::getBuiltInRegistry()->get(SchemaSymbols::fgDT_ANYURI);
if(getPSVIHandler())
{
- PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill();
+ PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(suffPtr, fURIStringPool->getValueForId(uriId));
XSSimpleTypeDefinition *validatingType = (attrValidator)
? (XSSimpleTypeDefinition *)fModel->getXSObject(attrValidator)
: 0;
@@ -2894,7 +2894,11 @@
retCount++;
if(getPSVIHandler())
{
- PSVIAttribute *defAttrToFill = fPSVIAttrList->getPSVIAttributeToFill();
+ QName *attName = ((SchemaAttDef *)curDef)->getAttName();
+ PSVIAttribute *defAttrToFill = fPSVIAttrList->getPSVIAttributeToFill
+ (
+ attName->getLocalPart(), fURIStringPool->getValueForId( attName->getURI())
+ );
XSAttributeDeclaration *defAttrDecl = (XSAttributeDeclaration *)fModel->getXSObject((void *)curDef);
DatatypeValidator * attrDataType = ((SchemaAttDef *)curDef)->getDatatypeValidator();
XSSimpleTypeDefinition *defAttrType =
@@ -4885,13 +4889,20 @@
}
XSTypeDefinition* typeDef = 0;
+ bool isMixed = false;
if (fPSVIElemContext.fCurrentTypeInfo)
+ {
typeDef = (XSTypeDefinition*) fModel->getXSObject(fPSVIElemContext.fCurrentTypeInfo);
+ SchemaElementDecl::ModelTypes modelType = (SchemaElementDecl::ModelTypes)fPSVIElemContext.fCurrentTypeInfo->getContentType();
+ isMixed = (modelType == SchemaElementDecl::Mixed_Simple
+ || modelType == SchemaElementDecl::Mixed_Complex);
+ }
else if (fPSVIElemContext.fCurrentDV)
typeDef = (XSTypeDefinition*) fModel->getXSObject(fPSVIElemContext.fCurrentDV);
XMLCh* canonicalValue = 0;
- if (fPSVIElemContext.fNormalizedValue)
+ if (fPSVIElemContext.fNormalizedValue && !isMixed &&
+ validity == PSVIElement::VALIDITY_VALID)
{
if (memberDV)
canonicalValue = (XMLCh*) memberDV->getCanonicalRepresentation(fPSVIElemContext.fNormalizedValue, fMemoryManager);
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org