private void expandGroupParticleForCompositorAll(XSParticleDecl particle, Element contextElement) { XSModelGroupImpl group = (XSModelGroupImpl) particle.fValue; if (group.getCompositor() == XSModelGroup.COMPOSITOR_ALL) { XSParticleDecl[] subParticles = group.fParticles; for (int partlIdx = 0; partlIdx < group.fParticleCount; partlIdx++) { short particleType = subParticles[partlIdx].fType; if (particleType == XSParticleDecl.PARTICLE_ELEMENT || particleType == XSParticleDecl.PARTICLE_WILDCARD) { fPArray.addParticle(subParticles[partlIdx]); } else { // the sub particle is a model-group. call the method recursively. expandGroupParticleForCompositorAll(subParticles[partlIdx], contextElement); } } } else { String wrongCompsName = (group.getCompositor() == XSModelGroup.COMPOSITOR_SEQUENCE) ? "xs:"+SchemaSymbols.ELT_SEQUENCE : "xs:"+SchemaSymbols.ELT_CHOICE; // it's an error to have a non-all (xs:all) compositor within "xs:all -> xs:group" reportSchemaError("cos-all-limited.2-xs11", new Object[] { wrongCompsName }, contextElement); } } // expandGroupParticleForCompositorAll