![]() | Document Validation |
This topic contains the following sections:
To validate a document, a service, which implements the IValidatorRESULTTYPE interface has to be used. The Aml.Engine currently contains one implementation of this interface, the ValidatorService. If validation issues are detected, also possible repair options are included in the validation result. See the ValidationElement class, which information is included in the validation result.
This example show, how a document can be validated and how the obtained result can be read using extension methods, defined in ValidationResults.
using Aml.Engine.Services; using Aml.Engine.CAEX; using Aml.Engine.CAEX.Extensions; void ValidateDocument (CAEXDocument document) { // registration of the validation service var service = ValidatorService.Register(); // document validation var validationResult = service.ValidateAll(); // filter results, get all ID references which are not OK. var idReferenceValidationResult = validationResult.IDReferenceValidationResults(); // filter results, get all Path references which are not OK. var pathReferenceValidationResult = validationResult.PathReferenceValidationResults(); ValidatorService.UnRegister(); }
This example is about repair IDs in a validated document.
using Aml.Engine.Services; using Aml.Engine.CAEX; using Aml.Engine.CAEX.Extensions; void ValidateDocument (CAEXDocument document) { // registration of the validation service var service = ValidatorService.Register(); // document validation var validationResult = service.ValidateAll(); // filter results, get all IDs which are repairable. var idValidationResult = validationResult.IDValidationResults().Where(v => v.AvailableRepairOptions != RepairTypeEnum.None).ToList(); idValidationResult.ForEach((e) => service.Repair(e)); ValidatorService.UnRegister(); }
These examples explain, how to validate a single ID or Name which should be assigned to an element.
using Aml.Engine.Services; using Aml.Engine.CAEX; void ValidateName (CAEXDocument document) { // registration of the validation service var service = ValidatorService.Register(); var insHierarchy1 = document.CAEXFile.InstanceHierarchy.Append(); insHierarchy1.Name = "InsHierarchy"; result = _service.NameValidation(insHierarchy1, "InsHierarchy"); Assert.IsTrue(result.IsValid); var insHierarchy2 = document.CAEXFile.InstanceHierarchy.Append(""); // it is not allowed, to assign the same name to another InstanceHierarchy result = _service.NameValidation(insHierarchy2, "InsHierarchy"); Assert.IsFalse(result.IsValid); // it is possible to register a UniqueNameService. The Aml.Engine recognizes, if such a service is present and // will automatically assign unique names to all generated or inserted objects. Console.WriteLine (result.Message); }