Return-Path: Delivered-To: apmail-xerces-commits-archive@www.apache.org Received: (qmail 36571 invoked from network); 28 Oct 2009 09:06:11 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 28 Oct 2009 09:06:11 -0000 Received: (qmail 92613 invoked by uid 500); 28 Oct 2009 09:06:11 -0000 Delivered-To: apmail-xerces-commits-archive@xerces.apache.org Received: (qmail 92550 invoked by uid 500); 28 Oct 2009 09:06:11 -0000 Mailing-List: contact commits-help@xerces.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list commits@xerces.apache.org Received: (qmail 92540 invoked by uid 99); 28 Oct 2009 09:06:11 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Oct 2009 09:06:11 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 28 Oct 2009 09:06:08 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 6F53023888FD; Wed, 28 Oct 2009 09:05:47 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r830474 - in /xerces/c/trunk: src/xercesc/validators/schema/ tests/src/XSTSHarness/regression/ tests/src/XSTSHarness/regression/XERCESC-1893/ Date: Wed, 28 Oct 2009 09:05:47 -0000 To: commits@xerces.apache.org From: amassari@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20091028090547.6F53023888FD@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: amassari Date: Wed Oct 28 09:05:46 2009 New Revision: 830474 URL: http://svn.apache.org/viewvc?rev=830474&view=rev Log: When the base type for a complex type cannot be found in an imported schema that has already been processed, check if a simple type with the same name exists (XERCESC-1893) Added: xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1893/ xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1893/included.xsd xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1893/main.xsd Modified: xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet Modified: xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp URL: http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp?rev=830474&r1=830473&r2=830474&view=diff ============================================================================== --- xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp (original) +++ xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp Wed Oct 28 09:05:46 2009 @@ -6478,13 +6478,23 @@ baseComplexTypeInfo = getTypeInfoFromNS(elem, uriStr, localPart); if (!baseComplexTypeInfo) { - SchemaInfo* impInfo = fSchemaInfo->getImportInfo(fURIStringPool->addOrFind(uriStr)); - if (!impInfo || impInfo->getProcessed()) { + if (!impInfo) + { reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::BaseTypeNotFound, baseName); throw TraverseSchema::InvalidComplexTypeInfo; } + if (impInfo->getProcessed()) + { + // the schema has already been loaded, so check if it's a simple type before complaining + baseDTValidator = getDatatypeValidator(uriStr, localPart); + if(!baseDTValidator) + { + reportSchemaError(elem, XMLUni::fgXMLErrDomain, XMLErrs::BaseTypeNotFound, baseName); + throw TraverseSchema::InvalidComplexTypeInfo; + } + } infoType = SchemaInfo::IMPORT; restoreSchemaInfo(impInfo, infoType); Added: xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1893/included.xsd URL: http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1893/included.xsd?rev=830474&view=auto ============================================================================== --- xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1893/included.xsd (added) +++ xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1893/included.xsd Wed Oct 28 09:05:46 2009 @@ -0,0 +1,9 @@ + + + + + + + + + Added: xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1893/main.xsd URL: http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1893/main.xsd?rev=830474&view=auto ============================================================================== --- xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1893/main.xsd (added) +++ xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1893/main.xsd Wed Oct 28 09:05:46 2009 @@ -0,0 +1,14 @@ + + + + + + + + + + + + \ No newline at end of file Modified: xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet URL: http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet?rev=830474&r1=830473&r2=830474&view=diff ============================================================================== --- xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet (original) +++ xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet Wed Oct 28 09:05:46 2009 @@ -707,4 +707,15 @@ + + + Error reported when defining a complex type as an extension of an imported simple type + + + + + + + + --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org For additional commands, e-mail: commits-help@xerces.apache.org