Author: cargilld
Date: Wed Oct 12 06:06:08 2005
New Revision: 314882
URL: http://svn.apache.org/viewcvs?rev=314882&view=rev
Log:
QName fix. Need to verify that the prefix is defined.
Modified:
xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/QNameDatatypeValidator.cpp
Modified:
xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/QNameDatatypeValidator.cpp
URL:
http://svn.apache.org/viewcvs/xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/QNameDatatypeValidator.cpp?rev=314882&r1=314881&r2=314882&view=diff
==============================================================================
---
xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/QNameDatatypeValidator.cpp
(original)
+++
xerces/c/branches/xerces-2.7/src/xercesc/validators/datatype/QNameDatatypeValidator.cpp
Wed Oct 12 06:06:08 2005
@@ -24,6 +24,7 @@
#include <xercesc/validators/datatype/QNameDatatypeValidator.hpp>
#include <xercesc/validators/datatype/InvalidDatatypeFacetException.hpp>
#include <xercesc/validators/datatype/InvalidDatatypeValueException.hpp>
+#include <xercesc/internal/ValidationContextImpl.hpp>
XERCES_CPP_NAMESPACE_BEGIN
@@ -123,6 +124,23 @@
return;
checkValueSpace(content, manager);
+
+ if (context) {
+ int colonPos = XMLString::indexOf(content, chColon);
+ if (colonPos > 0) {
+ XMLCh* prefix = XMLString::replicate(content, manager);
+ ArrayJanitor<XMLCh> jan(prefix, manager);
+ normalizeContent(prefix, manager);
+ prefix[colonPos] = chNull;
+
+ if (context->isPrefixUnknown(prefix)) {
+ ThrowXMLwithMemMgr1(InvalidDatatypeValueException
+ , XMLExcepts::VALUE_QName_Invalid
+ , content
+ , manager);
+ }
+ }
+ }
if ((thisFacetsDefined & DatatypeValidator::FACET_ENUMERATION) != 0 &&
(getEnumeration() != 0))
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]