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]