public void BuildCoreValidators() { if (this.areCoreValidatorsBuilt) { return; } Dictionary <TextProcessorType, TextProcessorGrouping> oobProcessorsGroupedByType = TextProcessorUtils.OobProcessorsGroupedByType; List <IClassificationRuleCollectionValidator> collection = new List <IClassificationRuleCollectionValidator> { new ClassificationRuleCollectionIdentifierValidator(), new OperationTypeValidator(), new ClassificationRuleCollectionVersionValidator(), new NameUniquenessValidator(), new DataClassificationIdentifierValidator(), new TextProcessorIdAndMatchReferencesValidator(oobProcessorsGroupedByType), new ClassificationRuleCollectionLocalizedInfoValidator(), new DataClassificationLocalizedInfoValidator(), new ComplexityValidator(oobProcessorsGroupedByType, DefaultValidationPipelineBuilder.CreateDataClassificationComplexityValidatorsChain()), new RegexProcessorsValidator(), new KeywordProcessorsValidator(), new FingerprintProcessorsValidator(), new ClassificationRuleCollectionRuntimeValidator() }; this.validationPipeline.AddRange(collection); this.areCoreValidatorsBuilt = true; }
internal static string ValidateRulePackageContents(ValidationContext context, XDocument rulePackXDocument) { IValidationPipelineBuilder validationPipelineBuilder = new DefaultValidationPipelineBuilder(); validationPipelineBuilder.BuildCoreValidators(); validationPipelineBuilder.BuildSupplementaryValidators(); IEnumerable <IClassificationRuleCollectionValidator> result = validationPipelineBuilder.Result; foreach (IClassificationRuleCollectionValidator classificationRuleCollectionValidator in result) { classificationRuleCollectionValidator.Validate(context, rulePackXDocument); } string result2; if ((result2 = context.ValidatedRuleCollectionDocument) == null) { result2 = (context.ValidatedRuleCollectionDocument = XmlProcessingUtils.XDocumentToStringWithDeclaration(rulePackXDocument)); } return(result2); }