Author: amassari
Date: Wed Oct 4 13:00:22 2006
New Revision: 452995
URL: http://svn.apache.org/viewvc?view=rev&rev=452995
Log:
The fix for jira#1281 did not handle the case when a restriction is a mixed
complex type with attributes only
Modified:
xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/SchemaValidator.cpp
Modified:
xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/SchemaValidator.cpp
URL:
http://svn.apache.org/viewvc/xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/SchemaValidator.cpp?view=diff&rev=452995&r1=452994&r2=452995
==============================================================================
---
xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/SchemaValidator.cpp
(original)
+++
xerces/c/branches/xerces-2.7/src/xercesc/validators/schema/SchemaValidator.cpp
Wed Oct 4 13:00:22 2006
@@ -1420,6 +1420,13 @@
const XMLCh* derivedName = derivedSpecNode->getElement()->getLocalPart();
const XMLCh* baseName = baseSpecNode->getElement()->getLocalPart();
+ // case of mixed complex types with attributes only
+ if (derivedURI == XMLElementDecl::fgPCDataElemId) {
+ if (!XMLString::equals(derivedName, baseName) || derivedURI != baseURI)
+ ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::PD_NameTypeOK1,
fMemoryManager);
+ return;
+ }
+
SchemaGrammar* aGrammar = currentGrammar;
const XMLCh* schemaURI =
fGrammarResolver->getStringPool()->getValueForId(derivedURI);
@@ -1455,11 +1462,6 @@
}
subsGroup = true;
- }
-
- // case of mixed complex types with attributes only
- if (derivedURI == XMLElementDecl::fgPCDataElemId) {
- return;
}
if (!isOccurrenceRangeOK(derivedSpecNode->getMinOccurs(),
derivedSpecNode->getMaxOccurs(),
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]