peiyongz 2004/09/21 09:10:47 Modified: c/src/xercesc/internal SGXMLScanner.cpp IGXMLScanner.cpp Log: Handle partial PSVIElement Revision Changes Path 1.94 +57 -1 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.93 retrieving revision 1.94 diff -u -r1.93 -r1.94 --- SGXMLScanner.cpp 20 Sep 2004 15:00:50 -0000 1.93 +++ SGXMLScanner.cpp 21 Sep 2004 16:10:47 -0000 1.94 @@ -1758,7 +1758,63 @@ } } else // not empty + { + + // send a partial element psvi + if (fPSVIHandler) + { + + ComplexTypeInfo* curTypeInfo = 0; + DatatypeValidator* curDV = 0; + XSTypeDefinition* typeDef = 0; + + if (fValidate && elemDecl->isDeclared()) + { + curTypeInfo = ((SchemaValidator*) fValidator)->getCurrentTypeInfo(); + + if (curTypeInfo) + { + typeDef = (XSTypeDefinition*) fModel->getXSObject(curTypeInfo); + } + else + { + curDV = ((SchemaValidator*) fValidator)->getCurrentDatatypeValidator(); + + if (curDV) + { + typeDef = (XSTypeDefinition*) fModel->getXSObject(curDV); + } + } + } + + fPSVIElement->reset + ( + PSVIElement::VALIDITY_NOTKNOWN + , PSVIElement::VALIDATION_NONE + , fRootElemName + , ((SchemaValidator*) fValidator)->getIsElemSpecified() + , (elemDecl->isDeclared()) ? (XSElementDeclaration*) fModel->getXSObject(elemDecl) : 0 + , typeDef + , 0 //memberType + , fModel + , ((SchemaElementDecl*)elemDecl)->getDefaultValue() + , 0 + , 0 + , 0 + ); + + + fPSVIHandler->handlePartialElementPSVI + ( + elemDecl->getBaseName() + , fURIStringPool->getValueForId(elemDecl->getURI()) + , fPSVIElement + ); + + } + fErrorStack->push(fPSVIElemContext.fErrorOccurred); + } return true; } 1.75 +54 -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.74 retrieving revision 1.75 diff -u -r1.74 -r1.75 --- IGXMLScanner.cpp 20 Sep 2004 15:00:50 -0000 1.74 +++ IGXMLScanner.cpp 21 Sep 2004 16:10:47 -0000 1.75 @@ -2899,6 +2899,59 @@ } else if (fGrammarType == Grammar::SchemaGrammarType) { + // send a partial element psvi + if (fPSVIHandler) + { + + ComplexTypeInfo* curTypeInfo = 0; + DatatypeValidator* curDV = 0; + XSTypeDefinition* typeDef = 0; + + if (fValidate && elemDecl->isDeclared()) + { + curTypeInfo = ((SchemaValidator*) fValidator)->getCurrentTypeInfo(); + + if (curTypeInfo) + { + typeDef = (XSTypeDefinition*) fModel->getXSObject(curTypeInfo); + } + else + { + curDV = ((SchemaValidator*) fValidator)->getCurrentDatatypeValidator(); + + if (curDV) + { + typeDef = (XSTypeDefinition*) fModel->getXSObject(curDV); + } + } + } + + fPSVIElement->reset + ( + PSVIElement::VALIDITY_NOTKNOWN + , PSVIElement::VALIDATION_NONE + , fRootElemName + , ((SchemaValidator*) fValidator)->getIsElemSpecified() + , (elemDecl->isDeclared()) ? (XSElementDeclaration*) fModel->getXSObject(elemDecl) : 0 + , typeDef + , 0 //memberType + , fModel + , ((SchemaElementDecl*)elemDecl)->getDefaultValue() + , 0 + , 0 + , 0 + ); + + + fPSVIHandler->handlePartialElementPSVI + ( + elemDecl->getBaseName() + , fURIStringPool->getValueForId(elemDecl->getURI()) + , fPSVIElement + ); + + } + // not empty fErrorStack->push(fPSVIElemContext.fErrorOccurred); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]