public void CreateXsltFileFromXsdEmbeddedSchematronRules(string xsdFileWithEmbeddedSchematronRules, string xsltOuputPath, IIsoPackageFiles isoPackageFiles) { if (!File.Exists(xsdFileWithEmbeddedSchematronRules)) { throw new FileNotFoundException($"Xsd file with embedded schematron rules was not found ({xsdFileWithEmbeddedSchematronRules}).", xsdFileWithEmbeddedSchematronRules); } using (var xmlReader = XmlReader.Create(xsdFileWithEmbeddedSchematronRules)) { var source = _documentBuilder.Value.Build(xmlReader); var extraktSchFromXsdTransformer = _xsltCompiler.Value.Compile(new Uri(isoPackageFiles.ExtractSchFromXsd)).Load(); extraktSchFromXsdTransformer.InitialContextNode = source; var isoAbstractExpandTransformer = _xsltCompiler.Value.Compile(new Uri(isoPackageFiles.AbstractExpand)).Load(); var isoSvrlForXsltTransformer = _xsltCompiler.Value.Compile(new Uri(isoPackageFiles.Svrl)).Load(); isoAbstractExpandTransformer.Destination = isoSvrlForXsltTransformer; using (var xmlWriter = XmlWriter.Create(xsltOuputPath, new XmlWriterSettings { Indent = true })) { isoSvrlForXsltTransformer.Destination = new TextWriterDestination(xmlWriter); extraktSchFromXsdTransformer.Run(isoAbstractExpandTransformer); } } }
public void CreateXsltFileFromSchematronFile(string schFileWithSchematronRules, string xsltOuputPath, IIsoPackageFiles isoPackageFiles) { if (!File.Exists(schFileWithSchematronRules)) { throw new FileNotFoundException($"Sch file with schematron rules was not found ({schFileWithSchematronRules}).", schFileWithSchematronRules); } var source = _documentBuilder.Value.Build(XmlReader.Create(schFileWithSchematronRules)); var isoDsdlIncludeTransformer = _xsltCompiler.Value.Compile(new Uri(isoPackageFiles.DsdlInclude)).Load(); isoDsdlIncludeTransformer.InitialContextNode = source; var isoAbstractExpandTransformer = _xsltCompiler.Value.Compile(new Uri(isoPackageFiles.AbstractExpand)).Load(); var isoSvrlForXsltTransformer = _xsltCompiler.Value.Compile(new Uri(isoPackageFiles.Svrl)).Load(); isoAbstractExpandTransformer.Destination = isoSvrlForXsltTransformer; isoSvrlForXsltTransformer.Destination = new TextWriterDestination(XmlWriter.Create(xsltOuputPath, new XmlWriterSettings { Indent = true })); isoDsdlIncludeTransformer.Run(isoAbstractExpandTransformer); }