code: 	public final void parse(Set<InputStream> mappingStreams) {
  		try {
  			JAXBContext jc = JAXBContext.newInstance( ConstraintMappingsType.class );
  
  			Set<String> alreadyProcessedConstraintDefinitions = newHashSet();
  			for ( InputStream in : mappingStreams ) {
  				String schemaVersion = xmlParserHelper.getSchemaVersion( "constraint mapping file", in );
  				String schemaResourceName = getSchemaResourceName( schemaVersion );
  				Schema schema = xmlParserHelper.getSchema( schemaResourceName );
  
  				Unmarshaller unmarshaller = jc.createUnmarshaller();
  				unmarshaller.setSchema( schema );
  
  				ConstraintMappingsType mapping = getValidationConfig( in, unmarshaller );
  				String defaultPackage = mapping.getDefaultPackage();
  
  				parseConstraintDefinitions(
  						mapping.getConstraintDefinition(),
  						defaultPackage,
  						alreadyProcessedConstraintDefinitions
  				);
  
  				for ( BeanType bean : mapping.getBean() ) {
  					Class<?> beanClass = ClassLoadingHelper.loadClass( bean.getClazz(), defaultPackage );
  					checkClassHasNotBeenProcessed( processedClasses, beanClass );
  
  					// update annotation ignores
  					annotationProcessingOptions.ignoreAnnotationConstraintForClass(
  							beanClass,
  							bean.getIgnoreAnnotations()
  					);
  
  					ConstrainedType constrainedType = ConstrainedTypeBuilder.buildConstrainedType(
  							bean.getClassType(),
  							beanClass,
  							defaultPackage,
  							constraintHelper,
  							annotationProcessingOptions,
  							defaultSequences
  					);
  					if ( constrainedType != null ) {
  						addConstrainedElement( beanClass, constrainedType );
  					}
  
  					Set<ConstrainedField> constrainedFields = ConstrainedFieldBuilder.buildConstrainedFields(
  							bean.getField(),
  							beanClass,
  							defaultPackage,
  							constraintHelper,
  							annotationProcessingOptions
  					);
  					addConstrainedElements( beanClass, constrainedFields );
  
  					Set<ConstrainedExecutable> constrainedGetters = ConstrainedGetterBuilder.buildConstrainedGetters(
  							bean.getGetter(),
  							beanClass,
  							defaultPackage,
  							constraintHelper,
  							annotationProcessingOptions
  					);
  					addConstrainedElements( beanClass, constrainedGetters );
  
  					Set<ConstrainedExecutable> constrainedConstructors = ConstrainedExecutableBuilder.buildConstructorConstrainedExecutable(
  							bean.getConstructor(),
  							beanClass,
  							defaultPackage,
  							parameterNameProvider,
  							constraintHelper,
  							annotationProcessingOptions
  					);
  					addConstrainedElements( beanClass, constrainedConstructors );
  
  					Set<ConstrainedExecutable> constrainedMethods = ConstrainedExecutableBuilder.buildMethodConstrainedExecutable(
  							bean.getMethod(),
  							beanClass,
  							defaultPackage,
  							parameterNameProvider,
  							constraintHelper,
  							annotationProcessingOptions
  					);
  					addConstrainedElements( beanClass, constrainedMethods );
  
  					processedClasses.add( beanClass );
  				}
  			}
  		}
  		catch ( JAXBException e ) {
  			throw log.getErrorParsingMappingFileException( e );
  		}
  	}
  
  