public static void AddMaindocSchemas(this XmlSchemaSet @this, UblXsdSettings ublSettings) { XmlReaderSettings readerSettings = new XmlReaderSettings { ValidationType = ValidationType.Schema, DtdProcessing = DtdProcessing.Parse, // will crash without this NameTable = @this.NameTable, }; // ubl2.1: Have to preload this file to avoid parsing error due to missing DtdProcessing.Parse setting for implicit includes/imports string preloadFilename = ublSettings.CommonDirectory.GetFiles("UBL-xmldsig-core-schema-*.xsd").FirstOrDefault()?.FullName; if (!string.IsNullOrEmpty(preloadFilename)) { @this.AddSchemaFile(preloadFilename, readerSettings, ublSettings.XsdValidationEvent); } foreach (var xsdFile in ublSettings.MaindocDirectory.GetFiles("*.xsd")) { var schema = @this.AddSchemaFile(xsdFile.FullName, readerSettings, ublSettings.XsdValidationEvent); } }