lmartin 2002/08/26 06:57:48 Modified: java/src/org/apache/xerces/impl/xs XSConstraints.java Log: Move derivation-restriction.5.2 checking to XSConstraints. Occurrence info for local element decls in complextypes isn't valid during complex type traversal Revision Changes Path 1.26 +19 -7 xml-xerces/java/src/org/apache/xerces/impl/xs/XSConstraints.java Index: XSConstraints.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/XSConstraints.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- XSConstraints.java 18 Jul 2002 20:48:44 -0000 1.25 +++ XSConstraints.java 26 Aug 2002 13:57:48 -0000 1.26 @@ -419,25 +419,37 @@ } // 2. Particle Derivation + if (types[j].fBaseType != null && types[j].fBaseType != SchemaGrammar.fAnyType && types[j].fDerivedBy == XSConstants.DERIVATION_RESTRICTION && - types[j].fParticle !=null && - (types[j].fBaseType instanceof XSComplexTypeDecl) && - ((XSComplexTypeDecl)(types[j].fBaseType)).fParticle != null) { - try { + (types[j].fBaseType instanceof XSComplexTypeDecl)) { + + XSParticleDecl derivedParticle=types[j].fParticle; + XSParticleDecl baseParticle= + ((XSComplexTypeDecl)(types[j].fBaseType)).fParticle; + if (derivedParticle==null && (!(baseParticle==null || + baseParticle.emptiable()))) { + reportSchemaError(errorReporter,ctLocators[j], + "derivation-ok-restriction.5.2", + new Object[]{types[j].fName}); + } + else if (derivedParticle!=null && + baseParticle!=null) + + try { particleValidRestriction(types[j].fParticle, SGHandler, ((XSComplexTypeDecl)(types[j].fBaseType)).fParticle, SGHandler); - } catch (XMLSchemaException e) { + } catch (XMLSchemaException e) { reportSchemaError(errorReporter, ctLocators[j], e.getKey(), e.getArgs()); reportSchemaError(errorReporter, ctLocators[j], "derivation-ok-restriction.5.3", new Object[]{types[j].fName}); - } + } } // 3. UPA
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]