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]

Reply via email to