public async Task ValidateResources(string[] schemaData) { var assembly = typeof(BinarySchemaValidator).GetTypeInfo().Assembly; var stream = assembly.GetManifestResourceStream(schemaData[1]); Assert.IsNotNull(stream); var schema = new BinarySchemaValidator(); Assert.IsNotNull(schema); await schema.Validate(stream).ConfigureAwait(false); Assert.IsNotNull(schema.Dictionary); Assert.AreEqual(schemaData[0], schema.Dictionary.TargetNamespace); }
static void ProcessDictionary(string name, string input, string output, Files files, string specificationVersion) { var resourcePath = "ModelCompiler.Design"; if (!String.IsNullOrEmpty(specificationVersion)) { resourcePath = $"ModelCompiler.Design.{specificationVersion}"; } TypeDictionaryValidator validator = new TypeDictionaryValidator(resourcePath); validator.Validate(input); string basePath = String.Format(@"{0}\{1}", output, name); string fileName = String.Format("Opc.Ua{0}", name); XmlSchemaGenerator generator1 = new XmlSchemaGenerator(input, output, files.TypeDictionaries, resourcePath); generator1.TypesNamespace = "http://opcfoundation.org/UA/2008/02/Types.xsd"; generator1.ServicesNamespace = "http://opcfoundation.org/UA/2008/02/Services.wsdl"; generator1.EndpointsNamespace = "http://opcfoundation.org/UA/2008/02/Endpoints.wsdl"; generator1.Generate(fileName, "Opc.Ua", name, true); string filePath = String.Format(@"{0}\Opc.Ua.Types.xsd", output); XmlSchemaValidator2 validator1 = new XmlSchemaValidator2(files.XmlSchemas); validator1.Validate(filePath); files.XmlSchemas[validator1.TargetSchema.TargetNamespace] = filePath; System.IO.File.Delete(filePath); fileName = "Opc.Ua.Types"; BinarySchemaGenerator generator2 = new BinarySchemaGenerator(input, output, files.TypeDictionaries, resourcePath); generator2.Generate(fileName, true, "http://opcfoundation.org/UA/"); filePath = String.Format(@"{0}\{1}.bsd", output, fileName); BinarySchemaValidator validator2 = new BinarySchemaValidator(files.BinarySchemas); validator2.Validate(filePath); files.BinarySchemas[validator2.Dictionary.TargetNamespace] = filePath; System.IO.File.Delete(filePath); }
static void ProcessDictionary(string name, string input, string output, Files files) { TypeDictionaryValidator validator = new TypeDictionaryValidator(); validator.Validate(input); string basePath = String.Format(@"{0}\{1}", output, name); string fileName = String.Format("Opc.Ua{0}", name); XmlSchemaGenerator generator1 = new XmlSchemaGenerator(input, output, files.TypeDictionaries); generator1.TypesNamespace = "http://opcfoundation.org/UA/2008/02/Types.xsd"; generator1.ServicesNamespace = "http://opcfoundation.org/UA/2008/02/Services.wsdl"; generator1.EndpointsNamespace = "http://opcfoundation.org/UA/2008/02/Endpoints.wsdl"; generator1.Generate(fileName, "Opc.Ua", name, true); string filePath = String.Format(@"{0}\Opc.Ua.Types.xsd", output); XmlSchemaValidator validator1 = new XmlSchemaValidator(files.XmlSchemas); validator1.Validate(filePath); files.XmlSchemas[validator1.TargetSchema.TargetNamespace] = filePath; System.IO.File.Delete(filePath); fileName = "Opc.Ua.Types"; BinarySchemaGenerator generator2 = new BinarySchemaGenerator(input, output, files.TypeDictionaries); generator2.Generate(fileName, true, "http://opcfoundation.org/UA/"); filePath = String.Format(@"{0}\{1}.bsd", output, fileName); BinarySchemaValidator validator2 = new BinarySchemaValidator(files.BinarySchemas); validator2.Validate(filePath); files.BinarySchemas[validator2.Dictionary.TargetNamespace] = filePath; System.IO.File.Delete(filePath); }