knoaman 2003/01/15 11:24:16 Modified: c/src/xercesc/validators/schema TraverseSchema.cpp Log: Check the value of the 'namespace' attribute of wildcards to be valid anyURI. Revision Changes Path 1.57 +16 -1 xml-xerces/c/src/xercesc/validators/schema/TraverseSchema.cpp Index: TraverseSchema.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/TraverseSchema.cpp,v retrieving revision 1.56 retrieving revision 1.57 diff -u -r1.56 -r1.57 --- TraverseSchema.cpp 15 Jan 2003 15:32:15 -0000 1.56 +++ TraverseSchema.cpp 15 Jan 2003 19:24:16 -0000 1.57 @@ -1689,6 +1689,7 @@ ContentSpecNode* firstNode = 0; ContentSpecNode* secondNode = 0; unsigned int tokensSize = nameSpaceTokens->size(); + DatatypeValidator* anyURIDV = fDatatypeRegistry->getDatatypeValidator(SchemaSymbols::fgDT_ANYURI); for (unsigned int i=0; i < tokensSize; i++) { @@ -1701,6 +1702,12 @@ uriIndex = fTargetNSURI; } else { + try { + anyURIDV->validate(tokenElem); + } + catch(const XMLException& excep) { + reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::DisplayErrorMessage, excep.getMessage()); + } uriIndex = fURIStringPool->addOrFind(tokenElem); } } @@ -3678,6 +3685,7 @@ else { XMLStringTokenizer tokenizer(nameSpace); + DatatypeValidator* anyURIDV = fDatatypeRegistry->getDatatypeValidator(SchemaSymbols::fgDT_ANYURI); attType = XMLAttDef::Any_List; @@ -3692,6 +3700,13 @@ uriIndex = fTargetNSURI; } else { + + try { + anyURIDV->validate(token); + } + catch(const XMLException& excep) { + reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::DisplayErrorMessage, excep.getMessage()); + } uriIndex = fURIStringPool->addOrFind(token); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]